您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C程序设计教程与实验-吉顺如主编-实验报告4参考答案
实验四选择结构程序设计(解答)1.改错题(1)下列程序的功能为:输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_1.c保存。#includestdio.hmain(){charch,c1,c2;printf(Enteracharacter:);ch=getchar();if((ch='a')||(ch='z'))//if((ch='a')&&(ch='z'))ch-=32;c1=ch-1;c2=ch+1;if(ch='A')//if(ch=='A')c1=ch+25;elseif(ch='Z')//elseif(ch=='Z')c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}改正后的程序:#includestdio.hmain(){charch,c1,c2;printf(Enteracharacter:);ch=getchar();if((ch='a')&&(ch='z'))ch-=32;c1=ch-1;c2=ch+1;if(ch=='A')c1=ch+25;该程序的运行结果:Enteracharacter:gFGHelseif(ch=='Z')c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}(2)下列程序的功能为:输入3个整数后,输出其中最大值。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_2.c保存。#includestdio.hmain(){inta,b,c,max;printf(请输入3个整数:\n);scanf(%d%d%d,&a,&b,&c);max=a;if(cb){if(ba)max=c;}/*cba*/else/*bc*/{if(ca)max=b;}/*bca*/printf(3个数中最大者为:%d\n,max);}改正后的程序:#includestdio.hmain(){inta,b,c,max;printf(请输入3个整数:\n);scanf(%d%d%d,&a,&b,&c);max=a;if(cb){if(ca)max=c;}else{if(ba)max=b;}printf(3个数中最大者为:%d\n,max);}(3)下列程序的功能为:输入1-4月份号,输出该月份对应的英语表示法。例如,输入“3”,则输出“Mar”。纠正程序中存在错误,以实现其功能。程序以文件名sy4_3.c保存。#includestdio.hmain()该程序的运行结果:请输入3个整数:5273个数中最大者为:7{charm;printf(“inputthemonthnumber:\n”);scanf(“%c”,&m);switch(m){case1:printf(“Jan”);case2:printf(“Feb”);case3:printf(“Mar”);case4:printf(“Apr”);}}改正后的程序:改法一#includestdio.hmain(){charm;printf(inputthemonthnumber:\n);scanf(%d,&m);switch(m){case1:printf(Jan);break;case2:printf(Feb);break;case3:printf(Mar);break;case4:printf(Apr);}}改法二#includestdio.hmain(){charm;printf(inputthemonthnumber:\n);scanf(%c,&m);switch(m){case‘1’:printf(Jan);break;case‘2’:printf(Feb);break;case‘3’:printf(Mar);break;case‘4’:printf(Apr);}该程序的运行结果:inputthemonthnumber:2Feb}2.程序填空(1)下列程序的功能为:判断从键盘上输入的一个字符,并按下列要求输出。若该字符是数字输出字符串0-9若该字符是大写字母输出字符串A-Z若该字符是小写字母输出字符串a-z若该字符是其他字符输出字符串!,@,…补充完善程序,以实现其功能。程序以文件名sy4_4.c保存。#includestdio.hmain(){charc;scanf(___%c,&c_________);if('0'=c&&c='9')_____printf(0-9\n);______elseif(___c='A'&&c='Z'______)printf(A-Z\n);____elseif_______('a'=c&&c='z')printf(a-z\n);____else__________________printf(!,@,…\n);}(2)下列程序的功能为:实现加、减、乘、除四则运算。补充完善程序,以实现其功能。程序以文件名sy4_5.c保存。#includestdio.hmain(){inta,b,d;charch;printf(Pleaseinputaexpression:);scanf(%d%c%d,&a,&ch,&b);switch(ch){case'+':d=a+b;printf(%d+%d=%d\n,a,b,d);break;case'-':d=a-b;printf(%d-%d=%d\n,a,b,d);break;case'*':d=a*b;printf(%d*%d=%d\n,a,b,d);break;case'/':该程序的运行结果:da-z该程序的运行结果:Pleaseinputaexpression:2*62*6=12if(b==0)printf(Divisoriszero\n);elseprintf(%d/%d=%f\n,a,b,(float)a/b);/*强制类型转换*/break;default:printf(InputOperatorerror!\n);}}(3)下列程序的功能为:猜价格,用户输入自己估计的价格,程序判断其正确性。请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_6.c保存。#includestdio.hmain(){floata,b;printf(请主持人输入时尚手机的实际价格\n);scanf(%f,&b);printf(\n\n请观众猜时尚手机的价格\n);scanf(%f,&a);if(ab)printf(低了\n);if(a==b)printf(猜对了!\n);if(ab)printf(高了\n);}3.编程题(1)从键盘输入三个整数,输出这三个整数的和、平均值(保留2位小数)、积、最小值以及最大值。程序以文件名sy4_7.c保存。参考源程序#includestdio.hmain(){intsum=0,a,b,c,max,min;longji=0;floatave;printf(输入三个整数:(a=?b=?c=?)\n);scanf(a=%db=%dc=%d,&a,&b,&c);sum=a+b+c;ave=sum/3.0;ji=a*b*c;max=((ab?a:b)c)?(ab?a:b):c;该程序的运行结果:请主持人输入时尚手机的实际价格1500请观众猜时尚手机的价格1450低了min=a;if(bmin)min=b;if(cmin)min=c;printf(a+b+c=%da*b*c=%ldave=%.2f,sum,ji,ave);printf(\nmax=%dmin=%d\n,max,min);}(2)有一分段函数如下,要求用scanf函数输入x的值,求y值并在屏幕上输出。程序以文件名sy4_8.c保存。0x5y=x-15≤x156x2-1x≥15参考源程序#includestdio.hvoidmain(){floatx,y;scanf(%f,&x);if(x5)y=0;elseif(x15)y=x-1;elsey=6*x*x-1;printf(x=%f,y=%f\n,x,y);}(3)从键盘输入一个数字0~6,输出相应星期几的英文单词,其中数字0对应Sunday,数字1~6对应Monday~Saturday,如果输入的不是0~6的数字,则显示错误信息。程序以文件名sy4_9.c保存。参考源程序#includestdio.hmain(){intm;printf(请输入数字(0-6):);scanf(%d,&m);switch(m){case0:printf(Sunday);break;case1:printf(Monday);break;case2:printf(Tuesday);break;case3:printf(Wednesday);break;case4:printf(Thursday);break;case5:printf(Friday);break;case6:printf(Saturday);break;default:printf(数据输入错误。);}}
本文标题:C程序设计教程与实验-吉顺如主编-实验报告4参考答案
链接地址:https://www.777doc.com/doc-5810628 .html