中国大学MOOC哈工大C语言程序设计精髓第六周编程题答案
哈尔滨工业大学C语言MOOC在线测试周答案
本答案仅供参考第3周1计算两个数(de)平方和(3分)题目内容:从键盘读入两个实数,编程计算并输出它们(de)平方和,要求使用数学函数pow(x,y)计算平方值,输出结果保留2位小数.提示:使用数学函数需要在程序中加入编译预处理命令 include <>以下为程序(de)运行结果示例:please input x and y:,↙result=输入格式: "%f,%f"输出格式:输入提示信息:"Please input x and y:\n"输出格式:"Result=%.2f\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>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=%.2f\n",S+D);return 0;}2逆序数(de)拆分计算(3分)题目内容:从键盘输入一个4位数(de)整数,编程计算并输出它(de)逆序数(忽略整数前(de)正负号).例如,输入-1234,忽略负号,由1234分离出其千位1、百位2、十位3、个位4,然后计算41000+3100+210+1 = 4321,并输出4321.再将得到(de)逆序数4321拆分为两个2位数(de)正整数43和21,计算并输出拆分后(de)两个数(de)平方和(de)结果.以下是程序(de)运行结果示例:Input x:-1234↙y=4321a=43,b=21result=2290输入格式: "%d"输出格式:输入提示信息:"Input x:\n"逆序数输出格式:"y=%d\n"逆序数拆分后(de)输出格式:"a=%d,b=%d\n"平方和(de)输出格式:"result=%d\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>main(){int x,b0,b1,b2,b3,y,a,b,c;printf("Input x:\n");scanf("%d",&x);x = (int)fabs(x); /取x绝对值/b3 = x/1000; /取x千位/b2 = (x-b31000)/100; /取x百位/b1 = (x-b31000-b2100)/10; /取x十位/b0 = x%10; /取x个位/y = b3+b210+b1100+b01000;printf("y=%d\n",y);a = b010+b1;b = b210+b3;c = (aa)+(bb);printf("a=%d,b=%d\n",a,b);printf("result=%d\n",c);return 0;}3拆分英文名(3分)题目内容:从键盘输入某同学(de)英文名(小写输入,假设学生(de)英文名只包含3个字母.如: tom),编写程序在屏幕上输出该同学(de)英文名,且首字母大写(如: Tom).同时输出组成该英文名(de)所有英文字符在26个英文字母中(de)序号.以下为程序(de)运行结果示例:Input your English name:tom↙Tomt:20o:15m:13输入格式: "%c%c%c"输出格式:输入提示信息:"Input your English name:\n"首字母大写(de)英文姓名(de)输出格式:"%c%c%c\n"姓名中每个字母在26个英文字母中(de)序号(de)输出格式:"%c:%d\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>int main(){char x,y,z,A;printf("Input your English name:\n");scanf("%c%c%c\n",&x,&y,&z);A=x-32; /首字母改为大写/printf("%c%c%c\n",A,y,z);printf("%c:%d\n",x,x-96);printf("%c:%d\n",y,y-96);printf("%c:%d\n",z,z-96);}4计算体指数(3分)题目内容:从键盘输入某人(de)身高(以厘米为单位,如174cm)和体重(以公斤为单位,如70公斤),将身高(以米为单位,如1.74m)和体重(以斤为单位,如140斤)输出在屏幕上,并按照以下公式计算并输出体指数,要求结果保留到小数点后2位.假设体重为w公斤,身高为h米,则体指数(de)计算公式为:以下是程序(de)运行结果示例:Input weight, height:70,174↙weight=140height=t=输入格式: "%d,%d"输出格式:输入提示信息:"Input weight, height:\n" (注意:在height和逗号之间有一个空格)体重输出格式:"weight=%d\n"身高输出格式:"height=%.2f\n"体指数输出格式:"t=%.2f\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>int main(){float A,b;int x,y;printf("Input weight, height:\n");scanf("%d,%d",&x,&y);printf("weight=%d\n",x2);A=(float)y/100;printf("height=%.2f\n",A);b=(float)x/(AA);printf("t=%.2f\n",b);}第4周1数位拆分(4分)题目内容:从键盘上输入一个4位数(de)整数n,编写程序将其拆分为两个2位数(de)整数a和b,计算并输出拆分后(de)两个数(de)加、减、乘、除和求余运算(de)结果.例如n=-4321,设拆分后(de)两个整数为a,b,则a=-43,b=-21.除法运算结果要求精确到小数点后2位.求余和除法运算需要考虑除数为0(de)情况,即如果拆分后b=0,则输出提示信息"The second operater is zero"程序(de)运行结果示例1:Please input n:1200↙12,0sum=12,sub=12,multi=0The second operater is zero程序(de)运行结果示例2:Please input n:-2304↙-23,-4sum=-27,sub=-19,multi=92dev=,mod=-3输入格式: "%d"输出格式:输入提示信息:"Please input n:\n"拆分后(de)两个整数(de)输出格式:"%d,%d\n"加法、减法、乘法(de)输出格式:"sum=%d,sub=%d,multi=%d\n"除法和求余(de)输出格式:"dev=%.2f,mod=%d\n"除数为0(de)提示信息:"The second operater is zero\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>main(){float c;int x,b0,b1,b2,b3,a,b,d;printf("Please input n:\n");scanf("%d",&x);b3 = x/1000; /取x千位/b2 = (x-b31000)/100; /取x百位/b1 = (x-b31000-b2100)/10; /取x十位/b0 = x%10; /取x个位/a=b310+b2; /拆分输入(de)整数为两段/b=b110+b0;printf("%d,%d\n",a,b);printf("sum=%d,sub=%d,multi=%d\n",a+b,a-b,ab); /输出两段数(de)加,减,乘/if(0==b){printf("The second operater is zero\n");}else{c=(float)a/b;d=a%b;printf("dev=%.2f,mod=%d\n",c,d);}return 0;}2快递费用计算(4分)题目内容:上海市(de)某快递公司根据投送目(de)地距离公司(de)远近,将全国划分成5个区域:快递费按邮件重量计算,由起重费用、续重费用两部分构成:(1)起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算),超过首重(de)重量,按公斤(不足1公斤,按1公斤计算)收取续重费;(2)同城起重资费10元,续重3元/公斤;(3)寄往1区(江浙两省)(de)邮件,起重资费10元,续重4元;(4)寄往其他地区(de)邮件,起重资费统一为15元.而续重部分,不同区域价格不同:2区(de)续重5元/公斤,3区(de)续重元/公斤,4区(de)续重10元/公斤.编写程序,从键盘输入邮件(de)目(de)区域编码和重量,计算并输出运费,计算结果保留2位小数.提示:续重部分不足一公斤,按1公斤计算.因此,如包裹重量2.3公斤:1公斤算起重,剩余(de)1.3公斤算续重,不足1公斤按1公斤计算,1.3公斤折合续重为2公斤.如果重量应大于0、区域编号不能超出0-4(de)范围.程序运行结果示例1:4,↙Price:程序运行结果示例2:5,↙Error in AreaPrice:输入格式:用逗号分隔(de)两个数字,第一个表示区域、第二个是重量:"%d,%f"输出格式:价格(de)输出格式:"Price: %\n"区域错误(de)提示信息:"Error in Area\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>include <>define eps 1E-5main(){float b,c,d;int a;scanf("%d,%f",&a,&b);switch(a){case 0:if (b<=1+eps){c=;}else{d=ceil;c=d3+;}printf("Price: %5.2f\n",c); break;case 1:if (b<=1+eps){c=;}else{d=ceil;c=d4+;}printf("Price: %5.2f\n",c); break;case 2:if (b<=1+eps){c=;}else{d=ceil;c=d5+;}printf("Price: %5.2f\n",c); break;case 3:if (b<=1+eps){c=;}else{d=ceil;c=d+15;}printf("Price: %5.2f\n",c); break;case 4:if (b<=1+eps){c=;}else{d=ceil;c=d10+;}printf("Price: %5.2f\n",c);break;default:printf("Error in Area\n");printf("Price: ");}return 0;}3数据区间判断(6分)题目内容:从键盘输入一个int型(de)正整数n(已知:0<n<10000),编写程序判断n落在哪个区间.如果用户输入(de)数据不在指定(de)范围里,程序输出"error".例如,输入265,则该数属于区间 100-999.程序运行结果示例1:Please enter the number:2563↙2563: 1000-9999程序运行结果示例2:Please enter the number:156↙156: 100-999程序运行结果示例3:Please enter the number:36↙36: 10-99程序运行结果示例4:Please enter the number:3↙3: 0-9程序运行结果示例5:Please enter the number:10923↙error输入格式: "%d"输出格式:输入提示信息:"Please enter the number:\n"输出(de)区间判断:"%d: 1000-9999\n""%d: 100-999\n""%d: 10-99\n""%d: 0-9\n"输入错误提示信息:"error\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>include <>int main(){int x,b0,b1,b2,b3,y,a,b,c;printf("Please enter the number:\n");scanf("%d",&x);if (x<=0||x>=10000){printf("error\n");}else{b3 = x/1000; /取x千位/b2 = (x-b31000)/100; /取x百位/b1 = (x-b31000-b2100)/10; /取x十位/ b0 = x%10; /取x个位/if(b3=0){printf("%d: 1000-9999\n",x);}else if(b3==0&&b2=0){printf("%d: 100-999\n",x);}else if(b3==0&&b2==0&&b1=0){printf("%d: 10-99\n",x);}else{printf("%d: 0-9\n",x);}}return 0;}4计算一元二次方程(de)根(4分)题目内容:根据下面给出(de)求根公式,计算并输出一元二次方程(de)两个实根,要求精确到小数点后4位.其中a,b,c(de)值由用户从键盘输入.如果用户输入(de)系数不满足求实根(de)要求,输出错误提示"error".程序运行结果示例1:Please enter the coefficients a,b,c:1,2,1↙x1=, x2=程序运行结果示例2:Please enter the coefficients a,b,c:2,6,1↙x1=, x2=程序运行结果示例3:Please enter the coefficients a,b,c:2,1,6↙error输入格式: "%f,%f,%f"输出格式:输入提示信息:"Please enter the coefficients a,b,c:\n"输出格式:"x1=%7.4f, x2=%\n"输入错误提示信息:"error\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>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=bb-4ac;if(disc<0){printf("error\n");}else{p=-b/(2a);q=sqrt(disc)/(2a);printf("x1=%7.4f, x2=%7.4f\n",q+p,p-q);}return 0;}第五周16位密码输入检测(4分)题目内容:从键盘输入6位仅由数字0~9组成(de)密码.用户每输入一个密码并按回车键后,程序给出判断:如果是数字,则原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一位密码;否则,程序提示"error",并让用户继续输入下一位密码.直到用户输入(de)密码全部是数字为止.以下为程序(de)运行结果示例:Input your password:1↙1, you have enter 1-bits number6↙6, you have enter 2-bits numbera↙errord↙error4↙4, you have enter 3-bits number6↙6, you have enter 4-bits number8↙8, you have enter 5-bits number2↙2, you have enter 6-bits number输入格式:数字字符输入格式:"%c"输出格式:输入提示信息:"Input your password:\n"如果输入(de)是数字,输出格式为:"%c, you have enter %d-bits number\n"如果输入(de)不是数字,输出提示信息:"error\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>int main(){int i;char c;printf("Input your password:\n");i=0;while (i<6){scanf("%c%c",&c);if ((c>=48)&&(c<=57)){i=i+1;printf("%c, you have enter %d-bits number\n",c,i); }else{printf("error\n");}}return 0;}2判断一个整型数据有几位(4分)题目内容:从键盘输入一个整型数据(int型),编写程序判断该整数共有几位.例如,从键盘输入整数16644,该整数共有5位.程序运行结果示例1:Please enter the number:21125↙21125: 5 bits程序运行结果示例2:Please enter the number:-12234↙-12234: 5 bits输入格式: "%d"输出格式:输入提示信息:"Please enter the number:\n"判断该整数共有几位: "%d: %d bits\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>include <>int main(){int n,nn,b,i,j,sum;printf("Please enter the number:\n");scanf("%d",&n);nn=fabs(n);b=1;sum=1;i=1;j=10;while (b=1){if ((nn>=i)&&(nn<j)){printf("%d: %d bits\n",n,sum);b=0;break;}else{i=i10;j=j10;sum=sum+1;}}return 0;}3检测输入数据中奇数和偶数(de)个数(4分)题目内容:从键盘输入一系列正整数,输入-1表示输入结束(-1本身不是输入(de)数据).编写程序判断输入数据中奇数和偶数(de)个数.如果用户输入(de)第一个数据就是-1,则程序输出"over".否则.用户每输入一个数据,输出该数据是奇数还是偶数,直到用户输入-1为止,分别统计用户输入数据中奇数和偶数(de)个数.程序运行结果示例1:Please enter the number:1↙1:odd5↙5:odd8↙8:even9↙9:odd12↙12:even17↙17:odd-1↙The total number of odd is 4The total number of even is 2程序运行结果示例2:Please enter the number:-1↙overThe total number of odd is 0The total number of even is 0输入格式: "%d"输出格式:输入提示信息:"Please enter the number:\n"用户输入(de)第一个数据就是-1,输出格式:"over\n"奇数(de)输出格式:"%d:odd\n"偶数(de)输出格式:"%d:even\n"输入数据中奇数(de)个数统计:"The total number of odd is %d\n"输入数据中偶数(de)个数统计:"The total number of even is %d\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>int main(){int a,odd,even;odd=0;even=0;printf("Please enter the number:\n");a=0;while (a=-1){scanf("%d",&a);if (a=-1){if (a%2==1){odd++;printf("%d:odd\n",a); }else {even++;printf("%d:even\n",a); }}}if (even+odd==0){printf("over\n");}printf("The total number of odd is %d\n",odd);printf("The total number of even is %d\n",even);return 0;}4计算球(de)反弹高度(4分)题目内容:一个球从100米高度自由落下,每次落地后反跳回原高度(de)一半,再落下并反弹......,求它在第5次和第10次落地时,分别共经过了多少米第5次和第10次反弹分别是多高要求计算结果保留到小数点后3位.用户从键盘输入想要计算(de)第n次(n<=15).程序运行结果示例1:Input:5↙5 times:程序运行结果示例2:Input:10↙10 times:输入格式: "%d"输出格式:反弹次数:"%d times:\n"第n次反弹共经过多少米:"%.3f\n"第n次(de)反弹高度:"%.3f\n"输入提示信息:"Input:\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>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("%.3f\n",sum);printf("%.3f\n",h);return 0;}第六周1程序改错(5分)下面代码(de)功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入(de)是非法字符或者不在合理区间内(de)数据(例如输入(de)是a,或者102,或-45等),则程序输出 Input error,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出.目前程序存在错误,请将其修改正确.并按照下面给出(de)运行示例检查程序.1.include<>2. int main()3. {4. int score;5. char grade;6. printf("Please input score:");7. scanf("%d", &score);8. if (score < 0 || score > 100)9. printf("Input error\n");10. else if (score >= 90)11.grade = 'A’;12. else if (score >= 80)13. grade = 'B';14. else if (score >= 70)15. grade = 'C';16. else if (score >= 60)17. grade = 'D';18. else19. grade = 'E';20. printf("grade:%c\n", grade);21. return 0;22.}程序运行结果示例1:Please input score:a↙Input errorPlease input score: -12↙Input errorPlease input score: 230↙Input errorPlease input score: 92↙grade: A程序运行结果示例2:Please input score: 88↙grade: B程序运行结果示例3:Please input score: 73↙grade: C程序运行结果示例4:Please input score:65↙grade: D程序运行结果示例5:Please input score:27↙grade: E输入提示信息:"Please input score:\n"输入格式: "%d"输出格式:输入错误时(de)提示信息:"Input error\n"输出格式:"grade: %c\n" (注意:%c前面有一个空格)为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude<>int main(){int score=-1;char grade;printf("Please input score:\n");scanf("%d", &score);while(score < 0 || score > 100){getchar();printf("Input 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';elsegrade = 'E';printf("grade: %c\n", grade);return 0;2编程计算a+aa+aaa+…+aa…a(n个a)(de)值(4分)题目内容:编程计算a+aa+aaa+…+aa…a(n个a)(de)值,n和a(de)值由键盘输入.例如,当n=4,a=2,表示计算2+22+222+2222(de)值.程序运行结果示例:Input a,n:2,4↙sum=2468输入提示信息:"Input a,n:\n"输入格式: "%d,%d"(先输入a,后输入n)输出格式:"sum=%ld\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:31kbinclude <>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=term10+a;sum =sum+term;}printf("sum=%ld\n",sum);}3搬砖问题(4分)题目内容:n块砖( 27<n<=77 ),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人请用穷举法编程求解,n(de)值要求从键盘输入.输出结果按照男人数量升序给出(见下面示例3).程序(de)运行结果示例1:Input n(27<n<=77):28↙men=0,women=4,children=32程序(de)运行结果示例2:Input n(27<n<=77):36↙men=3,women=3,children=30程序(de)运行结果示例3:Input n(27<n<=77):60↙men=2,women=14,children=20men=7,women=7,children=22men=12,women=0,children=24输入提示:"Input n(27<n<=77):\n"输入格式: "%d"输出格式:"men=%d,women=%d,children=%d\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.include<>int main(){int a;int man, wman, child;printf("Input n(27<n<=77):\n");scanf("%d",&a);for (man = 0; man <= 15; man++){for (wman = 0; wman <= 20; wman++){child = 36 - wman - man;if (a == child / 2 + 3 wman + 4 man && child % 2 == 0){printf("men=%d,women=%d,children=%d\n", man, wman, child);}}}}4编程输出某年某月有多少天(考虑到闰年).(5分)题目内容:从键盘输入一个年份和月份,输出该月有多少天(考虑闰年),用switch 语句编程.程序运行结果示例1:Input year,month:2015,3↙31 days程序运行结果示例2:Input year,month:2015,4↙30 days程序运行结果示例3:Input year,month:2016,2↙29 days程序运行结果示例4:Input year,month:2014,2↙28 days程序运行结果示例5:Input year,month:2015,13↙Input error输入提示信息:"Input year,month:\n"输入格式: "%d,%d"输出格式:输入错误时(de)提示信息:"Input error\n"输出格式:"31 days\n""30 days\n""29 days\n""28 days\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>int main( ){int y,m;printf("Input year,month:\n");scanf("%d,%d",&y,&m);if (m< 0||m>12) {printf("Input error\n");return 0;} switch (m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("31 days\n");break;case 4:case 6:case 9:case 11:printf("30 days\n");break;case 2:if (y%100==0) y/=100;if (y%4==0) printf("29 days\n");else printf("28 days\n");}return 0;}第七周1递归法计算游戏人员(de)年龄(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);提示:计算年龄(de)递归公式为:输入格式: "%u"输出格式:"The person's age is %u\n"输入样例1:5↙输出样例1:The_person's_age_is_18输入样例2:10↙输出样例2:The_person's_age_is_28注意:为避免出现格式错误,请直接拷贝粘贴上面给出(de)输入、输出提示信息和格式控制字符串(注意:在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格.)时间限制:500ms内存限制:32000kbinclude<>include<>unsigned int ComputeAge(unsigned int n);unsigned int ComputeAge(unsigned int n){int a;if (n == 1)a = 10;elsea = ComputeAge(n - 1) + 2;return a;}int main(){unsigned int n,f;scanf("%u",&n);f=ComputeAge(n);printf("The person's age is %u\n",f);return 0;}2.魔术师猜数(4分)题目内容:在一种室内互动游戏中,魔术师要每位观众心里想一个三位数abc(a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数(de)和值.只要观众说出这个和是多少,则魔术师一定能猜出观众心里想(de)原数abc是多少.例如,观众甲说他计算(de)和值是1999,则魔术师立即说出他想(de)数是443,而观众乙说他计算(de)和值是1998,则魔术师说:“你算错了”.请编程模拟这个数字魔术游戏.要求用函数实现,函数原型为:int Magic(int m);其中形参m代表观众计算(de)和值.输入格式:"%d"输出格式:观众计算错误,魔术师给出(de)结论:"The sum you calculated is wrong\n"观众计算正确,魔术师给出(de)结论:"The number is %d\n"输入样例1:1998↙输出样例1:The_sum_you_calculated_is_wrong输入样例2:1999↙输出样例2:The_number_is_443注意:为避免出现格式错误,请直接拷贝粘贴上面给出(de)输入、输出提示信息和格式控制字符串(注意:在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格.)参考:include<>include<>include<>include<>include<>....______vvvvvv______\t\n");printf("\t—__— zzzzzzzzzzz电脑不给力,请稍等一会......—__—zzzzzzzzzzzz\t\n");for(i=0;i<80;i++){printf("%%");Sleep(200);} printf("\t\t\t——终于结束了╮(╯▽╰)╭\t\t\t\n");system("CLS");system("color 8B");printf(" \n");。
Python语言程序设计-课后练习-第6周
中国大学MOOC课程 《Python语言程序设计》 课后练习(第6周)北京理工大学Python语言教学团队【说明】本文是中国大学MOOC课程《Python语言程序设计》第6周的课后练习,预估学习完成时间约50分钟。
本周课后练习内容包括3道编程题,帮助同学学习文件读写和字典操作。
对于尚未安装Python运行环境的同学,请根据第1周课程内容介绍的步骤安装Python 3.5.1或者Python 3.5.2版本解释器,如果操作系统兼容性有问题,可以安装Python 3.4版本解释器。
【课后练习】1. 理解文本和二进制打开方式的区别首先,用文本编辑器生成一个包含“中国是个伟大国家!”的txt 格式文本文件,命名为test.txt。
编写程序分别用文本文件方式和二进制文件方式读入,并打印输出效果。
观察输出结果并解释。
2. 文件处理fo = open(fname, "r")for line in fo:# 处理一行数据fo.close()上述格式是打开文件并逐行处理的程序框架,请编写一个实例练习。
3. 哈姆雷特词频统计Hamlet,《哈姆雷特》,是莎士比亚的一部经典悲剧作品,讲述了克劳狄斯叔叔谋害哈姆雷特父亲并篡取王位、哈姆雷特流浪在外并向叔叔复仇的故事。
《哈姆雷特》也叫《王子复仇记》,代表着整个西方文艺复兴时期文学的最高成就,很多国内外电影都以这个故事为原型。
获取该故事的文本文件,保存为hamlet.txt。
全文可以从MOOC课程下载或从网络获得。
统计Hamlet英文词频的第一步是分解并提取英文文章的单词。
同一个单词会存在大小写不同形式,但计数却不能区分大小写。
假设Hamlet文本由变量txt表示,可以通过txt.lower()函数将字母变成小写,排除原文大小写差异对词频统计的干扰。
英文单词的分割可以是空格、标点符号或者特殊符号。
为统一分隔方式,可以将各种特殊字符和标点符号使用txt.replace()方法替换成空格,再提取单词。
(完整word版)C语言程序设计下mooc答案
2016.03.28—06.30 北京理工大学 MOOCC语言程序设计(下)网上作业答案第一周编程作业1、求最大公约数和最小公倍数(15分)题目内容:编写程序,在主函数中输入两个正整数 a,b,调用两个函数 fun1() 和 fun2(),分别求a 和 b 的最大公约数和最小公倍数,在主函数中输出结果。
输入格式:两个正整数输出格式:最大公约数和最小公倍数输入样例:12,40[回车]输出样例:最大公约数:4[回车]最小公倍数:120[回车]时间限制:500ms内存限制:32000kbCode:#include <stdio.h>int fun1(int m,int n){int r;r=m%n;return r==0?n:fun1(n,r);}int fun2(int m,int n){int t;t=m*n/fun1(m,n);return t;}int main(){ int t,m,n;scanf("%d,%d",&m,&n);if(m<n){t=m;m=n;n=t;}printf("最大公约数:%d\n",fun1(m,n));printf("最小公倍数:%d\n",fun2(m,n));return 0;}2、排序并插入(15分)题目内容:编写程序,在主函数中定义一个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出。
输入格式:9个整数和1个整数输出格式:10个整数输入样例:2,3,1,5,6,76,89,31,90[回车]7[回车]输出样例:1,2,3,5,6,7,31,76,89,90[回车]时间限制:500ms内存限制:32000kbCode:#include <stdio.h>int main(){int t,j,i,n[10];for(i=0; i<9; i++){scanf("%d", &n[i]);if(i<8) scanf(",");}scanf("%d",&n[9]) ;for(i=0;i<9;i++){for(j=0;j<= 8-i;j++){if(n[j] > n[j+1]){t = n[j];n[j] = n[j+1];n[j+1] = t;}}}for(i=0;i<10;i++){printf("%d",n[i]);if(i<9) printf(",");}return 0;}第二周编程作业1、最大公约数(15分)题目内容:输入两个整数m,n,用递归算法实现计算两个数的最大公约数。
C语言程序设计中国大学mooc课后章节答案期末考试题库2023年
C语言程序设计中国大学mooc课后章节答案期末考试题库2023年1.关于问题与问题求解,下列说法正确的是()。
答案:人类进行问题求解的一般思维过程可分为问题分析、提出假设和检验假设。
2.关于贪心算法(又称贪婪算法是指,在对问题求解时,总是做出在当前看来是最好的选择。
也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。
贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解),下列叙述中正确的是()。
答案:选择能产生问题最优解的最优量度标准是使用贪婪算法的核心。
3.将多个有序序列合并成一个有序序列,属于()。
答案:归并排序4.关于数学模型(Mathematical Model)和数学建模(MathematicalModeling),下列说法正确的是()。
答案:数学模型是对实际问题的数学抽象,是用数学符号、数学式子等对实际问题本质属性的抽象而又简洁的刻画。
5.在“八皇后问题”的问题求解中,采用“试探-失败返回-再试探”的问题求解方法,该方法属于()。
八皇后问题:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
答案:回溯法6.关于算法(Algorithm),下列叙述正确的是()。
答案:算法可以用自然语言、流程图或伪代码描述,各有其优点。
7.关于抽象(Abstraction),下列说法正确的是()。
答案:抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。
8.关于哥尼斯堡七桥问题,下列叙述不正确的是()。
哥尼斯堡七桥问题:哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥。
如图所示:我们要解决的问题是可否存在一种方案可以走过所有的桥然后回到起点。
答案:欧拉将七桥问题归结为了一个图形形式的“一笔画”问题,从而得到了问题的解。
中国大学MOOC哈工大C语言程序设计精髓第六周编程题答案
中国大学MOOC哈工大C语言程序设计精髓第六周编程题答案6.1 下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。
目前程序存在错误,请将其修改正确。
并按照下面给出的运行示例检查程序。
#include#includeint main(){char score[100];int flag = 0, i, s;char grade;printf("Please input score:\n");while (1){flag=0;scanf("%s", score);for (i = 0; i < strlen(score); i++){if (score[i] >= '0' && score[i] <= '9'){continue;}else{flag = 1;}}s = atoi(score);if (s < 0 || s > 100 || flag == 1) {printf("Input error!\n");printf("Please input score:\n"); continue;}else{break;}}s = atoi(score);if (s >= 90)grade = 'A';}else if (s >= 80){grade = 'B';}else if (s >= 70){grade = 'C';}else if (s >= 60){grade = 'D';}{grade = 'E';}printf("grade: %c\n", grade);return 0;}6.2 编程计算a+aa+aaa+…+aa…a(n个a)的值(4分)题目内容:编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。
c++程序设计课后习题第6章答案
length = sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
angle = atan( (y2-y1) / (x2-x1) );
angle = angle *180/3.141592653;
{
protected:
int n;
public:
void Show() {cout<<n<<endl;}
};
class Derived:public Base1,public Base2
{
public:
void Set(int x,int y) { m=x;n=y;}
//Derived类中重载show()方法
}
四、编程题
1.设计一个基类,从基类派生圆柱,设计成员函数输出它们的面积和体积。
#include < iostream >
using namespace std;
class Basic//基类
{
protected:
double r;
public :
Basic(){ r = 0; }
}
void printPoint()
{
cout<<"圆形直角坐标:("<< x <<", "<< y <<")"<< endl;
}
void printRadius()
{
cout<<"圆的半径:"<< r << endl;
2019智慧树知到[C语言程序设计]章节答案
2019智慧树知到[C语言程序设计]章节答案
1.【单选题】C语言是一种( )
答案:高级语言
2.【单选题】下列各项中,不是C语言的特点是()。
答案:有较强的网络操作功能
3.【单选题】下列叙述错误的是()。
答案:尺寸线用细点画线表示
4.【单选题】一个C程序的执行是从()。
答案:程序的main函数开始,到main函数结束
5.【单选题】以下叙述不正确的是()。
答案:在C 程序中, 注释说明只能位于一条语句的后面
[第二章测试]
1.【单选题】已知定义整形变量a,b,c的值分别是2、3、4,运算表达式a*=16+(b++) - (++c)以后,a值为( )
答案:28
2.【单选题】在C语言中,要求参加运算的数必须是整数的运算符是( )。
答案:%
3.【单选题】合法的c标识符是( )。
答案:h1
4.【单选题】执行下列程序后,显示的结果是( ) main
( ) { int a; printf (“%d \n”,(a=3*5,a*4, a+5));}
答案:20
5.【单选题】执行下列程序中的输出语句后,x的值是()。
main() {int x ; printf(“%d\n”,(x=4*5,x*2,x+20));}
答案:20
6.【判断题】判断:表达式1/4+2.75的值是3。
答案:错
7.【单选题】下列转义字符不正确的是()。
答案:’074’。
高级语言程序设计第6章参考答案
1.6.3习题解答编程题1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主调函数调用这两个函数,并输出结果。
两个整数由键盘输入。
分析:求两个数a和b的最大公约数:设这个数为x,则x一定小于等于a和b中的较小者min(a,b)。
在区间[1, min(a,b)]中能找到的最后一个同时被a和b整除的那个数,就是a和b的最大公约数x。
求两个数a和b的最小公倍数:设这个数为x,则x一定大于等于a和b中的较大者max(a,b),而小于等于a*b。
在区间[max(a,b), a*b ]中找到的第一个能同时整除a和b的那个数,就是a和b的最小公倍数x。
参考程序代码:#include "stdio.h"f1(int a, int b)/*求最大公约数*/{int x,i;for(i=1;i<=(a<=b?a:b);i++){if(a%i==0&&b%i==0){x=i;}}printf("\n最大公约数为: %d\n",x);}f2(int a, int b)/*求最小公倍数*/{int i,x;for(i=((a>b)?a:b);i<=a*b;i++){if(i%a==0&&i%b==0){x=i;break;}}printf("\n最小公倍数为: %d\n",x);}void main(){int a,b;printf("\n请输入两个数:\n");printf("a=");scanf("%d", &a);printf("b=");scanf("%d", &b);f1(a, b);f2(a, b);}运行结果:请输入两个数:a=4b=16最大公约数为:4最小公倍数为:162.编写一个函数,其功能是对于给定的一个时间数(秒为单位),以“时:分:秒”的格式输出。
智慧树知到《C语言程序设计》章节测试答案
智慧树知到《C语言程序设计》章节测试答案第一章1、构成c程序的基本单位是函数,有且只有一个主函数A:对B:错答案: 对2、c语言一行可以写多条语句A:对B:错答案: 对3、不正确的叙述是()。
A:注释说明只能位于一条语句的后面。
B:C源程序的基本组成单元是函数。
C:C源程序可由一个或多个函数组成。
D:每条语句最后必须有一个分号。
答案: 注释说明只能位于一条语句的后面。
4、C源程序的调试是指对源程序进行()。
A:录入与编辑。
B:编译、连接与运行。
C:查错与排错。
D:连接与运行。
答案: 编译、连接与运行。
5、以下叙述中正确的是()。
A:C程序的执行总是从main函数开始的。
B:一对花括号"{}"只能作为函数体的定界符。
C:C源程序编译时注释部分的错误将被发现。
D:构成C源程序的基本单位是函数,所有函数名都可以由用户命名。
答案: C程序的执行总是从main函数开始的。
第二章1、以下选项中可用作C程序合法实数的是A:0.1e0B:3.0e0.2C:E9D:9.12E答案: 0.1e02、以下程序的输出结果是#include <stdio.h>main(){ int x=10,y=10;printf("%d %d\n",x–,–y); }A:10 10B:9 9C:9 10D:10 9答案: 10 93、若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A:a=(b=4)=3;B:a=b=c+1;C:a=(b=4)+c;D:a=1+(b=c=4);答案: a=(b=4)=3;4、写出下面程序的运行结果:#include <stdio.h>void main( ){int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d ",x,y,z);}A:2,3,1B:2,2,1C:1,1,1D:2,2,3答案: 2,3,15、写出下面程序的运行结果:#include <stdio.h>void main( ){int a=1,b=0;printf("%d,",b=a+b);printf("%d",a=2*b);}A:3,2B:2,2C:1,2D:1,1答案: 1,26、写出下面程序的运行结果:main(){int a,b,c=9;a=3,b=4;c%= a+b;printf(“%d”,c)}A:3B:2C:1D:4答案: 27、写出下面程序的运行结果:#include <stdio.h>main(){ int a=4,b,c;c=a+(b=2);a+=a-=a*a;printf("%d,%d,%d ",a,b,c);}A:4,2,6B:-8,2,6C:-12,2,6D:-24,2,6答案: -24,2,68、对于int n=3;执行n+=n-=n*n;后n的值是9。
C++中国大学MOOC第6章作业数组答案
中国大学慕课spoc第六章C++数组答案1最大值(100分)问题描述先输入一个正整数n(1到20之间),再输入n个整数,计算其中的最大值和相应下标。
输入描述先输入要处理的整数的个数n(1<=n<=20),再输入n个整数,并用空格分开。
输出描述依次输出n个整数中的最大值和相应下标(若多个整数与最大值相同,则从小到大输出相应下标),之间用空格分隔。
输入样例154 6 7 2 5输出样例17 2输入样例254 6 7 2 7输出样例27 2 4#include <bits/stdc++.h>using namespace std;int main(){int n,i,j,a[20],max;cin>>n;for(i=0;i<n;i++){cin>>a[i];}max=a[0];for(i=0;i<n;i++){if(max<a[i])max=a[i];}cout<<max;for(i=0;i<n;i++){if(a[i]==max){cout<<" "<<i;}}}2峰值个数(100分)问题描述先输入一个正整数n(3到20之间),再输入n个整数,计算其中的峰值个数。
峰值是满足大于或小于左右两个元素的元素,例如12,45,32,0,14,25,62,48,51序列中,峰值有45,0,62,48,峰值个数为4。
输入描述先输入要处理的整数的个数n(3<=n<=20),再输入n个整数,并用空格分开。
输出描述一个整数,表示n个整数中有多少个峰值。
输入样例54 6 7 2 5输出样例2#include <bits/stdc++.h>using namespace std;int main(){int n,i,a[20],j=0;cin>>n;for(i=0;i<n;i++){cin>>a[i];}for(i=1;i<n-1;i++){if((a[i]>a[i-1]&&a[i]>a[i+1])||(a[i]<a[i-1]&&a[i]<a[i+1]))j++;}cout<<j;}3互为相反数(100分)问题描述先输入一个正整数n(2到20之间),再输入n个数(可重复,可为浮点数),计算其中有多少对互为相反数(仅有符号不同的两数互为相反数)。
C语言慕课编程题参考答案(4-6周)
else {
p = - b / (2 * a); q = sqrt(disc) / (2 * a); printf("x1=%7.4f, x2=%7.4f\n", p+q, p-q); } return 0; }
第四周_练兵区
1. 检测用户错误输入 #include <stdio.h>
return 0; } 2. 快递费用计算 #include <stdio.h> int main() {
int iArea; float fWeight; float price,rate,base; scanf("%d, %f",&iArea, &fWeight);
price = 0;
switch(iArea) {
编程题参考答案(4-6 周)
第四周_在线测试
1. 数位拆分 v2.0 #include <math.h> #include <stdio.h> int main() {
int n,sum,a,b,sub,multi, mod; float dev;
printf("Please input n:\n"); scanf("%d",&n);
printf("The total number of odd is %d\n", counter1); printf("The total number of even is %d\n", counter2); return 0; }
4. 计算球的反弹高度 #include <stdio.h> int main() {
c语言程序设计习题与实践慕课版答案
c语言程序设计习题与实践慕课版答案C语言是一种广泛使用的计算机编程语言,对于学习计算机科学和软件开发的人来说是必不可少的。
为了帮助学习者更好地掌握C语言的编程技巧,慕课网推出了《C语言程序设计习题与实践》课程。
本文将提供该课程的一些习题答案和实践内容,旨在帮助读者更好地理解和运用C语言。
第一章:入门篇1. 编写一个C程序,输出"Hello, World!"。
```c#include<stdio.h>int main() {printf("Hello, World!");return 0;}```2. 编写一个C程序,输入两个整数,输出它们的和。
```c#include<stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d%d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```第二章:控制流程1. 编写一个C程序,输入一个整数,判断它是正数、负数还是零,并输出相应的提示信息。
```c#include<stdio.h>int main() {int num;printf("请输入一个整数:\n");scanf("%d", &num);if (num > 0) {printf("它是一个正数。
\n");} else if (num < 0) {printf("它是一个负数。
\n");} else {printf("它是零。
\n");}return 0;}```2. 编写一个C程序,输入一个字符,判断它是大写字母、小写字母还是其他字符,并输出相应的提示信息。
哈工大 C语言程序设计精髓 MOOC慕课 6-12周编程题参考答案
printf(""\nTotal=%d\n"",s+b);
return 0;
}"
8.3"/*
一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。
#include <stdio.h>
int main(){
int i,j,k,m,tk,tm;
for (i=0;i<=9;i++){
for (j=0;j<=9;j++){
for (m=31;m<100;m++){
k = 1000*i + 100*i + 10*j + j;
if (i!=j && m*m==k){
}
else if (s >= 70)
{
grade = 'C';
}
else if (s >= 60)
{
grade = 'D';
}
else
{
grade = 'E';
}
printf(""grade: %c\n"", grade);
return 0;
}"
6.2"#include<stdio.h>
#include<math.h>
men=7,women=7,children=22
中国大学MOOCC语言程序设计考试答案
得分/总分 A. float a[3][4]; float a[3][]; B. float a[3][4]; float a[][4]; float a[3][]={{1},{0}}; C. float a(3,4); float a[3][4]; float a[][]={{0};{0}}; D. float a[3][4]; static float a[][4]={{0},{0}}; 3.00/3.00 正确答案:D 你选对了 21 填空(4 分) 阅读下面的程序,写出程序的运行结果_______ #include<stdio.h> int main() {
if( a = b+c ) printf("***\n"); else printf("$$$\n"); } 以上程序( ) 得分/总分 A. 可以通过编译但不能通过连接 B. 有语法错不能通过编译 C. 输出*** 3.00/3.00 D. 输出$$$ 正确答案:C 你选对了 解析: D、if ( ) 这里是赋值号,不是等号哦 19 单选(3 分) 若有定义: int a[5]={1,2,3,4,5}; char b='c',c; 则下面表达式中数值为 2 的是( )。 得分/总分 A. a[b-'b'] 3.00/3.00 B. a[b] C. a[c-b] D. a[2] 正确答案:A 你选对了 解析: A、数组中表示 数组 2 的 元素为 a[1], 因此答案中能够得到 下标为 1 的数组元 素即为正确答案, 其它 3 个都不可以 20 单选(3 分) 以下各组选项中,均能正确定义二维实型数组 a 的选项是( )。
#include <stdio.h> int main( ) {
c语言习题及答案 爱课程mooc
第一章1.1题目内容:使用printf()在屏幕上输出hello world!提示:#include <stdio.h>int main(){printf("hello world!\n");return 0;}输入格式:无输出格式:输出提示信息:"hello world!\n"输入样例:输出样例:hello world!#include <stdio.h>int main(){printf("hello world!\n");return 0;}1.2在屏幕上输出多行信息(3分)题目内容:使用printf()函数在屏幕上输出以下多行信息:hello world!hello hit!hello everyone!提示:在printf()函数中转义字符‘\n’表示换行。
输入格式:输出格式:输出提示信息:"hello world!\n""hello hit!\n""hello everyone!\n"输入样例:输出样例:hello world!hello hit!hello everyone!#include <stdio.h>int main(){printf("hello world!\n");printf("hello hit!\n");printf("hello everyone!\n");return 0;}1.3计算半圆弧的周长及半圆面积(3分)题目内容:编程并输出半径r=5.3的半圆弧的周长及该半圆的面积,的取值为3.14159。
要求半径r和必须利用宏常量表示。
输入格式:无输出格式:半圆的面积输出格式: "Area=%f\n"半圆弧的周长输出格式: "circumference=%f\n"输入样例:输出样例:Area=44.123632circumference=16.650427#include<stdio.h>#define PI 3.14159#define R 5.3int main(){printf("Area=%f\n", R*R*PI/2);printf("circumference=%f\n", 2*R*PI/2);return 0;}1.4计算长方体体积(3分)题目内容:编程并输出长1.2、宽4.3、高6.4的长方体的体积。
C语言程序设计上mooc答案
第一周作业【练习1】HelloWorld“Hello World”示例程序最早出现于1972年,由贝尔实验室成员Brian Kernighan撰写的内部技术文件《Introduction to the Language B》之中。
不久同作者于1974年所撰写的《Programming in C: A Tutorial》,也延用这个示例。
一般来说,这是每一种计算机编程语言中最基本、最简单的程序,亦通常是初学者所编写的第一个程序。
它还可以用来确定该语言的编译器、程序开发环境,以及运行环境是否已经安装妥当。
将“Hello World”作为第一个示范程序,已经成为编程语言学习的传统。
我们在这里继续传统,这也是一种向前辈们致敬的方式之一吧!最早的程序基本是这个样子的:#include <stdio.h>int main(){printf("Hello world.\n");return 0;}请模仿上面的程序,看看是否可以通过编译?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。
略第二周作业【练习2】学学scanf和printf的用法吧该如何处理double 型的数据:如何定义变量类型?如何使用scanf 函数?如果已知圆柱的底面半径r ,以及高h ,则可计算出圆柱的侧面积s=2 π r h ,体积v=π r 2 h 。
其中π=3.1415926。
输入:第一行输入圆柱的底面半径r第二行输入圆柱的高h输出:s=< 圆柱的侧面积>,v=< 圆柱的体积>要求1. 所有变量都定义为双精度类型2. 结果精确到小数点后两位。
作为练习题目:我们已经给您编写好了大部分的代码,请您自己修改几个地方,完成程序的剩余部分。
**********************************************分隔线************#include<stdio.h>#define PAI 3.1415926int main(){int r,h;double s,v;scanf("%d %d", );s=2*PAI*r*h;v=PAI*r*r*h;printf("s=%.2f,v=\n",s, );return 0;}**********************************************分隔线************Code:#include<stdio.h>#define PAI 3.1415926int main(){int r,h;double s,v;scanf("%d %d",&r,&h);s=2*PAI*r*h;v=PAI*r*r*h;printf("s=%.2f,v=%.2f\n",s,v);return 0;}第三周作业1、输出字符的ASCII 码成绩10 开启时间2014年10月21日星期二10:00折扣0.8 折扣时间2014年11月5日星期三23:55允许迟交否关闭时间2014年11月12日星期三23:55背景:我们在计算机基础中已经学过:字母在计算机中采用ASCII码进行存储。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("%d days\n",day);
return0;
}
{
printf("Input error!\n");
printf("Please input score:\n");
continue;
}
else{
break;
}
}
s = atoi(score);
if (s >= 90)
{
grade = 'A';
}
else if (s >= 80)
{
grade = 'B';
#include "stdio.h"
main()
{
int a, b, c;
long n, i, t, s = 0;
printf("Input n(27<n<=77):\n");
scanf("%d", &n);
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.1下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。
题目内容:
编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。例如,当n=4,a=2,表示计算2+22+222+2222的值。
#include<stdio.h>
#include<math.h>
intmain()
{
intn,a,i,j;
doublep=0,q=0;
printf("Input a,n:\n");
scanf("%d,%d",&a,&n);
for(i=1;i<=n;i++)
{
for(j=0,p=0;j<i;j++)
{
p=p+a*pow(10,j);
}
q=p+q;
}
printf("sum=%.0f\n",q);
return0;
}
6.3
搬砖问题(4分)
题目内容:
n块砖(27<n<=77),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解,n的值要求从键盘输入。输出结果按照男人数量升序给出(见下面示例3)。
for (i = 0; i < strlen(score); i++)
{
if (score[i] >= '0' && score[i] <= '9')
{
continue;
}
else
{
flag = 1;
break;
}
}
s = atoi(score);
if (s < 0 || s > 100 || flag == 1)
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;
#include<stdio.h>
#include <string.h>
int main()
{
char score[100];
int flag = 0, i, s;
ar grade;
printf("Please input score:\n");
while (1)
{
flag=0;
scanf("%s", score);
}
}
6.4
编程输出某年某月有多少天(考虑到闰年)。(5分)
题目内容:
从键盘输入一个年份和月份,输出该月有多少天(考虑闰年),用switch语句编程。
#include<stdio.h>
intmain()
{intyear,month,day;
printf("Input year,month:\n");
scanf("%d,%d",&year,&month);
}
else if (s >= 70)
{
grade = 'C';
}
else if (s >= 60)
{
grade = 'D';
}
else
{
grade = 'E';
}
printf("grade: %c\n", grade);
return 0;
}
6.2编程计算a+aa+aaa+…+aa…a(n个a)的值(4分)
case8: day=31;break;
case9: day=30;break;
case10: day=31;break;
case11: day=30;break;
case12: day=31;break;
default:day=-1;printf("Input error!\n");
}
if((year%4==0&&year%100!=0||year%400==0)&&month==2) day=29;