最简单的C程序设计实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)给出一个百分制成绩,要求输出成绩等级为A、B、C、D、E。90 分以上为A,81~89分为B,70~79分为C,60~69分为D,60分以下为E。
①、事先编好程序,要求分别用if和switch语句来实现。运行程序并 检查。 If语句程序如下: #include<stdio.h> void main() {
s=pi*r*r; sq=4*pi*r*r; vq=4/3*(pi*r*r); vz=pi*r*r*h; printf("圆的周长为:l=%6.2f\n",l); printf("圆的面积为:s=%6.2f\n",s); printf("圆球表面积:sq=%6.2f\n",sq); printf("圆球体积为:sv=%6.2f\n",vq); printf("圆柱体积为:sz=%6.2f\n",vz); } 运行结果:
printf("输入数据时出错\n"); else if(a>=90)
printf("成绩等级为A\n"); else if(a>=80&&a<=89)
printf("成绩等级为B\n"); else if(a>=70&&a<=79)
printf("成绩等级为C\n"); else if(a>=60&&a<=69)
printf("成绩等级为D\n"); else
printf("成绩等级为E\n"); } 运行结果:
Switch语句程序如下: #include<stdio.h> void main() {
float a;int c; printf("请输入成绩a:"); scanf("%f",&a); if(a<60) c=5; else c=a/10; switch(c)
int a; printf("请输入分数a:"); scanf("%d",&a); if(a>=90)
printf("成绩等级为A\n"); else if(a>=80&&a<=89)
printf("成绩等级为B\n"); else if(a>=70&&a<=79)
printf("成绩等级为C\n"); else if(a>=60&&a<=69)
③、给一个不多于5位数的正整数,要求:求出它是几位数;分别输出 每一位数字;按逆序数输出各位数字,例如原数是321,应输出123。程 序如下: #include <stdio.h> void main() {int a,b,c,d,e,n; long m; printf ("输入m为:\n"); scanf ("%d",&m); if (m>99999||m<0) printf ("error data\n"); else if (m>9999) n=5; else if (m>999) n=4; else if (m>99) n=3; else if (m>9) n=2; else n=1; printf ("n=%d\n",n); a=m/10000; b=(m-a*10000)/1000; c=(m-a*10000-b*1000)/100; d=(m-a*10000-b*1000-c*100)/10; e=(m-a*10000-b*1000-c*100-d*10); switch(n) {case 5:printf("%d,%d,%d,%d,%d",a,b,c,d,e); printf("\n反序数为:"); printf("%d%d%d%d%d",e,d,c,b,a);break; case 4:printf("%d,%d,%d,%d",b,c,d,e); printf("\n反序数为:");
printf("输入数据时出错\n"); else if(a<60) c=5; else c=a/10; switch(c) {case 5:printf("E\n");break; case 6:printf("D\n");break; case 7:printf("C\n");break; case 8:printf("B\n");break; case 9: case 10:printf("A\n");break; } } 运行结果如下:
(3) 编程序,用getchar函数读入两个字符给c1、c2,然后分 别用putchar函数和scanf函数输出这两个字符。
运行结果:
结论:一个有空格,一个没有空格。 3、 实验总结 这个实验因为比较简单,是最简单的C程序设计,所以遇到的麻烦也 不是很多。只是对于格式符的完全掌握发现还需要一定的时间。还有就 是上机时遇到过编译没有错误,但是执行时却出错的情况,最后也得到 了很好的解决。
printf("成绩等级为D\n"); else
printf("成绩等级为E\n"); } 运行结果如下:
Switch语句程序如下: #include<stdio.h> void main() {
float a;int c; printf("请输入成绩a:"); scanf("%f",&a); if(a<0||a>100)
电信(2)班 朱航涛
222010315220060
实验3 最简单的C程序设计实验报告
1、 实验目的 (1) 掌握C语言中使用最多的语句——赋值语句的使用方 法。 (2) 掌握各种类型数据的输入输出的方法,能正确使用各种 格式转换符。
2、 实验内容和步骤 (1) 通过下面的程序掌握各种格式转换符的正确使用方法。
&f,&g,&m,&n,&p,&q); 输入的数据如下: 61,61,a,b,3.56,-6.87,3157.890121,0.123456789, 50000,-60000,37678,40000 运行结果:
⑤在④的基础上将printf语句改为:
printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%15.6f,e=%15.12f\n",a,b,c1,c2,d,e); printf("f=%f,g=%f\nm=%d,n=%d\np=%d,q=%d\n",f,,g,m,n,p,q); 运行结果:
wk.baidu.com
printf("%d%d%d%d",e,d,c,b);break; case 3:printf("%d,%d,%d",c,d,e); printf("\n反序数为:"); printf("%d%d%d",e,d,c);break; case 2:printf("%d,%d",d,e); printf("\n反序数为:"); printf("%d%d",e,d);break; case 1:printf("%d",e); printf("\n反序数为:"); printf("%d",e);break; } printf("\n"); } 运行结果:
实验4 逻辑结构程序设计
1、实验目的: (1)了解C语言表示逻辑量的方法(以0代表“假”,以非0代
表“真”)。 (2)学会正确使用逻辑运算和逻辑表达式。 (3)熟练掌握if和switch语句。 (4)结合程序掌握一些简单的算法。 (5)学习调试程序。 2、实验内容: (1)有一函数:当x<1时,y=x;当1<=x<10时,y=2x-1;当x>=10时, y=3x-11;用scanf函数输入x的值,求y的值。运行程序,输入x在各个区 间的值,检查输出的y值是否正确。程序如下: #include<stdio.h> void main() {
{case 5:printf("E\n");break; case 6:printf("D\n");break; case 7:printf("C\n");break; case 8:printf("B\n");break; case 9: case 10:printf("A\n");break; } } 运行结果:
①输入以下程序: #include<stdio.h> void main() {int a,b; float d,e; char c1,c2; double f,g; long m,n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); } ②运行结果
④、输入四个整数,要求按由小到大的顺序输出。在得到正确结果后, 修改程序使之按由大到小的顺序输出。程序如下: 按由小到大的顺序: #include<stdio.h> void main() {int t,a,b,c,d; printf("请输入4个整数:"); scanf("%d,%d,%d,%d",&a,&b,&c,&d); printf("\na=%d,b=%d,c=%d,d=%d\n",a,b,c,d); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(a>d) {t=a;a=d;d=t;} if(b>c) {t=b;b=c;c=t;} if(b>d)
{t=b;b=d;d=t;} if(c>d) {t=c;c=d;d=t;} printf("排序结果如下:\n"); printf("%d %d %d %d\n",a,b,c,d); } 运行结果如下:
4、 实验总结 这次实验主要是关于逻辑结构的,总的来说应该完成的还算不错。 对于if和switch这两种循环结构,个人比较倾向于用if,所以在设计 switch语句时遇到了点小麻烦,这有待于以后在实验中去解决。
③在此基础上,将程序第9——14行改为: a=61;b=62; c1=a;c2=b; f=3157.890121;g=0.123456789; d=f;e=g; p=a=m=50000;q=b=n=-60000; 运行结果为:
④改用scanf函数输入数据而不用赋值语句,scanf函数如下: scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u",&a,&b,&c1,&c2,&d,&e,
②、在运行一次程序,输入分数为负值(如-70),这显然是输入时出 错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据 大于100和小于0时,通知用户“输入数据时出错”,程序结束。 If语句程序如下: #include<stdio.h> void main() {
int a; printf("请输入分数a:"); scanf("%d",&a); if(a>100||a<0)
⑥将p、q改为%o格式符输出,运行结果:
⑦将scanf函数中的%lf和%ld改为%f和%d,运行程序,结果:
(2) 习题4.8 程序: #include <stdio.h> void main() { float pi,h,r,l,s,sq,vq,vz; pi=3.14; printf("请输入圆的半径r,圆柱的高h,\n"); scanf("%f,%f",&r,&h); l=2*pi*r;
int x,y; printf("输入x:"); scanf("%d",&x); if(x<1) {y=x;printf("x=%3d,y=2*x-1=%d\n",x,y);} else if(x<10) {y=2*x-1; printf("x=%3d,y=2*x-1=%d\n",x,y);}
else {y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x,y);} } 运行结果: