C语言程序设计教案.doc
《C语言程序设计教案.doc》由会员分享,可在线阅读,更多相关《C语言程序设计教案.doc(27页珍藏版)》请在咨信网上搜索。
教 案 (2016 ~ 2017学年第 一 学期) 课程名称: C语言程序设计 年 级: 2015 教 研 室: 计算机 任课教师: XXX 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2学时 授课题目 第一章 C语言概述 课 型 理论 使用教具 计算机、投影仪 教学目的 1、掌握C语言程序的结构、编程过程和上机步骤 教学重点和难点 C语言程序的结构 上机步骤 参考教材 《C语言程序设计》 人民邮电出版社 教学内容 时间分配及备注 一 新课引入 从计算机应用基础中学过的计算机语言及语言处理系统引出C语言。 二 讲授新课 C语言程序构成(采用程序实例加以说明,并提倡良好的程序设计书写风格) 1. C语言是由函数构成的,至少有一个main()函数; 2. 每个函数由函数首部和函数体组成;函数体由说明语句、执行语句组成; 3. 每个C程序从main()函数开始执行,并在main()中结束; 4. 每个语句和数据定义的最后必须加分号; 5. C程序无输入、输出语句:输入功能由scanf()函数完成;输出功能由printf()函数完成; 6. 可加注释/*……*/ C语言的编程过程: 分析问题----数据及算法----代码编写----编译及调试 三、上机步骤(上机环境:VC++ 6。0) 1. 进入环境 2. 编辑源程序 3. 保存源程序 4. 编译源程序 5. 执行程序,查看结果 6. 6. 退出C环境 课 后 小 结 1、 C语言的构成要素,main函数在程序中的作用 2、 上机操作的过程 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 4学时 授课题目 第二章 数据类型、运算符与表达式 课 型 理论 使用教具 计算机、投影仪 教学目的 1、掌握C的数据类型 2、掌握整型、实型、字符型数据的常量及变量 教学重点和难点 各种基本数据类型的常量和变量 不同类型的数据在内存中的物理存储形式 参考教材 教学内容 时间分配及备注 一 复习引导 上次课我们已经学习了程序的一个方面算法,现在来学习另一方面数据结构。 二 讲授新课 C有四种基本数据类型,分别是整型、字符型、实型、枚举型 一、常量与变量 1、 常量:在程序运行过程中,其值不能被改变的量。 两种形式:一般常量和符号常量 1. 直接常量(字面常量): 整型常量:如12、0、-3等 实型常量:如4.5、-1.234等 字符常量:如‘a’、‘1’等,用单引号表示; 字符串常量:如“a”、“abc”、“1”,用双引号表示。 2. 符号常量: 符号常量即是用一个标识符来代替一个常量;符号常借助于预处理命令#define来实现; 定义形式:#define 标识符 字符串 如:#define PI 3.1415926535 说明: ① 习惯上,符号常量用大写字母表示; ② 定义符号常量时,不能以“;”结束; ③ 一个#define占一行,且要从第一列开始书写; ④ 一个源程序文件中可含有若干个define命令,不同的define命令中指定的“标识符”不能相同; 2、变量:在程序运行过程中,其值会发生变化。 1.每个变量必须有一个名字,变量名是标识符。 2.标识符是用来标识数据对象,是一个数据对象的名字。 3.命名规则:以字母或下划线开始,后跟字符、数字或下划线。 例:x1,_average,lotus_1_2_3,#abc,1fs,M.D.Jhon 4.变量名不能是关键字(即保留字,是C编译程序中保留使用的标识符。 如:auto、break、char、do、else、if、int等) 5.变量必须先定义再使用 课 后 小 结 1、 关于变量与常量的说明及定义 2、 主要是能够按照变量及常量的要求在程序设计中正确使用 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2学时 授课题目 第三章 数据类型、运算符与表达式 课 型 理论 使用教具 计算机、投影仪 教学目的 1、掌握C的数据类型 2、掌握整型、实型、字符型数据的常量及变量 教学重点和难点 各种基本数据类型的常量和变量 不同类型的数据在内存中的物理存储形式 参考教材 《C语言程序设计》 人民邮电出版社 教学内容 时间分配及备注 二、整型数据的 1、整型常量的表示方法 1) 十进制 如:123,-456,0 2) 八进制数 如:0123,-011 (以0开头的数) 3) 十六进制数 如:0x123,-0x12,0xABC (以0x开头的) 2、整型变量 1) 整型数据在内存中以二进制形式存放,每一个整型变量在内存中占2个字节。 例:定义整型变量i=10 和j= -10的存放形式。 2) 整型变量的分类:基本型int、短整型short、长整型long、无符号型unsigned 3) 整型变量的定义 对变量的定义,一般放在函数体开头部分的声明部分(也可放在函数中某一分程序内) 例:#include <stdio.h> main( ) { int a, b, c, d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf(“a+u=%d, b+u=%d\n”,c,d); } 4) 整型数据的溢出 一个int 型变量的最大允许值为32767,如果再加1,其结果不是32768,而是-32768。即“溢出”。 三、实型数据 1、实型常量的表示方法 (1) 十进制浮点数 如:0.123,.456,0.0,123.,123.0 整数部分和小数部分都可省,但不能同时省 (2) 指数形式 如:123e3,123E3代表123×103 指数部分为整常数; 尾数部分可以是整常数,也可以是实常数;尾数部分和指数部分均不可省。E10, 100.e15.2, .e5均为不合法的浮点数。 课 后 小 结 1、 关于整型与实型数据的说明及使用 2、 注意在程序设计中正确使用 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2学时 授课题目 第三章 顺序程序设计 课 型 理论 使用教具 计算机、投影仪 教学目的 1、了解C语句的概念及种类、掌握C语言常用的输入/出方式 2、学会简单的顺序程序设计 教学重点和难点 C语言常用的输入/出方式 格式输入输出 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 一、复习引导 上一章介绍的常量、变量、运算符、表达式等都是构成程序的基本成分。本章将介绍为编写简单程序所必需的一些内容。 二、讲授新课 一、C语句概述 1、C语句分类: ①控制语句:二个分支语句(if-else、switch),三个循环语句(for、while、do-while),四个转移语句(continue、break、goto、return) ②函数调用语句 如:printf(“Hello, world!”); ③表达式语句 如: x+y; i++; a=2; a=3*5, 40 ; ④空语句 ; ⑤复合语句 { 语句序列 } 二、赋值语句:赋值语句是由赋值表达式加上一个分号构成,如:b=3; 三、 数据输入输出的概念及在C语言中的实现 1、 所谓输入输出是以计算机主机为主体而言的。 2、 C语言本身不提供输入输出语句,输入输出操作是通过函数调用实现的。 3、 要使用C语言库函数,应用“#include”将有关头文件包括到用户源程序中。 四、字符数据的输入输出 1、字符输出函数——putchar 语法:putchar(c) 语义:(向stdout终端)输出一个字符; 2、字符输入函数——getchar 语法:getchar ( ),是一个无参函数; 语义:(从stdin终端上) 输入一个字符,函数的值就是从输入设备得到的字符。 五、格式输入输出 1、格式输出函数——printf 语法:printf (“格式控制”, 输出表列); 格式控制:是用双引号括起来的字符串,包含两种信息:⑴ 普通字符和转义字符(这类字符总是原样输出)⑵格式说明:由%和格式控制符组成。如:%d, %f等;(P77)如:printf(“a=%d, b=%d”,a,b); 若a、b的值分别为2和3,则输出结果为: a=2, b=3 上机实验,学习简单的C程序设计 课 后 小 结 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2学时 授课题目 第三章 顺序程序设计 课 型 理论 使用教具 计算机、投影仪 教学目的 1、了解C语句的概念及种类、掌握C语言常用的输入/出方式 2、学会简单的顺序程序设计 教学重点和难点 C语言常用的输入/出方式 格式输入输出 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 2、格式输入函数 scanf 语法:scanf(“格式控制”,地址表列); 格式控制:包含三类符号 ⑴ 空白字符:(空格、Tab或\t、\n),输入时不必一一对应; ⑵ 普通字符:(非格式转换说明符、非空白符、非%),输入时必须一一对应; ⑶ 格式转换说明符: 注意:scanf函数规定,组成输入项表的输入对象须是地址量;如: scanf(“%d,%d,%d”,&a,&b,&c); scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); ①第一个输入语句,正确的输入数据流为:123,456,789<enter>,处理的结果为: 123→a,456→b,789→c ②同理对第二个输入语句,正确的输入数据流应是:a=123,b=456,c=789<enter> 该输入数据流中除123,456,789被赋给相应变量外,其余都被丢弃 六、顺序结构程序设计举例 例1:输入三角形的三边长,求三角形面积。 分析:三边为a,b,c,面积area2=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2 程序: #include <math.h> main() { float a,b,c,s,area; sacnf(%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s); printf(“area=%7.2f\n”,area); } 上机实验,学习简单的C程序设计 课 后 小 结 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2学时 授课题目 第四章 选择结构程序设计 课 型 理论 使用教具 计算机、投影仪 教学目的 1、掌握实现选择结构的两种语句、两个运算符 2、学会编写选择结构的程序 教学重点和难点 关系运算符、if-else语句 嵌套if-else语句中的if与else匹配问题 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 一、复习引导 上一次课已经介绍了程序基本结构之一,但在大多数情况下都要用到选择结构。 二、讲授新课 一、关系运算符与关系表达式 1、关系运算符:< <= > >= = = ! = 优先级:< <= > >= 高于 = = != 关系运算符低于算术运算符,高于赋值运算符 2、关系表达式:用关系运算符将两个表达式连接起来的式子。 关系表达式求值:关系成立,值为1;关系不成立,值为0 二、双分支选择语句 1、if语句的三种形式 语法1:if (表达式)语句; 语法2:if (表达式) 语句1;else 语句2; 语法3:if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; …… else 语句n+1; 说明: 1. if 关键字后均为表达式(逻辑表达式、关系表达式、赋值表达式、变量等); 如:if (a=5) 语句; if (b) 语句; 2. 条件表达式必须用括号括起来,在语句后必须加分号; 3. 满足条件需执行一组语句时,该组语句必须用{ }括起来; 4. if 语句嵌套时,else 总是与它最靠近的未配对的if 匹配; 5.因为if 语句执行时总是简单地测试其中作为条件的“表达式”的值是0还是非0,便可利用这种特性来简化程序设计。如对于: if (expression!=0) 完全可用 if (expression) 来代替; 同理: if(!exp)语句;等价于:if(exp= =0) 语句; 三、课堂小结 1、关系运算符与关系表达式 2、if-else语句的应用。 课 后 小 结 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2课时 授课题目 第四章 选择结构程序设计 课 型 上机 使用教具 计算机、投影仪 教学目的 1、掌握实现选择结构的两种语句、两个运算符 2、学会编写选择结构的程序 教学重点和难点 关系运算符、if-else语句 嵌套if-else语句中的if与else匹配问题 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 (5) 每个case后面的常量表达式的值必须互不相同。 (6) 各个case与default出现次序不影响结果。 (7) break的使用(P99) (8) 多个case可以共用一组语句 三、选择结构程序举例 例:求ax2+bx+c=0方程的根。 分析: (1)a=0,不是二次方程。 (2)b2-4ac=0,有两个相等的实根。 (3)b2-4ac>0,有两个不等的实根。 (4)b2-4ac<0,有两个共轭的复根。 课 后 小 结 1、 switch语句 2、 在编写程序过程中,注意分支的作用范围,及复合语句的运用。 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 4课时 授课题目 第五章 循环程序设计 课 型 理论 使用教具 计算机、投影仪 教学目的 1、掌握三种循环语句的语法结构 2、灵活运用循环语句 教学重点和难点 教学重点 三种循环语句while、do-while、for 教学难点 三种循环语句的区别 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 一、引入新课 问题1:假如全班41人,欲从键盘上输入每人的数学成绩,然后计算出平均成绩; 问题2: 编程计算n!。 重复执行一组语句是程序设计要求的基本功能之一。在C语言中可以用以下语句来实现循环:(1)if 和 goto (2)while (3)do-while (4)for 二、讲授新课 一、goto语句及用goto构成循环 语法:goto label; 其中:label是语句标号,它命名的规则同变量名; 语义:使程序无条件地转向标号为label的语句去执行; 二、while语句 语法:while (exp) 循环体语句; 语义:当exp为真时,执行循环体;为假时,执行循环语句的后续语句; 如:用while语句构成循环,求sum=1+2+…+100 程序如下:main() { int i=1, sum=0; while (i<=100) { sum+=i; i++; } printf(“%d”,sum); } 说明:1) 循环体可以用复合语句; 2) 在while语句前应有为测试表达式(exp)中的循环控制变量赋初值的语句,以确保循环的正常开始; 3)循环体内应有改变循环控制变量的语句,以确保循环进行有限次后正常结束; 如:i=1;while (i<=100) sum=sum+1; (死循环) 4) while 循环的特点是先判断后执行,故循环有可能一次都不被执行; 如: i=3; while (i<3) printf(“i=%d\n”,i); 课 后 小 结 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 4课时 授课题目 第五章 循环程序设计 课 型 上机 使用教具 计算机、投影仪 教学目的 1、掌握三种循环语句的语法结构 2、 灵活运用循环语句 教学重点和难点 三种循环语句while、do-while、for 三种循环语句的区别 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 复习引导 从while和do-while语句中引入新的循环语句:for 语句 二、讲授新课 一、for 语句 语法:for(表达式1;表达式2;表达式3) 循环体语句; 语义: 1、先求表达式1; 2、求解表达式2,若其值为真,则执行第三步;若为假,则结束循环; 3、执行循环体中的语句; 4、求解表达式3; 5、转回第二步继续执行 如: for( i=1; i<=100; i++) sum=sum+i;可看成: for(循环变量赋初值;循环条件;循环变量增值)语句; 说明: (1)显然for循环更简洁,更灵活; (2)循环体可以是复合语句; (3)for语句中的三个表达式均可以是逗号表达式,故可同时对多个变量赋初值及修改。如:for(i=0, j=1; j<n && i<n; i++, j++) … (4)for语句中三个表达式可省: 二、几种循环的比较 (1)可以相互代替使用 (2)while, do-while循环,在while后面指定循环条件,在循环体中应包含使循环趋向于结束的语句 (3)凡是在while中能完成的,在for 语句中也能完成。 三、break和continue语句 1、 break语句:可以用于switch语句中,也可以用于循环语句中,当用于循环语句中时,用于在满足条件情况下,跳出本层循环。 2、 continue语句:用于循环语句中,在满足条件情况下,跳出本次循环。即跳过本次循环体中下面尚未执行的语句,接着进行下一次的循环判断。 后 小 结 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2课时 授课题目 第六章 函数 课 型 理论 使用教具 计算机、投影仪 教学目的 1、掌握函数定义的一般形式 2、掌握函数调用的一般形式 教学重点和难点 函数定义、调用的一般形式 形式参数和实际参数 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 一、复习引导 一个C语言源程序可由一个主函数和若干个其他函数组成。由主函数调用其他函数,其他函数也可以互相调用。 二、讲授新课 一、概述 1、一个源程序文件由一个或多个函数组成。 2、一个C程序由一个或多个源程序文件组成。这样可以分别编写、分别编译,提高调度效率。 1、 序的执行从main 函数开始,在main函数中结束整个程序的运行。 2、 有函数都是平行的,即函数不能嵌套定义,函数可以互相调用,但不能调用main函数。 3、 用户使用的角度看,函数有两种:标准函数(库函数)和用户自己定义的函数 4、 从函数的形式看,函数分为两类:无参函数和有参函数 二、函数定义的一般形式: 1、 无参函数的定义 [类型说明符] 函数名() { 变量声明部分; 执行部分;} 2、 有参函数的定义形式 [类型说明符] 函数名(形式参数列表) { 变量声明部分; 执行部分;} 3、 空函数 [类型说明符] 函数名() { } 三、函数参数和函数的值 1、 形式参数和实际参数: (1) 形式参数:函数定义时函数名后括号中的变量 (2) 实际参数:函数调用时函数名后括号内的变量名 (3) 关于形式参数和实际参数的说明: ⒈形式参数只有在函数被调用时才分配存储单元,调用结束就释放。 ⒉实际参数可以是变量、常量或表达式,但要求有确定值。 ⒊在被定义的函数中,必须指明形参类型。 ⒋实际参数与形式参数的类型应相同或赋值兼容 ⒌实参变量对形参变量的数据传递是“单向值传递”,即只由实参传递给形参,而不能由形参传回给实参。 2、函数返回值 a) 函数的返回值是通过函数中的return语句获得的。 b) 函数返回值类型:定义函数时应予以指定,若不加指定,则当作int处理,并且, 定义函数时,对函数返回值类型的说明一般应和return语句中表达式的类型保持一致。 c) 若函数值类型与return语句中的表达式类型不一致,以函数值类型为准进行类型转换。 d) 函数中若没有return语句,带回的是一个不确定的、无用的值。 e) 可以用“void”定义“无类型” 四、函数的调用 1、 函数调用的一般形式: (1) 无参函数的调用形式 函数名(); (2) 有参函数的调用:函数名(实际参数列表); 2、 函数调用方式 (1) 函数语句:不要求函数有返回值 (2) 函数表达式:函数出现在一个表达式中,函数会带回某一确定值。 (3) 函数参数:函数调用作为另一个函数的参数。 3、 对被调用函数的声明和函数原型 (1) 在一个函数中调用另一个函数的条件: 第一,被调用函数必须存在且允许调用; 第二,必须给出满足函数运行时要求的参数; 第三,在调用一个函数之前一般应该对被调用函数进行声明。 (2) 函数说明 函数类型 函数名(参数类型1,参数类型2, …, 参数类型n); 或:函数类型 函数名(参数类型1 参数名1,参数类型2 …); 课 后 小 结 1、 函数的定义形式 2、 形参和实参的区别 3、 函数的声明和调用 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2课时 授课题目 第7章 数组 课 型 理论 使用教具 计算机、投影仪 教学目的 1、掌握一维数组的定义和引用 2、掌握二维数组的定义和引用 教学重点和难点 重点:一维、二维数组的定义、引用、初始化 难点:数组的存储形式,数组的首地址 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 一、 引入新课 数组是有序数据的集合,数组中每一个元素都属于同一个数据类型。 二、讲授新课 一、一维数组的定义和引用 定义数组,就是要: (1)规定数组的名称,其取名规则与变量名相同; (2)规定数组的类型,包括其数据类型和存储类型; (3)规定数组的大小,即数组的维数及包含的数组元素的个数。数组元素就是包含在数组中的变量。 1、一维数组的定义: 类型说明符 数组名[常量表达式] 例如:int data[10], number[5]; 2、一维数组元素的引用 数组名[下标] 例如:a[0]=a[5]+a[7]-a[2*3] 3、 一维数组在内存中占一段连续的存储空间,其首地址:a或&a[0] 4、 一维数组的初始化 (1). 在定义数组时对数组元素赋以初值;int a[10]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; (2). 可以只给一部分元素赋值; int a[10]={0, 1, 2, 3, 4}; (3). 如果想使一个数组中全部元素值为0,可简便实现; int a[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 其实,对static数组不赋初值,系统会对所有数组元素自动赋以0值,即上句等价于: static int a[10]; (4). C允许通过所赋初值的个数来隐含定义一维数组的大小;int a[]={0,1,2,3,4,5,0}; 相当于 int a[7]={0,1,2,3,4,5,0}; 二、二维数组的定义和引用 1、二维数组的定义 类型说明符 数组名[常量表达式1][常量表达式2]; 如:int number[5][4]; 数组的存储结构:以行为主序的连续空间 2、二维数组的引用: 二维数组元素的表示形式为:数组名[下标][下标] 3、二维数组的初始化 1. 分行给二维数组赋初值:如 static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 2. 可以将所有数据写在一个花括号内,按数组排列的顺序对元素赋初值;如: static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 3. 如果花括号内的初值个数少于每行中的数组元素个数,则每行中后面的元素自动赋初值0;也允许代表给每行元素赋初值的花括号的数目少于数组的行数,这时,后面各行的元素也自动赋0值。 4.C语言规定,可以用初始化的方法来隐含定义二维数组第一维的大小,即可以省略数组定义中第一个方括号中的表达式,但不能省略第二个方括号中的表达式。如:static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 等价于 static int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 在定义时也可以只对部分元素赋初值而省略第一维长度,但应分行赋初值。如: static int a[ ][4]={{0,0,3},{0},{0,10}}; 4、二维数组的输入与输出 用二重循环,以a[m][n]为例 for(i=0;i<m;i++) for(j=0;j<n;j++) {……} 课 后 小 结 1、 一维数组、二维数组的定义、引用及初始化 2、 一维数组、二维数组的存储形式 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2课时 授课题目 第七章 数组 课 型 理论 使用教具 计算机、投影仪 教学目的 学习用数组解决一些问题 教学重点和难点 数组应用 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 一、复习举例 我们已经学习了数组这种数据结构,但还要学会用数组来解决具体问题。 [习题7.2]:利用选择法对10个整数进行由小到大排序。 分析:选择排序的基本思想如下:第i趟排序选出第i小的元素,将其与第i位上的元素进行交换,n个元素共需进行n-1趟。 main() { int i, j, min, temp, a[11]; printf(“Enter data:\n”); for(i=1; i<=10; i++) { printf(“a[%d]=”, i); scanf(“%d”, &a[i]); } printf(“\n”); for(i=1; i<=10; i++) printf(“%d”, a[i]); printf(“\n”); 课 后 小 结 1、 三种排序方法:冒泡排序、选择排序、插入排序 2、 字符数组或字符串的处理 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2课时 授课题目 第8章 指针 课 型 理论课 使用教具 电脑、投影仪 教学目的 1、了解指针与地址的概念 2、掌握指针变量的定义、引用及指针变量作为参数 教学重点和难点 指针变量的定义、引用及指针变量作为参数 指针变量作为参数 参考教材 《C语言程序设计》 谭雪松 主编 第三版 人民邮电出版社 教学内容 时间分配及备注 一、讲授新课 一、地址与指针的概念 二、变量的指针与指针变量 变量的指针就是变量的地址。 指针变量是一种特殊类型的变量,它是用于专门存放地址的。 1、 指针变量的定义 定义形式:基类型 *指针变量名; 注意: a) 指针变量前的“*”,表示改变量的类型为指针型变量,“*”后的才是指针变量名。 b) 在定义指针变量时必须指定基类型 2、 指针变量的引用 指针变量只能存放地址,不要将一个整型量(或其他任何非地址类型的数据)赋值给一个指针变量。 (1) 两个相关运算符: 1 &:取地址运算符。可以获取某个变量的地址 2 *: 指针运算符,获取某个指针变量所值向的变量的值 3 关于&和*运算符的说明: 假设已执行 pointer_1=&a; 1、&*pointer_1含义是什么? &*pointer_1与&a相同,即变量a的地址。 2、*&a的含义是什么? 先进行&a运算,得a的地址,再进行*运算。 *&a、*pointer_1及变量a等价。 3、(*pointer_1) + + 相当于a + +。 它与*pointer_1 + + 不同。 4、*pointer_1 + + 等价于*(pointer_1 + +),即先进行*运算,得到a的值,然后使pointer_1的值改变,这样pointer_1不再指向a了。 3、 指针变量作为函数参数 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。 例10.3对输入的两个整数按大小顺序输出。 先考察如下程序,看是否能得到预期的结果 swap(int p1, int p2) { int temp; temp = p1; p1 = p2; p2 =temp; } main() { int a, b; scanf(“%d, %d”, &a, &b); if(a<b) swap(a, b); printf(“\n%d,%d\n”,a,b); } 不能得到预期的结果。 改为: swap(int *p1,int *p2) { int temp; temp = *p1; *p1 = *p2; *p2 =temp;} main() { int a,b; int *pointer_1,*pointer_2; scanf(“%d,%d”,&a,&b); pointer_1=&a; pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf(“\n%d,%d\n”,a,b); } 注:如果想通过函数调用得到n个改变的值,可以: 1、在主调函数中设n 个变量,用n个指针变量指向它们; 2、然后将指针变量作实参,将这n 个变量的地址传给所调用的函数的形参; 3、通过形参指针变量,改变该n个变量的值; 4、主调函数中就可以使用这些改变了值的变量 课 后 小 结 本课介绍了指针与地址的概念,指针变量的定义、引用及作为参数的使用。 指针:就是地址,即内存单元的编号。 指针变量:用来存放另一变量的地址(即指针)的变量。 例如:int a=5, *p=&a; printf ( “%d”, *p ); 注意:运算符*和&的用法,指针变量的自加自减运算 教 案 课程名称:C语言程序设计 授课教师 XXX 授课对象 15计算机班 授课时间 2 课时 授课题目 第九章结构体与共用体 课 型 理论 使用教具 计算机、投影仪 教学目的 1、结构体类型的定义 2、结构体变量的定义、初始化及引用 教学重点和难点 结构体变量的定义、初始化及引用 结构体变量的使用 参考教材 《c 程序设计》 人民邮电出版社 谭雪松 教学内容 时间分配及备注 一、引入新课: 到目前为止,已介绍了基本类型的变量,也介绍了一种构造类型的数据---数组。但是只有这些数据类型是不够的,有时需要将不同类型的数据组合成一个有机的整体,以便与应用。这些组合在一个整体里的数据要求相互关联,这就是- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文