C语言程序设计教学大纲Word格式文档下载.docx
《C语言程序设计教学大纲Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教学大纲Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
3
第二章
程序的灵魂——算法
第三章
数据类型、运算符与表达式
4
6
第四章
最简单的C程序设计——顺序程序设计
第五章
选择结构程序设计
8
第六章
循环控制
10
第七章
数组
第八章
函数
12
第九章
预处理命令
第十章
指针
18
第十一章
结构体与共用体
第十二章
位运算
第十三章
文件
合计
64
32
96
四、大纲内容
(一)教学大纲内容
第一章C语言概述(共3学时)
【教学目的与要求】:
了解C语言的背景和特点,初步理解C语言程序的结构和运行C语言程序的步骤,了解C语言程序设计的风格。
【教学重点与难点】:
C程序的结构形式;
C环境、调试C程序的步骤与方法。
【教学内容】:
第一节C语言出现的历史背景
第二节C语言的特点
第三节简单的C语言程序介绍
分析C语言程序的特点。
第四节运行C程序的步骤与方法
TurboC(或者VC++)集成开发环境下编辑、编译和运行C程序的基本操作方法。
第二章程序的灵魂——算法(共3学时)
掌握算法的概念,算法的特性和算法的表示;
了解各种程序设计方法的特点,初步建立起程序设计的概念。
算法的概念、流程图、算法思想。
第一节算法的概念
第二节简单算法举例
第三节算法的特性
分析算法的五个特性
第四节怎样表示一个算法
重点介绍流程图,并分别用自然语言、N-S流程图、伪代码和计算机语言表示算法,分析3种基本结构和改进的流程图。
第五节结构化程序设计方法
第三章数据类型、运算符与表达式(共6学时)
掌握C的数据类型,熟练掌握基本数据类型的定义,区分常量和变量概念以及定义形式;
掌握各运算符,及运算符的优先级和结合性;
掌握各种表达式类型的构成及书写。
【教学重点与难点】:
基本数据类型的理解、常用运算符的应用、C语言表达式书写。
第一节C语言的数据类型
第二节常量与变量
重点区分符号常量和变量。
第三节整型数据
重点介绍整型数据的各种表示形式,整型变量,整型常量的类型。
第四节浮点型数据
重点介绍浮点数据的各种表示形式。
第五节字符型数据
重点介绍字符数据在内存中的存储形式及其使用方法和字符串常量的特征。
第六节变量赋初值
第七节各类数值型数据间的混合运算
分析混合运算中的类型自动转换
第八节算术运算符和算术表达式
重点分析运算符的优先级和结合性、自增、自减运算。
第九节赋值运算符和赋值表达式
第十节逗号运算符和逗号表达式
第四章最简单的C程序设计——顺序程序设计(共6学时)
了解C语句的特征,程序的三种基本结构,理解赋值语句和复合语句。
掌握数据输入与输出的实现。
C语言的赋值语句、数据的输入输出及输入输出中常用的控制格式。
第一节C语句概述
第二节赋值语句
第三节数据输入输出的概念及在C语言中的实现
分析数据输入输出在C语言中的实现
第四节字符数据的输入输出
分析putchar函数和getchar函数格式特征。
第五节格式输入与输出
重点介绍printf函数和scanf函数,并重点介绍格式控制符。
第六节顺序结构程序设计举例
第五章选择结构程序设计(共8学时)
掌握关系运算符和关系表达式、逻辑运算符和逻辑表达式的应用,掌握两种分支语句的语法规则和功能,学会用分支方法进行简单分支程序设计,能使用分支语句编写程序。
关系运算符与逻辑运算符及其组成的具有逻辑值的表达式书写和判断,两种分支语句的格式及基本应用。
第一节关系运算符和关系表达式
分析关系运算符及其优先级和结合性,关系表达式中逻辑值的判别。
第二节逻辑运算符和逻辑表达式
分析逻辑运算符及其优先级和结合性,逻辑表达式中逻辑值的判别。
第三节if语句
if语句的3种形式,if语句的嵌套以及条件运算符。
第四节switch语句
第五节程序举例
举例选择结构程序的设计,分析设计方法
第六章循环控制(共10学时)
掌握三种循环语句的语法规则和功能,用循环方法进行简单循环程序设计,掌握循环的嵌套和三种循环的区别,掌握Break、Continue语句在循环语句中的作用。
三种循环语句,break与continue语句的作用。
第一节概述
第二节goto语句以及goto语句构成循环
第三节while语句
While语句——当型循环。
第四节do-while语句
Do-While语句——直到型循环。
第五节for语句
重点分析for语句的一般形式和特殊形式
第六节循环的嵌套
第七节几种循环的比较
第八节break语句和continue语句
第九节程序举例
重点分析三种循环替代环境
第七章数组(共10学时)
了解顺序存储的概念,理解数据顺序存储的意义、作用。
掌握数组的定义和使用,掌握字符数组的定义、初始化和引用,掌握数组程序设计技巧。
一维数组、二维数组的定义与引用,字符数组的定义与引用,常用字符串处理函数及字符处理函数,数组的应用。
第一节一维数组的定义和引用
一维数组的定义、引用、初始化和程序举例。
第二节二维数组的定义和引用
二维数组的定义、引用、初始化和程序举例。
第三节字符数组
字符数组的定义、初始化和引用,字符串和字符串结束标志,字符数组的输入输出,字符串处理函数,字符数组应用举例。
第八章函数(共12学时)
掌握函数的定义和函数调用;
区分形式参数和实在参数;
学会调用函数及各种调用方法,初步分析传址与传值的区别。
掌握变量存储类型。
函数定义、函数调用、函数声明概念区分,函数的嵌套调用与递归调用,传址与传值,变量的存储类别与作用域。
第二节函数定义的一般形式
无参函数和有参函数定义的一般形式,空函数
第三节函数参数和函数的值
形式参数,实际参数和函数的返回值。
第四节函数的调用
函数调用的一般形式、方式,对被调用函数的声明和函数原型。
第五节函数的嵌套调用
第六节函数的递归调用
第七节数组作为函数参数
数组元素作函数实参(传值),数组名作函数参数(传址)。
第八节局部变量和全局变量
第九节变量的存储类别
重点分析动态存储方式与静态存储方式,分析用static声明局部变量的特征及终值的情况。
第一十节内部函数和外部函数
第九章预处理命令(共4学时)
理解预处理的概念及特点,掌握有参宏与无参宏的定义及使用,理解文件包含的意义及使用。
有参宏、无参宏的定义与应用;
文件包含的基本概念。
第一节宏定义
重点分析带参数的宏定义及简单函数的区别
第二节“文件包含”处理
第三节条件编译
第十章指针(共18学时)
掌握指针的特点,意义,指针变量的声明与引用;
区分指针的作用和意义,重点区分传值与传址的特征;
掌握使用指针指向数组的应用;
理解指向函数的指针、返回指针值的函数、多重指针的使用。
指针与地址的基本概念,指针与变量的关系(传值与传址),指针与数组,指针与字符串,指针的应用。
第一节地址和指针的概念
第二节变量的指针和指向变量的指针变量
指针变量的定义、引用,指针变量作为函数参数(传递的两种形态)。
第三节数组与指针
重点分析指向数组元素的指针及指向数组名(首地址)的指针用作函数参数时的特点,多维数组与指针。
第四节字符串与指针
字符串的表示形式(指针与字符数组),字符指针作函数参数,分析使用字符指针变量和使用字符数组的特征。
第五节指向函数的指针
用函数指针变量调用函数,用指向函数的指针作函数参数。
第六节返回指针值的函数
第七节指针数组和指向指针的指针
重点分析指针数组的概念及简单应用,双重指针的特征。
第八节有关指针的数据类型和指针运算的小结
有关指针的数据类型和指针运算的小结,void指针类型。
第十一章结构体与共用体(共8学时)
理解结构体的特点,定义和引入的意义,掌握结构体的定义、引用;
掌握指向结构体的指针;
使用链表建立动态数据结构的作用和意义;
掌握指向结构体的指针和使用指向结构体的指针处理链表的方法;
了解共同体。
结构体的基本概念,结构体类型及变量的定义,结构体数组和用指针处理链表。
第三节概述
第四节定义结构体类型变量的方法
分析定义结构体类型变量的三种方法。
第三节结构体变量的引用
第四节结构体变量的初始化
第五节结构体数组
结构体数组的定义、初始化和应用举例。
第六节指向结构体类型数据的指针
重点分析指向结构体变量的指针的特点,指向结构体数组的指针,用结构体变量和指向结构体的指针作函数参数。
第七节用指针处理链表
链表概述,简单链表,处理动态链表所需的函数,重点分析动态链表的建立、输出、删除和插入,对链表的综合操作。
第八节共用体
第九节枚举类型
第一十一节用typedef定义类型
第十二章位运算(共2学时)
了解位运算符和位运算。
位运算。
第一节位运算符和位运算
按位与(&),按位或(|),取反(~),左移运算符(<
<
),右移运算符(>
>
)。
第二节位运算举例
第十三章文件(共6学时)
掌握C文件操作的一般使用方法。
文件的基本概念;
文件的打开、关闭、常用读写方法。
第一节C文件概述
第二节文件类型指针
第三节文件的打开与关闭
分析文件的打开(fopen函数)与关闭(fclose函数)
第四节文件的读写
分析fprintf函数和fscanf函数,fputc函数和fgetc函数等有关文件读写的函数。
第五节文件的定位。
第七节文件输入输出小结
(二)实验大纲内容
【实验说明】:
本课程使用C语言进行程序设计的教学,是学生通过一门语言的学习得到程序设计的基本训练,进而为学习其它计算机语言进行程序设计打好基础。
程序设计是一门实践性很强的课程,既要掌握概念,了解和熟悉C程序的构成,并能够动手自己编写程序,又要实际上机进行程序的调试和运行。
为此,开设《C语言程序设计》实验课是非常必要的,通过实验煅练学生的实际动手能力,提高学生的编程和程序调试能力。
根据教学计划,《C语言程序设计》实验课时为32课时,具体分配如下:
序号
内容
实验一
C语言程序设计初步
实验二
基本的控制结构
实验三
数组
实验四
函数
实验五
指针(设计性实验)
实验六
文件(设计性实验)
合计
【基本实验项目】:
实验一C语言程序设计初步
一、实验目的
本实验涵盖教学内容前四章,主要目的是:
1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。
掌握在集成环境中编辑、编译、连接和运行C语言程序的方法。
2.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
3.学会使用有关算术运算符,以及包含这些运算符的表达式。
特别是自加(++)和自减(--)运算符的使用。
4.掌握数据的输入输出方法,能正确使用各种格式转换符。
5.通过运行简单的C程序,初步了解C程序的特点。
二、实验基本内容
1、学习TurboC工作环境,。
2、输入程序、并进行编译和运行。
了解所用的系统是用什么命令进行编译和连接运行的。
编译和连接后所得到的目标程序的后缀是什么形式的?
并了解如何在运行时向程序变量输入数据。
调试C语言程序上机的步骤。
(1)编辑:
启动TC环境,输入书上例题1.2。
按F10键在主菜单下用光标移动键移动亮条到File/Save处,按回车键屏幕弹出对话框,输入要编辑的程序名称为“m1.c”。
(2)编译与连接主程序:
执行“compile/compiletoOBJ”命令,对源程序进行编译,然后再执行“compile/linkexefile”命令,进行连接,生成可执行文件。
也可直接按下Ctrl+F9键,一次完成编译与连接。
(3)改正程序中的语法错误;
(4)运行程序:
按F10键回主菜单,用光标移动键将亮条移到“Run”菜单选项回车或按下“Ctrl+F9”键,即可运行可执行文件。
(5)用Alt+F5观察输出结果。
3.输入并运行以下程序。
main()
{charc1,c2;
c1=97;
c2=98;
printf("
%c,%c\n"
c1,c2);
}
(1)在此基础上加入以下printf语句,并运行。
printf("
%d,%d\n"
(2)将第二行改为以下语句,并运行。
intc1,c2;
(3)将第三行改为以下语句,并运行。
c1=300;
c2=400;
分别写出三次运行结果。
4.输入一个程序并编译和运行。
a)清空编辑窗口,输入下面的程序编译运行。
{inta,b,c;
intmax(intx,inty);
printf(“inputa&
b:
”);
scanf(“%d,%d”,&
a,&
b);
c=max(a,b);
printf(“max=%d”,c);
intmax(intx,inty)
{intz;
if(x>
y)z=x;
elsez=y;
return(z);
b)将程序第2行改为:
inta;
b;
c;
5.输入以下的程序:
{intx=1,y=1,z=1;
y=y+z;
x=x+y;
pritnf(“%d\n”,x<
y?
y:
x);
printf(“%d\n”,x<
x++:
y++);
printf(“%d\n”,x);
pritnf(“%d\n”,y);
x=3;
y=z=4;
printf(“%d\n”,(x>
=y>
=x)?
1:
0);
printf(“%d\n”,z>
=y&
&
y>
=x);
运行并分析结果。
6.编程题
(1)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行此程序,比较putchar和printf函数输出字符的特点。
(2)试编写程序,从键盘输入一个大写字母,要求改用小写字母输出。
实验二基本的控制结构程序设计
一、实验目的
本实验涵盖教学内容5、6两章,其目的:
1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
2.学会正确使用逻辑运算符和逻辑表达式。
3.熟练掌握if语句和switch语句。
4.熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
5.结合程序掌握一些简单的算法。
6.进一步学习调试程序。
1.写出下列程序的运行结果。
(1)#include"
stdio.h"
main()
{intx=5,y=3;
charop;
printf("
Enteraoperator:
"
);
scanf("
%c"
&
op);
if(op==´
+´
)
%d+%d=%d"
x,y,x+y);
else
-´
%d-%d=%d"
x,y,x-y);
}
(2)#include"
{intmagic=456;
intguess;
%d"
guess);
if(guess==magic)
RIGHT!
"
else
guess>
magic?
printf(“HIGH"
):
printf("
LOW"
(3)main()
{inti,j;
i=j=2;
if(i==1)
if(i==2)
i=i+j);
else
i=i-j);
i);
(4)main()
{intx=3;
switch(x)
{case1:
case2:
x<
3\n"
case3:
x=3\n"
case4:
case5:
x>
default:
xunknown\n"
2.下面的程序中有几处错误,请改正并上机调试出正确的结果
(1)将输入的数字逆序输出。
main()
{inti,num;
scanf("
num);
while(num!
=0);
i=num%10;
num=num/10;
/n"
}
(2)从键盘输入6名学生5门成绩,分别统计出每个学生的平均成绩。
main()
floatg,sum=0,ave;
for(i=0;
i<
=6;
i++);
{for(j=1;
j<
=5;
j++);
%f"
&
g);
sum=sum+g;
ave=sum/5;
%d%f/n"
i,ave);
3.根据程序的功能填空,使程序完整。
(1)求两个正数的最大公约数。
{intim,n;
%d%d"
m,&
n);
if(m<
n)
(1)
while(r!
=0)
(2)
%d"
(3));
(2)鸡兔共有30只,脚共有90个,计算鸡兔各有多少只。
main()
{intx,y;
(1)
for(x=1;
=9;
x++)
{
y=x–30;
if(
(2))
%d%d"
x,y);
4.阅读下面的程序,写出程序的运行结果并上机验证。
(1)main()
{inti,j=4;
for(i=j;
=2*j;
i++)
switch(i/j)
{case0:
case1:
*"
break;
case2:
#"
(2)当输入为"
qwert?
时,它们的执行结果各是什么?
#include"
{charc;
c=getchar();
while(c!
=´
?
´
{putchar(c);
(3)#include"
main()
{charc;
while((c=getchar())!
putchar(++c);
5.编程题:
(1)给学生写评语,若学生成绩在60~69分,则打印“及格”,70~89分打印“良好”,90~10