1、 C 语言程序设计教学大纲 一教学目的 C 语言程序设计是计算机及其它专业一门必修的基础课, 是学习其他计算机课程的基础,也 是计算机基础教育的重点课程之一。它既具有高级语言的特点,又具有低级语言的功能。本课程的目的在于向学生介绍 C 语言的基础知识,使学生了解 C 语言的基本概念及语法,准确掌握 C 语言数据类型的特点,熟练掌握 C 程序的编程方法,具有应用 C 语言解决实际问题的能力。 二课程内容及学时分配 1 C 语言概述( 4 学时) 了解 C 语言的历史和特色 了解 C 程序的构成及其编译和链接方法 掌握 C 程序上机步骤 2 顺序结构程序设计( 6 学时 , 其中 2 学时实验)
2、(1) 数据描述 (2) 熟练掌握 C 语句及赋值语句的概念 (3) 熟练掌握数据输入输出的方法 3 选择结构程序设计( 8 学时 , 其中 4 学时实验) 掌握关系运算与逻辑运算 了解程序流程控制结构的基本概念 熟练掌握 if 语句、 switch 语句 4. 循环结构程序设计 (8 学时 , 其中 6 学时实验 ) (1) 了解循环的概念 (2) 熟练掌握由 while 、 do-while 、 for 构成的循环 (3) 掌握多重循环结构 5. 数组( 8 学时 , 其中 6 学时实验) 掌握一维数组和二维数组的定义、初始化及引用 掌握字符数组的定义、初始化及引用 熟练掌握数组的基本编程
3、方法(数据的交换、排序等) 6. 函数( 10 学时 , 其中 2 学时实验) (1) 掌握函数的概念、定义、调用、参数传递等基本方法。 (2) 掌握变量的作用域和存储类别 7 编译预处理( 2 学时) 掌握宏定义的概念及使用 了解“文件包含”与条件编译 8. 指针( 8 学时 , 其中 4 学时实验) 掌握指针的概念 掌握指针定义方法、初始化的意义和使用规则 掌握指向数组的指针的定义和使用方法 掌握指针作函数参数及返回指针值函数的作用和使用方法 了解指向函数的指针的定义和使用方法 了解指针数组和多级指针的定义和使用的基本方法 了解 main 函数中的参数的作用和使用方法。 9. 结构体与共用
4、体 (8 学时 , 其中 2 学时实验 ) 掌握结构体变量的定义和使用方法 掌握结构体数组与指向结构体数组的指针 掌握链表的操作(建立、删除、插入结点、删除结点等) 了解共用体的概念及简单应用 了解枚举类型的概念 10 文件( 4 学时 , 其中 2 学时实验) 了解文件的概念 掌握文件的打开与关闭方法 掌握文件的打开方式 了解文件的读写与定位 课 时 分 配 表 内容 讲课时数 实验时数 第一章 C 语言概述 4 第二章 顺序结构程序设计 6 2 第三章 选择结构程序设计 8 4 第四章 循环结构程序设计 8 4 第五章 数组 8 4 第六章 函数 10 6 第七章 编译预处理 2 2 第八
5、章 指针 8 4 第九章 结构体与共用体 8 2 第十章 文件 4 2 小计 66 30 合计 96 三重点、难点 重点: 1 程序的三种基本结构的设计方法 2 数组与函数 3 指针类型 4 结构体与共用体 难点: 1 多重循环结构的设计 2 函数的递归调用 3 指针 4 文件 四实践教学环节 ( 30 学时) 1 实验部分 ( 1 )目的:了解 C 程序的基本结构,掌握 C 程序的调试方法,正确理解理论课的内容, 加深对讲授内容的理解,解决自己编程时存在的问题。 ( 2 )方法:通过学生阅读实验指导书,了解每次实验的目的和要求。通过实验前的预习和编程、实验中的程序调试和教师的现场指导、实验后
6、的复习与实验报告的编写,使学生真正掌握 C 语言的语法规则和 C 程序的编程技巧 2 实训部分 ( 1 )目的:通过为学生提供独立实践的机会,将课本上的理论知识和实际编程能力结合起来,锻炼学生分析问题和解决实际问题的能力,提高学生的实践编程能力。 ( 2 )方法:利用学到的编程知识和编程技巧,通过布置具有一定难度的程序设计题目,使学生对软件的开发技术有进一步的了解,提高上机操作和综合性程序设计的能力。 五考核方式与内容 1 考核方式:考试 2 考核内容:原则上要求试题覆盖面达全部课程内容的 85% 以上,大纲规定的内容均应在试题中有所反映。 3 难易比例:要求试题应难易适度,题量应是学生在规定
7、的 90 分钟时间内回答完毕,其难易程度要求比例为 基础知识 占 60%70% 基础知识的灵活运用 占 20%30% 难度较高知识 10% 4 说明 依学校有关规定,试题卷面应为 80 分,(其中理论部分考核占 60 分,实验部分考核占 20 分),平时成绩考核占 20 分。 六教材及主要参考书 教材: C 程序设计 谭浩强著 清华大学出版社 主要参考书: C 语言程序设计 李淑华等著 大连理工大学出版社 C 语言程序设计教程谭浩强等著 高等教育出版社 topC 语言实验指导书实验一 熟悉 Turbo C 编程环境及简单程序设计一、实验目的1. 掌握在集成环境中编辑、编译、连接和运行 C 语言
8、程序的方法。2. 掌握 C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。 23. 学 会 使 用 有 关 算 术 运 算 符 , 以 及 包 含 这 些 运 算 符 的 表 达 式 。4. 掌握数据的输入输出方法,能正确使用各种格式转换符。二、实验学时数2 学时三、实验步骤1. 调试 C 语言程序上机的步骤。(1)编辑:启动 TC 环境,输入书上例题 1.2。按 F10 键在主菜单下用光标移动键移动亮条到 File/Save 处,按回车键屏幕弹出对话框,输入要编辑的程序名称为“m1.c” 。(2)编译与连接主程序:执行“c
9、ompile/compile to OBJ”命令,对源程序进行编译,然后再执行“compile/link exe file”命令,进行连接,生成可执行文件。也可直接按下 Ctrl+F9 键,一次完成编译与连接。(3)改正程序中的语法错误;(4)运行程序:按 F10 键回主菜单,用光标移动键将亮条移到“Run”菜单选项回车或按下“Ctrl+F9”键,即可运行可执行文件。(5)用 Alt+F5 观察输出结果。2. 输入并运行以下程序。main()char c1,c2;c1=97;c2=98;printf(“%c,%cn“,c1,c2);(1)在此基础上加入以下 printf 语句,并运行。prin
10、tf(“%d,%dn“,c1,c2);(2)将第二行改为以下语句,并运行。 int c1,c2;(3)将第三行改为以下语句,并运行。c1=300;c2=400;分别写出三次运行结果。3.编程题(1)编程序,用 getchar 函数读入两个字符给 c1、c2,然后分别用putchar 函数和 printf 函数输出这两个字符。上机运行此程序,比较 putchar和 printf 函数输出字符的特点。(2)试编写程序,从键盘输入一个大写字母,要求改用小写字母输出。实验二 选择结构程序设计一、实验目的1. 熟练掌握 if 语句和 switch 语句。2. 学会使用合适的表达式描述问题。二、实验学时4
11、 学时三、实验步骤1. 写出下列程序的运行结果。(1) #include “stdio.h“main ( )int x=5,y=3;char op;printf (“Enter a operator: “); scanf (“%c“, for (j = 1 ;j = 5 ;j+) ;scanf (“%f“, &g );sum = sum +g ;ave = sum / 5;printf (“ %d %f /n “ , i, ave );2. 根据程序的功能填空,使程序完整。(1)求两个正数的最大公约数。main( ) int i m, n;scanf (“%d%d“,&m ,&n);if (m
12、 n) (1) while (r != 0)(2)printf (“ %d“,(3));(2)鸡兔共有 30 只,脚共有 90 个,计算鸡兔各有多少只。main()int x,y;(1) for (x=1;x=9;x+ ) y= x 30;if ((2))printf (“%d %d“,x, y );3. 阅读下面的程序,写出程序的运行结果并上机验证。(1)main ( )int i,j=4;for (i=j;i=2*j;i+)switch(i/j)case 0 :case 1 :printf (“*“);break;case 2 :printf (“#“);(2)当输入为“qwert? “时
13、,它们的执行结果各是什么? #include “stdio.h“main( )char c;c=getchar ();while (c!=?) putchar (c);c=getchar ();(3)#include “stdio.h“main ( )char c;while (c=getchar ()!=?)putchar (+c);4. 编程题(1)输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。(2)有 1020 个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?(3)找出 11000 之间的所有水仙花数。所谓水仙花数是指一个 3 位数的立方和恰
14、好等于该数本身。例如:153 就是一个水仙花数,因为153=1+3+5。(4)按下面的近似公式计算:e=1+1/1!+1/2!+1/3!+1/n!+,使误差小于一个给定的值。实验四 数组一、实验目的1. 熟练掌握一维和二维数组的说明和使用方法。2. 掌握字符数组的基本使用方法。二、实验学时4 学时三、实验步骤1阅读下面程序,改正下列程序中的错误并上机运行该程序。(1)main( )int a5=2, 4, 6, 8,10, i;for (i=1;i=5;i+) printf (“%dn“ , ai);(2)main( )int a10, i;scanf (“%d“, &a);for (i=0 ;i10 ;i+)printf (“%d , “, ai);printf (“n“);(3)main( )