C语言程序设计教案.docx
《C语言程序设计教案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教案.docx(19页珍藏版)》请在冰豆网上搜索。
C语言程序设计教案
C语言程序设计
CLanguageProgramming
教案
课程编码:
103001
学分:
4学分
学时:
64学时授课40学时上机24学时
授课对象:
管理学院05信管、电商班
开课单位:
计算机学院计算机基础课部
教材:
《C及C++程序设计》,钮焱、许新民主编,科学出版社
《C及C++程序设计实验教程》,徐振平、李振立主编,科学出版社
教学参考书:
《C程序设计》,谭浩强主编,清华大学出版社
C语言程序设计教学方案
一、课程概况
英文名:
CLanguageProgramming
开课单位:
计算机学院计算机基础课部
课程编码:
103001
学时:
64学时,其中授课40学时,上机+机考24学时。
4学分。
授课对象:
机械学院05机自1、2、3、4班
教材:
《C及C++程序设计》钮焱、许新民主编科学出版社
《C及C++程序设计实验教程》徐振平、李振立主编科学出版社
教学参考书:
《C程序设计》谭浩强主编清华大学出版社
二、教学进程表
1、授课教学进程
周次
起止日期
讲课
课程时数
习题(讨论)
实验(实习、上机)
考核
安排
备注
每节章节的内容提要
名称、时数
名称、时数
1
周四12
第一章C语言程序设计初步
2
TC的基本操作2
2
周四12
原码、补码、反码
2
运算符表达式应用2
C语言概述
简单C程序设计2
2
周五12
第二章基本数据类型
2
简单C程序设计2
常量与变量
选择结构程序2
3
周四12
运算符与表达式
2
循环结构程序2
4
周四12
第三章顺序结构程序设计
2
函数变量“值传递”2
基本语句、赋值语句
变量存储属性应用2
格式化输出printf
定义使用指针变量2
4
周五12
单个字符输出putchar
2
指针程序设计2
格式输入scanf
结构体、共用体文件2
单个字符输入getchar
上机测试2
6
周四12
第四章 流程控制语句
2
选择结构程序设计
6
周五12
循环结构程序设计
2
7
周四12
综合习题(机动课时)
2
8
周四12
第五章数组
2
一维数组
二维数组
8
周五12
字符数组
2
9
周四12
第六章函数
2
函数的参数
10
周四12
函数的类型
2
函数的调用
10
周五12
局部变量和全局变量
2
变量的存储属性
11
周四12
第七章指针
2
地址与指针
12
周四12
指针与数组
2
12
周五12
指针与字符串
2
13
周四12
第八章结构体、共用体与枚举
2
14
周四12
第9章文件
2
14
周五12
综合应用(机动学时)
2
三、教学目的
通过课堂讲授和上机实验相结合,组织教学活动,使学生掌握C语言的基本知识,掌握程序设计方法、程序设计过程和技巧;培养学生使用C语言进行程序设计的能力,并能熟练应用TURBOC集成环境进行C语言的编辑、编译、调试、排错和运行。
通过教学活动,对学生进行编程方法和逻辑思维的训练,使学生达到应用C语言编程解决一般问题的水平。
四、重点与难点
1、数据类型、数据的存储,数据的输入输出格式。
先掌握常用数据类型;
2、常量、符号常量、变量的表示与定义;运算符及表达式,包括算术运算、赋值运算、关系运算、逻辑运算、逗号运算、强制类型运算、条件,求字节运算、位运算等运算符的运算级别、结合原则。
3、程序的三种基本结构:
顺序结构、分支选择结构、循环结构;算法分析和编程方法;
4、函数定义、函数调用、函数声明、参数传递,值传送与地址传送,函数的嵌套调用与递归调用,局部变量与全局变量,变量的存储类别与作用域等。
5、一维数组、二维数组、字符数组与字符串,数组作为函数的参数,数组与指针。
6、指针与地址,变量的指针和指向变量的指针变量,数组的指针与指向数组的指针变量,字符串的指针与指向字符串的指针变量,指针与函数,指针数组,指针的指针。
7、结构体与共用体类型的说明、结构体和共用体变量的定义及初始化方法,类型定义typedef的作用;结构体与共用体变量成员的引用方法;数组、结构体、共用体等构造类型数据的使用方法;存储动态分配和释放;链表的基本概念和基本操作。
8、文件类型指针,文件的打开与关闭,文件的读写,文件的基本处理函数。
五、教学方法
C语言的教学活动是由教师组织,学生积极参入的一个完备的思维训练过程,需要教师和学生的密切配合,要发挥教师和学生两方面的积极性,设计好教学方案。
1、精选教学内容:
因为教学的学时少,内容多,教师要精选教学内容,讲清楚课程的主线,通过讲解大量的例题引导学生,扩大学生知识面。
每引入一个新概念,要有相应的例题帮助学生理解这些概念。
2、强化课程知识点:
以课程的知识点作为考点,测试教学情况和学生对知识点的掌握情况。
以全国计算机等级考试的考题组织习题课,强化学生对知识点的理解;
3、作业与实验相结合
给学生布置的作业覆盖每章节的知识点,培养学生阅读程序和编写程序的能力。
作业内容又是实验的基础,将作业和实验结合起来,通过对作业程序的编辑、编译、修改、调试和运行,将理论和实践结合起来,鼓励学生在实验中用不同的程序解决同一问题,做到一题多解,让学生学会,学活C语言程序设计的知识。
真正享受思维逻辑训练的乐趣。
4、三类作业
学生学习过程中要做三类作业,第一类是复习教学内容时先做例题,边做边看,由例题体会知识点所强调的概念。
第二类作业是实验指导书后的作业,这部分作业书上有答案,做完后校对答案,找出没有掌握的知识点,阅读教材,巩固已学的知识。
第一类和第二类作业不用上交;第三类作业是没有给出答案的练习或测试题。
做完之后上机调试论证答案的正确性。
第三类作业随实验报告上交。
5、对学生的要求
学生应该做好课前预习、听课做笔记(或复制教学课件)、复习做作业,阅读程序和编制程序,准备实验内容。
上机时认真调试程序,并作好实验记录,实验后分析实验数据,总结对课程知识点的理解,并书写学习体会。
学生要完成一定数量的作业,要做一些综合类的考题,提倡学生做4套以上全国计算机等考试的试卷。
6、自测与操作考试
完备试题库,提供一定量的考题作为学生自测(或教师抽测)之用,不定期测试,及时检查学生学习情况,修正教学进程。
建议学生参加全国计算机等级考试,以测试自己的实际水平。
六、教学内容和要求
第一章程序设计概论(2学时)
1、教学目的与要求:
掌握程序设计基本技术;掌握算法及算法描述;了解C语言的起源及其特点;掌握C语言程序的基本构架,掌握用TurboC编辑、编译、连接和执行简单C程序的过程;掌握C语言的基本字符集与保留字;领会C语言程序设计的风格。
2、教学内容:
(1)程序设计基本技术;
(2)算法的概念、算法的特征、算法的表示、算法举例
(3)数制与编码(略)
(4)C语言的起源及其特点;
(5)C语言程序的基本构架及执行过程
(6)C语言的基本字符集与保留字
(7)TurboC的基本操作
3、重点难点:
算法的概念、N-S图、常用算法思想;C程序构架;C语言的基本字符集与保留字。
4、作业和实验准备
P10:
1.4习题:
一、判断题;二、填空题;三、选择题
P12:
1.5实验
第二章数据类型、运算符与表达式(4学时)
1、教学目的与要求:
掌握基本数据类型及其常量的表示法;掌握变量的定义及初始化方法;掌握运算符与表达式的概念;掌握C语言的自动类型转换和强制类型转、赋值和复合赋值的概念
2、教学内容:
(1)常量与变量
(2)整型数据
(3)实型数据
(4)字符型数据
(5)变量赋初值
(6)各类数据之间的混合运算
(7)算述运算符与算术表达式
(8)赋值运算符与赋值表达式
(9)逗号运算符与逗号表达式。
3、重点与难点:
数据类型、常用运算符、数学公式转化为C语言表达式;
难点:
逗号表达式、三目运行符、强制类型转、复合赋值表达式。
4、实验要求:
(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
(2)了解不同的类型数据之间赋值的规律。
(3)学会使用C语言的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减运算符的使用。
进一步熟悉C程序的编辑、编译、连接和运行过程。
5、作业及实验准备
P26:
2.16;2.17;2.20;2.34
P32:
实验
第三章顺序结构程序设计(2学时)
1、教学目的与要求:
掌握C语言的基本语句,掌握C语言常用的输入/输出函数的使用方法,掌握数据的存储与输入/输出之间的关系。
2、教学内容:
(1)C语言的基本语句:
表达式语句、函数调用语句、控制语句、空语句、复合语句。
(2)赋值语句与复合赋值语句
(3)数据的输入与输出:
格式化输入/输出函数(printf/scanf)、单字符输入/输出函数(getchar/putchar)
(4)顺序结构程序设计举例
3、重点、难点:
C语句的种类、赋值与复合赋值语句、数据的输入/输出;数据输入/输出中常用的格式控制符和附加说明符。
4、实验要求:
(1)掌握C语言中使用最多的一种语言——赋值语句的使用方法。
(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式字符。
(3)掌握4种输入/输出函数的使用。
5、作业与实验准备
P37:
3.5;3.6;
P38:
实验
做实验报告的预习作业。
第1次综合练习
1、使用键盘输入2个数,输出这2个数的和及差。
2、编写程序,判断某一年是否为闰年,注:
闰年为以下条件之1:
能被4整除但不能被100整除;能被4整除又能被400整除。
3、今年为20XX年,输入月份,输出当月天数。
4、输入一个圆的半径r和一个整型数k,当k=1时,计算圆的面积;当k=2时,计算圆的周长;当k=3时,既要求出圆的面积也要求出圆的周长。
5、编写程序,输出2000~3000年间的所有闰年,要求每输出5个闰年后即换行。
6、输出所有水仙花数,所谓水仙花数即:
(I)是一个3位数(II)其数值等于各位的立方和
7、编写程序打印如下图形
##
####
######
####
##
8、有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
第四章流程控制语句(4学时)
包括选择结构程序设计(2学时)、循环结构程序设计(2学时)
1、教学目的与要求:
掌握简单if形式、双边if…else形式、if-else-if形式的语法结构,掌握switch与break语句的作用。
领会程序设计中构成循环的方法,掌握for循环、while循环、do-while循环语句的使用方法,掌握break、continue语句在循环语句中的作用。
2、教学内容:
(1)关系运算符与关系表达式
(2)逻辑运算符与逻辑表达式
(3)if语句的三种形式:
简单if形式、if…else形式、嵌套if-else-if形式。
If语句的嵌套。
(4)switch/break语句、不带break的switch语句。
(5)goto语句构成循环、while循环语句、do-while循环语句、for循环语句的使用方法。
break与continue语句的功能和使用方法。
(6)循环的嵌套
3、重点难点:
关系运算符与逻辑运算符,具有逻辑值的表达式;分支语句的格式及基本应用。
while循环语句、do-while循环语句、for循环语句;break与continue语句;循环的嵌套。
难点:
switch-case语句中不带break语句。
循环嵌套中的break与continue语句。
4、实验要求:
(1)深入了解关系/逻辑运算表达式。
(2)掌握if语句和switch语句。
(3)掌握dowhile/while/for语句,了解3种循环的区别及多重循环程序
(4)编写常用算法的简单程序。
5、作业与实验准备
P46:
4.4;4.9;4.14;4.17
P49:
实验
分别做“选择结构程序设计”、“循环结构程序设计”实验报告的预习作业。
6、实验报告:
本章做2个实验,选择结构程序设计,循环结构程序设计
第五章数组(4学时)
1、教学目的与要求:
掌握一维数组、二维数组和字符数组的基本概念;掌握数组类型变量的定义与引用;掌握数组元素的引用。
掌握冒泡法排序、选择法排序、求最大值(最小值)、求平均值(和)等基本算法。
2、教学内容:
(1)一维数组的定义、初始化与引用,冒泡法排序、选择法排序,求最大值(最小值)、求平均值(和)等基本算法。
(2)二维数组的定义、初始化与引用,矩阵运算,修改矩阵元素等算法。
(3)字符数组的定义、初始化与引用;字符串的输入/输出,字符处理孙数。
3、重点、难点:
一维数组和二维数组的定义、初始化与引用;字符数组的定义、初始化与引用、常用字符及字符串处理函数。
求最大值(最小值)、求和、求平均值算法。
难点:
冒泡法排序、选择法排序、二维数组的应用、字符数组的应用及字符处理函数。
4、实验要求:
(1)掌握一维数组的定义及初始化、输入、输出的方法。
(2)掌握二维数组的使用。
(3)掌握字符数组和字符串处理函数的使用。
5.作业秘实验准备
P65:
5.20;5.25;5.39;5.40
P70:
实验
做实验报告的预习作业。
6、实验报告:
第六章函数(6学时)
1、教学目的与要求:
掌握函数的定义与调用方法,函数参数的传递方式;变量存储类型及变量的生存期和有效范围;掌握函数的嵌套调用与递归调用;了解带参数的main函数。
2、教学内容:
(1)函数的定义
(2)函数的参数和函数的值
(3)函数的调用
(4)函数的嵌套调用
(5)函数的递归调用
(6)数组作为函数参数
(7)变量作用域,局部变量和全局变量
(8)变量的储属性
3、重点难点:
函数定义、函数调用、函数声明等基本概念,函数的嵌套调用与递归调用,数组作为函数的参数、变量的存储类别与作用域;
难点:
函数参数的值传送与地址传送;函数的递归调用;静态变量。
4、实验要求:
(1)掌握函数的定义、调用、参数传递;
(2)掌握局部变量、全局变量的使用。
(3)了解内部函数、外部函数;
(4)理解宏与函数的区别。
5、作业与实验准备
P79:
6.3;6.4;6.5;6.6
P81:
实验
做实验报告的预习作业。
6、实验报告:
第七章指针(4学时)
1、教学目的与要求:
了解指针与地址的概念;掌握指针变量的定义、初始化及指针的运算;掌握指针与数组、指针数组、指针的指针等知识;了解指针与函数的概念,掌握指针作为函数参数的应用
2、教学内容:
(1)地址与指针
(2)变量的指针和指向变量的指针变量,指针变量的定义、初始化和引用,指针的运算。
(3)指针与数组,指针与一维数组,行指针与二维数组。
(4)字符串的指针与指向字符串的指针变量
(5)指针与函数,指向数组的指针作函数的参数,返回指针值的函数。
(6)指针数组
(7)指针的指针
3、重点难点:
指针与地址的基本概念、指针与变量的关系,指针与数组,指针与字符串、指针数组与指针的指针,指针的应用。
指针是C语言的一个重要概念,是学习的难点。
C语言因为指针变得灵活方便,但不正确的使用指针会带来灾难性的错误。
指针与数组,指针与字符串,指针与函数、指针数组与指针的指针都是学习的难点。
4、实验要求:
(1)掌握指针的定义、指针的初始化、指针的引用方法。
(2)掌握指针的运算、输入输出的方法。
掌握指针变量作为函数参数的应用。
(3)掌握指针访问一维数组和二维数组的方法。
掌握指针访问字符串的方法。
(4)掌握数组与指针变量相互关系。
(5)掌握指向函数的指针、指针的指针、指针数组的使用方法。
5、作业与实验准备
P103:
7.37;7.41;7.44;7.45
P106:
实验
做实验报告的预习作业。
第2次综合练习
1、输入1段电文,将其中字母按如下规律译成密码:
A-ZB-YC-X…a-zb-yc-z…输出加密后的电文
2、输入1行文字,分别统计其中字母、数字、空格、其他字符的个数后输出。
3、输入1行字符,统计单词个数,单词之间用空格分隔。
4、使用随机函数生成10个运动员5项项目的成绩,分别用函数求
(1)每个运动员的总分,找出最高总分对应的运动员
(2)每个项目的最高分
(3)团体总分
5、编写函数使输入整数转换为字符串输出,如793,输出“793”
6、输入任意一串字符(以‘#’结束),将其中大写字母转化为小写字母、小写字母转化为大写字母,其他字符不变进行输出。
7、使用指针处理从键盘输入的字符串,找出ASCII值最小的字符
8、使用指针进行键盘输入2个字符串的复合,如“abcd”和“12345”结合成“a1b2c3d45”
9、使用指针进行键盘输入字符串的反向输出,如“abcd1234”,输出“4321dcba”
第八章结构体与共用体(4学时)
1、教学目的与要求:
掌握结构体和共用体类型说明、结构体和共用体变量的定义及初始化方法;掌握结构体与共用体变量成员的引用;学会存储动态分配和释放,学习链表的基本概念和基本操作,掌握类型定义typedef的作用。
2、教学内容:
(1)结构体声明及结构体类型变量的定义、初始化。
(2)结构体变量的引用。
(3)结构体变量的初始化。
(4)结构体数组
(5)指针与结构体数组
(6)链表
(7)共用体
(8)枚举类型
(9)用typedef定义类型名
3、重点难点:
结构体的基本概念、结构类型及变量的定义、结构数组;链表;共用体类型定义、共用体变量定义及引用,枚举类型的基本概念、typedef定义类型名。
难点:
结构体和共用体的引用、链表操作。
4、实验要求:
(1)掌握结构体变量和结构体数组的定义和引用方法;
(2)掌握共用体变量的定义和引用方法;
(3)了解枚举类型的概念。
5、作业与实验准备
P113:
8.3;8.5;8.8;8.9
P115:
实验
第九章文件(4学时)
1、教学目的与要求:
掌握标准设备输入/输出函数的使用,掌握缓冲文件系统的使用,掌握文件的打开与关闭;文件的读写操作;文件的定位操作。
2、教学内容:
(1)文件的分类
(2)文件类型指针的定义文件的打开与关闭;
(3)文件的读写操作,
(4)文件的定位。
3、重点难点:
文件的基本概念;文件的打开、关闭、文件的读写操作、文件的定位方法。
4、实验要求:
(1)掌握文件的打开和关闭的方法;
(2)掌握文件的操作和文件处理函数。
5、作业与实验准备
P120:
例题5、例题6、例题7、例题8
P125:
实验
第3次综合练习
1、有10个学生,包括学号、姓名、成绩,要求找出成绩最高的学生的学号和姓名
2、利用结构体,输入3个学生的学号、姓名、成绩,计算出平均成绩并打印出学生成绩表(*使用指针)
3、键盘输入字符(以@为结束标志),输出到新文件abc.txt
4、统计并输出文件(abc.txt)中字母、数字、其他字符的个数abc.txt内容自定,下同
5、将1个明文文件(abc.txt)加密输出为123.abc密文文件。
加密算法是将字符的高4位与低4位互换
6、编写应用程序cpy,实现多个文件内容的合并,例:
a.txt内容为aaa#,b.txt内容为bbbbb#,c.txt内容为cccc#,运行cpya.txtb.txtc.txt后,生成total.txt,内容为aaabbbbbcccc