《C语言程序设计》教学大纲与习题集.docx

上传人:b****2 文档编号:23462503 上传时间:2023-05-17 格式:DOCX 页数:53 大小:49.80KB
下载 相关 举报
《C语言程序设计》教学大纲与习题集.docx_第1页
第1页 / 共53页
《C语言程序设计》教学大纲与习题集.docx_第2页
第2页 / 共53页
《C语言程序设计》教学大纲与习题集.docx_第3页
第3页 / 共53页
《C语言程序设计》教学大纲与习题集.docx_第4页
第4页 / 共53页
《C语言程序设计》教学大纲与习题集.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》教学大纲与习题集.docx

《《C语言程序设计》教学大纲与习题集.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》教学大纲与习题集.docx(53页珍藏版)》请在冰豆网上搜索。

《C语言程序设计》教学大纲与习题集.docx

《C语言程序设计》教学大纲与习题集

《C语言程序设计》教学大纲

TheProgramLanguage(CProgram)

课程编号:

适用专业:

机械工程及自动化、电子科学与技术、自动化、信息工程

总学时:

64(讲课:

32上机实验:

32)学分:

4

执笔人:

李越辉审核人:

孙践知

编写日期:

2003-10-10院(系、部)签章

一、课程的性质和目的

该课程是机械、电子、自动等专业学习计算机技术的一门主要课程,通过介绍一门算法语言,培养学生学习设计计算机程序的能力,为今后学习其它课程打好基础。

本课程属于计算机基础类课程。

二、课程教学内容和要求

第一章C语言概述(2学时)

教学内容:

本讲主要介绍了C语言的特点、基本结构、基本输入输出语句和C程序的编辑、编译、运行方法。

教学要求:

要求了解C语言的特点,掌握C程序的基本结构,掌握输入输出函数scanf()和printf()的基本使用方法,熟悉C程序的编辑、编译、调试和运行过程。

第二章基本数据类型(2学时)

教学内容:

C语言的数据类型、数值数据的表示、文字数据的表示、变量的定义和赋值、C语言类型修饰符、表达式中数据类型转换、计算机中数据的表示。

教学要求:

要求了解C语言数值数据和文字数据的表示方法,掌握C语言基本数据类型的存储格式,掌握变量的定义和赋值,了解数据运算中类型的自动转换和强制转换。

第三章控制结构

(一)(2学时)

教学内容:

程序设计的一般方法、结构化程序设计、顺序结构、if语句、switch语句。

教学要求:

要求熟练掌握if语句和switch语句的使用,了解结构化程序设计思想,并且可以按照一般程序设计方法完成简单程序的设计过程。

第四章控制结构

(二)(2学时)

教学内容:

主要介绍了C语言提供的三种循环结构语句:

while语句、do-while语句和for语句,介绍了循环结构中常用的语句break、continue的使用以及循环的嵌套。

教学要求:

要求大家掌握这三种循环结构的使用,理解break和continue在循环结构中的不同作用,了解循环的嵌套。

第五章运算符和表达式(2学时)

教学内容:

主要介绍了C语言的算术运算符、关系运算符、逻辑运算符、赋值运算符、自增和自减运算符、逗号运算符以及条件运算符的功能、结合性和优先级。

教学要求:

要求掌握含有这些运算符的表达式值的判定,并且在编程中熟练运用这些运算符解决问题。

第六章函数(2学时)

教学内容:

介绍C语言函数的概述、函数定义、函数的返回值、函数的调用、函数的递归调用。

教学要求:

要求掌握函数的定义、调用方式,了解函数形参和实参的特点,掌握函数的嵌套调用和递归调用,并能熟练编写具有一定功能的函数。

第七章数组(2学时)

教学内容:

介绍C语言中数组的定义和使用,其中重点介绍一维数组的定义、引用、初始化和作为函数参数时数据传递方式,此外对二维数组的定义、引用和初始化也作了详细的说明。

教学要求:

要求熟练掌握一维数组的使用,了解的二维数组的应用,并且理解数组元素和数组名作函数参数的不同,进而灵活运用数组作函数参数编程。

第八章字符与字符串(2学时)

教学内容:

主要介绍了C语言中单个字符的输入输出、字符数组与字符串、字符串的输入和输出函数、字符串的操作函数、二维字符串数组。

教学要求:

要求掌握字符和字符串的输入输出方法,掌握字符串的存储特点以及常用字符串操作函数的使用,了解的二维字符串数组的使用。

第九章变量类别与编译预处理(2学时)

教学内容:

主要介绍了全局变量和局部变量以及自动变量、静态变量和寄存器变量的特点和关系,介绍了编译预处理命令中的宏定义和文件包含

教学要求:

要求掌握局部变量和全局变量的特点和使用方法,了解自动变量和静态变量的区别,掌握不带参数的宏和带参数的宏的使用,熟练运用“文件包含”功能。

第十章指针

(一)(2学时)

教学内容:

主要介绍了C语言中指针的基本概念和指向变量的指针变量、指向一维数组的指针变量和指向字符串的指针变量的定义及使用

教学要求:

要求掌握指针变量的定义和引用,掌握指向数组元素和字符串中字符的指针变量的使用,理解指针变量作函数参数与数组名或字符串作函数参数的关系。

第十一章指针

(二)(2学时)

教学内容:

主要介绍了返回指针值的函数、指向函数的指针、指针数组、指针与多维数组、指向指针的指针以及命令行参数

教学要求:

要求掌握分别指向函数、数组、指针的指针变量的定义和引用,掌握指针数组处理若干字符串的方法,掌握main()函数形参的定义和使用,了解指向数组的指针与指针数组、指向函数的指针变量与定义返回值是指针的函数的区别。

第十二章结构体、共用体和枚举类型(4学时)

教学内容:

主要介绍C语言中的三种类型的定义和使用,其中两种是构造类型:

结构体类型和共用体类型,一种是C语言的基本类型:

枚举类型。

教学要求:

要求掌握结构体类型、共用体类型和枚举类型的变量的定义,掌握结构体类型和共用体类型变量及其成员的引用等基本操作,理解结构体数组的应用,理解结构体和共用体变量存储形式的不同,了解枚举类型变量的处理方式。

第十三章指向结构体的指针与链表(2学时)

教学内容:

首先介绍了C语言中指向结构体变量和结构体数组的指针变量的使用,接着介绍了结构体数据作为函数参数的使用,最后介绍了链表的概念和基本操作。

教学要求:

要求掌握指向结构体变量和结构体数组的指针变量的使用,掌握链表的概念,理解结构体数据作为函数参数的使用,了解链表的基本操作。

第十四章文件(2学时)

教学内容:

介绍C语言文件的概述、文件的打开和关闭、文件的输入输出、文件的其它常用函数。

教学要求:

要求掌握文件的打开、关闭,了解数据写入文件和从文件中读取的操作以及文件指针的定位,理解ASCII文件与二进制文件的不同特点。

三、课程教学环节的安排和基本要求

(一)课堂讲授:

采用多媒体教学,教案为多媒体演示文稿,授课时的例题均采用实际软件示范或者符合教学内容的多媒体课件,此外所有授课内容及例题全部放入局域网,供学生复习和预习。

(二)上机实验:

要求按照教材中上机实验要求一方面运行例题、巩固课堂内容,一方面根据实验要求、结合例题编写程序,培养学生编程的能力。

(三)上机实验内容和要求:

实验一(2学时)

实验内容:

1.掌握C程序源文件的新建、打开、保存和关闭的方法。

2.掌握C程序的编辑、编译、运行方法。

3.掌握基本输入输出函数scanf()和printf()的使用。

实验二(2学时)

实验内容:

1.掌握十进制、八进制、十六进制数的表示形式,并且可以用十进制、八进制、十六进制形式输出整数。

2.了解C语言文字数据的表示方法,掌握字符与字符串的输入输出。

3.掌握变量的定义和赋值。

4.了解数据运算中类型的自动转换。

5.了解数据的强制转换方法。

实验三(2学时)

实验内容:

1.了解简单程序流程图的画法。

2.掌握if语句的使用。

3.掌握switch语句的使用。

实验四(2学时)

实验内容:

1.掌握C程序调试时设置断点的方法。

2.掌握while语句使用。

3.掌握do-while语句使用。

4.掌握for语句使用。

5.理解break和continue在循环结构中的不同作用。

6.了解循环的嵌套。

实验五(2学时)

实验内容:

1.掌握算术运算符的使用及其表达式值的判定。

2.掌握关系运算符的使用及其表达式值的判定。

3.掌握逻辑运算符的使用及其表达式值的判定。

4.掌握赋值运算符的使用及其表达式值的判定。

5.掌握自增和自减运算符的使用及其前置方式和后置方式对表达式值的影响。

6.掌握逗号运算符的使用及其表达式值的判定。

7.掌握条件运算符的使用及其表达式值的判定。

实验六(2学时)

实验内容:

1.掌握C语言函数的定义和调用。

2.掌握函数形参和实参的特点。

3.掌握函数的嵌套调用。

4.掌握函数的递归调用。

实验七(2学时)

实验内容:

1.掌握一维数组的定义、引用、初始化。

2.了解二维数组的定义、引用和初始化。

3.掌握数组元素和数组名作为函数参数时数据传递方式,理解二者的不同。

实验八(2学时)

实验内容:

1.掌握字符和字符串的输入输出方法。

2.掌握常用字符串操作函数的使用。

3.了解的二维字符串数组的使用。

实验九(2学时)

实验内容:

1.掌握全局变量和局部变量特点和关系。

2.掌握自动变量、静态变量和寄存器变量的特点和关系。

3.掌握不带参数的宏和带参数的宏的使用。

4.熟练运用“文件包含”功能。

实验十(2学时)

实验内容:

1.掌握变量的直接引用和间接引用。

2.掌握指针变量的定义和引用。

3.掌握指向数组元素指针变量的使用。

4.掌握指向字符串中字符的指针变量的使用。

5.理解指针变量作函数参数与数组名或字符串作函数参数的关系。

实验十一(2学时)

实验内容:

1.掌握返回指针值的函数的定义。

2.掌握分别指向函数、数组元素、数组、指针的指针变量的定义和引用。

3.掌握指针数组处理若干字符串的方法。

4.掌握main()函数形参的定义和使用。

5.了解指向数组的指针与指针数组、指向函数的指针变量与定义返回值是指针的函数的区别。

实验十二(2学时)

实验内容:

1.掌握结构体类型、共用体类型和枚举类型的变量的定义。

2.掌握结构体类型和共用体类型变量及其成员的引用等基本操作。

3.理解结构体数组的应用。

4.理解结构体和共用体变量存储形式的不同。

5.了解枚举类型变量的处理方式。

实验十三(4学时)

实验内容:

1.掌握指向结构体变量和结构体数组的指针变量的使用

2.掌握链表的概念。

3.理解结构体数据作为函数参数的使用。

4.了解链表的基本操作。

实验十四(4学时)

实验内容:

1.掌握文件的打开、关闭。

2.了解数据写入文件和从文件中读取的函数的使用方法。

3.了解文件指针的定位的常用函数的使用方法。

(四)作业量

第1讲

>2

第2讲

>2

第3讲

>2

第4讲

>2

第5讲

>2

第6讲

>2

第7讲

>2

第8讲

>2

第9讲

>2

第10讲

>2

第11讲

>2

第12讲

>2

第13讲

>2

第14讲

>2

(五)考核:

采用题库随机抽体,上机测试,主要考核学生是否完全掌握C环境的使用以及基本的C程序结构的使用,侧重动手能力,以及学生对C语言的概念、程序设计方法和技巧等综合能力的考核。

四、本课程与其它课程的联系

本课程的先修课程是计算机文化基础,后续课程则是各专业的计算机应用软件或计算方法。

本课程主要是作为各专业的计算机基础类课程。

五、建议教材及教学参考书

建议教材:

《C程序设计》(第二版),谭浩强著,清华大学出版社,1999

教学参考书:

《边用边学C语言》,郎建昭,清华大学出版社,2002

《精讲多练C语言》,冯博琴、刘路放编著,西安交通大学出版社,1997

《C语言与程序设计》,夏宽理编著,复旦大学出版社,1994。

六、必要说明

本大纲列出的讲课内容为主要内容,由于现在学生的程度参差不齐,教师可本着因材施教的原则,适当增减。

《C语言程序设计》习题集

第1章C语言概述

1.1c语言程序的总体结构是怎样的。

解:

一个完整的c语言程序,是由一个、且只能由一个main()函数(又称主函数)和若

干个其他函数结合而成的,或仅由一个main()函数构成。

1.2c语言程序的基本单位是什么?

它的结构又如何?

解:

函数是c语言程序的基本模块单元。

任何函数(包括主函数main())都是由函数说明和函数体两部分组成。

其一般结构如下:

[函数类型]函数名(函数参数表)

{说明语句部分;

执行语句部分;}

1.3主函数main()在程序中的地位如何。

程序总是从哪个函数开始执行,到哪个函数执行完后结束?

解:

main()函数的作用相当于其他高级语言中的主程序;其他函数的作用相当于子程序。

一个c语言程序,总是从main()函数开始执行,而不论其在程序中的位置。

当主函数执

行完毕时,亦即程序执行完毕。

习惯上,将主函数main()放在最前头。

1.4c语言的语句分为哪几类?

解:

按照语句功能或构成的不同,可将c语言的语句分为五类。

控制语句、函数调用语句、表达式语句、空语句和复合语句。

1.5执行一个c语言程序的一般过程是什么?

解:

运行一个c语言程序的一般过程,如下图所示。

1)启动Tc,进入Tc集成环境。

2)编辑(或修改)源程序。

3)编译。

如果编译成功,则可进行下一步操作;否则,返回2)修改源程序,再重新编译,直至编译成功。

4)连接。

如果连接成功,则可进行下一步操作;否则,根据系统的错误提示进行相应修改,再重新连接,直至连接成功。

5)运行。

通过观察程序运行结果,验证程序的正确性。

6)退出Tc集成环境,结束本次程序运行。

1.6在Tc集成环境下,下列操作的快捷键分别是什么

解:

存盘:

F2;编译与连接:

F9;运行:

nF9;查看运行结果:

Alt+F5。

第2章 数据类型、运算符与表达式

2.1指出下列变量名中,哪些是合法的,哪些是非法的。

如果非法,为什么?

Int,char,345,ABdf,c&d,string*,_322,alpf_beat,JOHN.smith,3ab

解:

ABdf,_322,alpf_beat合法,其它的非法

Int,char非法是因为它们都是C语言关键字;

345,3ab非法是因为变量名不能以阿拉伯数字开头;

c&d,string*,JOHN.smith非法是因为变量名中只能由字母、数字和下划线组成。

2.2计算下列表达式的值

(1)a+b%3*(int)(a-b)/4(设a=13.6,b=8)

(2)(x+y)/2+(int)x%(int)y(设x=4.5,y=2.5)

(3)z*=3+6,z/z=z/2,z+=z-=z*=z(设z=6)

解:

(1)15.600000;

(2)3.500000;(3)0。

第3章顺序结构程序设计

3.1若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=‘a’,c2=‘b’。

想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。

a=□3□□b=□4□□c=□5

x=1.200000,y=2.400000,z=-3.600000

x+y=□3.600□□y+z=-1.20□□z+x=-2.40

c1=ˊaˊ□or□97(ASCII)

c2=ˊbˊ□or□98(ASCII)

(□表示空格,下同)

参考源程序如下:

main()

{inta=3,b=4,c=5;

longintu=51274,n=128765;

floatx=1.2,y=2.4,z=3.6;

charc1='a',c2='b';

printf("a=%2db=%2dc=%2d\n",a,b,c);

printf("x=%f,y=%f,z=%f\n",x,y,z);

printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);

printf("u=%6ldn=%9ld\n",u,n);

printf("%s%s%d%s\n","c1='a'","or",c1,"(ASCII)");

printf("%s%s%d%s\n","c2='a'","or",c2,"(ASCII)");

}

3.2用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入?

main()

{

inta,b;floatx,y;charc1c2;

scanf("a=%d_b=%d",&a,&b);

scanf("_x=%f_y=%e",&x,&y);

scanf("_c1=%c_c2=%c",&c1,&c2);

}

输入方法如下:

a=3□b=7

□x=8.5□y=71.82

□c1=A□c2=a

3.2设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。

请编程序。

参考源程序:

main()

{floatr,h,C1,Sa,Sb,Va,Vb;

scanf("%f,%f",&r,&h);

C1=2*3.14*r;

Sa=3.14*r*r;

Sb=4*Sa;

Va=4*3.14*r*r*r/3;

Vb=Sa*h;

printf("C1=%.2f\n",C1);

printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb);

}

3.3输入一个华氏温度,要求输出摄氏温度。

公式为c=5(F-32)/9,输出要求有文字说明,取位2小数。

参考源程序如下:

main()

{floatF,c;

scanf("%f",&F);

c=5*(F-32)/9;

printf("输入的华氏温度为:

%.2f,则摄氏温度为%.2f",f,c);

}

3.4已知三角形的三边长,求其面积。

解:

假设输入的三边能构成三角形,三角形的面积公式为:

Area=

其中S=(a+b+c)/2。

参考源程序如下:

#include“math.h”

Main()

{

Floata,b,c,s,area;

Printf(“请输入三角形的三边:

”);

Scanf(“%f,%f,%f”,&a,&b,&c);

S=(a+b+c)/2.0;

Area=sqrt(s*(s-a)*(s-b)*(s-c));

Printf(“三角形的三边为:

%7.2f,%7.2f,%7.2f\n”,a,b,c);

Prinft(“三角形的面积为:

%7.2f\n”,area);

}

第4章选择结构程序设计

4.1写出下面表达式的值(设a=1,b=2,c=3,x=4,y=3)

(1)a+b>c&&b==c

(2)!

a

=c||x+y<=3

(3)a+(b>=x+y)?

c-a:

y-x

(4)!

(x=a)&&(y=b)&&0

(5)!

(a+b)+c-1&&b+c/2

(6)a||1+’a’&&b&&’c’

解:

(1)0;

(2)1;(3)2;(4)0;(5)1;(6)1。

4.2有三个整数a、b、c,由键盘输入,输出其中最大的数。

参考源程序:

main()

{inta,b,c,t;

scanf("%d%d%d",&a,&b,&c);

if(a>b)

if(a>c)t=a;

elset=c;

elseif(b>c)t=b;

elset=c;

printf("%d\n",t);

}

4.3给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。

90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。

参考源程序:

main()

{intnumber,md;charc1;

scanf("%d",&number);

md=number/10;

switch(md)

{

case10:

case9:

c1='A';break;

case8:

c1='B';break;

case7:

c1='C';break;

case6:

c1='D';break;

case5:

case4:

case3:

case2:

case1:

case0:

c1='E';break;

printf("%c\n",c1);

}

4.4给一个不多于5位的正整数,要求:

①求出它是几位数;②分别打印出每一位数字;③按逆顺序打印出各位数字,例如原来为321,应输出123。

参考源程序:

main()

{inta,b,c,d,e,n;longm;

scanf("%ld",&m);

a=0.0001*m;

b=10*(0.0001*m-a);

c=100*(0.0001*m-a-0.1*b);

d=1000*(0.0001*m-a-0.1*b-0.01*c);

e=m-10000*a-1000*b-100*c-10*d;

if(a!

=0)

n=5,printf("%d%d,%d,%d,%d,%d%d%d%d%d%d\n",n,a,b,c,d,e,e,d,c,b,a);

elseif(b!

=0)n=4,printf("%d%d,%d,%d,%d%d%d%d%d\n",n,b,c,d,e,e,d,c,b);

elseif(c!

=0)n=3,printf("%d%d,%d,%d%d%d%d\n",n,c,d,e,e,d,c);

elseif(d!

=0)n=2,printf("%d%d,%d%d%d\n",n,d,e,e,d);

elsen=1,printf("%d%d%d\n",n,e,e);

}

4.5企业发放的奖金根据利润提成。

利润(I)低于或等于10万元的,奖金可提10%;利润高于10万元,低20万元(10000010000000时,超过100万元的部分按1%提成。

从键盘输入当月利润I,求应发奖金总数。

要求:

⑴用if语句编程序;⑵用switch语句编程序。

⑴用if语句编程序:

main()

{inta,b,c,d,e;floatd1=0.01,d2=0.015,d3=0.03,d4=0.05,d5=0.075,d6=0.10;

doublejj,k;longi;

scanf("%ld",&i);

k=0.00001*i;a=k-10;b=k-6;c=k-4;d=k-2;e=k-0;

if(a<0)a=0;

if(b<0)b=0;

if(c<0)c=0;

if(d<0)d=0;

jj=a*d1+(b-a)*d2+(c-b)*d3+(d-c)*d4+(e-d)*d5+(k-e)*d6;

printf("jj=%.3f\n",100000*jj);

}

⑵用switch语句编程序:

main()

{inta,b,c,d,e,n,x;

floatd1=0.01,d2=0.015,d3=0.03,d4=0.05,d5=0.075,d6=0.10;

doublejj,k;longi;

scanf("%ld",&i);

k=0.00001*i;a=k-10;b=k-6;c=k-4;d=k-2;e=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1