哈工大-C语言程序设计精髓-MOOC慕课-6-12周编程题参考答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

欢迎阅读6.1/*下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出Inputerror!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。*/#includestdio.h#includestring.hintmain(){charscore[100];intflag=0,i,s;chargrade;printf(Pleaseinputscore:\n);while(1){flag=0;scanf(%s,score);for(i=0;istrlen(score);i++){if(score[i]='0'&&score[i]='9'){continue;欢迎阅读}else{flag=1;break;}}s=atoi(score);if(s0||s100||flag==1){printf(Inputerror!\n);printf(Pleaseinputscore:\n);continue;}else{break;}}s=atoi(score);if(s=90){grade='A';欢迎阅读}elseif(s=80){grade='B';}elseif(s=70){grade='C';}elseif(s=60){grade='D';}else{grade='E';}printf(grade:%c\n,grade);return0;}6.2#includestdio.h#includemath.h欢迎阅读intmain(){intn,a,i,j;doublep=0,q=0;printf(Inputa,n:\n);scanf(%d,%d,&a,&n);for(i=1;i=n;i++){for(j=0,p=0;ji;j++){p=p+a*pow(10,j);}q=p+q;}printf(sum=%.0f\n,q);return0;}6.3/*n块砖(27n=77),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解,n的值要求从键盘输入。输出结果按照男人数量升序给出(见下面示例3)。程序的运行结果示例1:欢迎阅读Inputn(27n=77):28↙men=0,women=4,children=32程序的运行结果示例2:Inputn(27n=77):36↙men=3,women=3,children=30程序的运行结果示例3:Inputn(27n=77):60↙men=2,women=14,children=20men=7,women=7,children=22men=12,women=0,children=24输入提示:Inputn(27n=77):\n输入格式:%d输出格式:men=%d,women=%d,children=%d\n*/#includestdio.hmain(){printf(Inputn(27n=77):\n);longn,i,t,s=0;欢迎阅读scanf(%d,&n);inta,b,c;for(a=0;4*a=n;a++)for(b=0;4*a+3*b=n;b++)for(c=0;4*a+3*b+c/2=n;c+=2)if(4*a+3*b+c/2==n&&c%2==0&&a+b+c==36){printf(men=%d,women=%d,children=%d\n,a,b,c);}}6.4#includestdio.hintmain(){intyear,month,day;printf(Inputyear,month:\n);scanf(%d,%d,&year,&month);switch(month){case1:day=31;break;case2:day=28;break;case3:day=31;break;欢迎阅读case4:day=30;break;case5:day=31;break;case6:day=30;break;case7:day=31;break;case8:day=31;break;case9:day=30;break;case10:day=31;break;case11:day=30;break;case12:day=31;break;default:day=-1;printf(Inputerror!\n);}if((year%4==0&&year%100!=0||year%400==0)&&month==2)day=29;if(day!=-1)printf(%ddays\n,day);return0;}7.1#includestdio.hunsignedintComputeAge(unsignedintn){}main(){inti,j,k,s=23,n,c,age;欢迎阅读scanf(%d,&n);printf(Theperson'sageis%u\n,8+2*n);}7.2#includestdio.hintgys(inta,intb){intr;r=a%b;if(r==0)returnb;elsereturngys(b,r);}main(){printf(Inputa,b:);inta,b;scanf(%d,%d,&a,&b);if(a=0||b=0){printf(Inputerror!\n);}elseprintf(%d\n,gys(a,b));}欢迎阅读7.3#includestdio.hintmedian(inta,intb,intc){if(ab){if(bc){returnb;}else{returnac?c:a;}//acb:cab}else{if(ca){returna;}//cabelse{returncb?c:b;}//acb:abc}}main(){inta,b,c;scanf(%d%d%d,&a,&b,&c);printf(Theresultis%d\n,median(a,b,c));}7.4#includestdio.hmain()欢迎阅读{printf(Inputn(n1000):\n);inta,b,c,n,s,x,y,z,flag=0;scanf(%d,&n);for(x=1;x=9;x++){for(y=1;y=9;y++){for(z=0;z=9;z++){if(x*100+y*10+z+y*100+z*11==n){flag=1;a=x,b=y,c=z;break;}}}}if(flag)printf(X=%d,Y=%d,Z=%d\n,a,b,c);elseprintf(Invalid\n);}8.1/*用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。其中,n的值不超过10,n的值由用户从键盘输入。程序运行结果示例1:欢迎阅读Inputn:3↙Input3*3matrix:123456789Thetransposedmatrixis:147258369程序运行结果示例2:Inputn:2↙Input2*2matrix:12↙45↙Thetransposedmatrixis:1425输入提示信息:提示输入矩阵的阶数:Inputn:提示输入矩阵数据:Input%d*%dmatrix:\n输入格式:%d输出提示信息:Thetransposedmatrixis:\n欢迎阅读输出格式:%4d*/#includestdio.hintmain(){printf(Inputn:);intn;scanf(%d,&n);printf(Input%d*%dmatrix:\n,n,n);intm[n][n],i,j;for(i=0;in;i++){for(j=0;jn;j++){scanf(%d,&m[i][j]);}}printf(Thetransposedmatrixis:\n);for(i=0;in;i++){for(j=0;jn;j++){printf(%4d,m[j][i]);}printf(\n);}return0;}欢迎阅读8.2/*用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。其中,n的值不超过10,n的值由用户从键盘输入。程序运行结果示例1:Inputn:3↙Input3*3matrix:123456789Thetransposedmatrixis:147258369程序运行结果示例2:Inputn:2↙Input2*2matrix:12↙45↙Thetransposedmatrixis:1425输入提示信息:提示输入矩阵的阶数:Inputn:欢迎阅读提示输入矩阵数据:Input%d*%dmatrix:\n输入格式:%d输出提示信息:Thetransposedmatrixis:\n输出格式:%4d*/#includestdio.hintmain(){printf(Inputn(n=12):\n);intn,total=0,i,s=0,b=1,t;scanf(%d,&n);printf(%4d,1);for(i=2;i=n;i++){t=s;s=b;b=b+t;printf(%4d,s+b);}printf(\nTotal=%d\n,s+b);return0;}8.3/*一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与欢迎阅读前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。[提示]:假设这个4位数的前两位数字都是i,后两位数字都是j,则这个可能的4位数k=1000*i+100*i+10*j+j式中,i和j都在0~9变化。此外,还应使k=m*m,m是整数。由于k是一个4位数,所以m值不可能小于31。输入格式:无输出格式:k=%d,m=%d\n*/#includestdio.hintmain(){inti,j,k,m,tk,tm;for(i=0;i=9;i++){for(j=0;j=9;j++){for(m=31;m100;m++){k=1000*i+100*i+10*j+j;if(i!=j&&m*m==k){tm=m;tk=k;break;}}欢迎阅读}}printf(k=%d,m=%d\n,tk,tm);return0;}8.4/*幻方矩阵是指该矩阵中每一行、每一列、每一对角线上的元素之和都是相等的。从键盘输入一个5×5的矩阵并将其存入一个二维整型数组中,检验其是否为幻方矩阵,并将其按指定格式显示到屏幕上。输入格式:%d输出格式:如果是幻方矩阵,输出提示信息:Itisamagicsquare!\n矩阵元素的输出:%4d(换行使用\n)如果不是幻方矩阵,输出提示信息:Itisnotamagicsquare!\n输入样例1:17_24_1_8_1523_5_7_14_164_6_13_20_2210_12_19_21_311_18_25_2_9(输人样例中“_”代表空格)输出样例1:欢迎阅读Itisamagicsquare!**17**24***1**8**15**23***5***7**14**16***4***6**13**20**22**10**12**19**21***3**11**18**25***2***9(输出样例中“*”代表空格)输入样例2:1_0_1_6_13_1_1_1_11_1_1_1_21_1_1_1_19_1_7_1_1(输人样例中“_”代表空格)输出样例2:Itisnotamagicsquare!注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!(输人样例中“_

1 / 67
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功