C语言电子教案.docx
《C语言电子教案.docx》由会员分享,可在线阅读,更多相关《C语言电子教案.docx(26页珍藏版)》请在冰豆网上搜索。
C语言电子教案
《C语言程序设计》
教案
总课时数:
114
适用专业:
计算机应用技术、计算机网络
系(部)名称:
软件工程系
教研室名称:
修订时间:
授课日期:
第1周周一5—8周三1—2第2周周一5—8周三1—2
授课类型:
演示、讲解、练习、辅导课时:
12
教学内容:
1、C语言的历史和特色
2、C程序结构
3、C程序的开发过程
教学目标:
1、了解C语言的产生过程
2、掌握C程序结构
3、掌握C程序开发过程
4、掌握用TurbocC运行一个C程序
教学重点:
1、掌握C程序的基本结构构成
2、学会用TurboC运行一个C程序
教学难点:
掌握C程序的开发过程
教学过程:
内容讲授学生实践作业布置新课内容预告
教学手段:
多媒体教学软件+个别辅导
作业:
第1章C语言概述
C语言是国际上广泛流行的一门高级程序设计语言,具有语言简洁、使用方便灵活、移植性好、能直接对系统硬件和外围接口进行控制等特点。
本章将简要地介绍它的产生过程和特点、C程序结构及C程序的上机步骤,以便对C语言有一个概括的认识。
1.1C语言的历史和特色
一、历史
1.1960年出现了ALGOL60。
2.1963年和1967年,在ALGOL60的基础上推出了CPL和BCPL语言更接近于硬件。
3.1970年美国贝尔实验室对BCPL语言做了进一步简化,设计了B语言,并用B语言编写了第一个UNIX操作系统。
4.在1972年至1973年间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出C语言。
二、特色
1.简洁紧凑,使用方便灵活
C语言一共只有32个关键字、9种控制语句,程序书写自由,压缩了一切不必要的成分,语言简练。
2.运算符丰富
C语言有34种运算符和15个等级的运算优先顺序,使表达式类型多样化,可以实现在其它语言中难以实现的运算。
3.数据类型丰富
C语言的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、联合体类型及枚举类型等,能用来实现各种复杂的数据结构的运算。
4.模块化结构
C语言用函数作为程序的模块单位,便于实现程序的模块化,而且便于模块间相互调用及传递数据。
5.语法限制少和程序设计自由度大
C语言允许程序编写者有较大的自由度,放宽了以往高级语言严格的语法检查,较好地处理了“限制”与“灵活”这一对矛盾。
6.比较接近硬件
C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
7.生成目标代码质量高、程序执行效率高
一般只比汇编程序生成的目标代码效率低10%―20%。
8.可移植性好
基本上不做修改就能用于各种型号的计算机和各种操作系统。
1.2C程序结构
下面列出几个简单的C程序来说明C程序的结构特征。
例1.1输出一行信息。
main()
{
printf("ThisisfirstCprogramme!
\n");
}
该程序的作用是输出一行信息:
ThisisfirstCprogramme!
main表示“主函数”;函数体用大括号{}括起来。
本例题中主函数仅包含一个语句,该语句由printf()输出函数构成。
括号内双引号中的字符串按原样输出;´\n´是换行符,即在输出"ThisisfirstCprogramme!
"后回车换行;语句后面有一个分号,表示该语句结束,这个分号必不可少。
例1.2计算两个数之和。
main()/*求两个数之和*/
{
inta,b,sum;/*定义3个整型变量*/
a=123;/*以下3行为C语句*/
b=321;
sum=a+b;
printf("sumis%d\n",sum);
}
该程序的作用是求两个整数a和b之和sum,并在屏幕上输出sum。
程序中,/*……*/表示注释部分,对编译和运行不起作用。
第3行是变量说明,使用的a、b和sum为整型(int)变量。
第4行是两个赋值语句,使a的值为123,b为321。
第5行使sum的值为a+b,第6行的%d是输入输出的“格式说明”,表示“十进制整数类型”,printf函数中括号内最右端的sum是要输出的变量,当然它的值为444。
例1.3比较两个数的大小。
main()/*主函数,功能输入两个整数,判断后输出较大的数*/
{
inta,b,c;/*定义3个整型变量*/
scanf("%d,%d",&a,&b);/*输入变量a和b的值*/
c=max(a,b);
printf("max=%d\n",c);/*输出c的值*/
}
intmax(intx,inty)
/*定义max()函数,函数值为整型,x,y为形式参数、整形变量*/
{
intz;
/*定义main()函数内部用到的变量z为整数*/
if(x>y)
z=x;/*将x,y中较大的值赋给z*/
else
z=y;
return(z);
/*将z值返回。
通过max()函数带回调用处*/
}
该程序的作用是从键盘输入两个整数,然后在屏幕上输出它们中较大值的数。
程序的第5行是调用max()函数,在调用过程中将实际参数a和b的值,分别传递给max()函数中的形式参数x和y,然后得到一个返回值(z的值),并把这个值赋给变量c。
运行情况如下:
2,8↙
max=8
从以上几个例题,可以看到C程序的结构特征。
1.C程序是由函数构成的。
一个C程序至少有一个main()函数,也可以包含一个main()函数和若干个其它函数。
2.一个函数有两部分构成。
函数说明部分,即函数的第一行,包括函数类型、函数名、形参类型、形参名。
函数体,由一对大括号{}括起来的语句集合。
函数体一般包括有声明部分和执行部分,声明部分用于定义所用到的变量,执行部分由若干语句组成。
3.一个C程序总是从main()函数开始执行,而不管main()在源程序中的位置,执行完主函数中的所有语句后,程序就结束。
4.每个语句和变量定义的最后必须要有一个分号,分号是C语句的必要组成部分。
5.C语言本身没有提供输入和输出语句,输入输出操作是通过库函数scanf()、printf()等函数来实现的。
6.C语言用/*……*/对程序进行注释,/和*之间不允许留有空格,/*和*/应当一一对应匹配,注释部分允许出现在程序中的任何位置上。
程序中加一些注释,可以增加程序的可读性。
1.3C程序的开发过程
用C语句编写的程序称为“源程序”。
1.C程序开发的4个基本步骤
一般C程序开发要经历4个基本步骤:
编辑——编译——连接——运行
(1)编辑
使用字处理软件或编辑工具将源程序以文本文件形式保存到磁盘,源程序文件名由用户自己选定,但扩展名必须为".c"。
(2)编译
编译的功能就是调用“编译程序”,将已编辑好的源程序翻译成二进制的目标代码。
如果源程序没有语法错误将产生一个与源程序同名,以".obj"为扩展名的目标程序。
(3)连接
编译后产生的目标程序往往形成多个模块,还要和库函数进行连接才能运行,连接过程是使用系统提供的“连接程序”运行的。
连接后,产生以".exe"为扩展名的可执行程序。
(4)运行
可执行程序生成后,就可以在操作系统的支持下运行,若执行结果达到预期的目的,则开发工作到此完成,否则,要进一步地经过以上过程以取得最终的正确结果。
2.使用TurboC开发程序的方法
现在,多数的C程序开发使用一个集成TurboC开发工具来完成。
下面简单介绍使用TurboC开发程序的方法。
(1)TurboC的目录及文件
TurboC应装入磁盘的某一目录下,例如,放在c盘的根目录下一级TC子目录下,TurboC安装完成后,磁盘上将增加以下目录及文件:
TC子目录(c:
\tc):
其中包括tc.exe、tcc.exe、make.exe等执行文件。
INCLUDE子目录(c:
\tc\include):
其中包括stdio.h、string.h、math.h等头文件。
Lib子目录(c:
\tc\lib):
其中包括graphlics.lib、math.lib、math1.lib等库函数文件。
BGI子目录(c:
\tc|bgi):
其中包括tc运行时所需的信息。
通过执行tc.exe命令就可以进入TurboC环境,如果用户的当前目录是TurboC所在的子目录tc,则只需从键盘输入“tc”命令即可。
C:
\tc>tc↙
(2)TurboC集成环境作简单介绍,它包括以下几个方面的内容:
主菜单窗口
编辑窗口
信息窗口
功能键提示行
3.用TurboC运行第一个C程序
下面介绍使用TurboC编辑和运行一个简单的C程序的操作步骤:
(1)编辑或修改源程序。
在编辑窗口键入一下源程序:
main()
{
printf("ThisismyfirstCprogram");
}
然后执行“”命令;或按“F2”键存盘。
(2)编译与连接源程序。
执行“compile/makeexefile”命令或直接按下F9键,即可一次完成编译与连接。
(3)运行程序。
按“F10”键返回主菜单,用光标移动键将亮条移到“Run”菜单选项回车或按下“Ctrl+F9”键,即可运行刚生成的可执行文件。
此时TurboC工作窗口消失,屏幕上显示程序运行结果:
ThisismyfirstCprogram
若发现运行结果不对,可再按“F10”键回工作窗口,重复上述步骤。
(4)运行程序后查看程序的运行结果。
(5)退出TurboC,按“Alt+X”键,系统即退出Turbo环境。
本章小结
本章对C语言进行了总体介绍,对学生的要求是掌握基本概念,学习的过程要紧密结合本章的知识要点:
1.程序的构成,main()函数和其他函数。
2.头文件、数据说明、函数的开始和结束标志。
3.源程序的书写格式。
4.C语言的风格。
授课日期:
第3周周三1—2第4周周一5—8周三1—2
第5周周一5—8周三1—2
授课类型:
演示、讲解、练习、辅导课时:
14
教学内容:
1、常量和变量
2、整型数据
3、实型数据
4、字符型数据
5、变量的初始化
6、运算符和表达式
教学目标:
1、掌握常量与变量的书写和定义
2、掌握三种基本数据类型
3、掌握运算符和表达式的使用
4、掌握顺序结构程序设计的方法
教学重点:
1、三种基本数据类型的定义和使用
2、各种运算符的使用
教学难点:
1、运算符的使用
2、使用顺序结构编程
教学过程:
内容讲授学生实践作业布置新课内容预告
教学手段:
多媒体教学软件+个别辅导
作业:
1、编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行此程序,比较putchar和printf函数输出字符的特点。
2、试编写程序,从键盘输入一个大写字母,要求改用小写字母输出。
第2章顺序结构程序设计
顺序结构是一组按书写顺序执行的语句。
本章将主要介绍程序中用到的一些基本要素(常量、变量、运算符、表达式和输入输出语句等),以及基本的数据类型(整型、实型和字符型)。
2.1常量和变量
一、常量
1.常量:
在程序运行的过程中,其值不能被改变的量。
如2、4、-1.6等。
2.分类:
普通常量和符号常量。
3.符号常量:
用一个标识符代表一个常量,这样的标识符称为符号常量。
如用PI代表3.1415926。
4.注意:
符号常量的值在其作用域内不能改变,也不能再被赋值。
如在程序中,对PI重新赋值:
PI=2;这样是不允许的。
二、变量
1.变量
C语言规定在程序运行的过程中,其值可以改变的量,称为变量。
2.标识符:
用来标识变量名、符号常量名、函数名、数组名、类型名和文件名的有效字符序列。
3.C语言规定:
标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
一般变量名的长度不能超过8个字符。
如下面是合法的标识符,也是合法的变量名:
sum,average,day,month,student,_above,k_1_2_3,basic;下面是不合法的标识符和变量名:
M.D.John,$123,#33,3D64,a>,-ab。
在C语言中,要求对所有用到的变量作强制定义,也就是″先定义,后使用″。
2.2整型数据
一、整型常量
C语言整型常数可用以下三种形式表示:
1.十进制整数:
数码直接开头的十进制数。
2.八进制整数:
以0开头的常量是八进制数。
3.十六进制整数:
以0x开头的数是16进制数。
二、整型变量
1.整型变量的分类
整型变量可分为:
基本型、短整型、长整型和无符号型四种,其定义的关键字如下:
(1)基本型,以int表示。
范围为-32768~32767,即-215~(215-1)。
(2)短整型,以shortint或short表示。
范围与基本型相同。
(3)长整型,以longint或long表示。
若一个整型常量后面加上一个字母l或L,则认为是longint型常量。
范围为-2147483648~214783647即-231~(231-1)
(4)无符号型,在实际应用中变量的值常常是正的,如年龄、工资、成绩等,因此可以将变量定义为″无符号″类型。
无符号型又分为:
①无符号整型,以unsignedint或unsigned表示。
范围:
0~65535,即0~(216-1)。
②无符号短整型,以unsignedshort表示。
范围:
0~65535即0~(216-1)。
③无符号长整型,以unsignedlong表示。
范围:
0~4294967295即0~(232-1)。
2.整型变量的定义
变量的定义格式为:
数据类型变量表列;
其中若定义多个同类型的变量,则用逗号分开。
例:
inta,b;(指定变量a,b为整型)
unsignedshortc,d;(指定变量c,d为无符号短整型)
longe,f;(指定变量e,f为长整型)
3.整型数据的输入
整型变量键盘输入,是通过scanf函数实现的,scanf函数是数据输入函数,格式为:
scanf(格式控制,地址表列);
例如:
scanf(″%d%d″,&a,&b);
(1)格式控制是用双引号括起来的字符串,由″%″和格式字符组成,作用是将输入数据转换为指定的格式输入。
(2)格式字符,对于不同的数据用不同的格式字符。
d格式符是用来输入十进制整数的。
因为本节问题中变量a,b是整型变量,所以输入时,用了d格式符。
(3)&a,&b中的″&″是″地址运算符″,&a是指a在内存中的地址。
上面scanf函数的作用是:
将a、b的值放到a,b在内存的地址单元中去。
所以,在该问题中,若输入:
35↙
则输出结果为a+b=8
4.整型数据的输出
整型数据的输出用printf函数来实现。
如printf(″a+b=%d″,c);
printf函数的格式为:
printf(格式控制,输出表列);
(1)格式控制和输入函数scanf的格式控制基本一致。
(2)输出表列是需要输出的数据或表达式。
(3)在输出整型数据时,格式字符如下:
①%d,按整型数据的实际长度输出。
②%md,m为输出字段的宽度,如果输出数据的位数小于m则左端补以空格,若大于m,则按实际位数输出。
例如:
printf(″%4d,%4d″,a,b);
若a=123,d=12345,则输出结果为:
V123,12345(注:
V表示空格字符,下同)
③%ld,输出长整型数据。
如:
longa=135790;
printf(″%8ld″,a);
输出结果为:
VV135790
一个int型数据可以用%d或%ld格式输出。
④%u,输出unsigned型数据,即无符号类型,如unsignedu;那么u在输出的时候,应该用u格式控制符,那么输出时应使用语句:
printf(″%u″,u);
例2.1从键盘输入任意一个整数,输出这个数的平方的值。
main()
{inta;
longs;
scanf(″%d″,&a);
s=a*a;
printf(″s=%ld\n″,s);}
2.3实型数据
一、实型常量
实数在C语言中,又称浮点数。
实数有两种表示形式:
1.十进制数形式。
由数字和小数点组成(注意必须有小数点)。
2.指数形式。
但注意字母e(或E)之前必须有数字,且e后面指数必须为整数,如e3、2.1e3.5、.e3、e都不是合法的指数形式。
二、实型变量
在本节问题中,已知两个数是实数,那么两数之和与积也必定为实数,所以需要设四个实型变量,分别为a,b,sum,mul。
定义语句为:
floata,b,sum,mul;
C实型变量分为:
1.单精度型(float型)
一个float型数据在内存中占4个字节(32位),在TURBOC中,单精度实数的范围约为-1038~1038之间并提供7位有效位;小于10-38的数被处理成零值。
2.双精度型(double型)
一个double型数据在内存中占8个字节,双精度实数的数值范围约为-10308~10308。
并提供15~16位有效位,具体精确多少位与机器有关;小于10-308的数被处理成零值。
三、实型数据的输入和输出
1.实型数据的输入
实型数据的输入也用scanf函数实现的,格式符使用的是f字符,以小数的形式输入数据,也可以使用e字符,以指数的形式输入数据。
如本节问题中的scanf(″%f%f″,&a,&b);
2.实型数据的输出
实型数据的输出用printf函数实现,格式符使用f字符,以小数的形式输出数据。
输出时应注意:
(1)%f:
不指定字段宽度,整数部分会全部输出,并输出6位小数。
(2)%m.n:
指定输出数据共占m列,其中有n位小数。
如果数值长度小于m,则左端补空格。
(3)%-m.n:
指定输出数据共占m列,其中有n位小数。
如果数值长度小于m,则右端补空格。
(4)若是双精度型变量输出时应用%lf格式控制,如doublef;输出时应使用语句:
printf(″%lf″,f);
2.4字符型数据
一、字符常量
1.字符常量
C语言的字符常量是用一对单引号括起来的单个字符。
如:
´a´、´b´、´x´、´D´、´?
´、´$´等都是字符常量。
2.转义字符
除了这样的字符常量外,C语言还允许用一种特殊形式的字符常量,就是以一个´\´开头的字符序列.例如,前面已经用到,在printf函数中的´\n´,它表示一个″换行″符。
例2.2字符常量的输出。
main()
{
printf(″abc\n\tde″);
}
运行结果:
abc
de
二、字符变量
在本节问题中,设了两个字符型变量c1和c2。
定义形式如下:
charc1,c2;
它表示c1和c2为字符型变量,各可以放一个字符。
可以用下面语句对c1,c2赋值:
c1=´a´;;c2=´b´;
因此在内存中一个字符变量只占一个字节。
三、字符数据的存储形式
字符在内存中存储的不是字符本身,而是它的ASCII码,例如字符´a´的ASCII码为97,´b´的ASCII码为98。
那么字符的存储形式与整数的存储形式是类似的。
C语言使字符型数据和整型数据是通用的。
例2.3main()
{
chara1,a2;
a1=97;a2=98;
printf(″%c%c\n″,a1,a2);
printf(″%d%d\n″,a1,a2);
}
程序运行时输出如下:
ab
9798
字符型数据和整型数据是通用的,但应该注意字符数据只占一个字节,它只能存放0~255范围内的整数。
例2.4大小写字母的转换
main()
{
chara1,a2;
a1=´a´;a2=´b´;
a1=a1-32;a2=a2-32;
printf(″%c%c\n″,a1,a2);
}
运行结果为:
AB
程序的作用是将两个小写字母a和b转换成大写字母A和B。
´a´的ASCII码为97,而´A´为65,´b´为98,´B´为66。
从ASCII码表中可以看到每一个小写字母比它相应的大写字母的ASCII码大32。
四、字符型数据的输入和输出
1.getchar函数和putchar函数
例2.5#include″stdio.h″
main()
{
charc;
c=getchar();
putchar(c);
}
在运行时,如果从键盘输入字符´a´
a↙(输入´a´后,按回车键)
a(输出变量c的值´a´)
注意:
getchar()只能接收一个字符。
putchar()也只能向终端输出一个字符。
在使用getchar函数和putchar函数时,程序的首部需使用预编译命令″#include″stdio.h″。
2.scanf函数和printf函数
例2.6main()
{
charc1,c2;
scanf(″%c%c″,&c1,&c2);
printf(″%c%c″,c1,c2);
}
若输入为ab↙
则输出为ab
在使用scanf函数和printf函数输入输出字符型数据时,使用″%c″格式控制,用来输入输出单个字符。
注意,在用″%c″格式输入字符时,空格将以有效字符输入:
scanf(″%c%c%c″,&c1,&c2,&c3);
若输入aVbVc↙
则将字符´a´送给c1,字符空格´V´送给c2,因为空格也是一个有效字符,字符´b´送给c3。
%c只需要读入一个字符,用了空格做间隔,所以会出现这样的问题。
五、字符串常量
字符串常量是用双引号括住的字符序列。
如:
″Howdoyoudo″,″CHINA″,″a″等都是字符串常量。
可以输出一个字符串,如printf(″Howdoyoudo.″);
注意:
不要将字符常量与字符串常量混淆。
´a´是字符常量,″a″是字符串常量,二者不同。
C规定:
在每个字符串的结尾加一个“字符串结束标志”以便系统据此判断字符串是否结束。
以´\0´作为字符串结束标志。
´\0´是ASCII码为0的字符,从ASCII码表中可以看到ASCII码为0的字符是“空操作字符”不引起任何操作。
2.5变量的初始化
变量的初始化,就是在定义变量的同时给变量赋予初值。
可以采用说明变量的类型,然后再赋值的方法,也可以对变量类型说明的同时,给变量赋初值。
1.先定义后赋值
inta,b,c;
a=2;
b=5;
c=10;
2.定义和赋值同时进行
inta=5;
shortb=10;
charc=´a´;
floatd=7.8;
3.对几个变量同时赋一个初值
inta1=10,a2=10,a3=10;
不可以写成:
inta1=a2=a3=10;
但是也可以写成:
inta1,a2,a3;
a1=a2=a3=10;
初始化不是在编