C语言程序设计实验手册范本.docx
- 文档编号:29371214
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:26
- 大小:56.66KB
C语言程序设计实验手册范本.docx
《C语言程序设计实验手册范本.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验手册范本.docx(26页珍藏版)》请在冰豆网上搜索。
C语言程序设计实验手册范本
实验手册使用及要求
实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:
1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记,上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。
2、实验结束后填写通过后的源程序和对实验的总结。
3、通过后的源程序可以手写也可以打印粘贴。
实验项目一览表
序号
实验项目
实验性质
学时
实验一
熟悉C语言编程环境
验证性
2
实验二
用C语言编写简单程序
验证性
2
实验三
分支结构程序设计
验证性
2
实验四
循环结构程序设计
验证性
4
实验五
函数程序设计
验证性
4
实验六
数组程序设计
验证性
2
实验七
指针程序设计
验证性
4
实验八
结构体程序设计
验证性
2
实验九
程序设计进阶
综合性
2
实验十
文件程序设计
综合性
4
学号:
姓名:
成绩:
实验一熟悉C语言编程环境
实验目的:
1.熟悉C语言编程环境(VC++、Cfree、Turboc2.0等)
2.了解C程序的基本框架
3.理解程序调试的思想,能找出并改正C程序中的错误
实验内容:
1.1建立自己的文件夹:
在磁盘上建立一个文件夹,用于存放自己的C程序
1.2编程示例
在屏幕上显示一个短句“ProgramminginCisfun!
”(教师示例,学生模仿并创新,如输出汉字、特除字符等。
学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开)
1.3编程
在屏幕上显示如下网格。
+---+---+
|||
|||
+---+---+
1.4调试示例
改正下列程序中的错误,在屏幕上显示“WelcometoYou!
”。
(掌握找错、改错的方法)
源程序:
#include
intmian(void)
{
printf(WelcometoYou!
\n")
getchar();
return0;
}
注:
需要修改的语句直接在程序上标注并修改
实验总结:
学号:
姓名:
成绩:
实验二用C语言编写简单程序
实验目的:
1.掌握算术表达式和赋值表达式的使用
2.掌握基本输出函数的使用
3.能够自己编程实现简单的数据处理
4.熟练掌握简单if语句使用
5.熟练掌握for语句的使用
6.掌握简单C程序的查错方法、单步调试
实验内容:
2.1调试以下程序,求华氏温度对应的摄氏温度。
计算公式为:
C=5*(f-32)/9
#include
intmain(void)
{
intcelsius;fahr;
scanf("%d",fahr);
celsius=5*(fahr-32)/9;
printf("fahr=d,celsius=%d\n",fahr,celsius);
return0;
}
注:
需要修改的语句直接在程序上标注并修改
2.2编写程序计算定期存款本利之和:
设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。
要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入,输出时保留两位小数。
计算公式为:
deposit=capital(1+rate)n
2.3计算身体质量指数
一个称为“身体质量指数”(BMI)的量用来计算与体重有关的健康问题的危险程度。
BMI按下面的公式计算:
BMI=w/h2
其中w是以千克为单位的体重。
h是以米为单位的身高。
大约20至25的BMI的值被认为是“正常的”,编写一个应用程序,输入体重和身高,输出BMI,并判断是否正常。
2.4水仙花数判断
输入一个三位数,判断是否是水仙花数,水仙花数是3位数,数本身的值恰好等于各位数字的立方和如:
153=13+53+33
实验总结:
学号:
姓名:
成绩:
实验三分支结构程序设计
实验目的:
1.熟悉掌握关系表达式和逻辑表达式的使用
2.熟练掌握用嵌套的if语句和switch语句实现多分支结构程序设计
3.掌握使用断点调试程序的方法
实验内容:
3.1按要求调试程序
输入参数a,b,c,求一元二次方程ax2+bx+c=0的根。
include
#include
intmain(void)
{doublea,b,c,d;
printf("Entera,b,c\n");
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
if(a==0){
if(b=0){
if(c==0)
printf("参数都为零,方程无意义!
\n");/*调试时设置断点*/
else
printf("a和b为0,c不为0,方程不成立\n");
}
else
printf("x=%0.2f\n",-c/b);
}
else
if(d>=0){/*调试时设置断点*/
printf("x1=%0.2f\n",(-b+sqrt(d))/(2*a));
printf("x2=%0.2f\n",(-b-sqrt(d))/(2*a));
}
else{
printf("x1=%0.2f+%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
printf("x2=%0.2f-%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
}
return0;/*调试时设置断点*/
}
注:
调试时按注释位置设置三个断点,单击Go按钮,输入2.18.93.5,观察变量值的情况。
第一次断点:
a,b,c的值分别是:
第二次断点:
d的值是:
第三次断点:
运行窗口显示:
3.2求三角形的面积和周长
输入三角形的三条边a,b,c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“Thesesidesdonotcorrespondtoavalidtriangle”。
在一个三角形中,任意两边之和大于第三边。
三角形的面积计算公式:
其中:
s=(a+b+c)/2
3.3计算个人所得税
输入一个职工的月薪salary,输出应交的个人所得税tax(保留2位小数)。
tax=rate*(salary-3500)-deduction
当salary<=3500时,rate=0,deduction=0;
当3500 当8000 当12500 当38500 当58500 当83500 3.4计算出租车费 某市不同品牌出租车价格为: 捷达5元起价,1公里内收起步价,1公里外按1.4元/公里收取;速腾7元起价,1公里内收起步价,1公里外按1.4元/公里收取;红旗10元起价,1公里内收起步价,1公里外按1.5元/公里收取。 编写程序,从键盘输入乘车车型和乘车公里数,输出应付的车费。 (采用switch语句实现车型选择) 实验总结: 学号: 姓名: 成绩: 实验四循环结构程序设计 实验目的: 1.熟练掌握for、while、和do…while语句实现循环程序设计 2.理解循环条件和循环体,以及三种循环语句的相同和不同之处 3.熟练掌握break、continue语句的使用 4.掌握使用“Debug”菜单调试程序的方法 实验内容: 4.1按要求调试程序 改正下列程序中的错误,输入2个正整数m和n,输出它们的最小公倍数和最大公约数。 #include intmain(void) { intm,n,j,k;/*j表示最小公倍数,k表示最大公约数*/ do{ printf("Inputm: "); scanf("%d",&m); printf("Inputn: "); scanf("%d",&n); }while(m<0||n<0); j=m; while(j%n! =0)/*调试时设置断点*/ j=j+m; k=(m*n)/j;/*调试时设置断点*/ printf("最小公倍数是%d\n最大公约数是%d\n",j,k); return0; } 注: 调试时按注释位置设置二个断点,单击Go按钮,输入37,观察变量值的情况。 第一次断点: m,n的值分别是: 第二次断点: j的值是: 若结果不对,停止调试,改正错误后,取消第一个断点,单击Go,到断点处,此时j的值是: 4.2编写程序 输入一批正整数(以0或负数为结束标志),求其中的偶数和。 4.3编写程序 给一个不多于5位的正整数,要求: a.求出它是几位数; b.分别输出每一位数字; c.按逆序输出各位数字,例如原数为321,应输出123 4.4统计素数并求和 输入2个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 4.5编写程序 用一张一元票换1分、2分和5分的硬币(至少各一枚),问有哪几种换法? 各几枚? 4.6猜数游戏 先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。 【思考】如果用scanf输入用户猜测的数据时,如果用户不小心输入了非法字符,如字符a,那么程序运行就会出错,用什么方法可以避免这样的错误发生呢? 请编写程序验证方法的有效性。 实验总结: 学号: 姓名: 成绩: 实验五函数程序设计 实验目的: 1.熟练掌握函数的定义和调用 2.熟练掌握使用函数编写程序 3.掌握函数的实参、形参和返回值的概念和使用 4.掌握单步调试进入函数和跳出函数的方法 实验内容: 5.1改错 改正下列程序中的错误,计算1! +2! +3! +4! +…+10! 的值,要求定义并调用函数fact(n),计算n! ,函数类型是double。 #include doublefact(intn) intmain(void) { inti; doublesum; for(i=1;i<10;i++) sum=sum+fact(i);/*设置断点*/ printf("1! +2! +…+10! =%f\n",sum); return0; } doublefact(intn); { inti; doubleresult; for(i=1;i<=n;i++) fact(n)=fact(n)*i; returnresult; } 注: 1.需要修改的语句直接在程序上标注并修改 2.设置断点,单步进入函数和从函数返回主调函数 5.2求a+aa+aaa+aa⋯a 输入2个正整数a和n,求a+aa+aaa+aa⋯a(n个a)之和。 要求定义并调用函数fn(a,n),它的功能是返回aa⋯a(n个a)。 例如,fn(3,2)的返回值是33。 。 5.3统计一个整数中数字的个数 要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。 例如,countdigit(10090,0)的返回值是3 5.4判断素数 输入一个正整数n,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。 5.5输出Fibonacci序列 输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。 Fibonacci序列(第1项起): 1123581321...... 要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。 例如,fib(7)的返回值是13。 例: 括号内是说明 输入: 20100(m=20,n=100) 输出: 21345589(20到100之间的Fibonacci数) 实验总结: 学号: 姓名: 成绩: 实验六数组程序设计 实验目的: 1.熟练掌握一维数组、二维数组编程方法 2.熟练掌握字符串的存储和操作方法 3.熟练掌握排序算法 实验内容: 6.1改错 改正下列程序中的错误,输入一个正整数n(0 #include intmain() { inti,j,n,x,a[n]; printf("输入数据的个数n: "); scanf("%d",&n); printf("输入%d个整数: ",n); for(i=0;i scanf("%d",&a[i]); printf("输入要插入的整数: "); scanf("%d",&x); for(i=0;i if(x>a[i])continue; j=n-1; while(j>=i){/*调试时设置断点*/ a[j]=a[j+1]; j++; }/*调试时设置断点*/ a[i]=x; break; } if(i==n)a[n]=x; for(i=0;i printf("%d",a[i]); putchar('\n'); return0; } 6.2求平均值 输入一个正整数n(1 6.3交换最小值和最大值 输入一个正整数n(1 6.4排序 输入一个正整数n(1 6.5改错 改正下列程序中的错误,输入2个正整数m和n(m>=1,n<=6),然后输入该m行n列二维数组a中的元素,分别求出各行元素之和并输出。 #include intmain() { inta[6][6],i,j,m,n,sum; printf("inputm,n: "); scanf("%d%d",&m,&n); printf("inputarray: \n"); for(i=0;i for(j=0;i scanf("%d",&a[i][j]); sum=0; for(i=0;i for(j=0;j sum=sum+a[i][j]; printf("sumofrow%dis%d\n",i,sum);/*调试时设置断点*/ } return0; } 6.6编程找鞍点 输入1个正整数n(1≤n≤6)和n阶方阵a中的元素,如果找到a的鞍点(鞍点的元素值在该行上最大,在该列上最小),就输出它的下标,否则,输出"NO"(设a最多有1个鞍点)。 6.7改错 改正下列程序中的错误,输入一个以回车结束的字符串(少于80个字符),将它的内容逆序输出。 如“ABCD”输出为“DCBA”。 #include intmain() { inti,k,temp; charstr[]; printf("inputastring: "); i=0; while((str[i]=getchar())! ='\n') i++; str[i]='\0'; k=i-1; for(i=0;i temp=str[i];str[i]=str[k];str[k]=temp; k++; }/*调试时设置断点*/ for(i=0;str[i]! ='\0';i++) putchar(str[i]); return0; } 6.8统计大写辅音字母个数 输入一个以回车结束的字符串(少于80个字符),统计并输出其中大写辅音字母的个数(除A、E、I、O、U以外的大写字母)。 实验总结: 学号: 姓名: 成绩: 实验七指针程序设计 实验目的: 1.理解指针、地址和数组间的关系 2.掌握通过指针操作数组元素的方法 3.掌握数组名作为函数参数的编程方式 4.掌握通过指针操作字符串的方法 实验内容: 7.1改错 改正下面程序中的错误。 有n个整数,使前面各数顺序循环移动m个位置(m 编写一个函数实现以上功能,在主函数中输入n个整数并输出调整后的n个整数。 #include voidmov(int*,int,int); intmain() { intm,n,i,a[80],*p; printf("Inputn,m: "); scanf("%d%d",&n,&m); for(p=a,i=0;i scanf("%d",&p++); mov(a,n,m); printf("Aftermove: "); for(i=0;i printf("%5d",a[i]); return0; } voidmov(int*x,intn,intm) { inti,j; for(i=0;i for(j=n-1;j>0;j--) x[j]=x[j-1];/*调试时设置断点*/ x[0]=x[n-1]; } } 7.2查找整数 定义一个函数search(intlist[],intn,intx),在数组list中查找元素x,若找到则返回相应下标,否则返回-1。 在main函数中调用search。 补充程序完成search功能。 #include intsearch(intlist[],intn,intx); intmain() { inti,x,a[10],res; for(i=0;i<10;i++) scanf("%d",&a[i]); scanf("%d",&x); res=search(a,10,x); printf("%d",res); return0; } intsearch(intlist[],intn,intx) { } 7.3排序 定义函数voidsort(inta[],intn),用选择法对数组a中的元素排序。 自己定义main函数,并在其中调用sort函数。 7.4改错 改正下面程序中的错误。 输入5个字符串,输出其中最大的字符串。 #include #include intmain() { inti; charstr[80],max[80]; printf("Input5strings: \n"); scanf("%s",str); max=str; for(i=1;i<5;i++){ scanf("%s",str); if(max max=str; } printf("Maxis: %s\n",max); return0; } 7.5字符串复制 分别用字符数组和字符指针定义函数strmcpy(s,t,m),将字符串t中从m个字符开始的全部字符复制到字符串s中去。 实验总结: 学号: 姓名: 成绩: 实验八结构程序设计 实验目的: 1.掌握结构体变量的基本使用方法 2.掌握结构体数组的基本使用方法 3.掌握结构体指针的概念,以及结构指针作为函数参数的编程方法 实验内容: 8.1调试 调试下面的程序,查看运行结果是否和题目要求相符。 输入一个正整数n(3<=n<=10),再输入n个雇员的信息(如下表所示),输出每人的姓名和实发工资(基本工资+浮动工资-支出)。 工资表 姓名 基本工资 浮动工资 支出 Zhang 1200 500 100 Wang 3500 1000 500 Zhao 2400 800 200 #include intmain(void) { inti,n; structemp{ charname[10]; floatjbg; floatfdg; floatzc; }s[10]; printf("n="); scanf("%d",&n); for(i=0;i scanf("%s%f%f%f",s[i].name,&s[i].jbg,&s[i].fdg,&s[i].zc);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 手册 范本