C程序教案(第9章)

合集下载

C语言程序设计全套教学教程完整版电子课件最全ppt电子教案

C语言程序设计全套教学教程完整版电子课件最全ppt电子教案

上一页 下一页
目录
8.1 指针的概念、定义和引用 8.1.1 指针的概念 8.1.2 指针变量的定义 8.1.3 指针变量的引用 8.2 指针与函数 8.2.1 指针变量作函数参数 8.2.2 返回值为指针的函数 8.2.3 通过指针调用函数
上一页 下一页
Hale Waihona Puke 目录8.3 指针与数组 8.3.1 指针与数组的关系 8.3.2 数组名作函数参数的指针解释 8.3.3 指针数组 8.3.4 多级指针 8.4 指针与字符串 8.4.1 字符串的表示形式 8.4.2 字符串指针作函数参数
2.汇编语言
汇编语言的指令与机器语言的指令基本上保持了一一对应的关系。与 机器语言比起来,汇编语言易记、易读、易检查、易修改,但却不能 被计算机直接识别和执行,必须由翻译程序翻译成机器语言程序后才 能执行。汇编语言仍然是面向特定计算机的语言,也仍然是低级语言
下一页
返回
1.1 程序设计语言概述
3.高级语言 高级语言是接近人类自然语言和数学语言的程序设计语言,具有以下
上一页 下一页
目录
5.2 do-while语句 5.3 for语句 5.4 break和continue语句 5.5 多重循环 5.6 综合应用举例 第6章 数组 6.1 数组概述 6.2 一维数组
上一页 下一页
目录
6.2.1 一维数组的定义 6.2.2 一维数组的引用 6.2.3 一维数组的初始化 6.2.4 一维数组的程序举例 6.3 二维数组 6.3.1 二维数组的定义 6.3.2 二维数组的引用 6.2.3 二维数组的初始化
翻译成目标程序,然后执行该目标程序。解释方式是把源程序逐句翻
上一页 下一页 返回
1.1 程序设计语言概述

(完整版)《C语言程序设计》教案(清华谭浩强)

(完整版)《C语言程序设计》教案(清华谭浩强)

第一章C语言及程序设计概述本章要求:了解C语言的特点、C语言与其它高级语言相比有什么异同;了解C程序在PC机上的建立、编译和运行过程;了解C语言程序设计思想的基本篇;重点:①C语言的主要特点;②C语言在PC机上的运行过程及上机操作过程;③常用算法的应用难点:无一、C语言概述C语言是目前国际上在各种计算机运行较为广泛流行的一种高级语言.主要表现为:C语言:适合于作为系统描述语言—-可用来写系统软件。

具有高级语言的特点,又有低级语言(汇编语言)的特点。

C语言:是AT&T贝尔实验室的Dennis Ritchie在1972年发明的。

C语言:是在B语言的基础上发展起来的.(ALGOL 60)C语言:最早开始是用于UNIX操作系统。

(C语言和UNIX是相辅相成的)DBASE 、Microsoft Exel 、 Microsoft Word、PC—DOS等,则是用C语言加上若干汇编子程序编写的。

1983年:——制定的新标准,称为(美国国家标准化协会)ANSI C1987年:—-Turbo C1.0 (Borland) 1988年:TC 1.5(图形和文本窗口)1989年:——Turbo C2。

0 (DOS操作系统、查错、Tiny模式生成com文件)1991年:—-Turbo C++(3.0) 支持windows 3.X说明:Turbo C语言可以在程序的任何地方嵌入汇编代码,提高速度,可以直接使用存储器和寄存器。

二.C语言的特点1.语言简洁、紧凑、使用方便、灵活C语言:——共有32个关键字,9种控制语句;程序书写自由,主要用小写字母表示;2.运算符丰富C语言的运算符包含的范围很广泛,共有34种运算符;即:把括号、赋值、强制类型转换都作为运算符处理3.有丰富的数据类型整型、实型、字符型、数据类型、指针类型、结构体类型、共用体(联合)类型等。

实现复杂的数据结构(链表、树、栈、图)的运算。

4.具有结构化的功能,用函数作为程序模块,实现程序的模块化5.语法限制不太严格,程序设计自由度大.(放宽了语法检查)例:1)对数组下标越界不作检查,由程序编写者自己保证程序的正确;2)整型数据、字符型数据、逻辑型数据可以通用。

C程序5

C程序5
5.2*4.5* 3.0
10
v= S(5.2, 4.5, 3.0) ;
说明: 说明:
1.宏展开时,只是将实参串代替形参串. 宏展开时,只是将实参串代替形参串. 宏展开时 如: # define S( r)
PI*r*r; 若S(a+b)→ PI*a+b*a+b. +
出错,定义时应写成: 出错,定义时应写成:
20
练习
定义一个带参数的宏, 定义一个带参数的宏,实现两个 数的互换,并输出交换后的值。 数的互换,并输出交换后的值。 宏名: 宏名:S) t=b;b=a;a=t main() { int a,b,t; scanf(“%d,%d”,&a,&b); SWAP(a,b); printf(“a=%d,b=%d\n”,a,b); }
4
#define M 10 main( ) { int a[M],i; for(i=0;i<M;i++) scanf(“%d”,&a[i];}
预编译时,程序中所有的M被10替换。 预编译时,程序中所有的M 替换。 替换 要改变数组的个数,只需改变M的值。 要改变数组的个数,只需改变M的值。
5
说明
13
int max(int x,int y) { int z; z=x>y?x, y; return(z); } main( ) { int a,b,c,d,t; scanf(“%d,%d,%d,%d”,&a,&b,&c,&d); t=max(a+b,c+d); printf(“max=%d”,t); } ,
f1.c
#include “f3.c” #include “f2.c”

C语言程序设计项目式教程完整版课件全书电子教案教材课件完整

C语言程序设计项目式教程完整版课件全书电子教案教材课件完整

例如,有一函数
,编写程序,其功能是对已知 x 求 y
程序说明 ① if 和 else 后面的语句可以是复合语句。 ②注意 if 与 else 的配对原则,else 总是与前面离它最近的没成对的 if 成对。
简单的C语言程序结构
说明4——语句
C语言中以“;”作为语句结束的标志。函数体就是由若干语句组成的,同时语句也出现在 函数之间,示例代码如下所示:
简单的C语言程序结构
学习一种编程语言,最佳途径就是多阅读代码段,多编写程序代码,接下来通过最基本的 C语言程序的基本构成学习基本格式和书写规范,代码示例如下所示:
单一if结构
选择结构中最基本的分支结构是 if 语句,按形式分 if 语句可以分为单分支、双分支和多 分支等,单一 if 语句定义形式如下所示
当上述中“表达式”值为“逻辑真”时,执行“语句”中内容。例如计算整型变量 x 的 绝对值,示例代码如下所示:
If-else结构
if 语句的第二种形式为 if-else 结构的双分支。其定义形式如下所示 : 当“表达式”值为“逻辑真”时,执行“语句 1”;当“表达式”值为“逻辑假”时,执 行“语句 2”。例如,判断整型变量 x 是 5,则输出“right”,否则输出“error”,示例代码如 下所示:
简单的C语言程序结构
说明2——预处理
include称为文件包含命令,其意义是把双引号""或尖括号<>内指定的文件包含到本程序来, 成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h的头文件。C语言的 头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数时,都必 须包含该函数原型所在的头文,示例代码如下所示:
原型在头文件 “stdio.h”中。具体格式如下:

C语言程序设计教程(电子教案)

C语言程序设计教程(电子教案)
实用文档
学习目标
对C语言有一个概括的了解, 能够编写包含键盘输入、计算和 显示输出等操作的简单C程序。
4
主要内容
• C语言的产生与特点 • 简单C程序的组成 • C语言应用程序开发的基本步骤
5
1.1 C语言的产生及特点
C语言是为了编写系统程序而在1968年开始 研发的计算机高级语言
C语言表达能力强,使用灵活,程序结构清 晰,紧凑,可移植性好
指针 类型
17
基本数据类型说明符
整型:int long
字符型:char 实型:float
double long double
18
2.2 常 量
常量∶在程序运行过程中,其值不能被改 变的量。
一. 不同数制整型常量的表示
例如: 12 :十进制数 12
012 :八进制数 12(等于十进 制数10,用前导符0表示八进制数常量)
计算x+y+z,并将结 8果赋给变量sum
显示变量 sum的值
主函数 main()
一般C程序的组成
【例1-2】采用模块结构,改写例1-1的程序。 add(int x,int y,int z )
{ return(x+y+z);
}
函数add()
调用函数 add()
main() { int x,y,z; printf("Please Input Three Integers:\n "); scanf("%d,%d,%d ",&x,&y,&z);
4. 用‘\’ ’表示字符’ ,‘\”’表示字符”, ‘\\ ’表示字符\ 。
5. 用双引号括起来的字符序列表示字符串常量,其 中最后一个字符是字符串结束符‘\0’,不显式 地表示出来。如:“English” 。

《C语言程序设计》课程标准

《C语言程序设计》课程标准

《C语言程序设》计课程标准一、课程名称C语言程序设计二、适用专业本课程标准适用计算机网络技术、大数据技术与应用、软件工程技术、数字媒体应用技术等专业三、课程性质《C语言程序设计》是一门专业必修课,是学习其它工科课程的基础。

掌握程序设计的前提是掌握程序设计语言,C语言以其灵活性和实用性受到了广大计算机应用人员的喜爱。

一旦掌握了C语言,就可以较为轻松地学习后续的Java程序设计、数据库技术等程序设计语言。

本课程以程序设计思想为主线,介绍C语言的基本概念和程序设计的思想和方法,培养学生运用C语言解决实际问题的能力。

本课程旨在使学生掌握程序设计的基本方法及思维,形成程序设计基本思想,掌握程序调试的基本方法,使学生初步具备程序设计能力,为学生进一步学习其他专业课程和今后从事网络技术工作打下坚实的基础。

四、教学目标本课程的培养目标是:通过基于工作过程的案例驱动和项目实训,使学生全面掌握C 语言的基本理论、基本编程方法、基本内容和主要应用领域;了解C语言发展的最新动态和前沿问题;培养具有较强综合分析能力和解决问题能力,综合素质较高的计算机编程人才。

在课程的学习中,培养善于沟通表达、创新学习、独立分析解决问题的能力,为学生今后进一步学习计算机网络技术专业知识和学生就业、工作打下良好的基础。

2.1知识目标获取全国计算机等级考试二级证书。

2.2素质目标2.3能力目标(一)知识目标(1)掌握软件开发必备的C程序设计知识。

包括数据类型、结构化程序设计方法、数组、函数、指针、结构体等知识;(2)掌握基本的编程规范;(3)掌握一定的程序员岗位职责及工作规范。

(4)掌握用C语言进行程序设计的基本框架,理解结构化程序设计思想;(5)熟练应用C语言集成环境设计和调试C程序;(6)能用C语言程序设计的方式分析和解决简单实际问题并测试程序;(二)能力目标(1)具有基本的算法设计能力;(2)具有一定的C程序设计与应用开发和软硬件测试能力;(3)具有一定的模块设计能力;(4)具有一定的需求分析能力;(5)具有一定的软件文档写作能力;(6)具有良好的沟通能力;(7)具有良好的团队合作意识;(8)具有良好的分析问题、解决问题的能力;(9)具有一定的创新能力(10)掌握计算机语言类课程的学习方法,无论以后在学习、工作中使用什么语言编程,都能灵活应用程序设计的思想和方法分析、解决问题。

《C语言程序设计》谭浩强版教案

《C语言程序设计》谭浩强版教案

《C语言程序设计》教案
单位:湖南理工职业技术学院学院(教研室):风能工程学院工业机器人专业授课教师:周常欣职称:助教
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第29-30 课时
《C语言程序设计》教案
第31-32 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第37-38 课时
《C语言程序设计》教案
第39-40 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案。

《C语言程序设计》教案(清华谭浩强)

《C语言程序设计》教案(清华谭浩强)

《C语言程序设计》教案(清华谭浩强)第一章:C语言概述1.1 课程介绍介绍C语言的历史和发展解释C语言的特点和应用范围强调学习C语言的重要性和目的1.2 C语言的基本概念解释编程语言和编译器的概念介绍C语言的基本数据类型和变量讲解C语言的语法结构和程序结构1.3 C语言的编译过程解释编译器的角色和功能介绍编译过程中的预处理、编译、汇编和步骤强调编译过程中产生的文件和它们的作用第二章:基本数据类型和运算符2.1 基本数据类型介绍整型、浮点型、字符型和布尔型的概念和用法解释不同数据类型的存储方式和大小强调数据类型的选择和使用场景2.2 变量和常量解释变量的概念和作用介绍变量的声明和初始化方法讲解常量的概念和用法2.3 运算符介绍算术运算符、关系运算符和逻辑运算符的概念和用法解释赋值运算符和条件运算符的作用强调不同运算符的优先级和使用规则第三章:控制语句3.1 条件语句介绍if语句的语法和用法讲解switch语句的概念和用法强调条件语句的选择和嵌套使用3.2 循环语句介绍for循环、while循环和do-while循环的概念和用法解释循环控制语句如break和continue的作用强调循环条件的设置和循环次数的控制3.3 跳转语句介绍goto语句的概念和用法讲解label标签的作用和跳转规则强调跳转语句的使用场景和可能导致的问题第四章:函数和指针4.1 函数的基本概念介绍函数的定义和声明讲解函数的参数传递和返回值强调函数的命名规则和命名规范4.2 指针的概念和用法解释指针的概念和作用介绍指针的声明和初始化方法讲解指针的赋值和指针运算4.3 指针和数组介绍数组的概念和用法解释指针和数组的关系强调指针在数组操作中的应用第五章:结构体和文件操作5.1 结构体的概念和用法介绍结构体的定义和声明讲解结构体的成员访问和内存布局强调结构体在数据组织中的应用5.2 文件操作的基本概念解释文件的概念和文件操作的重要性介绍文件打开、读写、关闭等操作的方法强调文件操作中的错误处理和文件指针的管理第六章:动态内存分配6.1 动态内存分配的概念介绍动态内存分配的原因和必要性解释malloc、calloc和realloc函数的作用和用法强调动态内存分配的注意事项和错误处理6.2 链表的概念和用法介绍链表的定义和结构讲解链表的创建、插入、删除和遍历操作强调链表的优势和应用场景6.3 动态内存分配的应用实例通过实例演示动态内存分配在实际编程中的应用讲解内存泄漏和内存溢出的概念强调编写高效和安全的程序的重要性第七章:字符串处理7.1 字符串的基本概念介绍字符串的定义和表示方法解释字符串的长度和字符串的结束标志强调字符串与数组的区别和联系7.2 字符串的常用函数介绍字符串的输入输出函数如printf和scanf 讲解字符串的拷贝、连接、比较等操作函数强调字符串处理函数的使用和注意事项7.3 字符串处理的应用实例通过实例演示字符串处理在实际编程中的应用讲解字符串排序、查找和替换等操作强调字符串处理在文本分析和数据处理中的应用第八章:标准库函数8.1 标准输入输出库函数介绍标准输入输出库stdio.h中的常用函数讲解文件读写、数据转换等函数的用法和功能强调标准库函数的使用场景和注意事项8.2 字符串处理库函数介绍字符串处理库string.h中的常用函数讲解字符串比较、查找和替换等函数的用法和功能强调字符串处理库函数的使用和与其他库函数的配合8.3 数学计算库函数介绍数学计算库math.h中的常用函数讲解数学运算、三角函数和指数函数等函数的用法和功能强调数学计算库函数在数学计算和科学计算中的应用第九章:并发编程和同步机制9.1 并发编程的基本概念介绍并发编程的定义和目的解释进程和线程的概念和关系强调并发编程的优势和挑战9.2 并发编程的同步机制介绍互斥锁、条件变量和信号量等同步机制的原理和用法讲解同步机制在多线程编程中的应用和注意事项强调同步机制在避免竞态条件和数据一致性中的重要性9.3 并发编程的应用实例通过实例演示并发编程在实际应用中的优势和挑战讲解多线程的创建、同步和通信等操作强调并发编程在多任务处理和性能优化中的应用第十章:C语言编程实践10.1 编程实践的重要性强调编程实践在学习和掌握C语言中的重要性解释编程实践对于提高编程能力和解决问题的作用强调编程实践中的代码质量和编程规范10.2 编程实践的项目和案例介绍常见的编程实践项目和案例讲解实际编程中的问题解决方法和技巧强调编程实践中的调试和测试的重要性10.3 编程实践的资源和工具介绍编程实践中的常用工具和环境讲解集成开发环境(IDE)的使用和代码管理强调编程实践中的团队合作和代码分享的重要性重点和难点解析重点环节1:C语言的基本概念和特点需要重点关注C语言的历史和发展,以及其特点和应用范围。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【教学课题】指针和指针变量(第9章指针,1、2节)【目的要求】了解内存单元地址的概念和直接内存访问与间接内存访问的区别,理解指针的概念以及与指针变量的区别,掌握指针变量的定义、初始化及相应的运算。

【教学重点】指针的概念,指针变量的定义,指针变量的运算【教学难点】直接访问与间接访问,指针变量与指针,指针变量的赋值运算和加减法运算【教学方法】任务驱动法,问题引导法【教学手段】讲授+多媒体演示+学生动手【作业布置】1、输入两个整数,求出最大值,要求用函数调用的方法实现,且函数参数为指针变量。

2、输入三个整数,按从小到大的顺序输出。

要求用函数调用的方法实现,且函数参数为指针变量。

一、提出任务,引入课题计算机存储器中保存了那么多数据,系统是如何准确找到所要的数据?二、分析任务,讲授新课(一)地址和指针(P139)1、内存单元的“地址”计算机所有信息都是以二进制的形式存储在存储器中,同时把8个二进制位规定为一个字节,也就是说存储器在存储信息时通常都是以字节为最小单位进行的,对应的,计算机系统把存储器划分成若干个以字节为单位的小块,这样的存储块通常就是存储信息的最小单元,我们称之为存储单元,为了方便管理存储器中的各个存储单元,给每个存储单元一个编号,我们称之为存储单元的“地址”。

内存上的存储单元又叫内存单元。

(图9-1,内存单元之与地址有如房间之与房间号码,邮箱之与邮箱编号)2、数据在内存中的存储(我们知道程序的处理对象就是各种各样的数据,这些数据通常先被赋值到相应类型的变量中,然后再对变量进行相应的操作,最终得出期望的结果,所以数据如何存放到内存上的变量空间中,我们有必要了解)(1)变量的存储空间:程序中定义了变量后,程序在被编译的过程中,系统就为变量分配一定的内存空间(如:int型变量分配4个字节的空间,char型变量分配1个字节的空间);(2)变量的地址(编号):变量所对应的内存空间的第1个字节的地址即为变量的地址(图9-2所示);(3)变量地址的作用:A、具有指向作用(通过地址可以准确找到对应的变量存储空间,从而找到变量中的数据);B、隐含变量的类型(由地址的跨度可以了解这个变量的类型)3、内存单元中数据的读取(2种访问形式)(1)直接访问直接根据变量的地址找到变量的值。

如:printf(“%d”,a);(如:你找人时知道受访对象的房间号,根据房号直接找到受访人)(2)间接访问先在一个位置(通常有存放地址的变量)找到变量的地址,然后根据地址找到相应的变量。

如:指针变量的使用。

(如:你找人时不知道受访对象的房间号,只能先找传达室,再从传达式找到房号,最后根据房号找到受访人)4、指针和指针变量(1)指针:一个变量的地址称为该变量的指针,简单地说指针就是地址,是一个无符号整数,通过变量的指针即地址就可以找到变量的内存单元;(2)指针变量:存放指针(地址,实际是一个数值)的变量就叫指针变量。

(3)说明:A、指针变量有类型之分。

指针变量的类型与存在它里面的地址所隐含的类型相同;B、变量的指针是地址,即一个数值,指针变量是一个变量,用来存放指针(即地址)值的变量。

(二)指针变量(P140)1、定义指针变量(指针变量既然是变量,同样遵守变量的规则,即先定义后使用)(1)定义格式:数据类型*指针变量名1[,*指针变量名2……](2)举例:int *p1,*p2;float *p3;char *p4;(3)说明:A、数据类型又叫基类型,是指指针变量所能存放地址的类型;B、“*”是指针变量的定义标识符,只起标识作用,说明定义的变量是指针,并不是变量名的一部分;C、指针变量名的命名规则遵守C中标识符的命名规则;D、相同类型的指针变量定义时可以在一个语句里,但在每个指针变量名前都必须加“*”。

2、指针运算符(2个,P141)(1)&:取地址运算符A、格式为:&变量名B、如:&a,&b[0],又如:p=&a;(表示把变量a的地址放到变量p中,即使p指向变量a)C、&运算符是单目运算符,遵循右结合性,且其后只能是变量或数组元素,不能为表达式或常量。

(2)*:取内容(值)运算符(又指针运算符或间接访问运算符)A、格式为:*指针变量名。

B、如:int *p,i;p=&i;(此句不能省,否则p没有指向)*p=1;C、这里的“*”表示指针所指存储单元的内容,不是乘号,也不是指针变量定义时的指针说明符,它是单目运算符,遵循右结合性。

D、如有语句:int a,*p;p=&a;其中p表示指针变量,*p表示p所指向的变量a。

3、指针变量初始化(P142)(1)格式:基类型指针变量名=初始化地址值;(2)举例:char c;char *p1=&c;(3)说明:A、指针变量使用前必须初始化,使指针变量指向一个明确的内存单元。

(如上例中两条语句互换位置就不行)B、指针所指向的内存单元的数据类型必须和指针的类型一致;C、尽管指针值是数值,但不能随便把一个整数赋给指针变量。

如:int *p=1000;是不行的;D、指针值的输出格式符为:%p4、指针的运算(P142)(1)指针的赋值运算(有3种情形)(赋值的目的就是让指针指向一个具体的对象,再进行相应的运算)A、通过地址运算符(&)把一个地址赋给指针变量;B、同类型指针变量间可以直接赋值。

如:int i;int *p1,*p2;p1=&i;p2=p1;C、给指针变量赋空值。

当指针变量没有指向时可以给它赋空值(NULL)。

如:int *p1,*p2;p1=NULL;(说明:NULL是头文件stdio.h的预定义符,所以在使用前必须先用“#include <stdio.h>”先声明,同时NULL的代码值为0,所以“p1=NULL;”等价于“p1=0;”)D、举例(例9-1)(2)指针与整数的加减运算A、移动指针:当指针指向某个存储单元时,通过对指针单元加减一个整数,使指针指向相邻的存储单元,这样的运算称为移动指针。

B、移动指针时不是简单地将指针变量的原值(一个无符号整数)加减一个整数(以“1”为单位的加减运算),而是以它指向的变量所占的内存单元的字节数为单位进行加减的。

C、举例,有如下代码:char *p_ch;int *p_int;double *p_double;p_ch++;p_int+=5;p_double-=5;(假设p_ch、p_int、p_double的指向单元的地址值分别为1000、2000、3000)执行后,p_ch、p_int、p_double的指向的地址值分别变为1000+1=1001、2000+5*4=2020、3000-5*8=2960。

D、说明:移动指针时,是以指针加减“n”来表示,其中“n”表示的是相应类型的存储块的数量,并不表示存储块空间的大小。

(图9-3)(3)两个指针变量相减当两个指针指向同一数组元素时,两指针变更可以进行减法运算,其差就是两个指针间元素的个数。

(指针变量间的加法运算没有意义)(4)两个指针变量比较指向同一数组的元素的两个指针可以进行比较运算,主要用来判断数组元素位置的先后。

三、解决任务,学生实践计算机存储器中保存了那么多数据,系统是如何准确找到所要的数据?四、针对难点,重点突破(一)直接访问与间接访问(二)指针变量与指针(三)指针的移动运算五、拓展任务,学生实践输入两个整数,输出最小数。

要求采用函数调用的方法,函数参数为指针变量。

六、检查任务,评价学生【教学课题】指针与数组(第9章指针,3、4节)【目的要求】了解数组指针和数组元素指针的概念与区别,理解指针的移动,掌握一、二维数组中元素的引用方法。

【教学重点】数组指针与元素指针的概念,指针的移动,指针定义与元素的引用【教学难点】一维数组元素的引用,二维数组的理解,指针的移动,二维数组元素的引用【教学方法】任务驱动法,问题引导法【教学手段】讲授+多媒体演示+学生动手【作业布置】1、用选择法对10个整数排序(函数调用时形参实参均为指针变量)2、求4个学生4门课程的总平均分(函数调用时形、实参均为指针变量)一、提出任务,引入课题程序中,使用变量时,变量都有相应的地址,指针变量可以指向相应的变量。

同样包含若干元素的数组是否也有地址,也可以用指针指向数组和不同的元素呢?如果指向数组有指针,指向不同元素也有指针,那么它们有什么关系呢?我们知道可以用指针来引用变量,那么在数组中又如何用指针来引用数组元素呢?二、分析任务,讲授新课(一)指针与一维数组(P145)1、指向数组元素的指针变量(1)数组的地址和数组元素的地址数组的指针:是指数组的起始地址(C中规定,数组名表示数组的地址,所以数组名实际上就是数组的指针);数组元素的指针:是指数组元素的地址(也是起始地址)。

(2)数组元素的指针变量A、概念:存放数组元素指针的变量,就叫数组元素指针变量。

B、定义:(与指向一般变量的指针变量的定义相同)类型标识符*指针变量名C、举例:int a[10];int *p;p=&a[0];D、说明:上例中p=&a[0]表示把元素a[0]的地址放到p中,也就是说使p指向元素a[0],等价于p=a;另外要注意数组名a是一个地址常量,而p是一个指针变量。

2、数组元素的引用(P146)(回顾指针移动P144,回到P146图9-5)(1)举例(有如下代码)int array[5],*p,*p1;p=array;p1=array+3;分析:p1=array+3;等价于p1=&array[3];也等价于p1=p+3;所以有:p+i和array+i就是array[i]的地址,即都指向array数组的第i+1个元素;所以还有:*(p+i)和*(array+i)就是元素array[i]。

(2)一维数组元素的引用方法(两类四种,以前面例题为基础)下标法:array[i]、p[i]指针法:*(array+i)、*(p+i)(3)具体应用(P147)任务1:输出一数组中的全部元素(要求分别四种引用方法实现);任务2:改变指针变量的值来依次输出数组元素(4)说明:数组名是一个地址常量,千万不能在程序中出现往数组名中赋值的运算。

(二)指针与二维数组(P148)1、二维数组的组成(1)概述二维数组是一种特殊的一维数组,这种一维数组的每个元素又都是一维数组,即二维数组是以一维数组为元素的一维数组。

(2)举例int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};分析:首先,a 是一个数组名,这个数组包括3行,看成是3个元素:a[0]、a[1]、a[2],如下图所示:其次,数组a 中的元素a[0]、a[1]、a[2]事实上不是一个单一的数据,而一个由4个元素组成的一维数组,所以数组a 事实上如下图所示:二维数组中的一维元素a[0],a[1],a[2]实事上是一个个地址,也就是一个指针,所以本质上说二维数组是一个指针型的一维数组。

相关文档
最新文档