《哈尔滨工业大学C语言2016年MOOC在线测试答案》由会员分享,可在线阅读,更多相关《哈尔滨工业大学C语言2016年MOOC在线测试答案(57页珍藏版)》请在金锄头文库上搜索。
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为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时
2、间限制:500ms 内存限制:32000kb#include 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 = 4
3、321,并输出 4321。再将得到的逆序数 4321 拆分为两个 2 位数的正整数 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,
4、y,a,b,c;printf(Input x: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=%dn,y);a = b0*10+b1;b = b2*10+b3;c = (a*a)+(b*b);printf(a=%d,b=%dn,a,b);printf
5、(result=%dn,c);return 0;3拆分英文名(3 分)题目内容:从键盘输入某同学的英文名(小写输入,假设学生的英文名只包含 3 个字母。如: tom),编写程序在屏幕上输出该同学的英文名,且首字母大写(如: Tom)。同时输出组成该英文名的所有英文字符在 26 个英文字母中的序号。以下为程序的运行结果示例:Input your English name:tomTomt:20o:15m:13输入格式: %c%c%c输出格式:输入提示信息:Input your English name:n首字母大写的英文姓名的输出格式:%c%c%cn姓名中每个字母在 26 个英文字母中的序号的输出
6、格式:%c:%dn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制: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 分)题目内容:从键盘输入某人的身高(以厘米为单
7、位,如 174cm)和体重(以公斤为单位,如 70 公斤),将身高(以米为单位,如 1.74m)和体重(以斤为单位,如 140 斤)输出在屏幕上,并按照以下公式计算并输出体指数,要求结果保留到小数点后 2 位。假设体重为 w 公斤,身高为 h 米,则体指数的计算公式为:以下是程序的运行结果示例:Input weight, height:70,174weight=140height=1.74t=23.12输入格式: %d,%d输出格式:输入提示信息:Input weight, height:n (注意:在 height 和逗号之间有一个空格)体重输出格式:weight=%dn身高输出格式:hei
8、ght=%.2fn体指数输出格式:t=%.2fn为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。时间限制: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 分)题目内容:从键盘上输入
9、一个 4 位数的整数 n,编写程序将其拆分为两个 2 位数的整数 a 和 b,计算并输出拆分后的两个数的加、减、乘、除和求余运算的结果。例如 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 inp
10、ut n:-2304-23,-4sum=-27,sub=-19,multi=92dev=5.75,mod=-3输入格式: %d输出格式:输入提示信息: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
11、c;int x,b0,b1,b2,b3,a,b,d;printf(Please input n: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,%dn,a,b);printf(sum=%d,sub=%d,multi=%dn,a+b,a-b,a*b); /*输出两段数的加,减,乘*/if(0=b
12、) printf(The second operater is zero!n);elsec=(float)a/b;d=a%b;printf(dev=%.2f,mod=%dn,c,d);return 0;2快递费用计算(4 分)题目内容:上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成 5 个区域:0 区 1 区 2 区 3 区 4 区同城 临近两省 1500 公里(含) 以内 15002500 公里 2500 公里以上上海 江苏,浙 江北京,天津,河北,辽宁,河南,安微,陕西,湖北,江西,湖南,福建,广东,山西。吉林,辽宁,甘肃,四川,重庆,青海,广西,云南,海南,内蒙古,黑龙江,
13、贵州。新疆,西藏。快递费按邮件重量计算,由起重费用、续重费用两部分构成:(1) 起重(首重)1 公斤按起重资费计算(不足 1 公斤,按 1 公斤计算),超过首重的重量,按公斤(不足 1 公斤,按 1 公斤计算)收取续重费;(2) 同城起重资费 10 元,续重 3 元/公斤;(3) 寄往 1 区(江浙两省)的邮件,起重资费 10 元,续重 4 元;(4) 寄往其他地区的邮件,起重资费统一为 15 元。而续重部分,不同区域价格不同:2 区的续重 5元/公斤,3 区的续重 6.5 元/公斤, 4 区的续重 10 元/公斤。编写程序,从键盘输入邮件的目的区域编码和重量,计算并输出运费,计算结果保留 2
14、 位小数。提示:续重部分不足一公斤,按 1 公斤计算。因此,如包裹重量 2.3 公斤:1 公斤算起重,剩余的 1.3 公斤算续重,不足 1 公斤按 1 公斤计算, 1.3 公斤折合续重为 2 公斤。如果重量应大于 0、区域编号不能超出 0-4 的范围。程序运行结果示例 1:4,4.5Price: 55.00程序运行结果示例 2:5,3.2Error in AreaPrice: 0.00输入格式:用逗号分隔的两个数字,第一个表示区域、第二个是重量:%d,%f输出格式:价格的输出格式:Price: %5.2fn区域错误的提示信息:Error in Arean为避免出现格式错误,请直接拷贝粘贴题目中
15、给的格式字符串和提示信息到你的程序中。时间限制: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#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);elseb3 = x/1000; /*取 x 千位*/b2 = (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)