最简单的C程序设计实验报告.docx
- 文档编号:11849878
- 上传时间:2023-04-06
- 格式:DOCX
- 页数:15
- 大小:345.11KB
最简单的C程序设计实验报告.docx
《最简单的C程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《最简单的C程序设计实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
最简单的C程序设计实验报告
电信
(2)班
朱航涛
222010315220060
实验3最简单的C程序设计实验报告
1、实验目的
(1)掌握C语言中使用最多的语句——赋值语句的使用方法。
(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
2、实验内容和步骤
(1)通过下面的程序掌握各种格式转换符的正确使用方法。
①输入以下程序:
#include
voidmain()
{inta,b;
floatd,e;
charc1,c2;
doublef,g;
longm,n;
unsignedintp,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);
}
②运行结果
③在此基础上,将程序第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,
&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);
运行结果:
⑥将p、q改为%o格式符输出,运行结果:
⑦将scanf函数中的%lf和%ld改为%f和%d,运行程序,结果:
(2)习题4.8
程序:
#include
voidmain()
{
floatpi,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.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);
}
运行结果:
(3)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和scanf函数输出这两个字符。
运行结果:
结论:
一个有空格,一个没有空格。
3、实验总结
这个实验因为比较简单,是最简单的C程序设计,所以遇到的麻烦也不是很多。
只是对于格式符的完全掌握发现还需要一定的时间。
还有就是上机时遇到过编译没有错误,但是执行时却出错的情况,最后也得到了很好的解决。
实验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
voidmain()
{
intx,y;
printf("输入x:
");
scanf("%d",&x);
if(x<1)
{y=x;printf("x=%3d,y=2*x-1=%d\n",x,y);}
elseif(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);}
}
运行结果:
(2)给出一个百分制成绩,要求输出成绩等级为A、B、C、D、E。
90分以上为A,81~89分为B,70~79分为C,60~69分为D,60分以下为E。
①、事先编好程序,要求分别用if和switch语句来实现。
运行程序并检查。
If语句程序如下:
#include
voidmain()
{
inta;
printf("请输入分数a:
");
scanf("%d",&a);
if(a>=90)
printf("成绩等级为A\n");
elseif(a>=80&&a<=89)
printf("成绩等级为B\n");
elseif(a>=70&&a<=79)
printf("成绩等级为C\n");
elseif(a>=60&&a<=69)
printf("成绩等级为D\n");
else
printf("成绩等级为E\n");
}
运行结果:
Switch语句程序如下:
#include
voidmain()
{
floata;intc;
printf("请输入成绩a:
");
scanf("%f",&a);
if(a<60)c=5;
elsec=a/10;
switch(c)
{case5:
printf("E\n");break;
case6:
printf("D\n");break;
case7:
printf("C\n");break;
case8:
printf("B\n");break;
case9:
case10:
printf("A\n");break;
}
}
运行结果:
②、在运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输入数据时出错”,程序结束。
If语句程序如下:
#include
voidmain()
{
inta;
printf("请输入分数a:
");
scanf("%d",&a);
if(a>100||a<0)
printf("输入数据时出错\n");
elseif(a>=90)
printf("成绩等级为A\n");
elseif(a>=80&&a<=89)
printf("成绩等级为B\n");
elseif(a>=70&&a<=79)
printf("成绩等级为C\n");
elseif(a>=60&&a<=69)
printf("成绩等级为D\n");
else
printf("成绩等级为E\n");
}
运行结果如下:
Switch语句程序如下:
#include
voidmain()
{
floata;intc;
printf("请输入成绩a:
");
scanf("%f",&a);
if(a<0||a>100)
printf("输入数据时出错\n");
elseif(a<60)c=5;
elsec=a/10;
switch(c)
{case5:
printf("E\n");break;
case6:
printf("D\n");break;
case7:
printf("C\n");break;
case8:
printf("B\n");break;
case9:
case10:
printf("A\n");break;
}
}
运行结果如下:
③、给一个不多于5位数的正整数,要求:
求出它是几位数;分别输出每一位数字;按逆序数输出各位数字,例如原数是321,应输出123。
程序如下:
#include
voidmain()
{inta,b,c,d,e,n;
longm;
printf("输入m为:
\n");
scanf("%d",&m);
if(m>99999||m<0)
printf("errordata\n");
elseif(m>9999)
n=5;
elseif(m>999)
n=4;
elseif(m>99)
n=3;
elseif(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)
{case5:
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;
case4:
printf("%d,%d,%d,%d",b,c,d,e);
printf("\n反序数为:
");
printf("%d%d%d%d",e,d,c,b);break;
case3:
printf("%d,%d,%d",c,d,e);
printf("\n反序数为:
");
printf("%d%d%d",e,d,c);break;
case2:
printf("%d,%d",d,e);
printf("\n反序数为:
");
printf("%d%d",e,d);break;
case1:
printf("%d",e);
printf("\n反序数为:
");
printf("%d",e);break;
}
printf("\n");
}
运行结果:
④、输入四个整数,要求按由小到大的顺序输出。
在得到正确结果后,修改程序使之按由大到小的顺序输出。
程序如下:
按由小到大的顺序:
#include
voidmain()
{intt,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语句时遇到了点小麻烦,这有待于以后在实验中去解决。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 程序设计 实验 报告