C语言教案.docx
- 文档编号:26807635
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:20
- 大小:23.54KB
C语言教案.docx
《C语言教案.docx》由会员分享,可在线阅读,更多相关《C语言教案.docx(20页珍藏版)》请在冰豆网上搜索。
C语言教案
第一讲C语言简述
教学目的和要求:
(1)了解C语言基础知识
(2)了解C语言模型
教学重点:
程序设计与算法概述。
教学难点:
C程序的符号系统。
教学方法:
以书本上的例子,让学生明白C语言的功能。
教学课时:
4课时
教学手段:
电子课件及实例
教学过程:
一、教学内容:
1.1程序设计与算法概述
机器语言
机器指令(由0和1组成),可直接执行
难学、难记
依赖机器的类型
汇编语言
用助记符代替机器指令,用变量代替各类地址。
克服记忆的难点
其他与机器语言类似
高级语言
类似数学语言、接近自然语言、具有通用性和可移植性,不依赖具体的计算机类型。
将汇编源程序翻译为目标程序的过程称为汇编
汇编过程:
详见课件1。
1
1.1.2算法
为解决某一应用问题而采用的解题步骤
算法的描述方式
用自然语言描述算法
用流程图描述算法
用N-S结构图描述算法
1.1.3结构化程序设计
顺序结构程序:
按照书写顺序依次执行语句
选择结构程序:
按照条件判断选择执行语句
循环结构程序:
通过条件控制循环执行语句
三种基本结构的共同点:
都是只有一个入口和一个出口;
结构内的每一个框都有机会被执行;
结构内没有死循环。
如果一个程序仅包含这三种基本结构(由这些基本结构顺序组成),则称为结构化程序。
结构化程序设计的基本原则:
采用自顶向下、逐步细化的方法进行设计;
采用模块化原则和方法进行设计。
即将大型任务从上向下划分为多个功能模块,每个模块又可以划分为若干子模块,然后分别进行模块程序的编写;
每个模块都是用结构化程序实现,即都只能由三种基本结构组成,并通过计算机语言的结构化语句实现。
1.2C语言概述
C语言的发展,C语言的特点,C程序的基本结构,C程序的执行过程
语言简洁,表达能力强,易于理解
只有32个关键字,9种控制语句
数据构造能力强
运算符丰富
程序书写格式自由
可直接访问物理地址,实现对硬件和低层系统软件的访问
语言生成的代码质量高
可移植性好
【例1.2】输入两个数,输出其中的大数。
intmax(intx,inty)/*max函数*/
{intz;
if(x>y)z=x;elsez=y;
return(z);
}
main()/*主函数*/
{inta,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);/*调用max函数,求a和b中大数*/
printf("max=%d\n",c);
}
C程序
由函数构成
必须有,且只能有一个main(主函数)
总是从main函数开始执行
由函数首部和函数体组成
函数首部指定函数名、函数参数、类型
函数体从{开始,到}结束
函数内有语句
包括说明性语句、可执行语句
以;表示语句结束
注释
可以出现在程序的任何位置
用/*和*/括起来,必须成对出现
书写格式
C语言没有行的概念,书写格式自由。
习惯小写字母,缩进格式。
C语言执行过程
1.源程序文件的建立和编辑
编写源程序,形成.C文件
需用编辑工具:
tc.exe、记事本
2.编译
编译源程序,形成目标程序.Obj文件
需用编译工具:
tcc.exe
3.连接
连接OBJ文件和调用的库函数,形成运行程序.exe文件
需用连接工具:
tlink.exe
4.运行.exe文件
1.3C程序的符号系统
基本字符
标识符
大写英文字母:
ABC……XYZ
小写英文字母:
abc……xyz
数字:
012……9
空白符:
空格符、换行符、制表符
特殊字符:
+-*/<>()[]{}_=!
#%.,;:
‘“|&?
$^\~
由字母、下划线和数字组成的字符序列
用于程序中的变量、符号常量、数组、函数、数据类型等操作对象的名字
1.系统定义标识符
具有固定名字和特定含义的标识符
分为关键字和预定义标识符
2.用户定义标识符
用于对用户使用的变量、数组、函数等操作对象进行命名
数据类型:
int、char、float、double、short、long、void、signed、unsigned、enum、struct、union、const、typedef、volatile
存储类别:
auto、static、register、extern
语句命令字:
break、case、continue、default、do、else、for、goto、if、return、switch、while
运算符:
sizeof
系统标准库函数
scanf、printf、putchar、getchar、strcpy、strcmp、sqrt等
编译预备处理命令
include、define等
用户定义标识符
必须以字母或下划线“_”开头
不能含有除字母、数字和下划线“_”外的其他字符
标识符中大小写字母含义不同
关键字必须用小写字母。
不允许使用关键字为变量、数组、函数等操作对象命名
预定义标识符允许用户对它们重新定义,当重新定义后将改变它们原来的含义
正确区分哪些是合法标识符,哪些是不合法标识符。
其中合法标识符中哪些是关键字,哪些是预定义标识符,哪些是用户定义标识符。
Abcdefine2xdoublestudent
m+ya#b-4_1While
intletx%ynamedo
πwςtmCtrlswicthinclude
三、本课小结
掌握好C语言基本概念及语法。
五、布置作业
章节后的练习。
第二讲C语言基础
教学目的和要求:
1、掌握C语言的数据类型
2、运算符和表达式
3、教学重点:
C语言的数据类型。
教学难点:
运算符和表达式。
教学方法:
图形相结合的方法。
教学课时:
4课时
教学手段:
电子课件及实例
教学过程:
一、教学内容:
2.1例子
【例2.1】计算圆的面积,半径为5cm。
程序如下:
main()
{floatr,area;
r=5;
area=3.14*r*r;
printf("%f\n",area);
}
程序中用到的数据:
r、area、5、3.14
对数据进行的运算:
*、=
运算结果是输出圆的面积:
78.500000
计算机操作处理时,要完成以下工作:
在内存中给半径r和运算结果area开辟存储空间,存放它们的值。
应该留多大的地方来存放它们的值?
数据5和3.14与r、area不同,它们是在编写程序时就给出确定的值,在运算过程中不会改变。
这样的数计算机怎么处理?
对整数5和小数3.14,计算机存放时是否有区别?
1.整型数据的类型
基本整型数据int,分配2Byte
短整型数据shortint,分配2Byte
长整型数据longint,分配4Byte
整型数据均以二进制补码形式存储
例如:
109=(1101101)2
要区别:
+109和-109
方法是:
将符号也数码化
即:
正的符号+用0表示
负的符号-用1表示
∴计算机中的数表示方法是:
符号位+二进制数值(以8bit为例)
+109→+1101101→01101101
-109→-1101101→11101101
需要判断符号是否相同:
如果相同,结果符号不变,并进行绝对值相加
如果不同,结果取绝对值大的数的符号,并进行绝对值相减
解决的方法是:
使用反码或补码的表示方法(按前述表示的编码称为原码),即能将减法一律转换为加法。
正数:
原码、反码、补码相同
符号位为0,数值为对应的二进制数。
+109
[01101101]原=[01101101]反=[01101101]补
负数:
原码符号位为1,数值为绝对值的二进制数。
-109[11101101]原
反码符号位为1,数值为绝对值的二进制数各位变反。
-109[10010010]反
补码符号位为1,数值为绝对值的二进制数各位变反加1。
-109[10010011]补
无符号的整型数据unsignedint
区别是将最高位看作符号位还是数据位
有符号的整型数据signedint
例如:
1111111110101000
作为有符号数使用时,最高为符号位
为负数,值是:
-88(再求一次补)
作为无符号数使用时,最高为数据位
为无符号的数,值是:
65448
2.2主要内容:
常量
变量
标准库函数
在运行程序的过程中值保持不变的量
1.整型常量
十进制:
0~9
八进制:
0~7,以0开头
十六进制:
0~9,A~F/a~f,以0x或0X开头
例如:
100-80+123
0100240100073
0x380x100X100XFF0x0a
整型常量的类型:
根据值大小默认类型。
整型常量后面加l或L,则认为是longint型
例如:
123L、0L、432l、0x100l
2.3字符型常量
\0
字符串结束标志
\n
回车换行
\t
跳到下一个输出位置
\"
双引号字符
\ddd
ddd为1到3位八进制数所代表的字符
\xhh
hh为1到2位十六进制数所代表的字符
1.变量的有关概念
在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为变量名。
变量必须“先定义后使用”
系统为变量分配存储单元,存储变量的值。
编写程序时通过变量名来存、取变量值。
2.自加自减符号
++--是单目运算符
有前缀和后缀两种形式
前缀形式:
先自增(自减)再引用;
后缀形式:
先引用再自增(自减);
功能:
前缀形式++a等价于a=a+1
--a等价于a=a–1
后缀形式a++等价于a=a+1
a--等价于a=a–1
当a=5时
⑴++a表达式的值为6,且a=6
⑵a++表达式的值为5,且a=6
⑶b=++a等价于a=a+1;b=a
表达式的值为6,且a=6,b=6
⑷b=a++等价于b=a;a=a+1
表达式的值为5,且a=6,b=5
++和--的运算对象只能是变量(或运算结果是变量的表达式),不能是常量(或运算结果是数值的表达式)。
例如:
5++、(a+2)++不合法。
具有右结合性,结合方向为从右到左。
例如:
–a++等价于-(a++)
如果有多个运算符连续出现时,C系统尽可能多的从左到右将字符组合成一个运算符
例如:
i+++j等价于(i++)+j
-i+++-j等价于-(i++)+(-j)
三、本课小结
掌握好C语言特点及C语言程序特点。
四、布置作业
章节后的练习。
第三讲顺序结构程序设计
教学目的和要求:
C语言的语句类型
数据输出
数据输入
顺序结构程序设计
主要内容:
说明性语句
表达式语句
控制语句
复合语句
掌握C语言的语句类型
熟悉顺序结构程序设计
教学重点:
顺序结构程序设计。
教学难点:
数据的输入输出。
教学方法:
图形相结合的方法。
教学课时:
4课时
教学手段:
电子课件及实例
教学过程:
一、教学内容:
3.1.1对程序中使用的变量、数组、函数等操作对象进行定义、声明的描述语句
只起说明作用,不产生可执行的机器指令代码。
例如:
inta,b;
floatfunction(int,int);
表达式后面加一个分号,构成表达式语句
x=3;y=y+5;
x=a-b&&c||d;
printf("x=%d,y=%d\n",x,y);
sort(a,10);
注意:
①分号是语句必不可少的一部分
②单独的一个分号“;”构成一个空语句
例如:
;(空语句,是最简单的C语句)
1.选择分支控制语句
if()…else…
switch(){…}
2.循环控制语句
for()…
while()…
do…while()
3.其他控制语句
break、continue、goto
return
用一对花括号“{}”括起来的若干条语句
花括号中可以是说明语句、表达式语句、控制语句,也可以是复合语句
例如:
⑴if(a>b){max=a;min=b;}
⑵for(n=1;n<10;n++)
{p=n+p;
if(p>=100)
{printf(“%d\n”,p);
break;
}
}
复合语句中如果有说明性语句,应该写在可执行语句的前面
例如:
main()
{inta,b;
a=b=100;
{floatc=10.23;
printf("%f\n",c);
}
printf("%d%d\n",a,b);
}
函数调用的一般形式
putchar(ch)
功能:
在标准输出设备(即显示器屏幕)上输出一个字符。
例如:
putchar('b');
putchar('\n');
putchar('\101');
putchar(st);
printf函数格式控制中的格式说明符与输出参数的个数和类型必须一一对应。
格式说明符的%和后面的描述符之间不能有空格。
除%X、%E、%G外类型描述符必须是小写字母。
长整型数应该用%ld(或%lo、%lx、%lu)格式输出,否则会出现输出错误。
printf函数的参数可以是常量、变量或表达式。
在计算各参数值时,TurboC采用从右至左的顺序求值。
函数调用的一般形式
getchar()
功能:
从标准输入设备(即键盘)上交互输入一个字符。
例如:
getchar();
c=getchar();
printf("%c\n",getchar());
scanf("%d%d%d",&a,&b,&c);
输入3个整型十进制数,以空白符
(空格、tab键或回车键)分隔
scanf("%d,%o,%f",&a,&b,&x);
输入3个数,以“,”分隔
scanf("a=%d,b=%d",&a,&b);
输入的形式是:
a=32,b=28
(普通字符要照原样输入)
三、本课小结
掌握好C语言的基本输入输出方法。
五、布置作业
章节后面的题目。
第四讲选择结构程序设计
一、教学目的和要求:
4.1if语句
4.1.1if语句的一般形式
4.1.2if语句的嵌套
4.2switch语句
4.2.1switch语句的一般形式
4.2.2break语句
4.3选择结构程序设计举例
教学重点:
IF语句。
教学难点:
SWITCH语句。
教学方法:
投影教学。
教学课时:
4课时
教学手段:
电子课件及实例
教学过程:
•功能:
•计算表达式的值,如果是一个非0值(即逻辑真),就执行内嵌语句,否则(即逻辑假)跳过内
•例如:
⑴if(x>0)m++;
⑵if(a>b)
{c=a;a=b;b=c;}
●语句一般格式
if(表达式)语句1else语句2
●功能:
–计算表达式的值,如果它的值是一个非0值(逻辑真),就执行内嵌语句1,之后跳过内嵌语句2,执行后续语句;否则跳过内嵌语句1,执行内嵌语句2,之后执行后续语句。
●例如:
⑴if(x>0)m++;elsem--;
⑵if(ch>='a'&&ch<='z')
{ch=ch-32;printf("%c\n",ch);}
elseprintf("%c\n",ch);
●语句一般格式
if(表达式1)语句1
elseif(表达式2)语句2
……
elseif(表达式m)语句m
else语句n
●功能:
–依次计算并判断表达式i,为非0时执行后面的语句,都为0时,执行语句n
–无论执行完那个语句分支,都转到后续语句
●输入:
用getchar或scnaf函数
●ch是否为大写字母:
ch>='A'&&ch<='Z'
(或ch>=65&&ch<=90)
●大写字母转换为小写字母:
ch=ch+32
●输出:
用putchar或printf函数
【例4.a】比较两个整数的关系。
#include
main()
{intx,y;
printf("EnterintegerXandY:
");
scanf("%d%d",&x,&y);
if(x!
=y)
if(x>y)printf("X>Y\n");
elseprintf("X elseprintf("X=Y\n"); ⑴if(c<=100) if(c>=50)printf("50<=c<=100\n"); ⑵if(c<=100) if(c>=50)printf("50<=c<=100\n"); elseprintf("c<50\n"); else if(c<=150)printf("100 elseprintf("c>150\n"); ⑶if(c<=100) if(c>=50)printf("50<=c<=100\n"); elseprintf("c<50\n") 思路: •设x和y为float型变量并赋初值; •输入的运算符op为char型变量; •根据op的值(为'+'、'-'、'*'、'/')进行x和y的相加、相减、相乘、相除运算(选择分支); •还要考虑到输入字符不是+、-、*或/时的情况 #include"stdio.h" main() {floatx=100,y=15,z;charop; op=getchar(); switch(op) {case'+': z=x+y;break; case'-': z=x-y;break; case'*': z=x*y;break; case'/': z=x/y;break; default: z=0; } if((int)z! =0)printf("%f%c%f=%f\n",x,op,y,z); elseprintf("%cisnotanoperator\n",op); ●switch语句的书写格式: 语句体本身必须用花括号括起;case和default后面如果有多条语句,则可以不必使用花括号;case和常量表达式之间必须有空格;default可以写在语句体的任何位置,也可以省略不写 ●break语句可以改变case的语句标号作用,终止后续case语句序列的执行。 switch语句和break语句结合,可以实现程序的选择控制(break语句还可以在循环语句中使用) ●允许switch嵌套使用,但同一个switch语句中,任意两个case的常量表达式值不能相同。 例子: main() {intyear,leap; scanf("%d",&year); if(year%4==0&&year%100! =0) leap=1; elseif(year%400==0) leap=1; elseleap=0; if(leap==1) printf("%disaleapyear\n",year); else printf("%disnotaleapyear\n",year); } 四、本课小结 1、学会写程序。 五、布置作业 章节后面的例子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 教案