《C语言程序设计》教学大纲备课讲稿.docx
《《C语言程序设计》教学大纲备课讲稿.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》教学大纲备课讲稿.docx(15页珍藏版)》请在冰豆网上搜索。
![《C语言程序设计》教学大纲备课讲稿.docx](https://file1.bdocx.com/fileroot1/2022-12/12/8572347a-2173-4d8a-8cce-6abe2b0398ff/8572347a-2173-4d8a-8cce-6abe2b0398ff1.gif)
《C语言程序设计》教学大纲备课讲稿
《C语言程序设计》教学大纲
《C语言程序设计》教学大纲
课程名称:
中文名称:
C语言程序设计;英文名称:
CLanguageProgramming
课程编码:
161002
学分:
4.5分
总学时:
72学时,其中,理论学时:
52学时;上机学时:
20学时。
适用专业:
全校理工科各专业
先修课程:
计算机基础
执笔人:
审订人:
一、课程的性质与任务
《C语言程序设计》是为全校所有的理工科专业的学生开设的公共基础课,也是一门重要的必修课。
其目的是使学生掌握程序设计的基本方法,培养学生掌握利用计算机处理问题的思维方法与应用能力。
要求学生掌握程序的三种基本结构及结构化的程序设计方法,了解并掌握几种典型的算法,并且能够熟练地运用C语言编写各种应用程序,为进一步学习其它相关课程奠定基础。
二、教学内容与学时分配
第一章程序设计基本概念(3学时)
本章重点:
一、算法及特性;二、结构化程序设计方法。
难点:
算法设计及其表示。
第一节程序和程序设计
一、程序;二、程序设计。
第二节算法
第三节结构化程序设计方法
第四节C语言程序的基本结构
第二章 数据类型、运算符和表达式(5学时)
本章重点:
一、标识符的正确使用;二、各种基本数据类型的使用;三、算术运算符的优先级和结合性;四、表达式计算中的类型转换。
难点:
一、各种类型数据在计算机内存中的存储形式;二、自增自减运算。
第一节C语言的数据类型
第二节常量与变量
第三节整型数据
第四节实型数据
第五节字符型数据
第六节算术运算符与算术表达式
第七节赋值运算符与赋值表达式
一、赋值运算符和赋值表达式;二、复合的赋值表达式;三、自加、自减运算符;四、赋值运算中的类型转换。
第八节逗号运算符与逗号表达式
第三章 顺序结构程序设计(4学时)
本章重点:
一、printf函数;二、scanf函数。
难点:
输入与输出时的格式控制。
第一节C语句概述
第二节赋值语句
第三节数据的输入与输出
一、printf函数;二、putchar函数;三、scanf函数;四、getchar函数
第四节顺序结构程序举例
第四章 选择结构程序设计(4学时)
本章重点:
一、逻辑值的表示、使用及其运算;二、关系运算符的运算规则及关系表达式;三、逻辑运算符的运算规则及逻辑表达式;四、if语句;五、switch语句的形式与执行过程。
难点:
一、逻辑表达式求值时的“非完全求解法”;二、条件运算符具有的自右向左的结合性及条件表达式的求解过程;三、if语句的嵌套使用问题;四、switch语句的执行过程及在switch语句中正确使用break语句的方法。
第一节关系运算和逻辑运算
一、逻辑量及其在C语言中的表示;二、关系运算符和关系表达式;
三、逻辑运算符和逻辑表达式。
第二节if语句
第三节条件运算符和条件表达式
第四节switch语句
第五节语句标号和goto语句(本节内容仅要求一般了解)
第六节选择结构程序举例
第五章循环结构程序设计(6学时)
本章重点:
一、while循环、do-while循环及for循环的构成、执行过程及使用方法;二、循环嵌套的使用方法;三、用循环结构实现的典型算法,如:
累加、阶乘、穷举法、递推法等。
难点:
一、for循环使用时的灵活性,如:
表达式的缺省及其处理、循环体是空语句等;二、多重循环(即循环嵌套)的使用;三、break语句和continue语句的作用和区别。
第一节while语句
第二节do-while语句
第三节for语句
第四节循环的嵌套
第五节break和continue语句在循环体中的作用
一、break语句;二、continue语句。
第六节用if语句和goto语句构成的循环(本节内容仅要求一般了解)
第七节循环结构程序举例
第六章 数组(6学时)
本章重点:
一、各类数组的定义、引用及初始化;二、用字符数组来处理字符串;三、数组应用的典型算法,如:
求最大/最小值、排序等;四、字符串处理函数。
难点:
一、二维数组的存储结构;二、字符数组与字符串的关系;三、字符串的输入输出。
第一节一维数组
第二节二维数组
第三节字符数组
一、字符数组的定义与引用;二、字符数组的初始化;三、用字符数组来存放字符串;四、字符数组的输入和输出;五、用于字符串处理的函数;六、字符数组应用举例。
第七章 函数(6学时)
本章重点:
一、库函数的正确使用;二、函数的定义、调用和说明的方法;三、调用函数和被调用函数之间的数据传递规则;四、函数的递归调用方法。
难点:
一、函数定义、调用和说明三者的关系;二、传值调用、传址调用的含义及使用;三、递归的实现方法。
第一节库函数
第二节函数的定义和返回值
第三节函数的调用
第四节函数的说明
第五节调用函数和被调用函数之间的数据传递
第六节函数的递归调用
第七节程序举例
第八章用户标识符的作用域和存储类型(4学时)
本章重点:
一、作用域与生存期的基本概念;二、局部变量、全局变量的作用域、生存期及各自使用时的特点;三、static说明对局部变量和全局变量的影响;四、扩展全局变量作用域的方法。
难点:
一、4种存储类型变量的说明方式、特点及适用范围;二、静态局部变量的初始化及其对程序的影响;三、全局变量与局部变量同名时的处理。
第一节局部变量、全局变量和存储分类
第二节局部变量及其作用域和生存期
第三节全局变量及其作用域和生存期
第四节函数的存储分类
第九章编译预处理(2学时)
本章重点:
一、不带参数的宏定义;二、文件包含的作用;三、编译预处理命令在程序中的实际作用。
难点:
一、带参数的宏定义的替换过程;二、宏调用与函数调用的区别。
第一节宏定义
第二节文件包含
第三节条件编译(本节内容仅要求一般了解)
第十章指针(4学时)
本章重点:
一、指针和指针变量的概念;二、指针变量的引用;三、一维数组与指针;四、指针变量作为函数的参数。
难点:
一、指针与内存地址的关系;二、指针与数组的地址的关系;三、函数指针;四、数组的三种引用方式(下标法、首地址增量法、指针变量法)。
第一节指针的基本概念
第二节指针变量的定义与引用
第三节函数之间地址值的传递
第四节一维数组和指针
第五节二维数组和指针(本节内容仅要求一般了解)
第六节字符串与指针
第七节函数与指针(本节内容仅要求一般了解)
第十一章 结构体、共用体和用户定义类型(4学时)
本章重点:
一、结构体类型与结构体类型变量的定义;二、结构体类型变量的引用方法、“.”操作符的意义以及其优先级;三、结构体数组的定义形式、初始化及其引用方式;四、指向结构体的指针。
难点:
一、指向结构体的指针;二、结构体数组;三、链表的概念及其对链表的一些简单操作;四、结构体变量的成员与共用体变量的成员在内存中的分布形式;五、结构体变量及结构体指针作为函数的参数。
第一节结构体类型
第二节结构体数组
第三节指向结构体的指针
第四节结构体与函数
第五节链表
第六节共用体(本节内容仅要求一般了解)
第七节枚举类型(本节内容仅要求一般了解)
第八节用typedef说明一种新类型名(本节内容仅要求一般了解)
第十二章 位运算(2学时)
本章重点:
一、位运算符的语义及作用;二、位运算的应用。
难点:
位段的概念及使用。
第一节位运算的概念
第二节位运算举例
第三节位段(本节内容仅要求一般了解)
第十三章 文件(2学时)
本章重点:
一、文件指针的概念;二、文件打开和关闭;三、fscanf函数和fprintf函数。
难点:
各种文件打开方式的作用。
第一节C语言文件的概念
第二节文件指针
第三节文件的打开与关闭
第四节文件的读写
第五节文件定位函数(本节内容仅要求一般了解)
三、教学基本要求
本课程的基本要求是掌握程序设计的基本原理、概念和方法;在介绍算法、数据结构、计算方法、结构化程序设计方法的基础上,主要介绍C语言及其程序设计方法及应用。
主要内容包括:
了解C语言的各种数据类型的特点及其运用方法;掌握各类语句的语法及功能;了解算法的描述方法,并掌握一些基本的典型算法;了解程序的三种基本结构,并初步掌握结构化的程序设计方法;掌握在微机中运行C程序的过程和程序调试的方法;能够阅读、理解简单的C程序,并能自己动手编写小型的应用程序。
四、上机内容与学时分配
1、顺序结构程序设计2学时
2、选择结构程序设计2学时
3、循环结构程序设计4学时
4、数组4学时
5、函数4学时
6、指针2学时
7、结构体与共用体2学时
五、大纲说明
本大纲适用于全校理工科各专业。
本课程宜安排在学生学完“计算机基础”课程之后的第二学期进行,教学总时数为72学时,其中课堂讲授52学时,计划内上机学时为20学时,另外需要学生多利用业余时间自主安排上机学习。
本课程的课堂教学全面采用多媒体CAI技术,按照本大纲的内容进行教学。
课程的重点是第三、四、五、六、七章的基本内容;难点主要是第六、七、十章的部分内容。
六、主要参考书
1、《C语言程序设计》第一版,杜友福主编,科学出版社,2004年1月。
2、《C语言程序设计导学》第一版,杜友福主编,科学出版社,2004年1月。
3、《C程序设计》第一版,谭浩强编著,清华大学出版社,1991年7月。
《C语言程序设计》实验(上机)教学大纲
实验名称:
《C语言程序设计》课内上机
学时:
20学时
学分:
适用专业:
全校理工科各专业
执笔人:
李新玉
审订人:
杜友福
一、实验目的与任务
计算机程序设计语言是在校大学生必须掌握的一种工具。
理工科各专业的学生通过本课程的课内上机教学环节,应使学生在C语言编程方面得到实际训练,使学生了解并掌握在微机中运行C语言程序的步骤及程序调试的基本技能,了解C语言的功能和适用领域,具备程序设计的知识和能力。
二、教学基本要求
通过上机实验,加深对基础理论知识和实例程序的理解,培养学生自己动手在微机中利用TurboC或VisualC++等集成开发环境编辑、调试和运行C语言程序的基本技能。
要求学生熟练掌握实验项目中所列C语言课程的基本知识点,学会综合运用三种基本结构进行程序设计的基本方法。
三、实验项目与类型
序号
实验项目
学时
实验类型
备注
验证
设计
综合
演示
创新
必做
选做
1
顺序结构程序设计
2
√
√
2
选择结构程序设计
2
√
√
√
3
循环结构程序设计
4
√
√
√
√
4
数组
4
√
√
√
√
5
函数
4
√
√
√
√
6
指针
2
√
√
√
√
7
结构体与共用体
2
√
√
√
√
四、实验教学内容及学时分配
实验一顺序结构程序设计(2学时)
1.目的要求
了解并掌握在Turboc3.0或VC的集成开发环境中如何编辑、编译、连接和运行一个C程序的过程。
掌握和理解C程序的基本结构。
掌握各种表达式的使用。
掌握和理解本实验中出现的一些基本的C语言语句,体会算法在程序设计中的重要性。
2.方法原理
参照《C语言程序设计导学》中的“C语言上机指南”,将课本中的实例程序输入计算机中编译、连接和运行,并观察、分析运行结果。
3.实验内容
(1)printf函数中的格式控制字符串。
(2)在printf函数中指定输出数据的宽度。
(3)在printf函数中指定输出数据的精度。
(4)在printf函数中指定输出数据以左对齐的格式输出。
(5)字符型数据的输入与输出。
(6)编程从键盘输入圆的半径radius,输出圆的周长和圆的面积。
(7)编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进行输出。
实验二选择结构程序设计(2学时)
1.目的要求
进一步掌握C程序的编译、连接与运行的过程及各种表达式的使用。
利用if语句实现选择结构,利用switch语句实现多分支选择结构,练习调试与修改程序。
2.实验内容
(1)输入任意三个整数n1、n2、n3,求三个数中的最大值。
(2)输入三个整数,分别放在变量a、b、c中,程序把输入的数据重新按由小到大的顺序放在变量a、b、c中,最后输出a、b、c中的值。
(3)编写程序,根据输入的学生成绩,给出相应的等级。
90分以上的等级为A,60分以下的等级为E,其余每10分为一个等级。
(4)编写一程序实现符号函数的功能。
(5)编写程序,输入能代表一个日期的三个整数(年:
y、月:
m、日:
d),计算并输出该日是该年的第几天。
(6)写一程序,从键盘上输入一个年号year(4位十进制整数),判断该年是否闰年。
(7)编程求一元二次方程的解。
实验三循环结构程序设计(4学时)
1.目的要求
进一步熟悉选择结构的程序设计,练习并掌握实现循环结构的三种方法,练习并掌握选择结构与循环结构的嵌套,练习调试与修改程序。
2.实验内容
(1)统计从键盘输入的一行字符的个数。
(2)从键盘输入一组数据,以0作为结束输入数据的标志,求这组数据之和。
(3)编写程序,用累加的方法求:
1+2+3++100的值。
(4)循环嵌套的应用----输出九九乘法表。
(5)在循环体中使用break语句。
(6)在循环体中使用continue语句。
(7)计算并输出500以内最大的10个素数以及它们之和。
(8)编程求解百钱买百鸡问题。
(9)要将一根长度为323米的钢材截取成两种规格a、b的长度分别为17米和27米的短料,每种至少1段,问分割成a,b各多少段后,剩余的残料r最少?
实验四数组(4学时)
1.目的要求
掌握数组的定义和数组元素的引用方法,掌握数组初始化的方法,理解字符数组与字符串之间的关系,掌握字符数组(字符串)输入输出的方法,掌握常用字符串处理函数的正确使用方法。
2.实验内容
(1)编写程序,定义一个含有30个元素的int类型数组。
依次给数组元素赋奇数1,3,5,;然后按每行10个数顺序输出,最后再按每行10个数逆序输出。
(2)用一维数组来实现斐波那契数列。
(3)通过键盘给N×N的二维数组输入数据,然后求出其主、次对角线元素之和。
(4)有一个3×4的矩阵,编程求出其中值最大的那个元素的值及其所在的行号和列号。
(5)字符数组的输入和输出。
(6)用于字符串处理的函数。
实验五函数(4学时)
1.目的要求
掌握在C语言中使用函数的方法,掌握C语言通过“值传送”调用函数的方法,掌握递归函数的设计方法。
2.实验内容
(1)练习使用函数定义的两种形式。
(2)练习使用函数调用的三种方式。
(3)练习使用函数定义与函数说明位置的各种组合情况。
(4)函数参数之间的单向传递。
(5)用选择法对数组中10个整数由小到大排序。
(6)将一个数组中的n个数据按颠倒的顺序重新存放。
(7)用递归的方法求n!
。
实验六指针(2学时)
1.目的要求
了解指针和内存地址的基本概念,掌握指针变量的定义及引用方法,掌握指针变量作为函数参数以及返回值为指针值的函数的用法,掌握使用指针访问一维数组的方法。
2.实验内容
(1)取地址运算符“&”和指针运算符“*”的使用。
(2)指针变量的定义、赋值与引用。
(3)用指针变量作为函数参数,在函数中交换主函数的变量a和变量b的值。
(4)通过指针引用数组元素。
实验七结构体与共用体(2学时)
1.目的要求
掌握结构体类型的定义方法,掌握结构体类型变量的定义、引用及初始化方法,掌握结构体类型数组的定义、初始化与引用方法,掌握结构体变量的指针和结构体数组的指针的定义及使用,熟悉通过指向结构体的指针引用结构体的成员的方法,会正确使用“->”操作符,掌握链表的概念及定义形式,了解链表的一些简单操作。
2.实验内容
(1)在结构体中包含结构体类型成员。
(2)结构体类型变量的初始化。
(3)结构体数组的引用。
(4)指向结构体类型变量的指针。
(5)一个简单的静态链表。
(6)简单动态链表的构造方法。
五、考核办法
上机操作考查占40%;考勤与学习态度考查占30%;作业完成情况考查占30%。
考核成绩作为课程的平时成绩,并以20%计入课程总成绩。
六、实验教学指导书和参考书
1、《C语言程序设计导学》第一版,杜友福主编,科学出版社,2004年1月。
2、《C语言程序设计》第一版,杜友福主编,科学出版社,2004年1月。
3、《C程序设计》第一版,谭浩强编著,清华大学出版社,1991年7月。
《计算机上机实习(C语言)》教学大纲
实习名称:
计算机上机实习(C语言)
实习类型:
教学实习
学分:
2学分
实习周数:
2周
适用专业:
全校理工科各专业
执笔人:
李新玉
审订人:
杜友福
一、实习的性质、目的与任务
“计算机上机实习(C语言)”是为了加强学生对C语言的进一步理解和应用、为学习后续课程打下良好编程基础而开设的一门实践课。
时间为期两周,每生累计上机32学时,2个学分。
二、教学基本要求
1.进一步熟悉TC3.0的开发环境(也可以用VC6.0的开发环境),掌握基本的编程方法,熟悉用C语言完成一个应用程序的设计过程、掌握有关编辑和调试程序的方法和技巧;
2.主要掌握C语言中的结构体、指针、链表及文件操作等内容;
3.了解开发简单应用程序的全过程,包括:
分析、设计、编程、调试和编写实习报告。
三、实习内容(实习内容隔年更换)
1.系统名称:
简易教学管理系统的设计与实现
2.准备数据
(1)用记事本新建一文本文件,文件名为:
“班名+序号”,如计算机051班的12号同学所建的文件名应为:
“JSJ05112”。
将本班的M名学生在本学期的N门考试课的成绩(要求用真实的课程名、假想的分数,并要求将自己的学号定义为1,将自己的每门课的分数都定在90分以上,而将别人的每门课的分数都定在95分以下。
)输入到这个文件中,建议按如下形式存放(注:
20≤M≤50、5≤N≤8,下文以M=4,N=3为例):
学号姓名英语C语言数学
1我自己969399
2张某768989
3李某919667
4王某755856
........................
(2)用记事本新建另一文本文件,文件名为:
“班名”,如计算机051班的所有同学所建的文件名应为:
“JSJ051”。
将本班本学期的N门真实的课程名及其学分输入到这个数据文件中,建议按如下列形式存放:
编号课程名称课程学分
1英语6.0
2C语言4.5
3数学5.5
...............
3.功能要求
在主函数中读入两个原始数据文件的数据,保存在对应的结构体数组中,并根据以上内容计算每个学生N门课的加权平均分(保留1位小数,4舍5入),并按平均分排列名次,平均分相同则名次并列。
然后显示菜单,利用菜单调用各个函数,分别完成如下功能:
(注意:
若文本文件JSJ05112存放在软盘的ABC文件夹中,则fopen()函数中的文件名应为:
”a:
\\ABC\\JSJ05112.txt”)。
(1)用C语言创建一个数据文件,文件名为:
“MingC+序号”,如计算机051班的12号同学所建的文件名应为:
“MingC12.txt”。
用来存放班级的成绩表,要求按以下形式存放。
名次学号姓名英语C语言数学平均成绩
11我自己96939995.5
32张某76898980.5
43李某91966778.2
24王某75585688.8
55赵某58677768.5
..............................
(2)分别统计全班每门课的平均分和标准差,并计算各分数段(60分以下;60~69;70~79;80~89;90分以上)的学生人数。
课程标准差的计算公式为:
式中:
y为课程标准差,xi为第i个学生的成绩,x为本门课程的算术平均成绩,N为学生数。
(3)用C语言创建一个数据文件,文件名为:
“KEC+序号”,如计算机051班的12号同学所建的文件名应为:
“KC12.txt”。
在文件中存放的数据格式如下:
编号课程名称平均分标准差优秀良好中等及格不及格
1英语5.016.831018153
2C语言3.511.71520138
3数学4.518.59121981
..............................
(4)打印每名学生成绩条,结果存放到用C语言创建的一个数据文件中,文件名为:
“CJ+班名”,如计算机051班的12号同学所建的文件名应为:
“CJJSJ051.txt”。
成绩条的格式自定。
(5)屏幕显示所有存在不及格课程的学生的名单(含学号、不及格课程名称、课程的学分及成绩)。
(6)屏幕显示优等生名单(含学号、N门课成绩、平均分、名次)
优等生条件(只要满足三个条件中的任意一个条件即可):
①平均分大于91分
②名次在本班位于前四名
③平均分大于87分,并且至少有一门课的成绩为100分
(7)选做内容:
屏幕显示每门课的成绩分布图
四、实习方式、实习地点及时间安排
1.实习方式
由指导教师具体指导,集中上机实习。
2周内的非上机时间,由学生自主编写程序。
2.实习地点
校内教育技术与服务中心的学生公用机房。
3.时间安排
整个实习过程分四个阶段进行。
第一阶段(2天):
首先分析题目的要求,将一个比较复杂的问题分解成若干个相对容易的小问题,并设计好解决每个小问题的函数的函数名、入口参数及其返回值;然后按题目要求准备好原始数据;最后设计出各个函数的程序框架及完整的主函数程序。
第二阶段(5天):
在第一阶段的设计思路经过指导老师检查并确认无误后,再逐个完善各个函数的编程和调试工作。
第三阶段(2天):
编写设计报告。
设计报告的主要内容如下:
①系统题目
②摘要
③系统设计:
系统模块框图、菜单结构图、数据结构说明、重要的输入界面说明以及相应的文字说明;
④系统实现:
各函数的实现技术,包括文字说明和流程图;程序调试过程中的要点和难点;
⑤系统使用说明:
说明如何使用你编写的程序,详细列出每个操作步骤及注意事项;
⑥测试数据:
列出你的测试数据及测试结果,即输入和输出;
⑦结论:
收获、存在的问题和改进方向。
⑧附录:
程序清单。
第四阶段(1天):
按整个设计完成的先后顺序,逐个进行结题答辩,并提交设计报告。
五、组织管理
由院、系指派有经验的任课