《C语言程序设计》教案.docx
《《C语言程序设计》教案.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》教案.docx(21页珍藏版)》请在咨信网上搜索。
《C语言程序设计》教案 课程名称 C语言程序设计 总学分: 4学分 总学时:64学时 其中: 讲课 44学时 实践 20 学时 授课对象 10统招机电一体 考核方式 考查课程。 总成绩:课堂参与占30%期末考试占70%(闭卷考试:程序编写题目)。 教 学 基 本 目 的 和 要 求 C语言是近年来国内外得到迅速推广使用的一种计算机语言。C语言程序设计课程是计算机专业和信息管理专业的核心专业基础课,它功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的优点。既适用于应用软件编写,又适用于系统软件的编写。它是《数据结构》等后续专业课的基础。是程序员、等级考试、一些高校研究生入学考试的必考课程,在计算机专业中是一门举足轻重的课程,因此,学好C语言是非常重要的。 课程的性质和任务 《C语言程序设计》这门课是我校计算机系、电信系的专业基础课、是机械工程系、建筑工程系等专业的公共必修课。作为计算机系的数据结构、c++、操作系统等课程的前导课程,也是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。对计算机专业和理工类专业来说是一门必修的课程。 同时,这门课程也是“四川省非计算机专业学生计算机应用能力水平考试”二级考试的主要语种之一。 课程的教学目标 本课程的教学目标是:通过理论和实践教学,使学生较好地掌握C语言各方面的知识,掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用TURBO C集成环境进行C语言的编写、编译与调试,能应用C语言解决一般编程问题的水平。 教 学 重 点 和 难 点 一、C语言概述 重点:C程序结构 二、数据类型、运算符与表达式 ????? 重点:常用数据类型、常用运算符、数学公式转化为C语言表达式的基本能力。 三、顺序结构程序设计 ????? 重点:?C语句的种类、赋值语句、数据的输入输出及输入输出中常用的控制格式。 四、选择结构程序设计 ????? 重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、二条分支语句的格式及基本应用。 五、循环控制 ?????? 重点:C构成循环的四种方法,尤其是后三种方法、break与continue语句的基本作用。 难点:while语句;do-while语句;for语句;循环的嵌套;break与continue语句。 六、数组 ?重点:一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处理函数及字符处理函数;数组的应用 难点:二维数组的定义与引用;字符数组;数组的应用 七、函数 ???重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的递归调用;数组作为函数参数;变量作用域;量存储类别; 难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调用; 数组作为函数的参数、变量的存储类别与作用域。 八、编译预处理 ?重点和难点:有参宏、无参宏的定义与应用;文件包含的基本概念。 九、指针 ?重点和难点:指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字符串、指针数组与二级指针;指针的应用 十、结构体与共用体 ?? 重点:结构体类型的说明及结构体类型变量的定义;结构体变量的引用;结构体变量的初始化;结构体数组;指针与结构体数组;共用体;枚举类型 难点:结构体的基本概念、结构类型及变量的定义、结构数组;用指针处理链表;共用体及枚举类型的基本概念、typedef的基本概念。 十一、文件 ???重点和难点:文件的基本概念;文件的打开、关闭、常用读写方法。? 十二、位运算及程序调试 教材、 参考书 教材:《C程序设计》(第三版) 谭浩强着 清华大学出版社 2005 参考书:《C语言程序设计案例教程》张基温等 清华大学出版社 《C语言程序设计》教案 授课内容 第1章 C语言概述 教学目的 和要求 了解C历史,名称来源、C特点 掌握C程序基本结构 了解C程序上机步骤 重点 难点 1、法成分(标识符、注释) 2、C程序基本结构(C程序由函数组成、main主函数、C函数基本结构) 教 学 安 排 引言 语言:人-人语言交流;聋哑人-手势语;人机-计算机语言 C语言是一种流行的计算机高级语言,C语言适合于编写系统软件,也可以编写应用程序。 讲授 一、语言出现的历史背景 (1)C语言的发展源于人们希望用高级语言编写操作系统。(C-BCPL第二字母) ALGOL60(高级语言)->CPL(硬件支持)- BCPC->B->C->标准C-> ANSI C -> ISO C (2) 语言既具有高级语言特性,又具有低级语言特性-中级语言。 二、C语言的特点 C语言是从ALGOL60、CPL发展而来,既具有一般高级语言特性,又具有低级语言特性。8个特点。 三、C语言基本语法成分(重点:标识符,注释) (1) C语言字符集。字母、数字、特殊字符。 (2) 标识符(名字),C语言标识符定义规则及注意事项。 说明:教师备课笔记由学校自订式样并附后 (3) 关键词(保留字)。参阅P234附录V。 (4) 运算符。参阅P233附录IV。 (5) 分隔符:逗号,空格。起分隔、间隔作用。 (6) 注释符。/* ... */,编译时编译系统忽略注释。作用:注释、调试程序。 四、C程序结构(3个C程序引入C程序结构) 3个C程序例子(最简单C程序、有多条语句的C程序、调用自定义函数的C程序) C程序结构: (1) C程序由函数组成 l 函数是C程序的基本单位。程序至少有1个main()(例1.1),也可以包含1个main()和若干个用户定义的其它函数(例1.3)。 l C程序通过函数的调用完成程序的功能。(例1.1,1.2,1.3) l 被调用的函数可以是系统库函数(例1.1)或用户自定义函数(例1.3)。 特别强调:1个程序至少应有1个main函数,main()函数是整个程序的执行起点。main()函数的位置无关紧要。 (2) 函数结构(用例1.3 max,main分别说明) 函数头:函数返回类型 函数名(函数参数类型 函数形式参数,...) 函数体:包含声明+执行部分 《C语言程序设计》教案 授课内容 第2章 基本语法基础-数据类型 教学目的 和要求 了解C语言丰富的数据类型;常量、变量的概念 掌握变量定义原则和符号常量定义方法 掌握常用基本数据类型(整型、实型、字符型)数据的常量表示、机内存储、变量分类以及掌握正确选择数据类型 了解数值型数据混合运算及类型转换规律。 重点 难点 重点: 变量定义原则 常用基本数据类型(整型、实型、字符型)数据的常量表示、机内存储、变量分类, 正确选择数据类型 难点: 整型数据的机内表示,字符数据的机内表示 教 学 安 排 讲授 一、常量与变量 1、 常量概念、常量类型,直接常量/符号常量。 2、 变量概念、变量名/变量在内存中占据的单元/变量值/变量地址。 变量先定义后使用。 二、整型数据(内存中补码存储) 1、 整型常数。10,8,16进制表示 2、 整型变量分类:基本整型int/长/短;有符号/无符号。观察数据表达范围+字节数 3、 整型变量定义、初始化。例2-2。 4、 整型数据的溢出。例2-2A。 三、实型数据 1、 实型常量表示。小数形式,指数形式e。 2、 实型变量分类。重要的两种float、double。观察数据表达范围+字节数+有效数字 3、 实型数据的舍入误差。例2-3A。 四、字符型数据 1、 字符常量表示。直接表示/转义表示(特殊的转义字符,一般字符也可以转义表示)。 特殊转义字符对显示/打印的控制作用 2、 字符变量-1个字节,char关键词。 3、 字符数据的存储-ASCII码/二进制存储-C语言可以将字符看做很短的整数处理。 例2-7A,例2-8A可以看出字符数据的具有整数特性。 4、 字符串常量。“”括字符序列,尾部有‘\0’结束。 五、数值型数据混合运算(转换为同类型运算) 1、 自动隐式转换。规则: (1) 类型不同,转换为相同类型,然后运算 (2) 低类型向高类型转换(图) (3) 赋值转换。“=”右边类型=>左边类型,然后赋值 《C语言程序设计》教案 授课内容 第2章 基本语法基础--运算符与表达式 教学目的 和要求 了解:C语言的丰富运算符,丰富的运算符可以构成灵活的表达式 掌握算术、赋值、逗号运算符及它们构成的表达式。 掌握运算符的优先级、结合性规律。 重点 难点 重点: 算术、赋值、自增/减运算符及它们构成的表达式 运算符的优先级、结合性规律。 教 学 安 排 引言 C语言运算符丰富,C语言丰富的运算符构成C语言丰富、灵活的表达式。 本章主要介绍算术运算符(包括自增自减运算符)、赋值运算符、逗号运算符。 讲授 一、算术运算符和算术表达式 1、算术运算符(+、-、*、/)P23.表3-2。 (1) 整除的结果为整数,结果向0取整,实质就是舍去小数. (2) %,要求操作数均为整型。余数的符号与被除数符号相同。例如:-8%5=-3;8%-5=3 2、算术表达式 注意:C语言算术表达式的书写形式-数学表达式的书写形式区别:(1)-(4)。 3、(算术)运算符的优先级与结合性(P.233附录IV) 先按运算符的“优先级别”高低次序执行;优先级别相同,则按规定的“结合方向”处理。为了清晰起见可用圆括号“()”强制。 例1:表达式a-b*c等价于a-(b*c)。 例2:a-b+c,到底是(a-b)+c还是a-(b+c)?(b先与a运算还是先与c参与运算) 例3:分析x=y=z=3+5 二、赋值运算符、赋值表达式 1、 赋值运算符、赋值表达式 (1) 赋值运算符 (2) 赋值表达式。一般形式:〈变量〉〈赋值符〉〈表达式〉 (3) 赋值表达式的求解过程:赋值+整个赋值表达式的值。例如:x=10+y; 说明:(1)左变量(2)不具“等”含义(3)类型转换(4)赋值表达式值 2、 复合赋值运算符 复合赋值表达式形式:变量<双目运算符>=表达式 等价:变量=变量<双目运算符>表达式 例如:n+=1 等价于 n=n+1;x*=y+1 等价于 x=x*(y+1) 3、 赋值运算符、赋值表达式举例。 (1)a=5 (2)a=b=5 (3)a=(b=4)+(c=3) (4)假如a=12,分析:a+=a-=a*a(答案:-264) 三、自增、自减运算符 单目运算符,使变量的值增1或减1。如:++i,i++ (等价i=i+1) --i,i— (等价<=>i=i-1) 注意:(1)-(4);(前置运算):先自增、减,再参与运算;(后置运算):先参与运算, (整个表达式运算结束后)再自增、减。 《C语言程序设计》教案 授课内容 第4章 顺序程序设计 教学目的 和要求 了解C语言语句分类:控制语句,表达式语句,复合语句 掌握表达式语句,复合语句的构成 掌握格式化输入/输出函数,常用其它输入/输出函数的使用。 重点 难点 重点: 表达式语句,复合语句的构成 格式化输入/输出函数 难点: 格式控制项的各种形式 教 学 安 排 引言 程序设计通常采用三种不同的程序结构:顺序,选择(分支),循环(重复)。 顺序结构是最简单、最基本的程序结构。通过本章学习,可以开始简单的C程序设计。 讲授 一、C语句概述 C程序的总体层次结构:程序、模块,函数,语句。 语句:是向计算机发出的用来完成一定操作任务的指令。 C语言语句分类: 1、 控制语句(9种) 2、 表达式语句(典型的赋值,函数调用、空语句) 3、 复合语句(相当一条语句,哪里有语句,哪里就可以用复合语句) 二、输入/输出及其C语言的实现(补充) 1、 计算机由主机(CPU、内存),外围设备(输入/输出设备),接口组成 2、 主机向外部设备-“输出”, 外部设备向主机-“输入”。输入/输出相对主机而言。 3、 C语言本身不提供输入/输出语句,输入/输出操作由函数实现。 三、格式输入/输出 1、 printf函数(格式输出函数) (1) 格式:printf(格式控制字符串,输出表列) 格式控制字符串:(格式控制项、普通字符) 输出表列:一般是一个表达式,简单地,可以是变量。 (2) 格式控制字符d、o、x/X、u、c、s、f、e/E、g/G构成控制项的各种常见形式。表3-1,3-2。 注意:不要死记硬背,要总结规律。一般形式:% ± m n h/l 格式字符 2、 scanf函数(格式输入函数) (1) 格式:scanf(格式控制字符串,输入表列-地址列表) 格式控制字符串:含义与printf类似 输入表列-地址列表:变量的地址或字符数组的首地址 (2) 格式控制字符、格式控制项与printf类似,表3-3,4。一般使用更加简单形式。 注意: 数据读入结束情况:遇空格、TAB、回车;遇非法输入;指定宽度结束。 四、其它输入/输出函数 1、 putchar函数 一般形式:putchar(字符表达式); 2、 puts函数 一般形式:puts(char *str); 3、 gets函数 一般形式:gets(char *str); 五、顺序结构程序设计举例 ü 例4-3:输入三角形的三边长,求三角形面积。 ü 例4-5:求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac>0。 六、上机演示和学生操作 1、各个数据输入函数的使用; 2、各种数据输出格式的控制。 课堂提问讨论 小结,作业布置 C语言的格式输入/输出的规定比较繁琐,重点掌握最常用的一些规则和规律即可,其它部分可在需要时随时查阅。 《C语言程序设计》教案 授课内容 第5章 选择结构程序设计一 教学目的 和要求 理解条件-产生逻辑值的表达式 掌握关系运算符、关系表达式;逻辑运算符、逻辑表达式 掌握if语句 重点 难点 重点: 关系运算符、关系表达式 逻辑运算符、关系表达式 难点: 嵌套if语句 教 学 安 排 引言 a) 选择结构(分支结构):根据条件,在几个可选择分支中进行选择。 C语言的选择结构可以用(1)if语句(2)switch语句(3)“条件运算”表达式实现。 b) 举例说明:例5-1,用if语句构成的选择结构(分段函数) c) 选择结构最重要的是“选择结构的条件”。C语言中的条件是采用能产生逻辑值“真、假”的关系运算和逻辑运算来表示的。 讲授 一、关系运算符和关系表达式 “关系运算”(比较运算)即,将两个值进行比较,判断是否符合或满足给定的条件。 1、 关系运算符及其优先次序 a) C语言提供6种关系运算符。表5-1。 b) 关于优先次序:前4种高于后两种;关系低于算术;关系高于赋值 例5-2。 2、 关系表达式 关系表达式的值是逻辑值,即“真”“假”。C语言没有逻辑型数据,1-“真”,0-“假”。 例5-3。 二、逻辑运算符和逻辑表达式 “关系运算”(比较运算)即,两个逻辑值的运算。 1、 逻辑运算符。3种,表5-2。 (1)&& 逻辑与,(2)|| 逻辑或,(3)! 逻辑非 2、 逻辑运算符的优先顺序: (1)!- &&- ||,“!”为三者中最高。 (2)&&||低于关系运算符,!高于算术运算符。 例5-4。 3、 逻辑表达式 (1) 逻辑值只能是0/1,但判断量是否为“真”时,以0-“假”,非0-“真”。例5-5,6。 (2) 逻辑运算的短路现象。例:a&&b&&c,a||b||c (3) 可以用一个逻辑表达式来表示一个复杂的条件。例:闰年标准。 三、if语句 if语句用来判定所给定的条件是否满足,即结果(真或假)决定执行给出的两种操作之一。 1、 if语句三种形式 (1)if(表达式)语句。(2)if(表达式)语句1 else 语句2 (3)if(表达式1)语句1 … else if(表达式m)语句m else 语句m+1 if语句使用说明。(1)(2)(3) if语句使用例子:例5-1:两数交换;例5-2:三数排序。 2、 if语句的嵌套:if语句的嵌套:if语句的if块或else块中,又包含一个if语句。 (1) if语句嵌套一般形式。 (2) else语句匹配问题 例5-3:分段函数 课堂提问讨论 小结、作业布置 《C语言程序设计》教案 授课内容 第5章 选择结构程序设计二 教学目的 和要求 掌握条件运算符、条件表达式 掌握switch-case语句 重点 难点 switch-case语句 教 学 安 排 引言 d) 复习关系运算、逻辑运算、if语句 e) 引入简单的条件运算符及表达式、以及开关语句 讲授 一、条件运算符、条件表达式 在if语句中,在表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值时,可以使用简单的条件运算符来处理。 例如:if(a>b)max=a;else max=b; <=> max=a>ba:b; (1) 条件表达式的一般形式:表达式1?表达式2:表达式3 (2) 条件表达式说明(5点) 例5-4. 二、switch-case语句(多分支选择语句/开关语句) 3、 switch一般形式 4、 switch语句说明。(1)-(7) 三、分支程序例子 例5.5 写程序,判断某一年是否是闰年。 例5.6 求一元二次方程ax2+bx+c=0的根。 例5.7 运输公司对用户计算运费。 课堂提问讨论 小结、作业布置 思考题、 课后作业 《教材》:P58.1-14 实验一: 编写求一元二次方程的根。 主要 参考资料 四川省二级考试题库 课后自我 总结分析 备注 (对本章节的课堂教学需补充说明的内容) 《C语言程序设计》教案 授课内容 第6章 循环结构程序设计一 教学目的 和要求 掌握while当型循环、do while直到型循环、for循环 重点 难点 while当型循环、do while直到型循环、for循环的形式、执行过程、使用注意问题 教 学 安 排 引言 重复执行就是循环。重复工作是计算机特别擅长工作之一。 重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。 重复的动作是受控制的,C语言提供三种循环控制语句,构成了三种基本的循环结构。 讲授 一、while语句(当型循环) 1、while语句的一般形式是: 2、执行过程是:(流程图、N-S图) 3、使用while注意的问题。 例6-1:利用while语句,编写程序计算1+2+3+…+100。 结论:编制循环程序要注意的几个问题。 二、do-while语句(直到型循环) 1、do-while语句的一般形式 2、do-while执行过程(流程图) 3、do-while说明: 例6-4:利用do-while语句计算机1+1/2+1/4+…+1/50。 三、for语句(当型循环) 1、 for语句的一般形式(给出while循环的对应结构) 2、 for循环执行过程(流程图) 例6-6:写一个程序,计算半径为0.5,1.5,2.5,3.5,4.5,5.5mm时圆的半径。 例6-7:求正整数n的阶乘n!,其中n由用户输入。 3、 for语句最容易理解、最常用的形式 4、 for语句说明(6点)。C语言的for语句功能强大,使用灵活。 课堂提问讨论 小结、作业布置 思考题、 课后作业 《教材》:P81.1-12 实验二: 准备。 主要 参考资料 四川省二级考试题库 课后自我 总结分析 备注 (对本章节的课堂教学需补充说明的内容) 《C语言程序设计》教案 授课内容 第6章 循环结构程序设计二 教学目的 和要求 三种循环结构的比较。 掌握break;continue; 通过应用例子进一步掌握循环结构 重点 难点 break;continue;功能,区别。 通过应用例子进一步掌握循环结构 教 学 安 排 引言 复习3种循环结构、引入3种循环的比较、进一步加深学生对3种循环结构的理解。 讲授 四、几种循环的比较 1、 循环结构的基本组成部分(4部分) 2、 几种循环的比较。一般相互可以替代,但具体形式有些差异。 例6-9:将50-100之间的不能被3整除的数输出(用三种循环结构实现) 五、break和continue语句 1、 break语句 (1) break语句的功能 (2) break语句说明 例6-10:从键盘上连续输入字符,并统计其中大写字母的个数,直到输入“换行”字符。 2、 continue语句(翻译为“继续”(循环)) (1) continue语句的功能 (2) continue/break区别 例6-12:从键盘输入30个字符,并统计其中数字字符的个数 六、应用举例 例6-14:从键盘输入一个大于2的整数n,判断是不是素数。 例6-15:求100-200之间的所有素数。 例6-16:输出下三角99乘法表 例6-17:求Fibonacci数列的前50项。(最好在数组,函数递归部分介绍) 课堂提问讨论 注意到例6-15:外层n的循环,循环变量的修正是:“n=n+2”(即就是每次加2),为什么?(因为只要检查奇数,偶数能被2整除,一定不是素数)。 小结、作业布置 思考题、 课后作业 实验二: 编写100以内的所有素数。 主要 参考资料 四川省二级考试题库 课后自我 总结分析 备注 (对本章节的课堂教学需补充说明的内容) 注:此页针对具体授课内容填写 《C语言程序设计》教案 授课内容 第7章 数组一 教学目的 和要求 数组的基本概念 一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。 二维数组定义、初始化、引用;多维数组 重点 难点 重点: 一维数组定义、初始化、引用 求最大值、冒泡排序、选择排序算法 矩阵操作 难点: 冒泡排序、选择排序算法 教 学 安 排 引言 基本数据类型-构造类型的数据-数组 数组、数组元素、数组的下标、数组的维数 例如:int a[10]; 一维数组可以看作一个数列,向量。 例如:float b[3][3]; 二维数组可以看作一个矩阵。 讲授 一、一维数组 1、 一维数组的定义 类型说明 数组名[整型常量表达式] 一维数组定义说明。(1)-(5) 2、 一维数组的初始化的几种形式(1)(2)(3) 3、 数组元素的引用。 数组元素的引用说明:(1)(2)(3) 例7-1:数组元素的引用例子。 4、 一维数组的应用例子 例7-2:从键盘输入10个整型数据,找出其中的最小值并显示出来。 例7-3:采用“冒泡法”对任意输入的10个整数按由小到大的顺序排序。 例7-4:采用“选择法” 对任意输入的10个整数按由大到小的顺序排序。 二、二维数组(注意:类比一维数组) 1、 二维数组的定义 2、 二维数组的初始化的几种形式(1)-(5) 3、 二维数组元素的引用 例7-5:二维数组元素的引用的例子(自学)-构造、打印单位矩阵。 思考:下标是从1开始使用的,哪些元素在此例子中未使用?它们的值是多少?(随机值) 4、 二维数组应用举例 例7-6:分别计算矩阵的两条对角线(主、辅对角线)上的元素之和。 例7-7:找出矩阵所有元素中的最大值。 课堂提问讨论 思考题、 课后作业 《教材》:P101.1-10 实验三: 冒泡排序。 《C语言程序设计》教案 授课内容 第7章 数组二 教学目的 和要求 字符数组定义、初始化、引用 字符串与字符数组 字符串处理函数 字符数组应用 重点 难点 重点: 字符串与字符数组;字符串处理函数 难点: 字符串与字符数组;字符串处理函数 教 学 安 排 引言 复习数组概念,数组定义、初始化、元素引用方法。引入字符数组(元素为字符)。 讲授 三、字符数组 字符数组,字符数组的每个元素是一个字符; 一维字符数组可以存放字符串;二维字符数组可以存放多个字符串。 字符数组可以逐个元素处理,若存放的是字符串,那么还可以直接调用字符串处理函数处理。 1、 字符数组的定义、初始化及引用-与一般数组类似。 2、 字符串与字符数组 (1) 字符串与字符数组。存放的内容。 (2) 字符数组的初始化(除了一般数组的初始化方法外,增加了一些方法) 例7-8.两种字符数组初始化方法的区别-有无串结束标志。参阅p94。 (3) 字符数组的输入输出(两种形式:逐个字符输入/输出,整串输入/输出) 例7-9:逐个字符输入/输出。参阅p94。 例7-10:整串输入/输出。P95. 3、 字符串(字符数组)处理函数 (1) 字符串输入,输出函数:gets、puts (2) 字符串处理函数:strlen、strcat、strcpy、strcmp、 例7-11:字符串输入/输出应用举例(P.96) 例7-12:求字符串长度示例(P97) 例7-13:字符串连接示例(P97) 例7-14:字符串复制示例(P98) 例7-15:字符串比较示例(P99) 4、 字符数组应用举例 例7-16:由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符。 例7-17:由键盘输入三个字符串,找出其中的最大串。(字符串库函数的应用) 课堂提问讨论 小结、作业布置 思考题、 课后作业 《C语言程序设计》教案 授课内容 第8章 函数一 教学目的 和要求 掌握函数定义、调用、声明;函数参数传递方式 重点 难点 重点:二级考试的重点 函数定义、调用、声明 函数参数传递方式 难点: 函数参数传递方式-传址(尚未学习指针,用数组举例) 教 学 安 排 引言 一、函数概述 1、C语言的函数。C语言的函数是子程序的总称,包括函数和过程。 C语言函数可以分为库函数、用户自定义函数 2、C语言的程序由函数组成,函数是C语言程序的基本单位,程序的总体功能通过函数的调用来实现。其中,main起点(图) 3、使用函数的意义(补充)(1)-(4) 4、函数的一些概念:主函数、其它函数;主调函数、被调函数;库函数、用户自定义函数;无参函数、有参函数;无返回值函数、有返回值函数 二、函数的一般形式-函数应当先定义,后调用。 函数定义的一般形式及说明 (1)(2) 例8-1:输入三个整数,求三个整数中的最大值,打印。思考问题。 三、函数的参数和返回值 1、 形式参数 2、 实际参数 3、 参数的传递。实参传递给形参(1)传值(2)传址。注意问题:(1)-(4),图示。 由于尚未学习指针,所以传址用数组举例 4、 函数返回值。return语句及说明。 四、函数的调用 1、 函数调用的一般形式及说明(单独语句/表达式中、参数相容) 例8-3:以表达式的形式进行函数的调用。(自学) 2、 函数调用时数据的传递-参数传递、函数的返回值、全局变量 例8-4:求学生平均成绩。P110.(注意参数传递的是数组的地址) 3、 函数的声明 例8-5:函数声明例子。P112. 五、函数的嵌套调用和递归调用 函数允许嵌套调用和递归调用。递归调用是嵌套调用的特例。 f) 函数的嵌套调用 例8-6:计算两整数的最小公倍数。P113. g) 函数的递归调用 (1) 函数的递归调用 (2) 使用递归调用解决问题的方法 (3) 递归调用过程(递推/回归两个阶段) 《C语言程序设计》教案 授课内容 第8章 函数二 教学目的 和要求 掌握变量作用域、生命期 掌握插入排序 重点 难点 重点: 变量作用域、生命期 插入排序 难点: 变量作用域、生命期 插入排序 教 学 安 排 引言 复习函数定义、调用、参数传递方式,提出各个函数同名变量问题,进而引入变量作用域概念。 讲授 六、变量的作用域(有效范围、可见性) 变量的作用域:变量的有效范围或者变量的可见性。变量定义的位置决定了变量的作用域。 变量从作用域(变量的有效范围,可见性)的角度可以分为:局部变量,全局变量。 (图) 1、局部变量(函数体内变量、形参变量、复合语句内变量)-互不干预、动态分配 例8-8:各函数局部变量同名的应用示例。P116-117. 2、全局变量(所有函数之外-文件作用域、程序作用域) 全局变量可以和局部变量同名-坐井观天 例8-9:全局变量、局部变量同名的应用示例。P118。 例8-10:全局变量、局部变量的应用示例。P118。 七、变量的存储类别(生存期、生命期) 变量从空间上分为局部变量、全局变量。 从变量存在的时间的长短(即变量生存期)来划分,变量还可以分为:动态存储变量、静态存储变量。变量的存储方式决定了变量的生存期。 C语言变量的存储方式可以分为:动态存储方式、静态存储方式。 (图) 全局变量全部是静态的;局部变量可以是静态,也可以是动态(auto,register)。 例8-11:寄存器局部变量的应用.P120.(完成n+(n-1)+(n-2)+...+1) 例8-12:静态局部变量的应用示例。P121. 八、内部函数和外部函数 默认是外部函数 九、函数应用举例 例8-14:字符串逆序。P124. 例8-15:求矩阵最大元素。P124-125. 例8-16:利用插入法将10个字符从小到大进行排序。P125-126. 课堂提问讨论 小结、作业布置 《C语言程序设计》教案 授课内容 第9章 编译预处理 教学目的 和要求 了解编译过程和编译预处理 掌握宏定义、文件包含 重点 难点 重点: 宏定义、文件包含 难点: 带参数宏定义 教 学 安 排 引言 复习程序实现过程,引入实际编译两个阶段:编译预处理,编译,更广义的编译还包括连接。 编译预处理,编译指令 讲授 一、宏定义 宏定义 宏定义分为不带参数的宏定义和带参数宏定义。 1、 不带参数的宏定义 (1) 不带参数宏定义格式 (2) 宏调用 (3) 宏展开 举例 宏使用说明:(1)-(9) 2、 带参数宏定义 (1) 带参数宏定义的格式 (2) 带参数宏定义展开规则 举例 带参数宏使用说明:(1)-(5) 二、文件包含 1、 文件包含图示 2、 文件包含说明:(1)-(4) 课堂提问讨论 小结、作业布置 思考题、 课后作业 《教材》:P133.1、2 主要 参考资料 课后自我 总结分析 《C语言程序设计》教案 授课内容 第10章 指针-指针基础理 教学目的 和要求 指针的基本概念,变量访问方式;指针变量定义、赋值、引用。 指针作为函数参数。 重点 难点 重点: 指针的基本概念;指针变量定义、赋值、引用 教 学 安 排 引言 一、地址(指针)、地址变量(指针变量)概念及变量的存取方式 1、 内存、内存地址 - 物理存储器的概念(补充) 2、 变量、变量名、变量的地址、变量值 - 高级语言的存储器概念 3、 指针、变量的指针、指针变量 4、 系统访问变量的两种方式 (1) 直接访问-按变量名、按地址(本质按地址) (2) 间接访问 二、指针变量的定义(变量先定义后使用) 1、 定义格式: 2、 说明: (1)指针变量基类型-指针变量指向数据的类型 (2)指针变量存放地址值,本身占用空间2字节 三、指针变量的赋值(使用未赋值指针等同于向一个随机的内存中写入数据) 1、 将地址直接赋值给指针变量。例如,float *f=malloc(4); 2、 将变量地址赋值给指针变量。例如:float a,*p;p=&a; 四、指针变量的引用 1、&运算符(取地址运算符) 2、*运算符(指针运算符、间接访问运算符) 例10-1,P137.指针变量定义、赋值、引用例子。 五、指针变量作为函数的参数 变量可以作为函数参数,指针变量同样可以作为函数参数。使用指针作为函数参数,可以在函数中对指针所指向变量的值进行处理(修改)。 指针作为函数参数,本质上同样是单向传值,但是由于传递的是地址值,所以可以通过地址值间接修改形参、实参共同指向的变量。 例10-2:输入a,b两个数交换后输出。 在swap函数中使用两个指针作为函数参数,对两个指针所指向变量值进行交换。 结论: 1、要在被调用函数中,修改主调函数的变量值应当: (1) 将主调函数变量的地址传递给被调用函数,就是说函数应当传递的是变量的地址。 (2) 被调用函数的形参应当使用指针变量接受主调函数的地址值。 (3) 在被调用函数中通过形参指针变量间接访问,修改实参、形参地址所共同指向的变量。本例的操作是交换两个指针变量所指向的变量。 2、函数使用指针作为参数,可以增加主调函数与被调函数之间数据沟通的渠道。 《C语言程序设计》教案 授课内容 第10章 指针-数组的指针和指向数组的指针变量 教学目的 和要求 数组的指针及指向数组(或数组元素)指针变量 指向数组的指针作为函数参数 指向多维数组的指针 字符串指针、函数指针、指针数组和指针的指针 返回指针值的函数 重点 难点 数组的指针及指向数组(或数组元素)指针变量 指向数组的指针作为函数参数 指向多维数组的指针 字符串指针、函数指针、指针数组和指针的指针 返回指针值的函数 教 学 安 排 引言 复习指针基本概念,指针变量定义、初始化、引用。本节介绍指针变量的应用-数组的指针。数组:相同类型元素构成的有限、有序的序列;数组元素的指针-数组元素的地址;数组的指针-数组的地址,数组的起始地址,第一个元素的地址(首地址)。C语言用数组名代表数组的起始地址(首地址)。 例如:int a[10];数组的指针-a或&a[0], 讲授-指针应用(数组的指针、指向数组的指针变量) 一、指向数组的指针变量 1、指向数组的指针变量:就是指向数组元素的指针变量,也就是指向基类型的指针变量并将其初始化指向数组。 例如:数组int a[10];其中每个元素为整型变量。可以定义一个指向整型变量的指针变量int *p;并将p初始化为&a[0]或a。此时可以将p称为指向数组的指针变量。 2、数组的指针变量的定义和初始化 数组基类型 *p; p=数组名;/* p=&数组名[0] */ 或:数组基类型 *p=数组名; 二、通过指针引用数组元素 (假设int a[100]; int *p=a; 即指针p指向数组) 1、 指针a+i、指针变量p+i的含义。存在a[i]、是否有p[i]-C允许p[i]! 2、 指针与数组的关系。数组元素可以用下标访问,也可以用指针访问。 3、 通过指针引用数组元素。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 教案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文