C语言教学设计(39页).doc
-C语言教学设计-第 38 页XX学院 C语言教学设计教学部门 任课教师 教学专业 教学班级 XX学院课程教学设计(12学时)教学内容(章节、专题)第一章 程序设计与C语言第二章 程序的灵魂算法程序设计语言、C语言、算法教学目标与要求对程序设计语言和C语言有初步的了解。了解程序设计的全过程和算法的构成要素教学重点§1.3 自己设计C程序§2.4 怎样表示一个算法教学难点§2.4 怎样表示一个算法:流程图、三种基本结构、N-S流程图、伪代码选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、简述程序设计语言的发展、C语言在程序设计语言中的地位二、在Windows下运行的方法、C程序的编辑、运行、存盘的方法三、在已经掌握了VB程序设计的情况下,介绍简单的C程序的设计方法,强调C与VB相同和不同的地方,强调C自身的特点四、提出程序设计的全过程和算法的概念,介绍用NS图描述算法五、举例说明用逐步细化方法设计程序的过程 例1.7 三个数取大数(分解策略) 例 百钱买百鸡(递推策略)教与学的方法:1、循序渐进2、与VB对照3、启发、提问作业:第1章:1、4 第2章:7、8XX学院课程教学设计(3-4学时)教学内容(章节、专题)第三章 数据类型、运算符与表达式§3.1-§3.4数据类型;基本数据类型;常量和变量;整型数据;实型数据教学目标与要求了解C语言描述数据的方式。了解基本类型数据:字符型(char、unsigned char)、整型(int、unsigned int、long、 unsigned long)实型(float、double)了解常量和变量教学重点基本数据类型教学难点数据的存储空间长度及数据取值范围、带符号的数据类型与无符号数据类型转义字符选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、阐述丰富的数据类型可以组织成丰富的数据结构二、以圆周率的值不同表现形式引出浮点数三、字符型数据的表示和存储方式四、数据的存储空间长度和数据取值范围五、带符号的数据类型和无符号数据类型六、直接常量和符号常量、各种类型常量的表示七、变量和对变量的赋值、变量的定义和初始化八、标识符及命名规则教与学的方法:1、通过剖析int型和float型数据的存储方式,弄清其余类型数据的存储方式,以及各自的取值范围和精度2、强调C语言的独特的表示方法,如转义字符、形如b=a=3+5的赋值方法作业:习题三:3、6XX学院课程教学设计(5-6学时)教学内容(章节、专题)第3章 数据类型、运算符与表达式§3.5-§3.10字符型数据;算术运算、关系运算与逻辑运算;不同数据类型间的转换;数据的输入和输出:printf函数、scanf函数、getchar函数与putchar函数教学目标与要求掌握C语言的算术运算、关系运算和逻辑运算的规则,了解三种情况下的数据类型转换,掌握最基本的输入输出函数教学重点关系运算与逻辑运算,各种运算之间的优先级别教学难点各种运算之间的优先级别不同数据类型间的转换选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、数据、运算符与表达式的关系,5个双元算术运算符二、自反算术运算符,自加和自减运算三、关系运算和逻辑运算、条件运算四、各种运算之间的优先级别指出与QB的不同之处:1、*、/、% 的优先级别相同(见附录3),而在QB中,*、/ 优先与 、 优先于 mod2、&& 与 | 的优先级别相同(见附录3),而在QB中,and 优先于 or五、涉及数据类型转换的几个概念六、不同类型数据的隐式转换和显式转换七、printf函数的一般形式printf(格式控制参数,输出项1,输出项2,)格式控制参数的描述(六部分,中间无空格)格式字符及其对应的输出格式其它格式控制参数八、scanf函数的一般形式scanf(格式控制参数,地址1,地址2,)九、getchar函数与putchar函数 在执行getchar函数时,虽然是读入一个字符,但并不是从键盘按下一个字符就被读入送给一字符变量,而是等到输入完一行按回车键后,才将该行的字符输入缓冲区,然后getchar函数从缓冲区中取一个字符给一个字符变量教与学的方法:用投影机演示。作业:第3章: 9、11、12XX学院课程教学设计(7-8学时)教学内容(章节、专题)第4章 顺序结构程序结构第5章 选择结构程序设计对C语言中的顺序结构进行简单介绍,然后详细介绍选择型程序设计。教学目标与要求学会C程序的顺序结构;掌握选择选择结构的三种语句:ifelse结构,ifelse if结构,switch结构。教学重点三种语句在各种条件下对应的流程教学难点Switch语句的语法和流程选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、顺序结构程序实例二、形成流程控制结构的语句三、限定转向语句四、goto语句五、复合语句六、ifelse结构的应用 例 求一个数的最大值 例 三个数中取大数 例 求一元二次方程ax2+bx+c=0的根(正确的缩进格式)七、else if 结构的应用八、switch 结构的应用 例 测试是数字、空白还是其它字符的函数 例 联想猜词游戏教与学的方法:除演示课本例题外,利用几种结构的互相替代来说明它们功能的异同作业:第4章:1、2、3、5、9第5章:1、2、3、5XX学院课程教学设计(9-10学时)教学内容(章节、专题)第6章 循环控制教学目标与要求掌握C语言的三种循环结构:while 结构dowhile结构for 结构教学重点While 结构的应用三种循环结构的流程教学难点有代表性的例题:求最大公约数验证素数选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、介绍穷举和迭代算法 循环控制的两种方法:计数法和标志法 穷举例:录取新生问题、搬砖问题 迭代例:人口增长问题、兔子繁殖问题二、一元方程的迭代解法: 1、二分迭代法 2、牛顿迭代法三、while 结构的应用 例 搬砖问题 例 爱因斯坦的阶梯问题 例 用辗转相除法求两个正整数的最大公约数 例 用牛顿迭代法计算一个正实数的平方根四、do while 结构的应用(改写例3.14)五、for 结构的应用 语法: for(初始化表达式;条件表达式;修正表达式) 循环体语句 例 打印九九表 例 验证素数 例 打印Fibonacci数列 例 用梯形法求数值积分教与学的方法:在编程解决数学问题时一定要弄清数学模型。彻底弄懂求最大公约数和验证素数的方法和相应程序作业:习题六:4,6,8,12XX学院课程教学设计(11-12学时)教学内容(章节、专题)第七章 数组§7.1-§7.2一维数组二维数组和多维数组教学目标与要求学会使用最重要的构造类型数据数组。数组是处理批量数据教学重点排序和折半查找教学难点实参为二维数组,形参是一维数组的处理方法和元素的对应关系选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、一维数组的定义类型标识符 数组名元素个数 ;二、一维数组的初始化 static int a5=1,3,5,7,9; 静态或外部数组不进行初始化,默认0或空字符 int a5=1,3,5,7,9; 自动数组不进行初始化,初始值不可预料三、数组元素的引用 C语言不检查下标是否出界四、数组作为函数参数 数组名作参数,采用的是地址传递五、一维数组应用举例 例 对n个数排序(由小到大)起泡法排序 例 查找方法介绍折半查找法六、二维数组和多维数组的定义和引用七、二维数组程序举例例 实参为二维数组,形参是一维数组的处理方法和元素的对应关系教与学的方法对于已经在VB中解决了的编程问题可以略去数学模型的分析。着重介绍C程序中出现的新问题作业:第7章:5,7XX学院课程教学设计(13-14学时)教学内容(章节、专题)第七章 数组§7.3字符数组和字符串教学目标与要求掌握C语言中字符串的处理方法教学重点字符串和字符数组的关系。字符串运算函数教学难点字符串和字符数组的关系选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、字符串和字符串的存储方式 字符数组和字符串的含义和区别:字符串放在字符数组中,但字符数组和字符串可以不等长。字符串以”0”作为结束标志二、字符数组的初始化三、字符串的输入scanfgets四、字符串的输出printfputs五、字符串运算函数strcpystrcatstrcmp六、二维的字符串数组七、字符串数组应用举例作业:第7章:10 XX学院课程教学设计(15-16学时)教学内容(章节、专题)第7章 函数§8.1§8.6函数定义,函数参数,函数的调用教学目标与要求了解函数式的程序结构,会编写和调用函数,了解函数之间是如何传送和返回数据的教学重点函数的传值调用教学难点函数的传值调用选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、C程序结构(一个菜单程序)二、函数定义 1、函数(值)类型 2、函数名 3、形式参数的数目、类型 4、函数体内容三、函数声明 格式: 类型标识符 函数名(类型标识符 形参,类型标识符 形参,);四、函数的传值调用 特点:函数中对形参变量的操作不会影响到函数中的实参变量五、函数的嵌套调用六、函数的递归调用 例 Tower of Hanoi教与学的方法分析典型例题作业:第8章:16、18XX学院课程教学设计(17-18学时)教学内容(章节、专题)第八章 函数(§8.7-§8.11)第九章 预处理命令变量的存储属性编译预处理教学目标与要求在编制大型程序时,变量的作用域非常重要。本节课介绍变量的存储属性,以便正确合理地使用变量。编译预处理是C语言的一个重要特点,要求会使用教学重点变量的存储属性教学难点从作用域角度、从变量存储位置的角度、从变量的生存期来理解变量的存储类别选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、动态变量 1、自动变量auto 数据类型 变量名=初值表达式, ;自动变量是局部变量;未进行初始化时,自动变量的值是不变的;对同一函数的两次调用之间,自动变量的值是不保留的函数的形参也是一种自动变量 2、寄存器变量二、静态变量static 数据类型 变量名=初值表达式, ;静态变量的存储空间在程序的整个运行期间是固定的;静态变量的初始化是在编译时进行;静态局部变量的值具有可继承性;静态局部变量的值只能在本函数(或分程序)中使用三、外部变量定义在函数之外的变量是外部变量,外部变量是全局变量,其作用域从定义的位置开始到文件的结束。1、当外部变量前加static时,即为静态外部变量,只允许本文件使用而不允许其它文件使用2、当外部变量前加extern时,即扩充了外部变量的作用域,同样也可将外部变量的作用域扩充到其它文件四、外部变量的副作用五、存储类别小结(表4.1)六、编译预处理#define 宏替换#include 文件包含教与学的方法作业:习题四XX学院课程教学设计(19-20学时)教学内容(章节、专题)第十章 指针(§10.1-§10.3)指针的概念指针变量的定义和引用指针作为函数参数一维和二维数组的指针表示法教学目标与要求指针是C语言中的一个重要概念,正确而熟练地掌握了指针的概念和指针的使用就能设计出复杂的数据结构和高效的程序教学重点指针的概念指针与数组教学难点二维数组的指针表示法选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、指针的概念 所谓“指针“就是地址。一个变量的指针就是指改变量的地址。存放地址的变量,就是指针变量二、指针变量的定义和引用 int *p, i=3; p=&i;三、指针作为函数参数 用指针(地址)作参数,可以实现“通过被调用的函数改变主调函数中变量的值“的目的四、一维数组的指针表示方法 ai 下标法 *(a+i) 地址法 a0 或 *a 为数组的第一个元素五、二维数组的指针表示法 aij 的地址为 *(a+i)+j 值为 *(*(a+i)+j)教与学的方法本节内容比较抽象,宜通过表格或图示说明指针所指向的地址和数组元素的对应关系作业:第10章:2,4 XX学院课程教学设计(21-22学时)教学内容(章节、专题)第六章 指针§-§数组指针作函数参数指针与字符串指针与函数教学目标与要求指针是C语言中的一个重要概念,正确而熟练地掌握了指针的概念和指针的使用就能设计出复杂的数据结构和高效的程序教学重点指针与字符串教学难点指针与字符串选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、数组指针作函数参数 实参 和 形参的对应关系可以有以下几种 数组名 数组名 数组名 指针变量 指针变量 数组名 指针变量 指针变量二、指针与字符串 通过定义一个指向字符串的字符指针处理字符串 例 用字符指针指向一个字符串 例 在一行字符中删去指定的字符 例 利用库函数在一字符串中寻找一个指定字符的位置三、指针与函数函数的入口地址称为函数的指针,可以定义一个指向函数的指针变量类型标识符 (*指针变量名)()可以用指向函数的指针变量作为被调用函数的实参,由于该指针变量是指向某一函数的,因此先后使指针变量指向不同的函数,就可以在被调用函数中能调用不同的函数教与学的方法本节内容比较抽象,宜通过表格或图示说明指针所指向的地址和数组元素的对应关系XX学院课程教学设计(23-24学时)教学内容(章节、专题)第六章 指针§10.5,10.7返回指针值的函数指针数组指向指针的指针教学目标与要求指针是C语言中的一个重要概念,正确而熟练地掌握了指针的概念和指针的使用就能设计出复杂的数据结构和高效的程序教学重点指针数组教学难点指向指针的指针选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、返回指针值的函数 定义这种函数的例子 int *fun(a,b) 许多库函数都是返回指针的二、指针数组 每个元素都是指针型的,则它就是指针数组 char *name5 数组name 的元素是指向字符的指针 指针数组主要于字符串操作,例如字符串的查找和排序,因为交换地址要比交换字符串中的字符所费的时间少三、指向指针的指针 类型标识符 *指针变量名 例:用双重指针输出二维数组元素教与学的方法本节内容比较抽象,宜通过表格或图示说明指针所指向的地址和数组元素的对应关系作业:第10章:18XX学院课程教学设计(25-26学时)教学内容(章节、专题)第六章 指针§10.6,§main函数中的参数指针数据小结教学目标与要求学会使用带参数的main函数对七种类型的指针数据进行小结,进一步掌握指针变量的应用教学重点指针数据小结教学难点main函数中的参数的传递方式选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、main函数中的参数 main(argc,argv) int argc char *argv 或main(int argc,char *argv) 参数在命令行打入,例如 cfile Computer C_Language 则argc 的值为3(字符串个数) argv0指向第一个字符串argv1指向第二个字符串argv2指向第三个字符串二、常用的指针类型变量归纳 定义形式 p的含义 int *p 指向整型数据的指针 int (*p)n 指向含有n个元素的一维数组的指针 int (*p)() 指向返回整型数据函数的指针 int *pn 指针数组,含有n个元素,每个元素指向一个整型数据 int *p() 返回值是指针的函数,该指针指向整型数据 int *p 指向一个指向整型数据的指针的指针 int (*p)n 指向一个指针,被指向的指针指向一个一维数组,该数组含有n个整型数据三、指向void类型的指针 void *p 在给p赋值时,必须进行强制类型转换,使之指向一个具体的类型的变量XX学院课程教学设计(27-28学时)教学内容(章节、专题)第十一章 结构体与共同体§11.1-§11.5结构体类型数据概述结构体变量的定义和引用结构体数组教学目标与要求要求掌握结构体变量的初步使用,用以处理属于不同类型的数据的组合教学重点结构体数组教学难点结构体数组选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、结构体类型数据概述二、定义结构体变量的方法 struct 结构体名 成员表列; 变量名表列; struct 结构体名 变量名表列三、结构体变量的初始化 只有结构体变量为外部变量或静态局部变量时才能对之初始化 在首次出现的变量名后加: = 各成员初值表列 四、结构体变量的引用 允许把一个结构体变量作为一个整体赋给另一个具有相同类型的结构体变量五、结构体变量的输入和数出 不允许把一个结构体变量作为一个整体进行输入和输出的操作六、结构体数组的定义和初始化七、结构体数组的引用 输入时,用gets接收字符串,用转换函数转换为相应的类型,再赋给数组元素的相应成员作业:第11章:1,2,5XX学院课程教学设计(29-30学时)教学内容(章节、专题)第十一章结构体与共同体§-§结构体变量作为函数参数以及返回结构体类型值的函数指向结构体变量的指针以及使用指向结构体变量的指针作为函数参数动态存储分配链表教学目标与要求要求掌握结构体变量的进一步使用:用指向结构体变量的指针作函数参数的方法教学重点指向结构体变量的指针以及使用指向结构体变量的指针作为函数参数教学难点动态存储分配链表选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、结构体变量作为函数参数 数据传递是“值传递”二、返回结构体类型值的函数三、指向结构体变量的指针 指向结构体变量的指针就是这个结构体变量所占内存单元段的起始地址四、指向结构体数组的指针指向结构体数组的起始地址五、用指向结构体数组的指针作函数参数六、动态存储分配和链表的概念七、用包含指针项的结构体变量构成节点八、用于动态存储分配的函数malloc和free等函数九、链表应用举例例 用链表存放学生数据运行程序,用E增加新结点,用L显示所有结点的数据XX学院课程教学设计(31-32学时)教学内容(章节、专题)第十一章 结构体与共同体§-§共同体类型数据枚举类型数据用TYPEDEF定义类型教学目标与要求掌握共同体类型数据和枚举类型数据,掌握用TYPEDEF定义类型教学重点共同体类型数据教学难点共同体类型数据选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、共同体的概念 与结构体的相同与不同二、共同体变量的引用三、共同体变量的应用 1、在数据处理问题中的应用 2、便于不同类型间的转换四、枚举类型的数据五、用TYPEDEF定义类型 1、先按定义变量的方法写出定义体(如char a20;) 2、将变量名换成新类型名(如char NAME20;) 3、在最前面加上typedef(如typedef char NAME20;) 4、然后可以用新类型名去定义变量(如NAME c,d;)作业:第11章:8XX学院课程教学设计(33-34学时)教学内容(章节、专题)第十二章 位运算§§位运算概念按位与、或、异或、取反运算符左移、右移运算符 位运算应用举例位段教学目标与要求C语言把低级语言中的位运算功能包括进来。掌握C语言的位运算功能,可以实现原来由低级语言实现的一些功能教学重点按位与、或、异或、取反运算符左移、右移运算符教学难点位运算应用举例选用教学素材与设备教材:C程序设计教程(谭浩强)授课设备:电脑(win98/2000/xp)、投影机、扩音设备实验设备:电脑(数学系计算机实验室)教学过程(内容提纲、教与学的方法)一、位运算概述 对C中的int 和 char类型的数据的一种操作1、按位与运算符 a & b 是将a和b中各个位都分别对应进行“与”运算2、按位或运算符 a | b 是将a和b中各个位都分别对应进行“或”运算3、按位异或运算符 a b 将a和b中各个位都分别对应进行“异或”运算4、按位取反运算 a 是将a的所有位都取其反值5、左移运算符 a <<n 是将a中各位左移n位,右边补06、右移运算符 a >>n 是将a中各位右移n位,左边补07、位运算应用举例 例 将16进制转换为2进制 例 按位运算计算器 例 循环移位8、位段的概念和定义 一种特殊形式的结构体结构中的成员。能使用户方便地访问一个字节中的有关位9、位段的引用方法 与引用结构体变量中的成员相同作业:第12章:1,2XX学院课程教学设计(35-36学时)教学内容(章节、专题)第九章 文件§13.1-§13.4文件概述文件的打开与关闭文件的读写教学目标与要求对文件的操作是高级语言的一种重要功能,是输入输出的操作对象,要求掌握对文件的基本操作教学重点文件类型指针教学难点文件类型指针选用教学素材与设备教材:C程序设计(第二版),谭浩强,清华大学出版社设备:微型计算机(装win 2000,VC+ 6.0编程环境)、投影机、扩音设备教学过程(内容提纲、教与学的方法)一、文件概述 按文件中数据的组织形式区分,数据文件可分为字符代码文件和二进制文件二、4种读写文件的方法 1、读写一个字符:用fgetc和fputc函数 2、读写一个字符串:用fgets和fputs函数 3、格式化读写:用fscanf和fprintf函数 4、读写一个“记录”:用fread和fwrite函数三、文件(FILE)类型指针 定义:FILE *文件结构体指针变量名四、文件的打开(fopen函数) fopen(文件名,文件的使用方式)五、文件的关闭(fclose函数) fclose(文件指针变量)六、实例讲解作业:第13章:2,3,4