c语言教案.docx
- 文档编号:8758259
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:58
- 大小:66.01KB
c语言教案.docx
《c语言教案.docx》由会员分享,可在线阅读,更多相关《c语言教案.docx(58页珍藏版)》请在冰点文库上搜索。
c语言教案
《C语言程序设计》课程教案
课题
C语言概述
课型
新授课
授课日期
课时
2
教学目的
1、了解C语言的特点;
2、掌握C简单程序的结构;
3、熟练掌握C程序的编辑、编译、链接和运行的过程。
教学重点难点
教学重点:
C语言的特点与编程环境
教学难点:
C语言的编程环境
教学方法
主要运用讲授法,兼用演示法
教学内容提纲
1、C语言的简史与特点;
2、简单的C程序;
3、C程序的上机步骤,掌握程序的编辑、编译、链接和运行。
教学过程:
本章导读:
阐述本章主要内容,重点要掌握的知识点。
§1.1C语言概况
1.1.1C语言的发展
(1)C语言的发展源于人们希望用高级语言编写操作系统。
(C-BCPL第二字母)
ALGOL60(高级语言)->CPL(硬件支持)-BCPC->B->C->标准C->ANSIC->ISOC
(2)语言既具有高级语言特性,又具有低级语言特性-中级语言。
1.1.2C语言的特点
C语言是从ALGOL60、CPL发展而来,既具有一般高级语言特性,又具有低级语言特性。
8个特点。
§1.2简单的C语言程序
通过简单的C语言程序举例,总结C语言程序的结构。
【例1.1】在计算机屏幕上输出“Hello,World!
”
/*EX1-1.C*/
main()
{
printf("Hello,World!
\n");
}
【例1.2】己知圆的半径,求圆的周长和面积
/*EX1-2.C*/
main()
{
intr;
floatl,s;r=5;
l=2*3.14159*r;
s=3.14159*r*r;printf("r=%d,l=%f,s=%f\n",r,l,s);
}
§1.3算法
算法的概念和表示方法(流程图的画法)。
【例1-4】画出求1+2+3+……+100之和的流程图。
§1.4C程序的实现
1、源程序、目标程序、可执行程序的概念(补充)。
2、C语言程序的实现:
编辑、编译、连接、运行。
课堂提问与讨论
本章小结、作业布置
课题
数据类型
标识符与常量
课型
新授课
授课日期
课时
2
教学目的
1、了解C语言丰富的数据类型;
2、了解常量的基本概念;
3、掌握常用基本数据类型(整型、实型、字符型)数据的常量表示。
教学重点难点
掌握C语言数据和数据类型的相关知识
教学方法
由于本节内容语法点比较多,所以在教学中结合多个小示例,在练习中掌握各知识点,通过实例操作,体会语法点。
教学内容提纲
1、C数据类型概述
2、C的基本数据类型(整型、字符型、枚举型、实型)
3、标识符的定义与使用规则;
4、常量的类型和定义方法及举例。
教学过程:
本章导读
数据是程序处理的对象,是程序设计中的重要组成部分。
C语言为我们提供了丰富的数据类型和运算符及语法规则。
阐述本章的主要内容与学习要求。
§2.1数据类型
2.1.1数据类型概述
§2.1数据类型
C语言的数据类型(整型、实型、字符型),数据的类型、表示形式和数据表示范围的定义。
3、标识符的概念及其使用规则,包括系统定义的32个关键字。
(1)标识符只能由下划线、数字0~9与大小写字母a~z,A~Z构成。
TurboC最多识别由32个字符组成的标识符,MicrosoftC最多识别由8个字符组成的标识符。
(2)标识符的首个字符必须是字母或下划线,而不能是数字或其它符号。
(3)C语言中大小写字母是敏感的,即在标识符中,大写字母和小写字母代表不同的意义。
例如:
Name和name是两个不同的标识符。
(4)标识符不能使用系统的关键字,因为关键字是系统保留的,它们已有特定的含义。
(5)系统预定义标识符,如预编译命令名(define、include)、系统函数名(scanf、printf、getchar、putchar)等可作为用户标识符,但建议不作它用。
(6)尽量作到“见名知义”,例如max、score等,而不用象abc、x1、y2等标识符。
(7)避免使用易混字符,如1、l、i;0、o;2、z等。
ANSIC定义的关键字共32个:
autodoubleintstructbreakelse
longswitchcaseenumregistertypedef
charexternreturnunionconstfloat
shortunsignedcontinueforsignedvoid
defaultgotosizeofvolatiledoif
whilestatic
§2.2.2常量
1、各类型常量的定义和表示方法的详细说明。
2、C语言中特殊的不可见字符的表示方法--转义字符。
3、字符串常量的定义和表示形式,以及与字符常量的区别方法。
4、符号常量的概念和定义方法。
#definePI3.14159
这种常量定义在C语言中被称之为“宏定义”,具体方法将在本书第11章中介绍。
【例2-1】输入圆的半径,计算周长和面积
#definePI3.14159
main()
{
floatr,c,s;
scanf("%f",&r);
c=2*PI*r;
s=PI*r*r;
printf("r=%f,c=%f,s=%f\n",r,c,s);
}
课堂提问与讨论
课堂小结、作业布置
课题
变量
课型
新授课
授课日期
课时
2
教学目的
1、了解变量的概念及其三要素;
2、掌握变量的定义方法;
3、理解变量定义的作用和存储。
教学重点难点
教学重点:
变量的定义方法;
教学难点:
不同类型变量的存储。
教学方法
由于本节内容语法点比较多,所以在教学中结合多个小示例,在练习中掌握各知识点,通过实例操作,体会语法点。
教学内容提纲
1、变量的含义;
2、变量的定义方法;
3、变量定义的作用;
教学过程:
复习回顾上次课的主要内容。
§2.2.3变量
1、阐述变量的含义及其三要素:
①变量名
②变量的存储单元
③变量(存储单元存放)的值。
2、变量的定义形式和举例。
§2.2.3变量定义的作用
1、变量定义的作用:
(1)编译系统将根据定义检测函数中的变量名。
(2)编译系统将对每一个变量根据它被定义的类型分配相应的存储单元。
(3)编译系统根据变量被定义的类型检查该变量进行运算的合法性。
(4)可以给变量赋初始值。
2、变量的赋值方式。
3、整型数据的存储形式。
4、整型数据的溢出原因和判断。
/*EX2-2.C*/
main()
{
inta,b,c;
unsignedu,v;
a=32767+1;b=131071;c=-98304;
u=131071;v=-98304;
printf("a=%d,b=%d,c=%d\nu=%u,v=%u\n",a,b,c,u,v);
}
5、实型数据的存储及实型数据存储时的舍入误差。
/*EX2-3.C*/
main()
{
floatx,y;
x=123456.789E5;
y=x+30.0;
printf("x=%f,y=%f\n",x,y);
}
6、字符数据的存储与使用
main()/*字符与整数的通用举例*/
{
charch1,ch2;
inti;
ch1='a';
i=ch1;
ch2=97;
printf("%dis%c\n",i,i);
printf("%cis%d\n",ch1,ch1);
printf("%cis%d\n",ch2,ch2);
}
main()/*大小写字母的转换*/
{
charc1,c2;
c1='a';
c2='B';
c1=c1-32;/*'a'的ASCII码值为97,减去32得'A'的ASCII码值*/
c2=c2+32;/*'B'的ASCII码值为66,加上32得'b'的ASCII码值*/
printf("%c,%c",c1,c2);
}
main()/*字符数据的补码*/
{
charc;
c=0362;/*八进制数,相当于十进制数242*/
printf("%c%d\n",c,c);
}
课堂提问与讨论
整型数据溢出例子,浮点数据舍入误差例子,给我们编程序的提示什么?
课堂小结、作业布置
课题
运算符与表达式
课型
新授课
授课日期
课时
2
教学目的
1、了解:
C语言的丰富运算符,丰富的运算符可以构成灵活的表达式
2、掌握算术、赋值、逗号运算符及它们构成的表达式。
掌握运算符的优先级、结合性规律。
教学重点难点
教学重点:
1、算术、赋值、自增/减运算符及它们构成的表达式
2、运算符的优先级、结合性规律。
教学难点:
1、运算符的优先级、结合性
2、自增/减运算符的运算规律
教学方法
由于本节内容语法点比较多,所以在教学中结合多个小示例,在练习中掌握各知识点,通过实例操作,体会语法点。
教学内容提纲
1、列举C语言的13类运算符,提示学习运算符时应注意的问题;
2、算术运算符与表达式;
3、强制类型转换运算符;
4、自增自减运算符及举例;
5、赋值运算符与表达式;
6、逗号运算符与表达式;
7、数据类型的转换。
教学过程:
§2.3运算符与表达式
2.3.1算术运算符与算术表达式
1、C语言中基本的算术运算符共有5个,分别为:
+(加),-(减),*(乘),/(除),%(取模,或称求余)。
2、有时为了达到某种目的,需要将一个表达式的类型转变成所需的类型,这时就要用到强制类型转换运算符。
作用形式:
(类型)(表达式)将表达式的值转换成相应类型
例如:
(double)a(int)(x+y)(float)5/3
3、自增自减运算符:
++和--
自增自减运算符++和--是C语言中最常用也最难掌握的两个单目运算符,具有右结合性。
他们的作用是:
只作用于变量,使变量的值自增1或自减1。
如++i相当于i=i+1;--j相当于j=j-1,因此++、--实质也有赋值作用。
由于不能对常量或表达式赋值,因此象3++,(a+b)--等都是错误的。
【例2-8】输出下面程序中i、j的值
main()
{
inti=5,j;
j=++i+i++;
printf("i=%d,j=%d\n",i,j);
i=5;
j=(++i)+(++i)+(i++);
printf("i=%d,j=%d\n",i,j);
printf("%d%d\n",i+j,j++);
}
§2.3.2赋值运算符与赋值表达式
1.赋值运算符及其表达式的定义形式。
2.复合赋值运算符
C语言允许在赋值运算符“=”之前加上其他运算符以构成复合的赋值运算符。
基本算术运算符和位运算符。
有:
+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
3.赋值类运算符的副作用及限制
4.算术表达式的计算
§2.3.3逗号运算符与逗号表达式
【例2-9】分析下面程序的运行结果
main()
{
inty=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2);
}
§2.4数据类型转换
2.4.1类型转换概述
三种方式:
类型自动转换、赋值类型转换和强制类型转换。
§2.4.3赋值类型转换
赋值运算时,如果赋值运算符两侧的类型(指基本类型)不一致,系统自动将表达式的值转换成变量的类型存到变量的存储单元,转换的结果可能会:
(1)当整型数据赋给浮点型变量时,数值上不发生任何变化,但有效位增加。
(2)当单、双精度浮点型数据赋给整型变量时,浮点数的小数部分将被舍弃。
(3)将字符型数据赋给整型变量时,由于字符型数据在运算时根据其ASCII码值自动转化为整型数据,所以将字符型数据的ASCII码值存储到变量中。
(4)将有符号的整型数据赋给长整型变量,系统要进行符号位扩展。
将无符号的整型数据赋给长整型变量时,只需0扩展即可。
(5)将长整型数据赋给整型变量或将整型数据赋给字符型变量,都有可能溢出。
(6)同长度有符号整型数据赋给无符号整型变量时,数据将失去符号位功能。
(7)同长度无符号整型数据赋给有符号整型变量时,数据将得到符号位功能。
§2.4.4强制类型转换
利用强制类型转换运算符将一个表达式的值强制转换成所需类型。
即:
(类型名)(表达式)
§2.5程序举例,分析程序的运行结果。
【例2-10】分析下面程序的运行结果
main()
{
intx,y;
x=50;
y=(x=x-5,x/5);
printf("y=%d",y);
}
【例2-11】写出下面程序的运行结果
main()
{
inti=2,j=3,k,n,m;
k=i+j;printf("%d",k);
k=k+1;printf("%d",k);
n=k*3;printf("%d",n);
m=n%j;printf("%d",m);
m=m-i;printf("%d",m);
n=k/j;printf("%d",n);
}
【例2-12】分析下面程序的运行结果
main()
{
intm,n,k;
m=5;n=10;
k=(--m)+(--n);
printf("m=%d,n=%d,k=%d\n",m,n,k);
m=5,n=10;
k=(m--)+(n--);
printf("m=%d,n=%d,k=%d\n",m,n,k);
}
本章小结各知识点的小结。
课堂提问与讨论
a=3*5,a*4<=>?
答:
(a=3*5),(a*4)
课堂小结、作业布置
仔细阅读附录4及其说明,掌握优先级规律。
(经常查阅)
课题
简单程序设计
课型
新授课
授课日期
课时
2
教学目的
1、了解C语言语句分类:
控制语句,表达式语句,复合语句,函数调用语句等;
2、掌握表达式语句,复合语句的构成;
3、掌握格式化输入/输出函数,常用其它输入/输出函数的使用。
教学重点难点
教学重点:
表达式语句,复合语句的构成,程序的基本结构;
教学难点:
格式化输入/输出函数。
教学方法
教学中结合多个小示例,通过实例操作,体会语法点。
教学内容提纲
1、C语言的语句类型;
2、程序的基本结构;
3、赋值语句;
4、数据的输入与输出函数的使用。
教学过程:
本章导读:
说明本章的主要内容与学习要求。
§3.1C语言语句
C语句可分为以下5种类型:
1.表达式语句
由表达式组成的语句称为表达式语句,其作用是计算表达式值或改变变量值。
它的一般形式是:
表达式;
2.函数调用语句
由一个函数调用加上一个分号构成函数调用语句,其作用是完成特定的功能。
它的一般形式是:
函数名(参数列表);
3.控制语句
控制语句用于完成一定的控制功能,以实现程序的各种结构方式。
C语言有9种控制语句。
4.复合语句
复合语句是用大括号将若干语句组合在一起,又称分程序,在语法上相当于一条语句。
5.空语句
只有一个分号的语句称为空语句。
它的一般形式是:
;
空语句是什么也不执行的语句,常用于循环语句中的循环体,表示循环体什么都不做。
§3.2程序结构
3.2.1程序结构简介
程序结构:
顺序结构、选择结构、循环结构。
任何复杂的程序都是由这三种基本结构组成。
【问题3-1】简单的程序结构。
main()
{
intx,y,z;/*定义三个整型变量,是C语言中的声明部分*/
x=123;y=234;/*以下语句是C语言中的语句,是执行部分*/
z=x-y;
printf("x-y=%d\n",z);
}
【问题3-2】由多个函数构成的程序结构
main()/*主函数*/
{
intx,y,z;/*声明部分,定义变量的类型*/
scanf("%d,%d",&x,&y);/*通过输入函数,给变量x、y赋值*/
z=min(x,y);/*调用min函数,将函数值赋给变量z*/
printf("min=%d\n",z);/*输出变量z的值*/
}
intmin(inta,intb)/*定义一个名为min的函数,函数值为整型,虚参a和b也是整型*/
{
intc;/*函数min中的声明部分*/
if(a>b)c=b;elsec=a;
return(c);
}/*将变量c的值通过返回语句带回调用处*/
3.2.2顺序结构及举例
顺序结构是程序设计中最简单、最基本的结构,其特点是程序运行时,按语句书写的次序依次执行。
§3.3赋值语句
赋值语句是一个应用十分普遍且最简单的语句。
赋值语句的一般形式:
x=e;
其中:
x是变量名,“=”前面已介绍过,是赋值号,e是表达式。
赋值语句的功能是将赋值号右边表达式的值计算出来,再赋给赋值号左边变量。
§3.4数据输入与输出
1、printf函数(格式输出函数)
(1)格式:
printf(格式控制字符串,输出表列)
格式控制字符串:
(格式控制项、普通字符)
输出表列:
一般是一个表达式,简单地,可以是变量。
(2)格式控制字符d、o、x/X、u、c、s、f、e/E、g/G构成控制项的各种常见形式。
表3-1,3-2。
注意:
不要死记硬背,要总结规律。
一般形式:
%±mnh/l格式字符
2、scanf函数(格式输入函数)
(1)格式:
scanf(格式控制字符串,输入表列-地址列表)
格式控制字符串:
含义与printf类似
输入表列-地址列表:
变量的地址或字符数组的首地址
(2)格式控制字符、格式控制项与printf类似,表3-3,4。
一般使用更加简单形式。
注意:
数据读入结束情况:
遇空格、TAB、回车;遇非法输入;指定宽度结束。
3、字符数据的输入与输出
(1)putchar函数一般形式:
putchar(字符表达式);
(2)puts函数一般形式:
puts(char*str);
(3)gets函数一般形式:
gets(char*str);
课堂提问与讨论
课堂小结、作业布置
C语言的格式输入/输出的规定比较繁琐,重点掌握最常用的一些规则和规律即可,其它部分可在需要时随时查阅。
课题
简单程序设计
课型
新授课
授课日期
课时
2
教学目的
1、了解结构化程序设计的概念;
2、掌握结构化流程图、N-S流程图;
3、掌握顺序结构程序设计的方法。
教学重点难点
教学重点:
顺序结构程序的设计。
教学难点:
结构化流程图、N-S流程图的绘制方法。
教学方法
教学中结合多个小示例,通过实例操作,体会语法点。
教学内容提纲
1、算法及其表示方法;
2、结构化程序设计;
3、顺序结构程序设计举例。
教学过程:
复习格式化的输入和输出。
一、算法及其表示方法
1、算法:
解决问题的方法、步骤
2、算法的5大特性:
有穷性,确定性,有0个或多个输入,有1个或多个输出,有效性。
3、算法的表示方法
a)用自然语言表示算法
b)用流程图表示算法(传统流程图、改进的流程图)
c)用N-S流程图表示算法(盒图)
d)用伪代码表示算法(常常用于算法设计)
e)用计算机语言表示算法
二、结构化程序设计
1、结构化算法或程序由三种基本结构顺序组成:
顺序结构,选择结构,循环结构;在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构中。
2、可以用改进的流程图或N-S图表示。
三、顺序结构程序设计举例
例3-15:
从键盘上输入两个整数放入变量a,b中,编程将这两个变量中的数据交换。
例3-16:
从键盘上输入一个英文小写字母,编程输出该字母所对应的ASCII码和所对应的大写字母。
例3-17:
输入三角形的三条边,编程求该三角形的面积
例3-18:
编程求方程的解
例3-19:
分析给出程序的运行结果。
课堂提问与讨论
课堂小结、作业布置
结构化流程图、N-S流程图绘制关键是记住各种基本结构的绘制方法。
课题
第4章选择结构程序设计(1/3)
课型
新授课
授课日期
课时
2
教学目的
1.学生应能掌握关系运算符与关系表达式的使用;
2、学生应能掌握逻辑运算符与逻辑表达式的使用;
3、学生应能掌握if语句基本结构。
教学重点难点
教学重点:
1、关系运算符与关系表达式、逻辑运算符与逻辑表达式;
2、if语句的使用。
教学难点:
1、逻辑表达式运算的短路现象。
教学方法
主要运用讲授法。
(1.举例引导2.提问3.类比)
利用多媒体课件进行教学,扩大课堂教学的信息量。
教学内容提纲
1、关系运算符与关系表达式;
2、逻辑运算符与逻辑表达式;
3、if语句。
教学过程:
本章导读
选择结构是结构化程序中基本结构之一。
选择结构是根据判定所给条件是否满足,自动决定程序该执行哪些语句。
在C语言中,通常用if语句或switch语句来实现选择结构。
if语句是两分支的选择语句;switch语句是多分支的选择语句。
本章主要介绍什么是选择结构、选择结构的特点和语法以及如何利用选择结构语句设计简单的程序。
4.1关系运算符与关系表达式
1、关系运算符
关系运算实际上就是比较运算。
比较两个量的运算符就称为关系运算符。
在C语言中为我们提供了6种关系运算符:
<小于
<=小于或等于
>大于
>=大于或等于
==等于
!
=等于
2、关系表达式
关系表达式是用关系运算符将两个表达式(可以是算术表达式、关系表达式、逻辑表达式、赋值表达式、字符表达式等表达式)连接起来的式子。
4.2逻辑运算符与逻辑表达式
1、逻辑运算符
C语言中为我们提供了三种逻辑运算符,分别是:
&&与运算
||或运算
!
非运算
2、逻辑表达式
逻辑表达式类似于关系表达式,是用逻辑运算符把两个表达式连接起来的式子。
4.3if语句
【问题】我们在求解数学问题中常会遇到这样的问题,例如:
计算一个分段函数:
又有时我们需要给学生成绩分等级。
比如:
85分以上的为A等,70~84分为B等,60~69分为C等……诸如此类问题。
平时我们用数学方法解决,在C语言中我们该如何编写程序解决呢?
1、单分支if语句的基本形式及应用举例。
2、双分支if语句的基本结构及应用举例。
3、多分支选择结构的if语句一般形式及其应用举例。
课堂提问与讨论
课堂小结、作业布置
课题
第4章选择结构程序设计(2/3)
课型
新授课
授课日期
课时
2
教学目的
1.学生应能理解if语句的嵌套概念,
2.学生应能通过对条件运算符和条件表达式的学习掌握在简单情况下利用条件表达式表达
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 教案