哈尔滨工业大学C语言2016年MOOC在线测试3-12周答案_第1页
哈尔滨工业大学C语言2016年MOOC在线测试3-12周答案_第2页
哈尔滨工业大学C语言2016年MOOC在线测试3-12周答案_第3页
哈尔滨工业大学C语言2016年MOOC在线测试3-12周答案_第4页
哈尔滨工业大学C语言2016年MOOC在线测试3-12周答案_第5页
已阅读5页,还剩92页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本答案仅供参考第3周1计算两个数的平方和(3分)题目内容:从键盘读入两个实数,编程计算并输出它们的平方和,要求使用数学函数pow(x,y)计算平方值,输出结果保留2位小数。提示:使用数学函数需要在程序中加入编译预处理命令 #include 以下为程序的运行结果示例:please input x and y:1.2,3.4result=13.00输入格式:%f,%f输出格式:输入提示信息:Please input x and y:n输出格式:Result=%.2fn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#incl

2、ude int main() float x,y,S,D;printf(Please input x and y:n); scanf(%f,%f,&x,&y); S = pow(x,2); D = pow(y,2); printf(Result=%.2fn,S+D);return 0;2逆序数的拆分计算(3分)题目内容:从键盘输入一个4位数的整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-1234,忽略负号,由1234分离出其千位1、百位2、十位3、个位4,然后计算4*1000+3*100+2*10+1 = 4321,并输出4321。再将得到的逆序数4321拆分为两个2位数的

3、正整数43和21,计算并输出拆分后的两个数的平方和的结果。以下是程序的运行结果示例:Input x:-1234y=4321a=43,b=21result=2290输入格式:%d输出格式:输入提示信息:Input x:n逆序数输出格式:y=%dn逆序数拆分后的输出格式:a=%d,b=%dn平方和的输出格式:result=%dn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#include main() int x,b0,b1,b2,b3,y,a,b,c;printf(Input x:n); scanf(%d,&x); x

4、 = (int)fabs(x); /*取x绝对值*/ b3 = x/1000; /*取x千位*/ b2 = (x-b3*1000)/100; /*取x百位*/ b1 = (x-b3*1000-b2*100)/10; /*取x十位*/ b0 = x%10; /*取x个位*/ y = b3+b2*10+b1*100+b0*1000; printf(y=%dn,y); a = b0*10+b1; b = b2*10+b3; c = (a*a)+(b*b); printf(a=%d,b=%dn,a,b); printf(result=%dn,c);return 0;3拆分英文名(3分)题目内容:从键盘

5、输入某同学的英文名(小写输入,假设学生的英文名只包含3个字母。如: tom),编写程序在屏幕上输出该同学的英文名,且首字母大写(如: Tom)。同时输出组成该英文名的所有英文字符在26个英文字母中的序号。以下为程序的运行结果示例:Input your English name:tomTomt:20o:15m:13输入格式:%c%c%c输出格式:输入提示信息:Input your English name:n首字母大写的英文姓名的输出格式:%c%c%cn姓名中每个字母在26个英文字母中的序号的输出格式:%c:%dn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间

6、限制:500ms内存限制:32000kb#include int main() char x,y,z,A;printf(Input your English name:n); scanf(%c%c%cn,&x,&y,&z); A=x-32; /*首字母改为大写*/ printf(%c%c%cn,A,y,z); printf(%c:%dn,x,x-96); printf(%c:%dn,y,y-96); printf(%c:%dn,z,z-96);4计算体指数(3分)题目内容:从键盘输入某人的身高(以厘米为单位,如174cm)和体重(以公斤为单位,如70公斤),将身高(以米为单位,如1.74m)和

7、体重(以斤为单位,如140斤)输出在屏幕上,并按照以下公式计算并输出体指数,要求结果保留到小数点后2位。假设体重为w公斤,身高为h米,则体指数的计算公式为: 以下是程序的运行结果示例:Input weight, height:70,174weight=140height=1.74t=23.12输入格式:%d,%d输出格式:输入提示信息:Input weight, height:n (注意:在height和逗号之间有一个空格)体重输出格式:weight=%dn身高输出格式:height=%.2fn体指数输出格式:t=%.2fn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的

8、程序中。时间限制:500ms内存限制:32000kb#include int main() float A,b; int x,y;printf(Input weight, height:n); scanf(%d,%d,&x,&y); printf(weight=%dn,x*2); A=(float)y/100; printf(height=%.2fn,A); b=(float)x/(A*A); printf(t=%.2fn,b);第4周1数位拆分v2.0(4分)题目内容:从键盘上输入一个4位数的整数n,编写程序将其拆分为两个2位数的整数a和b,计算并输出拆分后的两个数的加、减、乘、除和求余运算

9、的结果。例如n=-4321,设拆分后的两个整数为a,b,则a=-43,b=-21。除法运算结果要求精确到小数点后2位。求余和除法运算需要考虑除数为0的情况,即如果拆分后b=0,则输出提示信息The second operater is zero!程序的运行结果示例1:Please input n:120012,0sum=12,sub=12,multi=0The second operater is zero!程序的运行结果示例2:Please input n:-2304-23,-4sum=-27,sub=-19,multi=92dev=5.75,mod=-3输入格式:%d输出格式:输入提示信息

10、:Please input n:n拆分后的两个整数的输出格式:%d,%dn加法、减法、乘法的输出格式:sum=%d,sub=%d,multi=%dn除法和求余的输出格式:dev=%.2f,mod=%dn除数为0的提示信息:The second operater is zero!n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#include main() float c; int x,b0,b1,b2,b3,a,b,d;printf(Please input n:n); scanf(%d,&x); b3 = x/100

11、0; /*取x千位*/ b2 = (x-b3*1000)/100; /*取x百位*/ b1 = (x-b3*1000-b2*100)/10; /*取x十位*/ b0 = x%10; /*取x个位*/ a=b3*10+b2; /*拆分输入的整数为两段*/ b=b1*10+b0; printf(%d,%dn,a,b); printf(sum=%d,sub=%d,multi=%dn,a+b,a-b,a*b); /*输出两段数的加,减,乘*/ if(0=b) printf(The second operater is zero!n); else c=(float)a/b; d=a%b; printf(

12、dev=%.2f,mod=%dn,c,d); return 0;2快递费用计算(4分)题目内容:上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域:0区1区2区3区4区同城临近两省1500公里(含)以内15002500公里2500公里以上上海江苏,浙江北京,天津,河北,辽宁,河南,安微,陕西,湖北,江西,湖南,福建,广东,山西。吉林,辽宁,甘肃,四川,重庆,青海,广西,云南,海南,内蒙古,黑龙江,贵州。新疆,西藏。快递费按邮件重量计算,由起重费用、续重费用两部分构成:(1)起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算),超过首重的重量,按公斤(不足1公斤,按1公

13、斤计算)收取续重费;(2)同城起重资费10元,续重3元/公斤;(3)寄往1区(江浙两省)的邮件,起重资费10元,续重4元;(4)寄往其他地区的邮件,起重资费统一为15元。而续重部分,不同区域价格不同:2区的续重5元/公斤,3区的续重6.5元/公斤,4区的续重10元/公斤。编写程序,从键盘输入邮件的目的区域编码和重量,计算并输出运费,计算结果保留2位小数。提示:续重部分不足一公斤,按1公斤计算。因此,如包裹重量2.3公斤:1公斤算起重,剩余的1.3公斤算续重,不足1公斤按1公斤计算,1.3公斤折合续重为2公斤。如果重量应大于0、区域编号不能超出0-4的范围。程序运行结果示例1:4,4.5Pric

14、e: 55.00程序运行结果示例2:5,3.2Error in AreaPrice: 0.00输入格式:用逗号分隔的两个数字,第一个表示区域、第二个是重量:%d,%f输出格式:价格的输出格式:Price: %5.2fn区域错误的提示信息:Error in Arean为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#include #include #define eps 1E-5main() float b,c,d; int a; scanf(%d,%f,&a,&b); switch(a) case 0: if (b=1

15、+eps) c=10.0; else d=ceil(b-1.0); c=d*3+10.0; printf(Price: %5.2fn,c); break; case 1: if (b=1+eps) c=10.0; else d=ceil(b-1.0); c=d*4+10.0; printf(Price: %5.2fn,c); break; case 2: if (b=1+eps) c=15.0; else d=ceil(b-1.0); c=d*5+15.0; printf(Price: %5.2fn,c); break; case 3: if (b=1+eps) c=15.0; else d=

16、ceil(b-1.0); c=d*6.5+15; printf(Price: %5.2fn,c); break; case 4: if (b=1+eps) c=15.0; else d=ceil(b-1.0); c=d*10+15.0; printf(Price: %5.2fn,c); break; default: printf(Error in Arean); printf(Price: 0.00); return 0;3数据区间判断(6分)题目内容:从键盘输入一个int型的正整数n(已知:0n10000),编写程序判断n落在哪个区间。如果用户输入的数据不在指定的范围里,程序输出 erro

17、r!。例如,输入265,则该数属于区间 100-999。程序运行结果示例1:Please enter the number:25632563: 1000-9999程序运行结果示例2:Please enter the number:156156: 100-999程序运行结果示例3:Please enter the number:3636: 10-99程序运行结果示例4:Please enter the number:33: 0-9程序运行结果示例5:Please enter the number:10923error!输入格式:%d输出格式:输入提示信息:Please enter the num

18、ber:n输出的区间判断:%d: 1000-9999n%d: 100-999n%d: 10-99n%d: 0-9n输入错误提示信息:error!n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#include #include int main() int x,b0,b1,b2,b3,y,a,b,c;printf(Please enter the number:n); scanf(%d,&x); if (x=10000) printf(error!n); else b3 = x/1000; /*取x千位*/ b2 =

19、(x-b3*1000)/100; /*取x百位*/ b1 = (x-b3*1000-b2*100)/10; /*取x十位*/ b0 = x%10; /*取x个位*/ if(b3!=0) printf(%d: 1000-9999n,x); else if(b3=0&b2!=0) printf(%d: 100-999n,x); else if(b3=0&b2=0&b1!=0) printf(%d: 10-99n,x); else printf(%d: 0-9n,x); return 0;4计算一元二次方程的根v2.0(4分)题目内容:根据下面给出的求根公式,计算并输出一元二次方程的两个实根,要求精

20、确到小数点后4位。其中a,b,c的值由用户从键盘输入。如果用户输入的系数不满足求实根的要求,输出错误提示error!。程序运行结果示例1:Please enter the coefficients a,b,c:1,2,1x1=-1.0000, x2=-1.0000程序运行结果示例2:Please enter the coefficients a,b,c:2,6,1x1=-0.1771, x2=-2.8229程序运行结果示例3:Please enter the coefficients a,b,c:2,1,6error!输入格式:%f,%f,%f输出格式:输入提示信息:Please enter

21、the coefficients a,b,c:n输出格式:x1=%7.4f, x2=%7.4fn输入错误提示信息:error!n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#include #include int main() float a,b,c,disc,p,q;printf(Please enter the coefficients a,b,c:n); scanf(%f,%f,%f,&a,&b,&c); disc=b*b-4*a*c; if(disc0) printf(error!n); else p=-b

22、/(2*a); q=sqrt(disc)/(2*a); printf(x1=%7.4f, x2=%7.4fn,q+p,p-q); return 0;第五周16位密码输入检测(4分)题目内容:从键盘输入6位仅由数字09组成的密码。用户每输入一个密码并按回车键后,程序给出判断:如果是数字,则原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一位密码;否则,程序提示error,并让用户继续输入下一位密码。直到用户输入的密码全部是数字为止。以下为程序的运行结果示例:Input your password:11, you have enter 1-bits number66, you ha

23、ve enter 2-bits numberaerrorderror44, you have enter 3-bits number66, you have enter 4-bits number88, you have enter 5-bits number22, you have enter 6-bits number输入格式:数字字符输入格式:%c输出格式:输入提示信息:Input your password:n如果输入的是数字,输出格式为:%c, you have enter %d-bits numbern如果输入的不是数字,输出提示信息:errorn为避免出现格式错误,请直接拷贝粘贴

24、题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#include int main() int i; char c; printf(Input your password:n); i=0; while (i=48)&(c=57) i=i+1; printf(%c, you have enter %d-bits numbern,c,i); else printf(errorn); return 0;2判断一个整型数据有几位v1.0(4分)题目内容:从键盘输入一个整型数据(int型),编写程序判断该整数共有几位。例如,从键盘输入整数16644,该整数共有5位

25、。程序运行结果示例1:Please enter the number:2112521125: 5 bits程序运行结果示例2:Please enter the number:-12234-12234: 5 bits输入格式:%d输出格式:输入提示信息:Please enter the number:n判断该整数共有几位:%d: %d bitsn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#include #include int main() int n,nn,b,i,j,sum; printf(Please ent

26、er the number:n); scanf(%d,&n); nn=fabs(n); b=1; sum=1; i=1; j=10; while (b=1) if (nn=i)&(nnj) printf(%d: %d bitsn,n,sum); b=0; break; else i=i*10; j=j*10; sum=sum+1; return 0;3检测输入数据中奇数和偶数的个数(4分)题目内容:从键盘输入一系列正整数,输入-1表示输入结束(-1本身不是输入的数据)。编写程序判断输入数据中奇数和偶数的个数。如果用户输入的第一个数据就是-1,则程序输出over!。否则。用户每输入一个数据,输出

27、该数据是奇数还是偶数,直到用户输入-1为止,分别统计用户输入数据中奇数和偶数的个数。程序运行结果示例1:Please enter the number:11:odd55:odd88:even99:odd1212:even1717:odd-1The total number of odd is 4The total number of even is 2程序运行结果示例2:Please enter the number:-1over!The total number of odd is 0The total number of even is 0输入格式:%d输出格式:输入提示信息:Please

28、 enter the number:n用户输入的第一个数据就是-1,输出格式:over!n奇数的输出格式:%d:oddn偶数的输出格式:%d:evenn输入数据中奇数的个数统计:The total number of odd is %dn输入数据中偶数的个数统计:The total number of even is %dn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#include int main() int a,odd,even; odd=0;even=0; printf(Please enter the nu

29、mber:n); a=0; while (a!=-1) scanf(%d,&a); if (a!=-1) if (a%2=1) odd+; printf(%d:oddn,a); else even+; printf(%d:evenn,a); if (even+odd=0) printf(over!n); printf(The total number of odd is %dn,odd); printf(The total number of even is %dn,even); return 0;4计算球的反弹高度(4分)题目内容:一个球从100米高度自由落下,每次落地后反跳回原高度的一半,

30、再落下并反弹,求它在第5次和第10次落地时,分别共经过了多少米?第5次和第10次反弹分别是多高?要求计算结果保留到小数点后3位。用户从键盘输入想要计算的第n次(n=15)。程序运行结果示例1:Input:55 times:287.5003.125程序运行结果示例2:Input:1010 times:299.6090.098输入格式:%d输出格式:反弹次数:%d times:n第n次反弹共经过多少米:%.3fn第n次的反弹高度:%.3fn输入提示信息:Input:n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#incl

31、ude int main() double h,sum=0; int n,i; printf(Input:n); scanf(%d,&n); h=100; for (i=1;i=n;i+) sum+=h; h/=2; sum+=h; sum-=h; printf(%d times:n,n); printf(%.3fn,sum); printf(%.3fn,h); return 0;第六周1程序改错v2.0(5分)下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出Input error!

32、,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。#includeintmain()intscore;chargrade;printf(Pleaseinputscore:);scanf(%d,&score);if(score100)printf(Inputerror!n);elseif(score=90)grade=A;elseif(score=80)grade=B;elseif(score=70)grade=C;elseif(score=60)grade=D;elsegrade=E;printf(grade

33、:%cn,grade);return0;程序运行结果示例1:Please input score:aInput error!Please input score:-12Input error!Please input score:230Input error!Please input score:92grade: A程序运行结果示例2:Please input score:88grade: B程序运行结果示例3:Please input score:73grade: C程序运行结果示例4:Please input score:65grade: D程序运行结果示例5:Please input s

34、core:27grade: E输入提示信息:Please input score:n输入格式:%d输出格式:输入错误时的提示信息:Input error!n输出格式:grade: %cn (注意:%c前面有一个空格)为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#includeint main() int score=-1; char grade; printf(Please input score:n); scanf(%d, &score); while(score 100) getchar(); printf(In

35、put error!n); printf(Please input score:n); scanf(%d, &score); if (score = 90) grade = A; else if (score = 80) grade = B; else if (score = 70) grade = C; else if (score = 60) grade = D; else grade = E; printf(grade: %cn, grade); return 0;2编程计算a+aa+aaa+aaa(n个a)的值(4分)题目内容:编程计算 a+aa+aaa+aaa(n个a)的值,n和a的

36、值由键盘输入。例如,当n=4,a=2,表示计算2+22+222+2222的值。程序运行结果示例:Input a,n:2,4sum=2468输入提示信息:Input a,n:n输入格式: %d,%d(先输入a,后输入n)输出格式: sum=%ldn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:31kb#include main() long term=0,sum=0; int a,i,n; printf(Input a,n:n); scanf(%d,%d,&a,&n); for(i=1;i=n;i+) term=term*10+a;

37、sum =sum+term; printf(sum=%ldn,sum);3搬砖问题(4分)题目内容:n块砖(27n=77),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解,n的值要求从键盘输入。输出结果按照男人数量升序给出(见下面示例3)。程序的运行结果示例1:Input n(27n=77):28men=0,women=4,children=32程序的运行结果示例2:Input n(27n=77):36men=3,women=3,children=30程序的运行结果示例3:Inputn(27n=77):60men=2,women=14

38、,children=20men=7,women=7,children=22men=12,women=0,children=24输入提示:Input n(27n=77):n输入格式: %d 输出格式:men=%d,women=%d,children=%dn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。#includeint main() int a; int man, wman, child; printf(Input n(27n=77):n); scanf(%d,&a); for (man = 0; man = 15; man+) for (wman = 0;

39、wman = 20; wman+) child = 36 - wman - man; if (a = child / 2 + 3 * wman + 4 * man & child % 2 = 0) printf(men=%d,women=%d,children=%dn, man, wman, child); 4编程输出某年某月有多少天(考虑到闰年)。(5分)题目内容:从键盘输入一个年份和月份,输出该月有多少天(考虑闰年),用switch语句编程。程序运行结果示例1:Input year,month:2015,331 days程序运行结果示例2:Input year,month:2015,430

40、 days程序运行结果示例3:Input year,month:2016,229 days程序运行结果示例4:Input year,month:2014,228 days程序运行结果示例5:Input year,month:2015,13Input error!输入提示信息:Input year,month:n输入格式: %d,%d输出格式:输入错误时的提示信息:Input error!n输出格式: 31 daysn 30 daysn 29 daysn 28 daysn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。 时间限制:500ms内存限制:32000kb#

41、include int main( ) int y,m; printf(Input year,month:n); scanf(%d,%d,&y,&m); if (m12) printf(Input error!n);return 0; switch (m) case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf(31 daysn); break; case 4: case 6: case 9: case 11: printf(30 daysn); break; case 2: if (y%100=0) y/=100; i

42、f (y%4=0) printf(29 daysn); else printf(28 daysn); return 0;第七周1递归法计算游戏人员的年龄(4分)题目内容:有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,问第n个人多大年纪。递归函数原型:unsigned int ComputeAge(unsigned int n);提示:计算年龄的递归公式为:输入格式:%u输出格式:The persons age is %un输入样例1:5输出样例

43、1:The_persons_age_is_18输入样例2:10输出样例2:The_persons_age_is_28注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!(注意:在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格。)时间限制:500ms内存限制:32000kb#include#includeunsigned int ComputeAge(unsigned int n);unsigned int ComputeAge(unsigned int n) int a; if (n = 1) a = 10; else a = Com

44、puteAge(n - 1) + 2; return a;int main() unsigned int n,f; scanf(%u,&n); f=ComputeAge(n); printf(The persons age is %un,f); return 0;2.魔术师猜数(4分)题目内容:在一种室内互动游戏中,魔术师要每位观众心里想一个三位数abc(a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数的和值。只要观众说出这个和是多少,则魔术师一定能猜出观众心里想的原数abc是多少。例如,观众甲说他计算的和值是1999,则

45、魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师说:“你算错了!”。请编程模拟这个数字魔术游戏。要求用函数实现,函数原型为:int Magic(int m);其中形参m代表观众计算的和值。输入格式:%d输出格式:观众计算错误,魔术师给出的结论:The sum you calculated is wrong!n观众计算正确,魔术师给出的结论:The number is %dn输入样例1:1998输出样例1:The_sum_you_calculated_is_wrong!输入样例2:1999输出样例2:The_number_is_443注意:为避免出现格式错误,请直接拷贝

46、粘贴上面给出的输入、输出提示信息和格式控制字符串!(注意:在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格。)参考:#include#include#include#include#include/函数的声明void magician();void decision();void mainmenu();void exitgame();void hellp();void playerchoice();void mainPage()/主界面int i;printf(t_vvvvvv_系统正在加载中,请稍等_vvvvvv_tn);printf(t_ zzzzzzzzzzz电

47、脑不给力,请稍等一会_zzzzzzzzzzzztn);for(i=0;i80;i+)printf(%);Sleep(200); printf(ttt 终于结束了()tttn);system(CLS);system(color 8B);printf( *n);printf( *n);printf( * *n);printf( * *n);printf( * 第五组 *n);printf( * 成员:林可、王丽婕、 HYPERLINK /s?wd=%E5%BC%A0%E5%A9%B7%E5%A9%B7&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4n

48、H00T1Y3mhcdnAR1Pj6LmW0YmhPW0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3En1msrjm1PWck t _blank 张婷婷、许春雪、 *n);printf( * 裴月娥、钱鹏辰 *n);printf( * *n);printf( * *n);printf( *n);printf( *n);int a;int b;int c;int sum;/计算的和值int e;/三位数的值void main ()/主函数mainPage();m

49、ainmenu();/*acb+bca+bac+cab+cba+abc=sum-abc222(a+b+c)=sum-abc本代码的核心思想*/void mainmenu()/系统主菜单int select;while(1)printf(%Main Menu%n);printf(Menun);printf(t 1 退出n);printf(t 2 进入游戏n);printf(t 3 游戏帮助n);printf(请输入相应的数字,进入不同的模块: n);printf(n);scanf(%d,&select);getchar();fflush(stdin);if(select=1)exitgame()

50、;else if(select=2)playerchoice();else if(select=3)hellp();elseprintf(选择非法,请重新输入进行再次选择n); void viewer()/玩家是观众int sum;/键盘输入的和值 int e;/得出的三位数int f; int g;int m;printf(请输入得到的数:n);scanf(%d,&sum);e=222-sum%222; a=e/100;b=(e/10)%10;c=e%10; g=a+b+c;f=e+(222*g);if (f=sum)printf(%dn,e); else if(sum%222=0)m=(s

51、um/222)/5;e=222*m;printf(%dn,e);elsee=e+222;a=e/100;b=(e/10)%10;c=e%10; f=e+(222*g);printf(%dn,e);void playerchoice()/选择玩家的身份int select;printf( 输入 1 你是魔术师 n);printf( 输入 2 你是观众 n);printf(请输入相应的数字,进入不同的模块: n);scanf(%d,&select);getchar();fflush(stdin);if(select=1)magician();else if(select=2)viewer(); e

52、lseprintf(选择非法,请重新输入进行再次选择n);void hellp()system(CLS);printf($欢 迎 寻 求 帮 助$n);printf(n);printf(游戏规则:输入1,表示退出游戏 n);printf( 输入2,表示游戏系统设置 n);printf( 输入3,表示游戏帮助 n);printf( 输入4,表示游戏开始 n);printf(输入2时,进行下一轮选择:n); printf( 输入1 你是魔术师 n);printf( 输入2 你是观众 n);printf(n);printf(!游 戏 简 要 说 明!n);printf(n);printf( 在一种室

53、内互动游戏中,魔术师要每位观众心里想一个3位数abc(a.b.c分别是百位.十位n);printf(和个位数字),然后魔术师让观众心中记下acb bac bca cab cba 5个数以及这5个数的和值。n);printf(只要观众说出这个和值多少,则魔术师一定能猜出观众心里想的原数abc是多少。n);printf(n);printf(本游戏玩家自由选择所担任的职业,即魔术师或观众,根据提示完成游戏n);printf($结 束 帮 助$n);void exitgame()/退出 char select; printf(你确定退出游戏吗?退出请输入Y或y,继续点任意键n); scanf( %c,

54、&select); getchar(); fflush(stdin); if(select=Y|select=y) printf(欢迎再来游戏n); exit(1); else return; void magician()/玩家是魔术师int l,f;srand(time(0);a=rand()%9+1;b=rand()%10;c=rand()%10;e=100*a+10*b+c;/acb+bac+bca+cab+cba=122a+212b+211c=ff=122*a+212*b+221*c;printf(%dn,f);printf(请输入你得到的三位数: n);scanf(%d,&l);i

55、f (e=l)printf(恭喜你,魔术成功了 n);elseprintf(魔术失败了,下次努力n);答案:#include int is(int i,int k) int j=0,ii=i; while (ii)j+=ii%10;ii/=10; if (j*222=k+i) return 1; else return 0;int main() int i,j,k,sum; scanf(%d,&sum); k=0; for (i=100;i=999;i+) if (is(i,sum) k=i;break; if (k=0) printf(The sum you calculated is wr

56、ong!n); else printf(The number is %dn,k); return 0;3寻找中位数v1.0(4分)题目内容:编写一个函数返回三个整数中的中间数。函数原型为:int mid(int a, int b, int c);函数功能是返回a,b,c三数中大小位于中间的那个数。输入格式:%d%d%d输出格式:The result is %dn输入样例1:12 6 18输出样例1:The_result_is_12输入样例2:-9 7 -2输出样例2:The_result_is_-2注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!(注意:在

57、输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格。)时间限制:500ms内存限制:32000kb#include #include int mid(int a,int b,int c);int main() int a, b, c ,sum; scanf(%d%d%d,&a,&b,&c); sum=mid(a,b,c); printf(The result is %dn,sum);int mid(int a,int b,int c) if ( a = b ) if ( a = c ) return (b=c ? b : c); else return a; else i

58、f ( b = c ) return (a=c ? a : c); else return b;还原算术表达式(4分)题目内容:编写程序求以下算式中XYZ的值,其中两数XYZ与YZZ相加的和n(99n1000)的值要求从键盘输入。程序运行结果示例1:Input n(n1000):532X=3,Y=2,Z=1程序运行结果示例2:Input n(n1000):977Invalid输入格式: %d输出格式:输入提示:Input n(n1000):n输出格式:X=%d,Y=%d,Z=%dn计算不成功(无解)的输出提示:Invalidn注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息

59、和格式控制字符串!时间限制:500ms内存限制:31kb#include /XYZ+YZZ=Nint main(void) int a; int x = 0; int y = 0; int z = 0; printf(Input n(n1000):n); scanf(%d,&a); for (x = 1; x 10; x+) for (y = 0; y 10; y+) for (z = 0; z 10; z+) if (x * 100 + y * 10 + z + y * 100 + z * 10 + z = a) printf(X=%d,Y=%d,Z=%dn, x, y, z); else

60、printf(Invalidn); exit(0); return 0;#include int main() int x,y,z; for (x=0;x=9;x+) for (y=0;y=9;y+) for (z=0;z=9;z+) if (x*100+y*110+z*12=532) printf(X=%d,Y=%d,Z=%dn,x,y,z); return 0;第8周1计算礼炮声响次数(4分)题目内容:在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论