C语言程序设计实验57.docx
- 文档编号:24738978
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:11
- 大小:19.62KB
C语言程序设计实验57.docx
《C语言程序设计实验57.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验57.docx(11页珍藏版)》请在冰豆网上搜索。
C语言程序设计实验57
实验4
1.以下几段源程序有错,请调试修改正确。
①/*源程序实现的功能:
输入两个实数,按从小到大的顺序输出*/main()
{floata,b,t;
scanf(“%f,%,f&”a,&b);
if(a>b)
t=a;a=b;b=t
printf(“%5.2f,%5.2f”,a,b);
}
#include
intmain(){
floata,b,t;
scanf("%f,%f",&a,&b);
if(a>b){
t=a;a=b;b=t;}printf("%5.2f,%5.2f",a,b);
}
②该源程序实现的功能是:
有如下函数关系:
x(x>0)
y=2(x=0)
3x(x<0)
根据输入的x值,求出y的值。
main(){intx,y;
printf(“Enterx:
”);
scanf(“d%”&,x);
ifx>0y=x;
elseif(x=0)y=2;
elsey=3*x;
printf(“x=%yd=%dn”,x,y);
}
#include
intmain(){
intx,y;
printf("Enterx:
");scanf("%d",&x);
if(x>0)y=x;
elseif(x==0)
y=2;elsey=3*x;
printf("x=%dy=%d\n",x,y);}
#include
intx,y;scanf("%d",&x);if(x<1)
y=x;
elseif(x<10)y=2*x-1;else
y=3*x-11;
printf("y=%d",y);
}
t(月数)确定如下:
某物品原有价值为p,由于使用使其价值降低,价值的折扣率根据时间t<3,无折扣
3<=t<6,2%折扣
6<=t<12,5%折扣
12=
根据输入的时间和原有价值计算物品的现有价值。
#include
intmain(){
intp,t;floaty;
printf("输入原有价值和使用时间:
");scanf("%d,%d",&p,&t);
if(t<3)y=p;
elseif(t<6)y=0.98*p;
elseif(t<12)y=0.95*p;
elseif(t<21)y=0.92*p;
elsey=0.9*p;
printf("现有价值为:
%.2f",y);
4.给一个不多于5位的正整数,要求:
①求出它是几位数;
②分别打出每一位数字;③按逆序打出各位数字,例如原数为321,应输出123
#include
intmain(){
intnum,a,ge,shi,bai,qian,wan;printf("enteranumber(0-99999):
");scanf("%d",&num);
if(num>9999)a=5;
elseif(num>999)a=4;
elseif(num>99)a=3;
elseif(num>9)a=2;elsea=1;
wan=num/10000;qian=num/1000%10;
bai=num/100%10;shi=num/10%10;
ge=num%10;
switch(a){
case5:
{printf("5位数");printf("---%d,%d,%d,%d,%d---",wan,qian,bai,shi,ge);printf("倒序为:
%d%d%d%d%d",ge,shi,bai,qian,wan);break;
}
case4:
{printf("4位数");printf("---%d,%d,%d,%d---",qian,bai,shi,ge);printf("倒序为:
%d%d%d%d",ge,shi,bai,qian);break;
}
case3:
{printf("3位数");printf("---%d,%d,%d---",bai,shi,ge);printf("倒序为:
%d%d%d",ge,shi,bai);break;
}
case2:
{printf("2位数");printf("---%d,%d---",shi,ge);printf("倒序为:
%d%d",ge,shi);break;
}
case1:
{
printf("1位数");
printf("---%d---",ge);
printf("倒序为:
%d%d%d%d%d",ge);break;}}}
实验5
1.以下程序的功能是实现从键盘输入一组字符,统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。
程序中有错,请调试修改正确。
main()
{intm,n;charc;while((c=getchar())!
='\n');{if(c>='A'&&c<='Z')m++;
if(c>='a'&&c<='z')n++;
}
printf("%d\n",m m: n); } #include intmain() {intm=0,n=0;charc; while((c=getchar())! ='\n') {if(c>='A'&&c<='Z')m++;if(c>='a'&&c<='z')n++; }printf("%d\n",m>n? m: n);} 2.以下程序可以实现从键盘输入一串数字,然后以相反的顺序将它们输出,如输入: 1234,输出4321,请填空。 main() {intnumber,right; printf("enteryounumber: \n");scanf("%d",&number); do ①→number%10 ②→number/10 {right=①;printf("%d",right)number=②; } while(number! =0); printf("\n");} 3.求Sn=a+aa+aaa+⋯+aa⋯a之值,其中a是一个数字。 例如: 2+22+222+2222+22222(此时n=5),n由键盘输入。 #include intmain(){ intSn=0,n,sum=0; inta=2;printf("entern: ");scanf("%d",&n);for(inti=0;i }printf("Sn=%d",Sn); } 4.有一数列: 2/1,3/2,5/3,8/5,⋯求出这个数列的前20项之和。 #include sum=sum+a/b;c=a;a=b+c;b=c; } printf("sum=%.2f",sum);} 四、思考题 1.猜数游戏。 玩游戏者输入一个数,提示此数是太大、太小或猜中,重新输入数据直到猜 中为止。 (提示: 在程序中设置一个整数,此数即是玩游戏者要猜的数) 2.百钱买百鸡问题。 公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种解法。 提示: 设x,y,z为三种鸡的只数,按题目写出代数方程为: x+y+z=1005x+3y+z/3=100 用穷举法列举出x、y、z的值能懂就懂,不懂就不看了。 #include intmain(){ intx,y,z; for(x=1;x<=20;x++) for(y=1;y<=33;y++) for(z=1;z<=100;z++) if(x+y+z==100&x*5+3*y+z/3==100)printf("%d,%d,%d\n",x,y,z);} 这是结果输出,后面最后一个是小鸡的,但是很明显,小鸡的个数要能整 除3,所以,再怎么改,请自己操作。 TIP: 就只需要在一个地方加一个条件。 实验6 1.以下程序段将输出computer,请填空。 #include“stdio.h” main() {inti,j=0; charc[]=”it'sacomputer”; for(i=0;①;i++)①→i<8 {②;②→j=i+7 printf(“%c”,c[j]); }} 2.以下程序的功能是求数组num中小于零的数据之和,程序中存在错误,请上机调试并改正。 #include“stdio.h” main() {intnum[20]; intsum,i; for(i=0;i<=19;i++) scanf(“%d”,&num[i]); for(i=0;i<=19;i++);这个引号去掉程序就对了。 WHY? 自己去想。 if(num[i]<0)sum+=num[i]; printf(“sum=%6d”,sum);} 3.调试程序。 下面程序完成用气泡法对10个整型数排序(从小到大),其中带*行有错,请调试修正。 #include main() { inta[10]; inti,j,t; printf(“intput10numbne”rs: ); for(i=0;i<10;i++) *scanf(“%d”,i,a[i]); printf(n“”); *for(j=1;j<10;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 57