哈尔滨工业大学C语言2016年MOOC在线测试3-12周答案

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

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

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

资源描述

本答案仅供参考第3周1计算两个数的平方和(3分)题目内容:从键盘读入两个实数,编程计算并输出它们的平方和,要求使用数学函数pow(x,y)计算平方值,输出结果保留2位小数。提示:使用数学函数需要在程序中加入编译预处理命令#includemath.h以下为程序的运行结果示例:pleaseinputxandy:1.2,3.4↙result=13.00输入格式:%f,%f输出格式:输入提示信息:Pleaseinputxandy:\n输出格式:Result=%.2f\n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#includestdio.hmath.hintmain(){floatx,y,S,D;printf(Pleaseinputxandy:\n);scanf(%f,%f,&x,&y);S=pow(x,2);D=pow(y,2);printf(Result=%.2f\n,S+D);return0;}2逆序数的拆分计算(3分)题目内容:从键盘输入一个4位数的整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-1234,忽略负号,由1234分离出其千位1、百位2、十位3、个位4,然后计算4*1000+3*100+2*10+1=4321,并输出4321。再将得到的逆序数4321拆分为两个2位数的正整数43和21,计算并输出拆分后的两个数的平方和的结果。以下是程序的运行结果示例:Inputx:-1234↙y=4321a=43,b=21result=2290输入格式:%d输出格式:输入提示信息:Inputx:\n逆序数输出格式:y=%d\n逆序数拆分后的输出格式:a=%d,b=%d\n平方和的输出格式:result=%d\n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#includestdio.hmath.hmain(){intx,b0,b1,b2,b3,y,a,b,c;printf(Inputx:\n);scanf(%d,&x);x=(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=%d\n,y);a=b0*10+b1;b=b2*10+b3;c=(a*a)+(b*b);printf(a=%d,b=%d\n,a,b);printf(result=%d\n,c);return0;}3拆分英文名(3分)题目内容:从键盘输入某同学的英文名(小写输入,假设学生的英文名只包含3个字母。如:tom),编写程序在屏幕上输出该同学的英文名,且首字母大写(如:Tom)。同时输出组成该英文名的所有英文字符在26个英文字母中的序号。以下为程序的运行结果示例:InputyourEnglishname:tom↙Tomt:20o:15m:13输入格式:%c%c%c输出格式:输入提示信息:InputyourEnglishname:\n首字母大写的英文姓名的输出格式:%c%c%c\n姓名中每个字母在26个英文字母中的序号的输出格式:%c:%d\n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#includestdio.hmath.hintmain(){charx,y,z,A;printf(InputyourEnglishname:\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分)题目内容:从键盘输入某人的身高(以厘米为单位,如174cm)和体重(以公斤为单位,如70公斤),将身高(以米为单位,如1.74m)和体重(以斤为单位,如140斤)输出在屏幕上,并按照以下公式计算并输出体指数,要求结果保留到小数点后2位。假设体重为w公斤,身高为h米,则体指数的计算公式为:以下是程序的运行结果示例:Inputweight,height:70,174↙weight=140height=1.74t=23.12输入格式:%d,%d输出格式:输入提示信息:Inputweight,height:\n(注意:在height和逗号之间有一个空格)体重输出格式:weight=%d\n身高输出格式:height=%.2f\n体指数输出格式:t=%.2f\n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#includestdio.hmath.hintmain(){floatA,b;intx,y;printf(Inputweight,height:\n);scanf(%d,%d,&x,&y);printf(weight=%d\n,x*2);A=(float)y/100;printf(height=%.2f\n,A);b=(float)x/(A*A);printf(t=%.2f\n,b);}第4周1数位拆分v2.0(4分)题目内容:从键盘上输入一个4位数的整数n,编写程序将其拆分为两个2位数的整数a和b,计算并输出拆分后的两个数的加、减、乘、除和求余运算的结果。例如n=-4321,设拆分后的两个整数为a,b,则a=-43,b=-21。除法运算结果要求精确到小数点后2位。求余和除法运算需要考虑除数为0的情况,即如果拆分后b=0,则输出提示信息Thesecondoperateriszero!程序的运行结果示例1:Pleaseinputn:1200↙12,0sum=12,sub=12,multi=0Thesecondoperateriszero!程序的运行结果示例2:Pleaseinputn:-2304↙-23,-4sum=-27,sub=-19,multi=92dev=5.75,mod=-3输入格式:%d输出格式:输入提示信息:Pleaseinputn:\n拆分后的两个整数的输出格式:%d,%d\n加法、减法、乘法的输出格式:sum=%d,sub=%d,multi=%d\n除法和求余的输出格式:dev=%.2f,mod=%d\n除数为0的提示信息:Thesecondoperateriszero!\n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#includestdio.hmath.hmain(){floatc;intx,b0,b1,b2,b3,a,b,d;printf(Pleaseinputn:\n);scanf(%d,&x);b3=x/1000;/*取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,%d\n,a,b);printf(sum=%d,sub=%d,multi=%d\n,a+b,a-b,a*b);/*输出两段数的加,减,乘*/if(0==b){printf(Thesecondoperateriszero!\n);}else{c=(float)a/b;d=a%b;printf(dev=%.2f,mod=%d\n,c,d);}return0;}2快递费用计算(4分)题目内容:上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域:0区1区2区3区4区同城临近两省1500公里(含)以内1500——2500公里2500公里以上上海江苏,浙江北京,天津,河北,辽宁,河南,安微,陕西,湖北,江西,湖南,福建,广东,山西。吉林,辽宁,甘肃,四川,重庆,青海,广西,云南,海南,内蒙古,黑龙江,贵州。新疆,西藏。快递费按邮件重量计算,由起重费用、续重费用两部分构成:(1)起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算),超过首重的重量,按公斤(不足1公斤,按1公斤计算)收取续重费;(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.5↙Price:55.00程序运行结果示例2:5,3.2↙ErrorinAreaPrice:0.00输入格式:用逗号分隔的两个数字,第一个表示区域、第二个是重量:%d,%f输出格式:价格的输出格式:Price:%5.2f\n区域错误的提示信息:ErrorinArea\n为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制:500ms内存限制:32000kb#includestdio.h#includemath.h#defineeps1E-5main(){floatb,c,d;inta;scanf(%d,%f,&a,&b);switch(a){case0:if(b=1+eps){c=10.0;}else{d=ceil(b-1.0);c=d*3+10.0;}printf(Price:%5.2f\n,c);break;case1:if(b=1+eps){c=10.0;}else{d=ceil(b-1.0);c=d*4+10.0;}printf(Price:%5.2f\n,c);break;case2:if(b=1+eps){c=15.0;}else{d=ceil(b-1.0);c=d*5+15.0;}printf(Price:%5.2f\n,c);break;case3:if(b=1+eps){c=15.0;}else{d=ceil(b-1.0);c=d*6.5+15;}printf(Price:%5.2f\n,c);break;case4:if(b=1+eps){c=15.0;}else{d=ceil(b-1.0);c=d*10+15.0;}printf(Price:%5.2f\n,c);break;default:printf(ErrorinArea\n);printf(Price:0.00);}return0;}3数据区间判断(6分)题目内容:从键盘输入一个int型的正整数n(已知:0n10000),编写程序判断n落在哪个区间。如果用户输入的数据不在指定的范围里,程序输出error!。例如,输入265,则该数属于区间100-999。程序运行结果示例1:Pleaseenterthenumber:2563↙2563:1000-9999程序运行结果示例2:Pleaseenterthenumber:156↙156:100-999程序运行结果示例3:Pleaseenterthenumber:36↙36:10-99程序运行结果示例4:Pleaseenterthenumber:3↙3:0-9程序运行结果示例5:Pleaseenterthenumber:10923↙er

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

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

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

×
保存成功