ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:27.41KB ,
资源ID:3395151      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3395151.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案.docx

1、哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案6.1 /*下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出Inputerror!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。*/#include#includeintmain()charscore100;intflag=0,i,s;chargrade;printf(Pleaseinputscore:n);while(1)flag=0

2、;scanf(%s,score);for(i=0;i=0&scorei=9)continue;elseflag=1;break;s=atoi(score);if(s100|flag=1)printf(Inputerror!n);printf(Pleaseinputscore:n);continue;elsebreak;s=atoi(score);if(s=90)grade=A;elseif(s=80)grade=B;elseif(s=70)grade=C;elseif(s=60)grade=D;elsegrade=E;printf(grade:%cn,grade);return0;6.2 #i

3、nclude#includeintmain()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=%.0fn,q);return0;6.3 /*n块砖(27n=77),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解,n的值要求从键盘输入。输出结果按照男人数量升序给出(见下面示例3)。程序的运行结果示例1:Inputn(27n=77)

4、:28men=0,women=4,children=32程序的运行结果示例2:Inputn(27n=77):36men=3,women=3,children=30程序的运行结果示例3:Inputn(27n=77):60men=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=%dn*/#includestdio.hmain()printf(Inputn(27n=77):n);longn

5、,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=%dn,a,b,c);6.4 #includeintmain()intyear,month,day;printf(Inputyear,month:n);scanf(%d,%d,&year,&month);switch(month)case1:day=31;break;case2:

6、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!

7、=-1)printf(%ddaysn,day);return0;7.1 #includeunsignedintComputeAge(unsignedintn)main()inti,j,k,s=23,n,c,age;scanf(%d,&n);printf(Thepersonsageis%un,8+2*n);7.2 #includeintgys(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(Input

8、error!n);elseprintf(%dn,gys(a,b);7.3 #includeintmedian(inta,intb,intc)if(ab)if(bc)returnb;elsereturnac?c:a;/acb:caa)returna;/cabelsereturncb?c:b;/acb:abcmain()inta,b,c;scanf(%d%d%d,&a,&b,&c);printf(Theresultis%dn,median(a,b,c);7.4 #includemain()printf(Inputn(n1000):n);inta,b,c,n,s,x,y,z,flag=0;scanf

9、(%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=%dn,a,b,c);elseprintf(Invalidn);8.1 /*用二维数组作为函数参数,编程计算并输出nn阶矩阵的转置矩阵。其中,n的值不超过10,n的值由用户从键盘输入。程序运行结果示例1:Inputn:3Input3*3matrix:123456789Thetransposedmatrixis:147258369程

10、序运行结果示例2:Inputn:2Input2*2matrix:1245Thetransposedmatrixis:1425输入提示信息:提示输入矩阵的阶数:Inputn:提示输入矩阵数据:Input%d*%dmatrix:n输入格式:%d输出提示信息:Thetransposedmatrixis:n输出格式:%4d*/#includeintmain()printf(Inputn:);intn;scanf(%d,&n);printf(Input%d*%dmatrix:n,n,n);intmnn,i,j;for(i=0;in;i+)for(j=0;jn;j+)scanf(%d,&mij);prin

11、tf(Thetransposedmatrixis:n);for(i=0;in;i+)for(j=0;jn;j+)printf(%4d,mji);printf(n);return0;8.2 /*用二维数组作为函数参数,编程计算并输出nn阶矩阵的转置矩阵。其中,n的值不超过10,n的值由用户从键盘输入。程序运行结果示例1:Inputn:3Input3*3matrix:123456789Thetransposedmatrixis:147258369程序运行结果示例2:Inputn:2Input2*2matrix:1245Thetransposedmatrixis:1425输入提示信息:提示输入矩阵的

12、阶数:Inputn:提示输入矩阵数据:Input%d*%dmatrix:n输入格式:%d输出提示信息:Thetransposedmatrixis:n输出格式:%4d*/#includeintmain()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=%dn,s+b);return0;8.3 /*一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一

13、些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。提示:假设这个4位数的前两位数字都是i,后两位数字都是j,则这个可能的4位数k=1000*i+100*i+10*j+j式中,i和j都在09变化。此外,还应使k=m*m,m是整数。由于k是一个4位数,所以m值不可能小于31。输入格式:无输出格式:k=%d,m=%dn*/#includeintmain()inti,j,k,m,tk,tm;for(i=0;i=9;i+)for(j=0;j=9;j+)for(m=31

14、;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=%dn,tk,tm);return0;8.4 /*幻方矩阵是指该矩阵中每一行、每一列、每一对角线上的元素之和都是相等的。从键盘输入一个55的矩阵并将其存入一个二维整型数组中,检验其是否为幻方矩阵,并将其按指定格式显示到屏幕上。输入格式:%d输出格式:如果是幻方矩阵,输出提示信息:Itisamagicsquare!n矩阵元素的输出:%4d(换行使用n)如果不是幻方矩阵,输出提示信息:Itisnotamagicsquare!n输入样例1:17_24_

15、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!注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式

16、控制字符串!(输人样例中“_”代表空格,输出样例中“*”代表空格)*/#includeintmain()inta55,i,j,t,row5=0,col5=0,dl1=0,dl2=0,flag=1;for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij);for(i=0;i5;i+)for(j=0;j5;j+)rowi+=aij;for(i=0;i5;i+)for(j=0;j5;j+)coli+=aji;for(i=0;i5;i+)dl1+=aii;dl2+=a4-i4-i;for(i=0;i4;i+)if(coli!=coli+1)flag=0;break;if(r

17、owi!=rowi+1)flag=0;break;if(col1!=row1)flag=0;if(dl1!=dl2)flag=0;if(dl1!=col1)flag=0;if(flag)printf(Itisamagicsquare!n);for(i=0;i5;i+)for(j=0;j5;j+)printf(%4d,aij);printf(n);elseprintf(Itisnotamagicsquare!n);return0;9.1 /*从键盘输入一个数,检查这个数中是否有重复出现的数字。如果这个数中有重复出现的数字,则显示“Repeateddigit!”;否则显示“Norepeateddi

18、git!”。已知函数原型:intCountRepeatNum(intcount,intn);若有重复数字,则该函数返回重复出现的数字;否则返回-1.程序运行结果示例1:Inputn:28212Repeateddigit!程序运行结果示例2:Inputn:12345Norepeateddigit!输入提示:Inputn:n输入格式:%ld输出格式:有重复数字,输出信息:Repeateddigit!n没有重复数字,输出信息:Norepeateddigit!n*/#includeintmain()intlog10=0,a100;intb,i=0,n,c,d;printf(Inputn:n);scan

19、f(%d,&n);while(n!=0)b=n%10;n/=10;ai=b;i+;ai=n;intflag=0;for(c=0;ci;c+)for(d=c+1;di;d+)if(ac=ad)flag=1;break;/if(a0=ai-1|a0=a1)flag=1;if(flag)printf(Repeateddigit!n);elseprintf(Norepeateddigit!n);9.2 /*教授正在为一个有N个学生的班级讲授离散数学课。他对某些学生缺乏纪律性很不满意,于是决定:如果课程开始后上课的人数小于K,就取消这门课程。从键盘输入每个学生的到达时间,请编程确定该课程是否被取消。如果

20、该门课程被取消,则输出“Yes”,否则输出“No”。假设教授在时刻0开始上课。如果一个学生的到达时间是非正整数,则表示该学生在上课前进入教室。如果一个学生的到达时间是正整数,则表示该学生在上课后进入教室。如果一个学生在时刻0进入教室,也被认为是在上课前进入教室。假设到达时间的绝对值不超过100,学生数N不超过1000。要求在输入学生的到达时间之前,先输入N和K。已知函数原型:/函数功能:根据数组a中记录的学生到达时间确定课程是否被取消,取消则返回1,否则返回0intIsCancel(inta,intn,intk);程序运行结果示例1:Inputn,k:4,3-1-342YES程序运行结果示例2

21、:Inputn,k:5,3-1-2-304NO输入提示:Inputn,k:n输入格式:%d,%d%d输入包括两行数据:第1行是n,k的值。第2行是学生的到达时间。输出格式:课程被取消,输出YES课程不取消,输出NO*/#includeintIsCancel(inta,intn,intk)inti,s=0;for(i=0;in;i+)if(ai=0)s+;if(sk)return1;elsereturn0;intmain()inta100;inti,n,k;printf(Inputn,k:n);scanf(%d,%d,&n,&k);for(i=0;in;i+)scanf(%d,&ai);if(I

22、sCancel(a,n,k)printf(YES);elseprintf(NO);9.3 /*请编程找出一个M*N矩阵中的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。如果矩阵中没有鞍点,则输出“Nosaddlepoint!”已知函数原型:voidFindSaddlePoint(intaN,intm,intn);在该函数中输出有无鞍点的信息。程序运行结果示例1:Inputm,n:3,3Inputmatrix:123456789a02is3程序运行结果示例2:Inputm,n:3,4Inputmatrix:347501829326Nosaddlepoint!输入提示:Inputm,n

23、:n“Inputmatrix:n输入格式:输入矩阵大小:%d,%d输入矩阵元素:%d输出格式:找到鞍点的输出格式:a%d%dis%dn没找到鞍点的输出格式:Nosaddlepoint!n*/#include#includemain()inta100100,m;intn,i,j,k,max,flag=0,shit=0,l;printf(Inputm,n:n);scanf(%d,%d,&n,&l);printf(Inputmatrix:n);for(i=0;in;i+)for(j=0;jl;j+)scanf(%d,&aij);for(i=0;in;i+)flag=0;m=ai0;for(j=0;j

24、m)m=aij;max=j;for(k=0;kn;k+)if(akmax=m&k!=i)flag=1;break;if(flag=0)printf(a%d%dis%dn,i,max,m);shit=1;break;if(shit=0)printf(Nosaddlepoint!n);9.4 /*输入一串字符(字符数小于80),以回车表示输入结束,编程计算并输出这串字符中连续重复次数最多的字符和重复次数。如果重复次数最多的字符有两个,则输出最后出现的那一个。已知函数原型:/函数功能:统计字符串中连续重复次数最多的字符及其重复的次数/函数参数:str指向待统计的字符串,指针形参tag返回重复字符最后

25、出现的下标位置/函数返回值:返回字符重复的次数intCountRepeatStr(charstr,int*tag);求解思路:设置一个计数器,遍历字符串中的所有字符,若stri=stri+1,则计数器加1,同时判断计数器的值是否大于记录的最大重复次数max,若大于,则用计数器的值更新max,并记录该字符最后出现的位置i+1.若stri!=stri+1,则计数器重新初始化为1。遍历结束时,函数返回max的值。程序运行结果示例1:Inputastring:5:5程序运行结果示例2:Inputastring:sgf2222572:4输入提示信息:Inputastring:n输入格式:用gets()输入字符串输出格式:%c:%dn*/#include#includeintmain()chara80

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1