C语言程序设计教案13141李江平.docx
《C语言程序设计教案13141李江平.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教案13141李江平.docx(68页珍藏版)》请在冰豆网上搜索。
![C语言程序设计教案13141李江平.docx](https://file1.bdocx.com/fileroot1/2023-6/13/3e0adb2e-2494-4163-9e7f-d3023ddafc9e/3e0adb2e-2494-4163-9e7f-d3023ddafc9e1.gif)
C语言程序设计教案13141李江平
广东科学技术职业学院
教案
2013~2014学年第一学期
学院(系、部)
机械与电子工程学院
课程名称
单片机应用系统设计与调试1
授课班级
12应电2
主讲教师
樊秋月
职称
讲师
使用教材
《C语言程序设计实用教程》吉顺如编
广东科学技术职业学院教务处制
二○○八年一月
教案(首页)
课程名称
C语言程序设计
课程编码
05DD001
总计:
72学时
学分
4
讲课:
36学时
上机:
36学时
类别
必修课(√)选修课()理论课(√)实验课(√)
任课教师
樊秋月
职称
讲师
授课对象
12应电2
教材
参考资料
教材:
《C语言程序设计教程》吉顺如编机械工业出版社
参考资料:
《C语言程序设计》谭浩强著清华大学出版社
《C语言程序设计实用教程》魏海新编机械工业出版社
《C语言程序设计教程习题解答与实训》宗大华编人民邮电出版社
教学方法教学手段
本课程是一个实践性非常强的课程。
要求学生注重实践,在掌握C语言的基本语法后,重点应放在提高编程能力的训练上;重视学生课外作业、提问和实验记录的考查;采取笔试考核方式,侧重考核学生对C语言的基本语法与程序设计基本思想的掌握程度,以及考核学生阅读程序、修改程序和编写程序的能力。
考核方式
本课程考核采取形成性考核方式进行,由形成性考核的各项过程成绩组成,分数比例为:
总评成绩=平时学习表现(10%)+作业(10%)+实训项目(20%)+期末考试成绩(60%)
学生创新精神与实践能力培养方法
本课程教学中采用“问题探究”教学法,此法在C语言教学中是一种相当有用的教学方法。
这种教学法能够充分发挥学生的思维,突出学生的主体作用,能有效地培养学生的分析问题与解决问题的能力。
其他要求
C语言程序设计课程教案
授课时间
第1周星期一第5-7节
星期四第5-7节
课次
2
授课方式
(请打√)
理论课√讨论课□实验课√习题课□其他□
课时
安排
6
授课题目(教学章、节或主题):
第一章绪论
1.1C语言的发展简史和特点
1.2C语言程序的结构与书写规则
1.3C语言的语句和关键字
1.4C语言程序的编辑与运行
教学目的、要求(分掌握、熟悉、了解三个层次):
了解C语言的特点
掌握C语言的编程环境以及上机操作
教学重点及难点:
C语言基本词法
教学基本内容
方法
手段
1.1、C语言的发展简史和特点
1.2、C语言程序的结构与书写规则
1.3、C语言的语句和关键字
1.标识符:
在程序中使用的变量名、函数名、标号等统称为标识符。
2.运算符
3.C语言的关键字
1.4C语言程序的编辑与运行
C语言程序的上机步骤
1.启动TurboC:
tc↙
2.启动编辑源程序。
3.编译。
4、链接。
讲授
作业和思考题:
P29第一大题
课后小结:
应尽量熟悉C语言的标识符等重点环节。
教学效果良好。
授课时间
第1周星期一第5-7节
星期四第5-7节
课次
2
授课方式
(请打√)
理论课√讨论课□实验课√习题课□其他□
课时
安排
6
授课题目(教学章、节或主题):
第一章绪论
C语言程序的编辑与运行
教学目的、要求(分掌握、熟悉、了解三个层次):
了解C语言的特点
掌握C语言的编程环境以及上机操作
教学重点及难点:
C语言编译环境的使用
教学基本内容
方法
手段
熟悉C语言程序的上机步骤:
1.启动TurboC:
tc↙
2.启动编辑源程序。
3.编译。
4、链接。
学生自己上机,完成实训报告1
实训
作业和思考题:
课后小结:
应尽量熟悉C语言的编译环境(TC2.0)等重点环节,特别是路径的设置有点不易掌握。
教学效果良好。
授课时间
第2周星期一第5-7节
星期四第5-7节
课次
3
授课方式
(请打√)
理论课√讨论课□实验课√习题课□其他□
课时
安排
6
授课题目(教学章、节或主题):
第二章数据类型、运算符与表达式
2.1常量和变量
2.2C语言的数据类型
2.3整型数据
2.4实型数据
2.5字符型数据
教学目的、要求(分掌握、熟悉、了解三个层次):
1、掌握常量与变量的区别
2、掌握各种数据类型的特点
教学重点及难点:
各种数据类型的定义和使用
教学基本内容
方法
手段
2.1常量和变量
1.什么是标识符
它是用来表示变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。
在C语言中各种名称都是由标识符来表示的,就相当于是一个人的名字一样。
2.标识符的命名规则
(1)C语言中规定,标识符只能用字母、数字、下划线三种字符构成,而且标识符的第一个字符必须是字母或下划线。
(2)标识符的长度有一定的限制。
(3)标识符中大写字母和小写字母被认为是不同的字符。
2.1.1常量
在程序运行过程中,其值不能被改变的量称为常量。
比如程序中的具体数字,字符等等。
常量被分为不同的类型,比如:
2属于整型常量,-3.5属于实型常量,’A’为字符型常量等等。
2.1.2变量
在程序运行过程中,其值能被改变的量称为变量。
变量的名称用标识符来表示。
变量也分为不同的类型,如整型变量、实型变量、字符型变量等等。
1.变量名的命名原则(与标识符命名规则相同)
2.变量的强制定义规则(先定义、后使用)
2.2C语言的数据类型
对变量的说明可以包括三个方面:
·数据类型存储类型·作用域
在C语言中,数据类型可分为:
基本数据类型,构造数据类型,指针类型,空类型四大类。
2.3整型数据
整型量包括整型常量、整型变量。
整型常量就是整型常数。
在C语言中,使用的整型常数有八进制、十六进制和十进制三种。
2.3.1整型常量
1.八进制整型常数
八进制整型常数必须以0开头,即以0作为八进制数的前缀。
数码取值为0~7。
八进制数通常是无符号数。
2.十六进制整型常数
十六进制整型常数的前缀为0X或0x。
其数码取值为0〜9,A〜F或a〜f。
3.十进制整型常数
十进制整型常数没有前缀。
其数码为0~9。
2.3.2整型变量
在程序中用某个量来表示整数,这个量的值在程序运行过程中可能发生改变。
把这样的量称作整型变量。
在C语言中,为了更加精确的描述整型数据,又把整数进一步细分为六种类型。
它们的区别主要在于表示整数的范围不同。
(见表2-1)
2.4实型数据
2.4.1实型常量
1.十进制形式。
这种形式的数由整数部分、小数点和小数部分组成。
如:
1.24,0.345,.222,234.0,333.0.0等。
2.指数形式。
这种形式用来表示一些比较大的数值,它表示生活中像123x1022这样的数值。
这种形式也由三部分组成,分别是是实数部分、字母E或e、整数部分。
2.4.2实型变量
在程序运行过程中可以改变其值的实型量被称为实型变量。
实型变量分为单精度(float)和双精度(double)两种类型。
在定义实型变量时用以下的方式:
floatx;(定义x变量是用来表示float型数据的)
doubley,z;(定义y,z变量是用来表示double型数据的)
在一般情况下,float型的数据在内存中占4个字节的空间,double型的数据在内存中占8个字节的空间。
对于程序中的实型数据来说,float型的数据提供7位有效数字,double型的数据提供15~16位的有效数字。
2.5字符型数据
2.5.1字符型常量
C语言中的字符常量是用单引号(’)括起来的一个字符。
如’A’、’x’、’D’、’?
’,’3’、’X’等都是字符常量。
对于字符来说,’x’和’X’是两个不同的字符。
C语言中还规定有另一类字符常量,它们以\开头,被称作转义字符。
如前面已多次遇到的’\n’这个符号,它表示换行符号。
字母n在字符\后改变了原来的意义,所以称这类以\开头的字符为转义字符。
2.5.2字符型变量
字符变量是用来存放这符常量的,一个字符变量中只能存放一个字符。
字符变量的定义形式如右:
charx1,x2;
定义了两个字符型变量。
可以使用赋值语句对变量x1和x2赋值,如:
x1=’x’;x2=’y’;字符型数据(常量和变量)在内存中占一个字节的空间
系统在表示一个字符型数据时,并不是将字符本身的形状存入内存,而只是将字符的ASCII码值存入内存。
在内存中所有的数据又是以二进制的形式存放的。
2.5.3字符串常量
字符串常量是由一对双引号括起的字符序列。
例如:
“CHINA”,“Cprogram”,“$12.5”等都是合法的字符串常量。
字符串常量和字符常量是不同的量。
它们之间主要有以下区别:
1.字符常量由单引号括起来,字符串常量由双引号括起来。
2.字符常量只能是单个字符,字符串常量则可以含一个或多个字符
3.可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。
在C语言中没有相应的字符串变量,这是与BASIC语言不同的。
但是可以用一个字符数组来存放一个字符串常量。
在数组一章内予以介绍。
4.字符常量占一个字节的内存空间。
字符串常量占的内存字节数等于字符串中字节数加1。
增加的一个字节中存放字符”\0”(ASCII码为0)。
这是字符串结束的标志。
讲授
作业和思考题:
1、如何定义各种数据类型?
格式如何?
2、如何使用各种变量?
课后小结:
应尽量熟悉各种数据类型的特点和数值范围,各种运算符的使用等重点环节。
学生对数值范围、各种数据类型的转换理解不清。
课时间
第2周星期一第5-7节
星期四第5-7节
课次
3
授课方式
(请打√)
理论课√讨论课□实验课√□习题课□其他□
课时
安排
6
授课题目(教学章、节或主题):
第二章数据类型、运算符与表达式
2.1常量和变量2.2C语言的数据类型2.3整型数据2.4实型数据2.5字符型数据
教学目的、要求(分掌握、熟悉、了解三个层次):
掌握C语言的数据类型,熟悉如何定义一个变量。
掌握不同的类型数据之间的赋值规律。
进一步熟悉C程序的编辑、编译、连接和运行的过程。
教学重点及难点:
各种数据类型的范围
教学基本内容
方法
手段
实训内容:
1、根据实验指导书上内容,阅读有关程序
2、将程序输入计算机运行,分析结果
3、上交实训报告
实训
作业和思考题:
课后小结:
学生对数值范围、各种数据类型的转换理解不清。
编写程序有困难。
授课时间
第3周星期三第3.4节
星期五第1.2节
课次
2
授课方式
(请打√)
理论课√□讨论课□实验课√习题课□其他□
课时
安排
4
授课题目(教学章、节或主题):
2.6算术运算与算术表达式
2.7赋值运算与赋值表达式
2.8C语言特有的运算和运算符
教学目的、要求(分掌握、熟悉、了解三个层次):
掌握赋值方法
掌握各种运算符的使用
教学重点及难点:
自增、自减运算符
教学基本内容
方法
手段
2.6算术运算与算术表达式
2.6.1算术运算符
在C语言中进行算术运算的符号共有五种:
+加法运算符或正值运算符-减法运算符或负值运算符*乘法运算符/除法运算符
%模运算符或称求余运算符
提醒学生特别注意:
/除法运算符,两个整数相除得到是整数
2.6.2算术表达式
用算术运算符号和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为算术表达式。
在C语言中规定,对表达式求值时,按运算符的优先级别高低,从高到低进行运算。
2.7赋值运算与赋值表达式
2.7.1赋值运算符
1.什么是赋值运算符
前面程序中经常见到的“=”号就是赋值运算符。
赋值运算符的使用格式:
变量=表达式,它的作用是将一个表达式的值赋给一个变量。
如:
b=88就是将常量88赋值给变量b。
提醒学生特别注意:
如果赋值运算符两侧的变量和表达式的类型都为数值型时,系统自动进行类型转换。
以赋值号左边的变量类型为准。
赋值符和数学中的等号是有区别的。
2.7.2复合赋值运算符
定义:
在赋值运算符之前加上其它运算符,则可以构成复合赋值运算符。
例如:
x+=3等价于x=x+3;x*=y+z等价于x=x*(y+z)
可以这样理解,对于A+=B这样的式子,相当于将A+复制到=的右边变成A=A+B。
若B是一个表达式,则相当于B的两边有一个括号
C语言中规定,可以有十种复合运算符:
+=-=*=/=%=<<=>>=&=^=|=
2.7.3赋值语句与赋值表达式
赋值表达式的一般形式:
<变量><赋值运算符><表达式>
2.7.4数据的类型转换
变量的数据类型是可以转换的。
转换的方法有两种,一种是自动转换,一种是强制转换。
在这里只介绍自动转换,强制转换在2.8介绍。
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。
Floatdoublelongintchar
2.8C语言特有的运算和运算符
C语言为程序员提供了非常丰富的运算符,读者可以自己查阅后面的附录,这里对其特有的几个运算做一下介绍
1.自增、自减运算符
++是自增运算符。
++k或k++都是让变量k的值加1。
--是自减运算符。
--k或k--都是让变量k的值减1。
2.逗号运算符
C语言中逗号","也是一种运算符,称为逗号运算符。
其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。
其一般形式为:
表达式1,表达式2
其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。
3.求字节数运算符sizeof()
sizeof运算符是测试变量、表达式或类型名所占用的字节数。
有两种用法:
sizeof<表达式>:
测试表达式所占用的字节数。
sizeof<类型名>:
测试类型名所占用的字节数。
4.强制类型转换运算符
根据给定的数据,产生一个新类型的数据。
来看下面的例子:
(float)x/*将变量x转换成float类型*/
(int)x+y/*将变量x转换成整型类型后再和变量y相加*/
强制类型的应用格式为:
(类型)(表达式)
这个式子说明,要将第二个括号中的表达式的运算结果的类型强制变为第一个括号中说明的类型。
讲授
作业和思考题:
P29第2、3、4题
课后小结:
各种运算符的使用是重点环节。
学生对自增自减符理解有困难。
授课时间
第3周星期一第5-7节
星期四第5-7节
课次
3
授课方式
(请打√)
理论课√讨论课□实验课√□习题课□其他□
课时
安排
6
授课题目(教学章、节或主题):
第二章数据类型、运算符与表达式
2.6算术运算与算术表达式
2.7赋值运算与赋值表达式
2.8C语言特有的运算和运算符
教学目的、要求(分掌握、熟悉、了解三个层次):
掌握不同的类型数据之间的赋值规律。
学会使用C语言的有关的运算符和表达式。
进一步熟悉C程序的编辑、编译、连接和运行的过程。
教学重点及难点:
各种运算符的使用
教学基本内容
方法
手段
实训内容:
实训3
1阅读程序,写出结果
2自己编写程序
3上交实训报告
实训
作业和思考题:
课后小结:
各种运算符的使用是重点环节。
学生对自增自减符理解有困难。
授课时间
第4、5周星期三第3.4节
星期五第1.2节
课次
4
授课方式
(请打√)
理论课√□讨论课□实验课√习题课□其他□
课时
安排
8
授课题目(教学章、节或主题):
3.1格式化输出――printf函数
3.2格式化输入――scanf函数
3.3单个字符输入输出――getchar函数和putchar函数
3.4顺序结构设计举例
教学目的、要求(分掌握、熟悉、了解三个层次):
了解程序设计的三种结构
掌握格式化输出函数的使用
掌握格式化输入函数的使用
了解顺序结构设计
教学重点及难点:
格式化输出和输入函数
教学基本内容
方法
手段
1、结构化程序设计的三种基本结构
在结构化程序设计方法中,有三种基本的控制结构。
这三种基本结构是:
顺序结构、选择结构和循环结构。
3.1格式化输出——printf函数
3.1.1printf函数的格式
1.格式:
printf(“格式控制字符串”,输出表列);
例:
printf(“%d,%f”,a,b);一条printf语句可输出多个值。
2.功能:
向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。
其中,格式控制字符串是指%格式说明字符与普通字符的交互序列。
输出表列中的常量、变量和表达式与控制字符串中的“格式说明字符”个数相等并且类型对应一致。
3.1.2printf函数的格式说明项
主要介绍以下控制字符:
d、o、x、u、c、s、f、e、g,不同的控制字符用以输出不同类型的数据。
(1)%d格式
①%d格式用来输出十进制整数,按数据的实际长度输出。
②可以对输出数据所占字节位数加以限制,方法是在%和d之间加一整数,整数可正可负。
③%ld格式,当输出的数据大于32767时,不能再用%d格式,这时应该用长格式%ld输出:
(2)%o格式
%o以八进制形式输出整数,其机理是把整数在内存中的ASCII编码由低位向高位三位一组进行分节,每一节用一个八进制数码表示,这样如果原来的数据为负,则符号位的1也被作为八进制数的一部分加以处理了
(3)%x格式(或%X)
这是以十六进制形式输出整数,其机理和八进制输出一样,只是它是对二进制编码按四位一组进行分节,每节用一个十六进制数码表示,同样也不考虑符号。
如:
(4)%u格式
%u以十进制形式输出无符号整数。
可以用%u格式输出定义为其他整数类型的数据,用其他输出整数的格式也可以输出定义为无符号整数的数据,只是要注意,这两种情况只能在正整数的区间内使用。
(5)%c格式
这种格式输出一个字符,和字符ASCII编码对应的整数也以字符形式输出,并可以为其指定长度。
(6)%s格式
这个格式用来输出字符串。
输出字符串前端的部分字符格式%.s。
这种格式指明:
在m列宽度中输出字符串的前n个字符,当m(7)%f格式
①以%f格式输出浮点数时,整数部分全部输出,小数部分输出6位,但输出的不一定全是有效数字。
对单精度数只有左边7位有效,而对双精度只有前16位有效。
②也可以指定输出的宽度和小数位数,如:
printf(″f=%10.2f\n″,123.456);输出:
f=123.46
输出宽度中包含小数点位数,小数部分进行四舍五入
(8)%e格式(或%E)
这种格式是以指数形式输出浮点数,包括单精度和双精度数。
输出时,尾数的整数部分只有1位,系统自动指定尾数的小数部分宽度和指数部分的宽度。
对此不同的系统有不同的规定。
3.2格式化输入——scanf函数
3.2.1scanf函数的格式
1.格式:
scanf(“格式控制字符串”,地址表列);
如:
scanf(“%d,%d”,&a,&b);
2.功能:
用来输入若干个任意类型的数据。
其中,格式控制字符串的含义同printf()函数的格式控制相似,以%开始,以一个格式字符或附加格式字符结束。
地址列表是由若干个地址组成的,可以是变量的地址或字符串的地址。
在C语言中用“&”加上变量名表示变量的地址,如有变量a,则a的地址为&a。
3.使用scanf函数时需注意以下几点:
(1)对unsigned型数据,以%d或%o或%x格式输入,不使用%u说明符。
(2)输入数据时不能规定精度。
如:
scanf(“%6.2f”,&a);是不可以的,不能试图输入21256而使a的值为3212.56。
(3)此函数中的“格式控制”后面应当是变量地址,而不是变量名。
如:
scanf(“%d,%d”,a,b);是不对的
(4)若在“格式控制字符串”中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。
如:
scanf(“a=%d,b=%d”,&a,&b);
输入数据时格式如下:
a=3,b=4↙(回车)。
(5)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符。
如:
scanf(“%c%c%c”,&a,&b,&c);若输入ghj回车时,字符‘g’送给变量a,字符空格‘’送给变量b,字符‘h’送给变量c。
(6)输入数据时遇空格、回车,“跳格”(TAB)键、输入宽度结束(如“%3d”,只取3列)、非法输入等的情况下认为该数据输入结束。
3.3getchar()函数和putchar()函数
3.3.1字符输入函数getchar()
1.格式:
getchar();
2.功能:
从终端(一般是键盘)输入一个字符。
此函数没有参数,函数的值就是输入的字符。
3.使用getchar()函数时需注意以下几点:
(1)getchar()只能接收一个字符。
如c=getchar();从键盘输入一个字符给变量c。
(2)对于getchar()函数,在TurboC中还有两个重要的变形getche()和getch(),它们的区别如下:
getchar()从键盘上读入一个字符,屏幕显示该字符,按回车键返回编辑状态。
getche()从键盘上读入一个字符,屏幕显示该字符,立即进入编辑状态。
getch()从键盘上读入一个字符,屏幕不显示该字符,立即进入编辑状态
3.3.2字符输出函数putchar()
1.格式:
putchar(c);其中参数c代表字符变量或整型变量。
2.功能:
向终端(一般为显示屏)输出一个字符。
例如:
putchar(‘A’);输出大写字母A
putchar(x);输出字符变量x的值
putchar(‘\n’);换行对控制字符则执行控制功能,不在屏幕上显示。
讲授
案例教学
作业和思考题:
P41第14、15题
课后小结:
应尽量熟悉格式化输入输出函数等重点环节,要学生灵活掌握输出格式的控制,掌握输入的方法
授课时间
第4、5周星期三第3.4节
星期五第1.2节
课次
4
授课方式
(请打√)
理论课√讨论课□实验课√□习题课□其他□
课时
安排
8
授课题目(教学章、节或主题):
第二章数据类型、运算符与表达式
3.1格式化输出――printf函数
3.2格式化输入――sc