C语言程序设计教案.docx
《C语言程序设计教案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教案.docx(65页珍藏版)》请在冰豆网上搜索。
C语言程序设计教案
C语言程序设计教案
授课教师:
***
第一章C说言概述
课题
第一章C语言概述
教学
目的
1、了解C语言出现的历史背景
2、掌握C语言程序的结构、书写格式和上机步骤
教材
分析
教学重点
C语言程序的结构
教学难点
上机步骤
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
一新课引入
从计算机应用基础中学过的计算机语言及语言处理系统引出C语言。
二讲授新课
一、 C语言出现的背景
二、 C语言的特点
1. 语言简洁、紧凑,使用方便、灵活;
2. 运算符丰富
3. 数据类型多(整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类等)
4. 具有结构化的控制语句
5. 语法不太严格,自由度大
6.既是高级语言,又具有低级语言的功能
7.成目标代码质量高,程序执行效率
8.可移植性好
三、C语言程序构成(采用程序实例加以说明,并提倡良好的程序设计书写风格)
1. C语言是由函数构成的,至少有一个main()函数;
2. 每个函数由函数首部和函数体组成;函数体由说明语句、执行语句组成;
3. 每个C程序从main()函数开始执行,并在main()中结束;
4. 每个语句和数据定义的最后必须加分号;
5. C程序无输入、输出语句:
输入功能由scanf()函数完成;输出功能由printf()函数完成;
6.可加注释/*……*/
四、上机步骤(上机环境:
TurboC2.0)
1. 进入环境2. 编辑源程序3. 保存源程序4. 编译源程序
5. 执行程序,查看结果6.6. 退出C环境
三课堂小结
1、 C语言的构成要素,main函数在程序中的作用
2、上机操作的过程
备注
安排上机实验,熟悉TC环境及简单的C语言程序构成
页码
1
第二章C程序设计的初步知识
课题
第二章C程序设计的初步知识
教学
目的
1、掌握C的数据类型
2、掌握整型、实型、字符型数据的常量及变量
教材
分析
教学重点
各种基本数据类型的常量和变量
教学难点
不同类型的数据在内存中的物理存储形式
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
一复习引导
上次课我们已经学习了程序的一个方面算法,现在来学习另一方面数据结构。
二讲授新课
C有四种基本数据类型,分别是整型、字符型、实型、枚举型
一、常量与变量
1、常量:
在程序运行过程中,其值不能被改变的量。
两种形式:
一般常量和符号常量
1.直接常量(字面常量):
整型常量:
如12、0、-3等
实型常量:
如4.5、-1.234等
字符常量:
如‘a’、‘1’等,用单引号表示;
字符串常量:
如“a”、“abc”、“1”,用双引号表示。
2.符号常量:
符号常量即是用一个标识符来代替一个常量;符号常借助于预处理命令#define来实现;
定义形式:
#define标识符字符串
如:
#definePI3.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.变量必须先定义再使用
备注
页码
2
第二章C程序设计的初步知识
课题
第二章C程序设计的初步知识
教学
目的
1、掌握C的数据类型
2、掌握整型、实型、字符型数据的常量及变量
教材
分析
教学重点
各种基本数据类型的常量和变量
教学难点
不同类型的数据在内存中的物理存储形式
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
二、整型数据
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
main()
{inta,b,c,d;unsignedu;
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均为不合法的浮点数。
备注
页码
3
第二章数据类型、运算符与表达式
课题
第二章C程序设计的初步知识
教学
目的
1、掌握C的数据类型
2、掌握整型、实型、字符型数据的常量及变量
教材
分析
教学重点
各种基本数据类型的常量和变量
教学难点
不同类型的数据在内存中的物理存储形式
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
2、实型变量
(1)实型数据在内存中的存放形式
一个实型数据一般在内存中占4个字节(32位)。
实型数据是按照指数形式存储的。
(2)实型变量的分类:
单精度float、双精度double、长双精度longdouble
四、字符型数据
1、字符常量
1) 括在一对单引号中的一个字符(单引号仅作界限符),如:
‘a’、‘X’
2 )一个字符常量占1个字节,存放的是字符的ASCII码值。
3) 转义字符:
以‘\’开头,后跟一个约定的字符或所要表示字符的十六进制(或者八进制)的编码;
2、字符变量:
字符变量用来存放字符常量,只能放一个字符。
例:
charc1=‘a’,c2=‘A’;一个字符变量在内存中占一个字节。
五、字符串常量
1.括在一对双引号中的0个或多个字符组成的序列;双引号仅作界限符;如:
“Clanguageprogramming”、“a\\n”、“#123”、“”等为字符串常量;
2.字符串常量的实际存储:
在存储完字符串中的有效字符后还应存储字符串结束标志‘\0’。
六、变量赋初值
在定义变量时对变量进行赋值称为变量的初始化;
格式:
类型说明符变量1=值1,变量2=值2,……;
如:
inta=3,b=4,c=5;
floatx=3.4,y=0.75;
charch1=‘K’,ch2=‘P’;
三课堂小结
1、C的基本数据类型int、float、double、char
2、 基本数据类型的常量表示、变量定义,及不同类型的数据在内存中的存储形式
四、布置作业
练习P65:
3.2、3.5、3.6、3.8
备注
页码
4
第二章数据类型、运算符与表达式
课题
第二章C程序设计的初步知识
教学
目的
1、掌握C语言中的各种运算符
2、掌握运算符的优先级与结合性
教材
分析
教学重点
C语言中各种运算符的使用
教学难点
混合表达式中运算符的运算顺序
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
一、讲授新课
用运算符和括号将运算对象(数据)连接起来的、符合C语法规则的句子称为表达式。
优先级是指表达式中包含多个运算符时,先进行优先级高的运算符操作,然后在进行优先级低的运算符操作;
当表达式中包含的几个运算符的优先级全相同时,由运算符的结合性来决定他们的运算顺序。
1) 从左至右2)从右至左
一、算术运算符与算术表达式
1、基本的算术运算符:
+–*/%
优先级:
*/%高于+–
结合性:
左结合性
2、算术表达式:
用算术运算符和括号将运算对象(操作数)连接起来的、符合C语法规则的式子称为算术表达式。
3、强制类型转换运算符:
(类型名)(表达式)
4、自增、自减运算符:
++––
作用是使变量的值增一或减一。
二、赋值运算符与赋值表达式
1、简单的赋值运算符:
=除逗号表达式外,优先级最低
2、复合赋值运算符:
+=*=%=等
3、赋值表达式:
<变量><赋值运算符><表达式/值>
4、嵌套的赋值表达式
三、逗号运算符与逗号表达式
1、逗号运算符:
,所有运算符中优先级最低
2、逗号表达式:
表达式1,表达式2,……,表达式n
求解过程:
先求表达式1,再求表达式2,依次求下去,直到求出表达式n,整个逗号表达式的值就是表达式n的值
四、各类数值型数据间的混合运算(P54)
二、课堂小结
1、 ++、--运算
2、 各种运算符的优先级3、表达式值的求解
三、布置作业
练习:
P663.9、3.10、3.11、3.12
备注
安排上机实验
页码
5
第二章数据类型、运算符与表达式
课题
第二章字符串
教学
目的
1、掌握字符数组的定义、初始化、引用,及输入与输出
2、掌握字符串处理函数
教材
分析
教学重点
字符数组的输入与输出
教学难点
字符串处理函数
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
一复习引导
从一般的一维数组、二维数组到特殊的字符数组
二讲授新课
一、字符数组的定义
char数组名[exp];
如:
charc[10];
二、字符数组的初始化
1. 给每一个字符型数组元素依次赋给一个单字符。
如:
charstr[6]={‘C’,‘h’,‘i’,‘n’,‘a’,‘\0’};
2.直接在赋值号右边给出字符串常量。
如:
charstr[6]=“China”;
注意:
a)a) 字符数组的长度可以通过赋初值的方式隐含定义;如:
charstr[]={‘C’,‘h’,‘i’,‘n’,‘a’,‘\0’};
charstr[]=“China”;
b) 如果括号中提供的初值个数(即字符个数)大于数组长度,则作语法错误处理。
如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定义为空字符(即‘\0’)。
三、字符串和字符串结束标志
字符串结束标志是“\0”,如:
charch[]=”China”;“China”在存储器中实际占用6个字节:
四、字符数组的输入和输出
1、字符数组的输出
(1)用格式符“%c”控制的printf(),逐个字符输出
(2)用格式符“%s”控制的printf();字符数组值整体输出
(3)puts(字符数组名);字符数组值整体输出
注意:
(1)puts用字符数组名,而不用数组元素名;
(2)输出的字符串中可含转义字符;如:
staticcharstr[]=“China\nBeijing”;puts(str);
(3)如果数组长度大于字符串实际长度,也只输出到遇‘\0’时结束(即若一个字符数组中包含一个以上的‘\0’,则遇到第一个时输出就结束)。
如:
printf(“%s\n”,“ABCD\0EFGH”);只输出ABCD
备注
页码
6
第二章数据类型、运算符与表达式
课题
第二章字符串
教学
目的
1、掌握字符数组的定义、初始化、引用,及输入与输出
2、掌握字符串处理函数
教材
分析
教学重点
字符数组的输入与输出
教学难点
字符串处理函数
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
2、字符数组的输入
(1)用格式符“%s”控制的scanf();
如:
staticcharstr1[5],str2[5],str3[5];
scanf(“%s%s%s”,str1,str2,str3);/*不能写成&str1*/
若输入数据流为:
Howareyou?
str1、str2、str3分别接收到“How”、“are”、“you?
”,且在各个字符串的最后自动加‘\0’。
如果利用一个scanf函数输入多个字符串时,则以空格分隔;
(2)用gets();如:
charch[16];gets(ch);
注意:
①gets一次只能输入一个字符串;
②自变量应是数组名,而不能是数组元素名;
③要求从键盘上输入一个字符串直到遇到换行符为止,系统会自动把换行符换成“\0”加在字符串末尾。
与scanf不同,输入字符串中的空格也会被接收。
五、字符串处理函数
1、puts(字符数组)
功能:
将一个以‘\0’结束的字符序列输出到终端;
如:
staticcharstr[]=“China”;puts(str);
说明:
输出的字符串中可含转义字符。
2、gets(字符数组)
功能:
从终端输入一个字符串到字符数组中,并得到一个函数值,该函数值是字符数组的起始地址;如:
gets(str);
说明:
gets与puts只能输入或输出一个字符串。
3、strcat(字符数组1,字符数组2)
功能:
将字符串2接到字符串1的后而且去掉字符串1的尾空;
如:
staticcharstr1[30]=“YangZhou”,str2[]=“China”;
printf(“%s\n”,strcat(str1,str2));
说明:
①字符数组1的长度需足够大;②去掉字符串1的尾空。
4、strcpy(字符数组1,字符串2)
功能:
将字符串2拷贝到字符数组1中去;
如:
staticcharstr1[10],str2[]=“China”;
strcpy(str1,str2);
备注
页码
7
第二章数据类型、运算符与表达式
课题
第二章字符串
教学
目的
1、掌握字符数组的定义、初始化、引用,及输入与输出
2、掌握字符串处理函数
教材
分析
教学重点
字符数组的输入与输出
教学难点
字符串处理函数
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
5、strcmp(字符串1,字符串2)
功能:
比较字符串1和字符串2,返回:
①串1=串2,返回0;
②串1>串2,返回正整数;③串1<串2,返回负整数。
6、strlen(字符数组)
功能:
测试字符串的长度;
如:
staticcharstr1[10]=“China”;printf(“%d\n”,strlen(str));
说明:
不包含‘\0’在内。
特殊字符%%、\’、\\、\n代表一个字符。
7、strlwr(字符串)
功能:
将字符串中的大写字母转换成小写字母;
8、strupr(字符数组)
功能:
将字符串中的小写字母转换成大写字母。
三、课堂小结
1、 字符串的结束标记
2、 字符串的输入与输出,gets、puts
3、 字符串处理函数
第三章最简单的程序设计---顺序程序设计
课题
第三章顺序程序设计
教学
目的
1、了解C语句的概念及种类、掌握C语言常用的输入/出方式
2、学会简单的顺序程序设计
教材
分析
教学重点
C语言常用的输入/出方式
教学难点
格式输入输出
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
一、复习引导
上一章介绍的常量、变量、运算符、表达式等都是构成程序的基本成分。
本章将介绍为编写简单程序所必需的一些内容。
二、讲授新课
一、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
备注
页码
9
第三章最简单的程序设计---顺序程序设计
课题
第三章顺序程序设计
教学
目的
1、了解C语句的概念及种类、掌握C语言常用的输入/出方式
2、学会简单的顺序程序设计
教材
分析
教学重点
C语言常用的输入/出方式
教学难点
格式输入输出
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
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,处理的结果为:
123→a,456→b,789→c
②同理对第二个输入语句,正确的输入数据流应是:
a=123,b=456,c=789该输入数据流中除123,456,789被赋给相应变量外,其余都被丢弃
六、顺序结构程序设计举例
例1:
输入三角形的三边长,求三角形面积。
分析:
三边为a,b,c,面积area2=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2
程序:
#include
main()
{floata,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程序设计。
页码
10
第四章选择结构程序设计
课题
第四章选择结构程序设计
教学
目的
1、掌握实现选择结构的两种语句、两个运算符
2、学会编写选择结构的程序
教材
分析
教学重点
关系运算符、if-else语句
教学难点
嵌套if-else语句中的if与else匹配问题
课时安排
2
教学方法
讲授与演示法相结合
教具
计算机、投影仪
教
学
内
容
及
过
程
设
计
一、复习引导
上一次课已经介绍了程序基本结构之一,但在大多数情况下都要用到选择结构。
二、讲授新课
一、关系运算符与关系表达式
1、关系运算符:
<<=>>===!
=
优先级:
<<=>>=高于==!
=
关系运算符低于算术运算符,高于赋值运算符
2、关系表达式:
用关系运算符将两个表达式连接起来的式子。
关系表达式求值:
关系成立,值为1;关系不成立,值为0
二、双分支选择语句
1、if语句的三