《C语言程序设计实训教程.doc》由会员分享,可在线阅读,更多相关《C语言程序设计实训教程.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计实训教学大纲课程名称:C语言程序设计 适用专业:计算机应用技术 学时数:40 执笔人:吴丽英 编写日期:2008年3月7日一、实训项目名称 C语言程序设计实训二、实训目的 学习C语言程序设计课程要熟练地掌握程序设计的全过程,即独立编写出源程序,独立上机编译、调试程序,独立运行程序并分析结果。C语言程序设计是一门实践性很强的课程,必须十分重视实践环节,保证足够的上机实训时间。通过上机实训:1、加深对理论讲授内容的进一步理解;2、熟悉计算机系统的操作方法;3、掌握Turbo C集成开发系统的使用,掌握上机调试程序的步骤和方法;4、掌握一般程序开发的思想、方法和步骤。三、实训要求:1、
2、熟悉C语言的Tubro C环境。熟练地进行C程序的录入、调试和运行。2、能够使用C语言编写基本的应用程序。准备好上机所需的程序,以提高上机效率。对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意。3、上机结束后,整理出实验报告,实验报告应包括以下内容:题目、程序清单、运行结果、对运行情况所作的分析以及本次调试程序取得的经验。四、实训内容安排和学时分配(共32学时)序号实训项目学时实训性质1Turbo C2.0环境2验证型2数据类型、运算符和表达式2验证型3顺序结构程序设计2设计型4选择结构语句的使用2设计型5循环结构语句的使用2设计型6函数的应用4设计型7数组的应用6设计型8指针的应用
3、6设计型9结构体2设计型10综合实训12综合设计型合计40?五、实验内容、目的项目一(2学时)1、实训项目名称:Turbo C2.0环境2、实训类型: 验证型3、目的与任务 (1)了解在TC环境中如何编辑、编译、连接和运行一个C程序 (2)通过运行简单C程序,初步了解C程序的特点4、内容与要求 内容: (1)了解TC环境的组成 (2)进入、退出和定制TC环境 (3)学习上机操作全过程编辑一个新文件 按F10将亮条移到File处按回车键,再选New后按回车键(为简化起见,以后用FileNew的形式表示上述操作),出现子窗口,在其中输入要创建的文件名,输入文件名后按回车键,出现编辑窗口,在此窗口中
4、输入以下源程序。# include void main( ) printf(“This is a C Programn”); 保存文件 按F10,选择菜单FileSave,即可以保存当前文件到硬盘。编译文件 按F10,选择菜单CompileCompile to obj,就可以对程序进行编译。在此过程中可能会出现错误信息,并进行修改,修改完后存盘再进行编译,直至成功。运行文件 按FlO,选择RunRun命令运行文件。查看运行结果 按F10,选择菜单RunUser screen即可以查看程序运行结果。注意:若编译没有成功,则程序不能运行;若编译成功,则可以运行程序,但若运行结果不正确,则表明程序有
5、逻辑错误,需要对程序进行调试和修改,直至程序运行结果正确。 注意:以后每次上机运行一个C程序都要经过上述操作步骤,因此,需要深刻理解和熟练掌握这些步骤。 (4)学会调入一个已存在的C源文件 按F10,选择菜单FileLoad,出现子窗口,在其中输入已存在的文件名,按回车键后即可以调入一个已存在的文件。 (5)输入课本p8-p11例1.3-1.5,并进行调试和运行。 在练习过程中,注意观察C源程序的特点和构成。 要求:每个学生为一组,完成实训之后写出实训报告项目二(2学时)1、实训项目名称: 数据类型、运算符和表达式2、实训类型: 验证型3、目的与任务 (1)掌握C语言数据类型,熟悉如何定义一个
6、变量,以及对它们的赋值运算 (2)掌握不同类型数据间的赋值规律 (3)学会使用C的有关算术运算符,以及包含这些运算符的表达式4、内容、要求与安排形式 内容: (1)输入并运行下面程序#include void main() int a,b; unsigned c,d; long e,f; a=100; b=-100; e=50000; f=32767; c=a; d=b; printf(%d,%dn,a,b); printf(%u,%un,a,b); printf(%u,%un,c,d); c=a=e; d=b=f; printf(%d,%dn,a,b); printf(%u,%un,c,d)
7、; 请对照程序和运行结果分析 :1)将一个负整数赋给一个无符号的变量,会得到什么结果。2)将一个大于 32767 的整数赋给整型变量,会得到什么结果。3)将一个长整数赋给一个无符号的变量,会得到什么结果(分别考虑该长整数的值大于或等于 65535 以及小于 65535 的情况)。例如: a=65580 , b=-40000,e=65535,f=65580(2)下面的程序试图计算由键盘输入的任意两个整数的平均值: include main() int x,y,a; scanf(%d,%d,&x,&y); a=(x+y)/2; printf(“The average is : ”,a); 调试无语
8、法错误后,分别使用下列测试用例对上述程序进行测试:1)2,6 2)1,3 3)-2,-6 4)-1,-3 5)-2,6 6)-1,3 7)1,0 8)1,6 9)32800,33000 10)-32800,33000分析上述哪几组测试用例较好?通过测试,你发现程序有什么错误了吗?若有错误,请指出错误原因。 (3)先自己在纸上写出程序运行结果,然后输入并运行如下程序,并把计算机运行结果与自己的结果进行比较。main() char c1,c2; c1=97;c2=98; printf(“%c %cn”,c1,c2); 在此基础上:1)加一个 printf语句,并运行之。 printf(“%d,%d
9、n”,c1,c2); 2)再将第二行改为: int c1,c2; 再使之运行。3)再将第三行改为: c1=300,c2=400; 再使之运行。分析其运行结果与你自己的是否有出入。 (4)先自己在纸上写出程序运行结果,然后输入并运行如下程序,并把计算机运行结果与自己的结果进行比较。main() int i,j,m,n; i=8;j=10; m=+i;n=j+; printf(“%d, %d,%d,%dn”,i,j,m,n); 分别作如下改动并运行。1)将第 4 行改为: m=i+;n=+j; 2)程序改为:main() int i,j; i=8;j=10; printf(“%d, %dn”,i+
10、,j+); 3)在2 )的基础上,将 printf 语句改为: ?printf(“%d, %dn”,+I,+j); 4)再将 printf 语句改为printf(“%d, %d,%d,%dn”,i,j,i+,j+); 5)程序改为:main() int i,j,m=0,n=0; i=8;j=10; m+=i+;n-=-i; printf(“i=%d, j=%d,m=%d,n=%dn”,i,j,m,n); 分析其运行结果与你自己的是否有出入。 要求:写出编程思路;画出流程图;写出程序代码以及程序运行结果 安排形式:每个学生为一组,完成实训之后写出实训报告项目三(2学时)1、实训项目名称: 顺序结
11、构程序设计2、实训类型: 设计型3、目的与任务 (1)理解C语言程序的顺序结构 掌握常用的C语言语句,熟练应用赋值、输入、输出语句4、内容、要求与安排形式 内容: (1)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积和圆柱体积。用scanf函数输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。 (2)输入三角形三边长,求三角形面积。 (3)输入任意三个整数,求它们的和及平均值。 要求:写出编程思路;画出流程图;写出程序代码以及程序运行结果 安排形式:每个学生为一组,完成实训之后写出实训报告项目四(2学时)1、实训项目名称: 选择结构语句的使用2、实训类型
12、: 设计型3、目的与任务 (1)学会正确使用逻辑运算符和逻辑表达式,进一步掌握各种表达式的使用 (2)利用if语句实现选择结构 (3)利用switch语句实现多分支选择结构 (4)了解用不同的数据使程序的流程覆盖不同的语句、分支和路径4、内容、要求与安排形式 内容: (1)由键盘输入任意三数,按降序打印此三数。 (2)由键盘键入三个数,计算以这三个数为边长的三角形的面积。 (3)给学生写评语,若学生成绩在6069则打印“及格”,7089“良好”,90100“优秀”,60以下“不及格”,用if-else语句和switch语句编程。程序执行时,若给出负分数,应给出错误提示信息。 要求:写出编程思路
13、;画出流程图;写出程序代码以及程序运行结果 安排形式:每个学生为一组,完成实训之后写出实训报告项目五(2学时)1、实训项目名称: 循环结构语句的使用2、实训类型: 设计型3、目的与任务 (1)熟练掌握for语句的使用 (2)熟练掌握break语句与continue语句的使用 (3)能够用循环实现一些常用算法 (4)循环嵌套的应用4、内容、要求与安排形式 内容: (1)计算如下表达式的值:(2)首次运行下面程序的功能是计算n!。? main() ? int i,n,s=1;? printf(Please enter n:);? scanf(%d,&n);? for(i=1;i1其中 f(0)=0
14、,f(1)=1 。并写出相应主函数。 (4)先写出下面程序的运行结果,再和该程序的机器运行结果校对,掌握全局变量、局部动态变量和局部静态变量的区别。#include void fun(int,int); int y=2; void main() int i=2,x=5,j=7; fun(j,6); printf(i=%d;j=%d;x=%d;y=%dn,i,j,x,y); fun(j,6); printf(i=%d;j=%d;x=%d;y=%dn,i,j,x,y); void fun(int i,int j) int x=7; static int y; y+=+x; printf(i=%d;
15、j=%d;x=%d;y=%dn,i,j,x,y); 要求:写出编程思路;画出流程图;写出程序代码以及程序运行结果 安排形式:每个学生为一组,完成实训之后写出实训报告项目七(6学时)1、实训项目名称: 数组的应用2、实训类型: 设计型3、目的与任务 (1)熟练掌握一维数组、二维数组的定义、赋值和输入输出方法 (2)熟练掌握字符数组和字符串函数的使用 (3)掌握有关数组的一些常用算法4、内容、要求与安排形式 内容: (1)将一个数列头尾颠倒。要求写一函数实现对包含任意个数据的数列实现颠倒处理。数列由main函数输入,输出数列亦在main函数中。 (2)由n个学生,每人考m门课,要求:1)找出成绩最
16、高的学生号和课程号。2)找出有不及格课程的学生号及其各门课的全部成绩。3)求全部学生全部课程的总平均分。 (3)输入一个n*n的矩阵各元素的值,求出两条对角线元素之和。 (4)将矩阵逆时针旋转90度。 (5)在主函数中输入10个字符串,用另一个函数对它们排序,然后在主函数中输出这10个已排好序的函数。 (6)将两个字符串连接起来,不要用strcat函数。 (7)求子串位置,如果是子串,则返回子串在主串中的位置,否则返回0。 要求:写出编程思路;画出流程图;写出程序代码以及程序运行结果 安排形式:每个学生为一组,完成实训之后写出实训报告项目八(6学时)1、实训项目名称: 指针的应用2、实训类型:
17、 设计型3、目的与任务 (1)掌握指针的概念,会定义和使用指针变量 (2)学会使用数组的指针和指向数组的指针变量 (3)学会使用字符串的指针和指向字符串的指针变量 (4)学会使用指向函数的指针变量 (5)掌握指针变量作为函数参数传递数据值的方法 (6)了解指向指针的指针的概念及其使用方法4、内容、要求与安排形式 内容: (1)输入三个整数,按由小到大的顺序输出。 (2)用一个函数实现两个字符的比较。函数原型为:int strcmp(char *p1,char *p2);(两个字符串s1,s2由main()函数输入,strcmp函数的返回值也由main()函数输出。) (3)、设一个函数,调用它
18、时,每次实现不同的功能:1)求两个数之和;2)求两个数之差;3)求两个数之积。 要求:写出编程思路;画出流程图;写出程序代码以及程序运行结果 安排形式:每个学生为一组,完成实训之后写出实训报告项目九(2学时)1、实训项目名称: 结构体2、实训类型: 设计型3、目的与任务 (1)掌握结构体类型变量的定义和使用 (2)掌握结构体类型数组的概念和应用 (3)掌握链表的概念,初步学会对链表进行操作4、内容、要求与安排形式 内容: (1)有五个学生,每个学生的数据包括学号,姓名,三门课的成绩,从键盘输入五个学生的数据,要求打印出每个学生的平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平
19、均分数)。 (2)建立一个链表,每个结点包括:学号,姓名,性别,年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。 要求:写出编程思路;画出流程图;写出程序代码以及程序运行结果 安排形式:每个学生为一组,完成实训之后写出实训报告项目十(12学时)1、实训项目名称: 综合实训2、实训类型: 综合设计型3、目的与任务 (1)巩固和加深学生对C语言基本知识的理解。 (2)掌握C语言编程以及程序调试的基本技能。 (3)形成利用C语言进行简单软件设计的基本思路和方法。 (4)提高利用C语言解决问题的能力。4、内容、要求与安排形式 内容: (1)简单的数据库管理。 (2)简单的弹出式菜单。 (3)用C语言编制画图程序。 (4)全屏幕模拟时钟。 要求:写出编程思路、程序代码以及程序运行结果 安排形式:每个学生为一组,任选一题完成编写任务。六、实训考核 考核内容:由指导教师根据学生在设计中的平时表现、任务的完成情况、实训报告的质量等综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者不能得到相应的学分,需重新做课程设计,经指导教师考核及格后,方可取得相应学分。 评定方法:总成绩的30%。
限制150内