1、最简单的C程序设计实验报告电信(2)班朱航涛222010315220060实验3 最简单的C程序设计实验报告1、 实验目的(1) 掌握C语言中使用最多的语句赋值语句的使用方法。(2) 掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。2、 实验内容和步骤(1) 通过下面的程序掌握各种格式转换符的正确使用方法。输入以下程序:#includevoid 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
2、;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf(a=%d,b=%dnc1=%c,c2=%cnd=%6.2f,e=%6.2fn,a,b,c1,c2,d,e);printf(f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un,f,g,m,n,p,q);运行结果在此基础上,将程序第914行改为: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函数输入数据而不用赋值语句,
3、scanf函数如下:scanf(%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u,&a,&b,&c1,&c2,&d,&e, &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=%dnc1=%c,c2=%cnd=%15.6f,e=%15.12fn,a,b,c1,c2,d,e);printf(f=%f,g=%fnm=%d,n=%dnp=%d,q=%dn,f,g
4、,m,n,p,q);运行结果:将p、q改为%o格式符输出,运行结果:将scanf函数中的%lf和%ld改为%f和%d,运行程序,结果:(2) 习题4.8程序:#include 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;s=pi*r*r;sq=4*pi*r*r;vq=4/3*(pi*r*r);vz=pi*r*r*h;printf(圆的周长为:l=%6.2fn,l);printf(圆的面积为:s=%6.2fn,s);printf(圆球表面积:sq
5、=%6.2fn,sq);printf(圆球体积为:sv=%6.2fn,vq);printf(圆柱体积为:sz=%6.2fn,vz);运行结果:(3) 编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和scanf函数输出这两个字符。运行结果:结论:一个有空格,一个没有空格。3、 实验总结 这个实验因为比较简单,是最简单的C程序设计,所以遇到的麻烦也不是很多。只是对于格式符的完全掌握发现还需要一定的时间。还有就是上机时遇到过编译没有错误,但是执行时却出错的情况,最后也得到了很好的解决。实验4 逻辑结构程序设计1、实验目的: (1)了解C语言表示逻辑量的方法(以0代
6、表“假”,以非0代表“真”)。 (2)学会正确使用逻辑运算和逻辑表达式。 (3)熟练掌握if和switch语句。 (4)结合程序掌握一些简单的算法。 (5)学习调试程序。2、实验内容: (1)有一函数:当x1时,y=x;当1=x=10时,y=3x-11;用scanf函数输入x的值,求y的值。运行程序,输入x在各个区间的值,检查输出的y值是否正确。程序如下:#includevoid main() int x,y; printf(输入x:); scanf(%d,&x); if(x1) y=x;printf(x=%3d,y=2*x-1=%dn,x,y); else if(x10) y=2*x-1;
7、printf(x=%3d,y=2*x-1=%dn,x,y); else y=3*x-11; printf(x=%3d,y=3*x-11=%dn,x,y);运行结果:(2)给出一个百分制成绩,要求输出成绩等级为A、B、C、D、E。90分以上为A,8189分为B,7079分为C,6069分为D,60分以下为E。 、事先编好程序,要求分别用if和switch语句来实现。运行程序并检查。 If语句程序如下:#includevoid main() int a; printf(请输入分数a:); scanf(%d,&a); if(a=90) printf(成绩等级为An); else if(a=80&a=
8、70&a=60&a=69) printf(成绩等级为Dn); else printf(成绩等级为En);运行结果:Switch语句程序如下:#includevoid main() float a;int c; printf(请输入成绩a:); scanf(%f,&a); if(a60) c=5; else c=a/10; switch(c) case 5:printf(En);break; case 6:printf(Dn);break; case 7:printf(Cn);break; case 8:printf(Bn);break; case 9: case 10:printf(An);b
9、reak; 运行结果:、在运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输入数据时出错”,程序结束。If语句程序如下:#includevoid main() int a; printf(请输入分数a:); scanf(%d,&a); if(a100|a=90) printf(成绩等级为An); else if(a=80&a=70&a=60&a=69) printf(成绩等级为Dn); else printf(成绩等级为En);运行结果如下:Switch语句程序如下:#includevoid
10、 main() float a;int c; printf(请输入成绩a:); scanf(%f,&a); if(a100) printf(输入数据时出错n); else if(a60) c=5; else c=a/10; switch(c) case 5:printf(En);break; case 6:printf(Dn);break; case 7:printf(Cn);break; case 8:printf(Bn);break; case 9: case 10:printf(An);break; 运行结果如下:、给一个不多于5位数的正整数,要求:求出它是几位数;分别输出每一位数字;按
11、逆序数输出各位数字,例如原数是321,应输出123。程序如下:#include void main()int a,b,c,d,e,n;long m;printf (输入m为:n);scanf (%d,&m);if (m99999|m9999)n=5;else if (m999)n=4;else if (m99)n=3;else if (m9)n=2;elsen=1;printf (n=%dn,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*
12、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(%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
13、(n反序数为:);printf(%d%d,e,d);break;case 1:printf(%d,e);printf(n反序数为:);printf(%d,e);break;printf(n);运行结果:、输入四个整数,要求按由小到大的顺序输出。在得到正确结果后,修改程序使之按由大到小的顺序输出。程序如下:按由小到大的顺序:#includevoid 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=%dn,a,b,c,d);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(ad)t=a;a=d;d=t;if(bc)t=b;b=c;c=t;if(bd)t=b;b=d;d=t;if(cd)t=c;c=d;d=t;printf(排序结果如下:n);printf(%d %d %d %dn,a,b,c,d);运行结果如下:4、 实验总结 这次实验主要是关于逻辑结构的,总的来说应该完成的还算不错。对于if和switch这两种循环结构,个人比较倾向于用if,所以在设计switch语句时遇到了点小麻烦,这有待于以后在实验中去解决。