收藏 分销(赏)

《C语言》实验指导书(学生版).doc

上传人:xrp****65 文档编号:7012127 上传时间:2024-12-24 格式:DOC 页数:18 大小:176KB 下载积分:10 金币
下载 相关 举报
《C语言》实验指导书(学生版).doc_第1页
第1页 / 共18页
《C语言》实验指导书(学生版).doc_第2页
第2页 / 共18页


点击查看更多>>
资源描述
《C语言程序设计》 实 验 指 导 书 华中师范大学信息技术系 二0一0年十一月 目录 项目一:熟悉C语言的运行环境及简单程序设计 1 实验一 熟悉C语言的运行环境 1 实验二 c程序初步 2 实验三 数据类型及输入输出 4 实验四 运算符与表达式 7 项目二:流程控制、指针、数组、模块化程序设计 8 实验五 分支程序设计 8 实验六 循环程序设计 9 实验七 函数 10 实验八 数组 11 实验九 指针 12 项目三:综合程序设计——竞赛编排及优胜排序 14 (注:每个项目应包含实验学习目标、实验内容、实验原理、实验设备、实验步骤、实验注意事项或实验思考等内容。 基本型实验应有明确的实验学习目标、详细的过程和具体的结果;综合设计型实验应有明确的实验学习目标、可参考的过程和实验结果评价标准) 实验基本要求 1、每次实验前,学生必须预习实验内容,实验程序必须自行编制、自行调试。 2、每次实验,学生都必须提交实验报告,内容包括实验目的、实验内容、实验程序、实验过程(软件的使用、程序的调试)等,见下面的实验报告模版。 3、学生第一次上机时,应在教师机指定文件夹下建立以自己学号+姓名的子文件夹,例如学号为2005683001的学生张三,应在教师机指定文件夹下建立“2005683001张三”的子文件夹,此文件夹就是学生张三存放本课程实验全部文档的文件夹,也是教师评价学生饰演成绩的主要依据。 4、学生每次实验完毕后,都应将实验报告、实验程序等文档上传到教师机自己建立的子文件夹中。 5、学生每次实验,都应该在考勤表上签到。 附 华中师范大学信息技术系C程序设计实验报告 姓名: 成绩: 班级: 地点: 实验名称: 实验日期: 2010 年 月 日 节 实验性质:(验证性或设计性)实验 实验目的: 1.熟悉TC的菜单和快捷键,定制TC环境 2.了解如何在该计算机系统上编辑、编译、连接和运行一个C语言程序。 3.通过运行简单的C语言程序,初步了解C语言源程序的特点。 实验设备(包括软件): 实验内容: 1.运行课本第一章的例1.1、1.2。 2.编写一个程序,, x=5.0 ,求y。 实验过程: 1.设计算法,写出程序(上机前做好,含N-S图及源程序代码) 2.在Turbo C2.0 下编辑,得到源程序(.C) 3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法) 4.运行程序 实验程序及实验结果: 实验体会: - 14 - 项目一:熟悉C语言的运行环境及简单程序设计 实验一 熟悉C语言的运行环境 一、 实验学习目标 1.熟悉Turbo C 2.0集成环境的界面设置及基本使用方法。 2.了解如何在该计算机系统上编辑、编译、连接和运行一个C语言程序。 3.了解用计算机解决实际问题的基本步骤。 二、实验内容 1.运行课本第一章的例1.1、1.2。 2.编写一个程序,, x=5.0 ,求y。 三、实验原理 计算机系统上通过编辑、编译、连接和运行一个C语言程序 四、实验设备 微型计算机、TurboC 2.0语言环境或者其它编程语言环境。 五、实验步骤 1、基本步骤 (1).打开TurboC (2).输入并运行课本第一章的例1.1、1.2。(实验报告写明操作步骤、实验数据及运行结果) (3).编写一个程序,, x=5.0 ,求y的值并将其输出。在turboC 中单步运行,调试该程序,用开发工具中的调试按钮查看变量x和y的值。 2.实验程序实例 main( ) { int a,b,sum; /* 定义变量 */ a=123; /* 变量赋值 */ b=456; sum=a+b; /* 求和 */ printf(“sum is %d\n”,sum); /* 输出结果 */ } 3.实验结果: sum is 579 4.实验出错: 在实验中,可能出错的地方有: (1)Printf的格式出错,改正通过; (2)在每一个语句结束时忘记输入“;” 六、实验总结 通过本次实验,我熟悉Turbo C 2.0集成环境的界面设置及基本使用方法。知道在计算机上运行一个c程序要经过编辑、编译、连接和运行。 实验二 c程序初步 一、实验目的: 1. 学会使用TurboC2.0进行程序的跟踪和调试。 2. 了解顺序结构的程序的运行过程及特点。 3. 掌握if语句的简单应用。 4. 掌握C语言程序的书写格式和C语言程序的结构。 二、实验内容. 编写程序, 1输入一个整数,打印出它是奇数还是偶数。 2. 下面的程序的目的是计算两个整数的积。请输入下面的程序,进行编译,记录编译时所出现的信息,分析出现这些错误信息的原因。按照自己的分析改正错误后,再进行编译、链接和运行。 #include <stdio.h> main() { a=3,b=5; c=a*b; printf(“The product is:”,c) } 3. 某程序源代码代码如下,试运行该程序: main() { int x,y,z,t; scanf("%d%d%d",&x,&y,&z); if (x>y) {t=x;x=y;y=t;} if(x>z) {t=z;z=x;x=t;} if(y>z) {t=y;y=z;z=t;} printf("%d %d %d\n",x,y,z); } 画出该程序的N-S图,并说明该程序的功能。 三、实验原理 1、C语言程序的书写格式和C语言程序的结构 2、顺序结构的程序的运行过程 四、实验设备 微型计算机、TurboC 2.0语言环境或者其它编程语言环境。 五、实验步骤 1.基本步骤 (1)设计算法,写出程序(上机前做好,含N-S图及源程序代码) (2)在Turbo C2.0 下编辑,得到源程序(.C) (3)编译、连接、调试程序(含编译及调试中出现的问题及解决方法) 2.实验程序实例 main() { int x,y,z,t; scanf("%d%d%d",&x,&y,&z); if (x>y) {t=x;x=y;y=t;} if(x>z) {t=z;z=x;x=t;} if(y>z) {t=y;y=z;z=t;} printf("%d %d %d\n",x,y,z); } 3.实验结果: 输入:4 2 6 输出: 4.实验出错: 在实验中,可能出错的地方有: (1).在输入数据的时候,两个数据之间的格式,例如:输入4 2 6两个数据之间有一个空格。 (2).scanf 的格式出错,改正通过。 六、实验总结 通过这次实验,我知道了 (1)c程序是由函数构成的,一个c程序至少包括一个main函数,也可以包括一个main函数和若干个其他的函数。 (2)if语句的应用:在执行if语句时先对表达式求解,若表达式的值是真,执行指定的语句。 实验三 数据类型及输入输出 一、实验学习目标 1、了解C语言中数据类型的意义。 2、 掌握输入输出函数的使用方法 3、 掌握不同的类型数据之间赋值的规律 二、 实验内容 1. 掌握C语言的数据类型 熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。输入以下程序,并编译、运行,分析运行结果: #include “stdio.h” Void main() { char c1,c2; c1=97; c2=98; printf(″%c,%c″,c1,c2); } (1)在程序中加一个printf语句,并编译、运行,观察两种输出有什么区别。 printf(″%d,%d″,c1,c2); (2)再将第二行改为: int c1,c2; 再编译运行该程序,再观察在输出上有什么变化。 (3)再将第三行改为: c1=300;c2=400; 再编译运行一次,分析为什么会有这种结果。 2.掌握不同的类型数据之间赋值的规律。  输入并运行以下程序: #include <stdio.h> 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,%d\n”,a,b); printf(“%u,%u\n”,a,b); printf(“%u,%u\n”,c,d); c=a=e; d=b=f; printf(“%d,%d\n”,a,b); printf(“%u,%u\n”,c,d); } 请对照程序和运行结果分析 3. 阅读并运行下面程序,分析运行结果。 #include<stdio.h> void main() { fprintf(”\t*\n”); printf(”\t\b***\n”); printf("\t\b\b*****\n"); } 4.已知圆半径为3.62,圆柱高6,求圆周长、圆球表面积和圆柱体积。用scanf输入数据,用printf输出计算结果,输出时要求有文字说明,取小数点后两位数字。 5.用getchar函数读入两个字符给变量c1、c2,然后分别用putchar函数和printf函数输出这两个字符。 三、 实验原理 1、输入输出函数的使用 2、不同的类型数据之间赋值的规律 四、 实验设备 微型计算机、TurboC 2.0语言环境或者其它编程语言环境。 五、 实验步骤 1.基本步骤 (1).设计算法,写出程序(源程序代码,本次程序不需N-S图) (2).在Turbo C2.0 下编辑,得到源程序(.C) (3).编译、连接、调试程序(含编译及调试中出现的问题及解决方法) 2.实验程序实例 #include <stdio.h> 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,%d\n”,a,b); printf(“%u,%u\n”,a,b); printf(“%u,%u\n”,c,d); c=a=e; d=b=f; printf(“%d,%d\n”,a,b); printf(“%u,%u\n”,c,d); } 3.实验结果 4.实验出错: 在实验中,可能出错的地方有: (1)输入和输出函数的使用过程中在格式控制的地方可能会出现错误。要严格按照格式控制的形式输入和输出数据。 (2)不同的数据类型的取值范围不同,所以在不同数据类型之间相互复制可能会出现错误 六、 实验总结 通过这次实验,对数据类型的意义有了一定的了解:因为数据的类型决定了数据在内存中的存储空间。会使用输入输出函数进行数据的正确输入和输出。 实验四 运算符与表达式 一、实验学习目标 1.理解常用运算符的意义; 2.掌握C语言算术、赋值、自增、自减运算符及相应表达式; 3.学会根据表达式,编写相应程序,验证表达式结果的方法。 4.注意各个运算符的运算优先级和结合性; 二、实验内容 1.整数除危险性 分析下面三个表达式的值,再设计测试程序,进行比较和分析 int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; 2.分析下面的程序 试比较x++与++x之间的区别 #include<stdio.h> main() {int a=5,b=8; printf(“a++=%d”,a++); printf(“a=%d”,a); printf(“++b=%d”,++b); printf(“b=%d”,b); 3. 分析下列表达式的值 编写测试程序对这些表达式的值时行比较,并使各表达式在相同的初始条件下执行 b+a+++a b+(a++)+a b+a+(++a) b+a+++a++ 三、实验原理 1.丰富的运算符和表达式使C语言功能十分完善。 2.自增运算使单个变量的值增1,自减运算使单个变量的值减1 3.运算符具有不同的优先级和结合性。 4.结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。 四、实验设备 微型计算机、TurboC 2.0语言环境或者其它编程语言环境 五、实验步骤 1.设计算法,写出程序(源程序代码,本次程序不需N-S图) 2.在Turbo C2.0 下编辑,得到源程序(.C) 3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法) 4.记录并分析上述程序的运行结果。 5.实验程序实例: main() { int a=2,b=3; float x=3.9,y=2.3; float r; r=(float)(a+b)/2+(int)x%(int)y; printf("%f\n",r); } 6.实验结果: 输出:3.500000 六、实验总结 通过本次实验我学会了编写程序来验证表达式的结果。赋值转换原则:赋值号右边的数据类型转化为赋值号左边的数据类型,然后赋值给赋值号左边的变量。 项目二:流程控制、指针、数组、模块化程序设计 实验五 分支程序设计 一、 实验学习目标 1. 掌握分支程序的设计方法。 2. 进一步掌握关系表达式和逻辑表达式的使用。 3. 熟悉选择结构程序设计。 4. 熟练使用if语句进行程序设计。 5. 使用switch语句实现多分枝选择结构。 二、 实验内容 1.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 2.任意输入三个数,判断能否构成三角形?若能构成三角形,是等边三角形(equalateral triangle)、等腰三角形(isosceles triangle)还是其它三角形(other triangle)? (不能:输出no triangle) 三、 实验原理 1. 程序if语句的结构和嵌套的结构。 2. 构成三角形的基本原理:两边之和大于大三边,两边之差小于第三边;以及等边三角形、等腰三角形的特性。 四、 实验设备 微型计算机、TurboC 2.0语言环境或者其它编程语言环境 五、 实验步骤 1.设计算法,写出程序(上机前做好,含N-S图及源程序代码) 2.在Turbo C2.0 下编辑,得到源程序(.C) 3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法) 六、 实验总结 通过本次实验进一步熟悉C语言程序的基本结构,回顾学过的程序结构形式,明白其中的原理,上机实际操作,运行实现结果,同时训练一种编程的基本思想。真正懂的分支程序设计的结构。 实验六 循环程序设计 一、实验学习目标 1. 掌握循环程序的设计方法。 2. 掌握while语句、do-while语句和for语句实现循环的方法。 3. 理解循环结构程序段中语句的执行过程。 4. 进一步掌握循环结构程序的应用。 二、 实验内容 1. 有一个分数序列:,求出这个序列的前20项之和。 2. 用牛顿迭代法求方程的近似解,误差范围e由键盘输入。 3. 有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各有几只?设计求解该问题的C语言程序。 三、 实验原理 1. 总结推导公式设计程序方案。 2. 牛顿迭代法的基本原理。 四、实验设备 微型计算机、TurboC 2.0语言环境或者其它编程语言环境。 五、实验步骤 1.设计算法,写出程序(上机前做好,含N-S图及源程序代码) 2.在Turbo C2.0 下编辑,得到源程序(.C) 有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写程序求出这个序列的前n项之和 3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法) 六、 实验总结 通过本次实验进一步熟悉C语言程序的基本结构,回顾学过的程序结构形式,明白其中的原理,上机实际操作,运行实现结果,同时训练一种编程的基本思想。掌握循环程序设计的几种基本结构形式。 实验七 函数 一、实验学习目标 1. 掌握函数的定义、声明及调用的方法。 2. 了解函数调用时参数传递的本质。 二、实验内容 1.计算s=22!+32! 本题可编写两个函数,一个是用来计算平方值的函数f1,另一个是用来计算阶乘值的函数f2。主函数先调f1计算出平方值,再在f1中以平方值为实参,调用 f2计算其阶乘值,然后返回f1,再返回主函数,在循环程序中计算累加和。 2. 在main()函数中输入正方体的长宽高l,w,h。编写函数Vs(int l,int w,int h)求体积及三个面x*y,x*z,y*z的面积并在main()函数输出计算结果。(提示:三个面积可定义为全局变量。) 3.运行以下程序,并对其结果作出分析,为什么两个k会得到不同的值。 main() { int i=2,j=3,k; k=i+j; { int k=8; printf("%d\n",k); } printf("%d\n",k); } 三、 实验原理 1. 阶乘的基本原理:5!=5*4*3*2*1。 2. 函数编写的基本思想,类似数学公式,即自己自定义通用的函数式子再利用C语言的结构进行编写 四、 实验设备 微型计算机、TurboC 2.0语言环境或者其它编程语言环境。 五、 实验步骤 1.设计算法,写出程序(源程序代码,本次程序不需N-S图) 2.在Turbo C2.0 下编辑,得到源程序(.C) 3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法) 六、 实验总结 通过本次实验上机操作,理解函数了的使用方法,训练函数的编写思想,综合练习了函数的应用及c语言各种程序结构的使用。 实验八 数组 一、实验学习目标 1.熟练掌握一维数组和二维数组的定义、赋值、引用和输入输出的方法。 2.掌握字符数组的定义、初始化和引用,并掌握字符串函数的使用。 3.掌握与数组有关的插入、删除、排序、查找等常用算法。 二、实验内容 1.将10个实数存储在一个数组中,设计一个程序输出这个数组的最大值和最小值。 2.输入一行字符,统计其中大写字母出现的次数。 3.输入若干有序数放在数组中。然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。请对以下三种情况运行你的程序,以便验证你的程序是否正确。 (1)插在最前 (2)插在最后 (3)插在中间 三、实验原理 1.比较数组中的数据,取出最大值、最小值。 2.判断字符的大小写并计数。 3.比较数组中数据在适当的位置插入。 四、实验设备 微型计算机、TurboC 2.0语言环境或者其它编程语言环境 五、实验步骤 1.设计算法,写出程序(源程序代码,本次程序不需N-S图) 2.在Turbo C2.0 下编辑,得到源程序(.C) 3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法) 六、实验总结 通过本次试验熟练掌握了数组的定义、引用、输入输出的方法。了解字符、字符串和字符数组之间的关系。并能编程实现数组有关的插入、删除、排序、查找操作。 实验九 指针 一、实验学习目标 1.掌握指针的概念,会定义和使用指针变量。 2.基本掌握指针的C程序设计。 3.巩固所学的理论知识,培养锻炼进行复杂C程序设计的能力。 二、实验内容 1.调试下面的程序,指出出错的原因 main() { int x=10,y=5,*px,*py; px=py; px=&x; py=&y; printf(“*px=%d,*py=%d”,*px,*py); } 2.下面的程序试图有如下运行结果。 which style you want to: capital (c) or uncaptial(u):c COMPUTER which style you want to: capital (c) or uncaptial(u):u computer 请调试下面的程序,使其有如上执行结果。 #include <stdio.h> main() { char *s; char c; printf(“which style you want to:1n”); printf(“capital (c) or uncaptial(u):”); } 三、实验原理 1、指针变量的定义与引用; 2、使用指针编写应用程序; 四、实验设备 微型计算机、TurboC 2.0语言环境或者其它编程语言环境 五、实验步骤 1.设计算法,写出程序(源程序代码,本次程序不需N-S图) 2.在Turbo C2.0 下编辑,得到源程序(.C) 3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法) 4.实验程序实例:从键盘输入两个整数,按由小到大的顺序输出,用指针实现。 main() { int p,*p1,*p2; int a,b; scanf("%d,%d",&a,&b); p1=&a; p2=&b; if(a>b) { p=*p1; *p1=*p2; *p2=p; } printf("a=%d,b=%d",a,b); printf("min=%d,max=%d",*p1,*p2); } 5.实验结果: 输入:10 5 ↙ 输出:a=5,b=10 min=5,max=10 六、实验总结 通过本次实验进一步熟悉C语言程序熟悉了指针变量的使用,分清了指针变量和指针变量所指向的变量两个概念。 项目三:综合程序设计——竞赛编排及优胜排序 任务:世界杯足球赛决赛阶段N个队参加,每个队有如下属性:(1)所属州(2)是否种子,共有2*M个种子队;(3)队伍的当前积分排序。 共分为M组,每组K人,已知K*M=N。 一、 请设计程序,输出分组方案,规则如下: (1) 每组分配2名种子队; (2) 每组同州的球队不超过3支; (3) 每组球队的积分排序尽可能平均。 二、 设计程序,记录每队的小组赛结果,每一轮比赛后输出排名结果,排名的规则按以下先后次序进行: (1) 积分,胜队3分,平1分,负0分; (2) 净胜球; (3) 进球数; (4) 两队之间的胜负关系; (5) 原积分排序; (6) 随机。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服