C语言作业解析.docx
- 文档编号:2455190
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:56
- 大小:31.89KB
C语言作业解析.docx
《C语言作业解析.docx》由会员分享,可在线阅读,更多相关《C语言作业解析.docx(56页珍藏版)》请在冰豆网上搜索。
C语言作业解析
ProblemB:
算术基本运算
Description
计算两整数x和y(0 Input 输入只有一行,格式见sample。 Output 输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sample SampleInput x=11,y=3 SampleOutput x+y: 14 x-y: 8 x*y: 33 x/yquotient: 3,remainder: 2 x^2: 121 y^3: 27 HINT 注意输入输出格式。 了解C语言整数除法运算符的特点,并且没有求幂的运算符。 #include intmain() { intx,y; scanf("x=%d,y=%d",&x,&y); printf("x+y: %d\n",x+y); printf("x-y: %d\n",x-y); printf("x*y: %d\n",x*y); printf("x/yquotient: %d,remainder: %d\n",x/y,x%y); printf("x^2: %d\n",x*x); printf("y^3: %d\n",y*y*y); return0; } ProblemC: 求圆的面积和周长 Description 从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。 Input 输入一个浮点型数据,有效数字不会超过十进制的6位。 Output 输出为两行。 第一行为圆的面积,第二行为圆的周长,格式见sample。 SampleInput 3 SampleOutput Area: 28.260000 Perimeter: 18.840000 HINT 了解浮点类型的输入、输出和算术运算符 #include intmain() { doubleArea,Perimeter,r,p=3.14; scanf("%lf",&r); Area=p*r*r,Perimeter=2*p*r; printf("Area: %lf\n",Area); printf("Perimeter: %lf\n",Perimeter); return0; } ProblemD: 平均值 Description 求3个数的平均值。 Input 输入只有一行,为3个较小的整数。 Output 输出为这3个整数的平均值,保留3位小数。 SampleInput 123 SampleOutput 2.000 HINT 注意除法运算对整型数据和浮点型数据是不一样的。 #include intmain() { intx,y,z; floatave; scanf("%d%d%d",&x,&y,&z); ave=(x+y+z)/3.0; printf("%.3f",ave); return0; } ProblemE: 货币兑换 Description 给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。 要计算的外币有三种: 美元、欧元、日元。 Input 输入有三行。 第一行依次为美元、欧元、日元外币汇率,用空格分开。 汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。 汇率浮动范围为(0,10000)。 第二行为外币金额x,第三行为人民币金额y。 x,y均为整数,且0 Output 输出为两行。 第一行为金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。 第二行为金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。 所有金额精确到小数点后两位。 SampleInput 668.5200908.06857.9852 1500 1500 SampleOutput 10027.8013621.03119.78 224.38165.1918784.75 HINT 了解浮点数据类型的精确度和输出控制。 #include intmain() { doublea,b,c; doublex; doubley; scanf("%lf%lf%lf",&a,&b,&c); scanf("%lf",&x); scanf("%lf",&y); printf("%.2lf%.2lf%.2lf\n",x*0.01*a,x*0.01*b,x*0.01*c); printf("%.2lf%.2lf%.2lf\n",y/a*100,y/b*100,y/c*100); return0; } ProblemF: 求字符的值 Description 从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。 Input 输入为3个字符。 Output 输出为3行。 每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。 每个输出的值占3个字符,不足3个字符前面补0。 SampleInput 0A SampleOutput 048060030 032040020 065101041 HINT 了解字符值的存储和整型的关系。 #include intmain() { charx,y,z; scanf("%c%c%c",&x,&y,&z); printf("%.3d%.3o%.3x\n",x,x,x); printf("%.3d%.3o%.3x\n",y,y,y); printf("%.3d%.3o%.3x\n",z,z,z); return0; } ProblemG: 奇数还是偶数? Description 输入一个整数,判读它是奇数还是偶数。 Input 输入只有一行,为一个100以内的正整数。 Output 输出为一行。 若输入为偶数则输出“even”,奇数输出“odd”。 SampleInput 30 SampleOutput even HINT 用整数运算可以解决,练习“? : ”表达式。 #include intmain() { intx; scanf("%d",&x); if(x%2==0) printf("even"); else printf("odd"); return0; } ProblemH: 绝对值 Description 求整型数据和浮点型数据的绝对值。 Input 输入两个数,第一个是整数,第二个是浮点数。 Output 输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。 SampleInput -1 1 SampleOutput 1 1 HINT 求绝对值可以用标准库函数来完成,也可以自己判断。 注意浮点数的输出格式。 求绝对值的函数在哪个头文件? 貌似很多人会搞错,包括很多编书的人! #include #include intmain() { intx; floaty; scanf("%d",&x); scanf("%f",&y); printf("%d\n",abs(x)); printf("%g\n",fabs(y)); return0; } ProblemI: 简单的打折计算 Description 商店规定: 消费满n元,可以打八八折。 设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位: 元),精确到分。 Input 输入只有一行,三个整数m、n和x,且0 Output 输出金额,精确到分。 SampleInput 953004 SampleOutput 334.40 HINT 了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。 #include intmain() { intm,n,x; doubley; scanf("%d%d%d",&m,&n,&x); y=m*x; if(y>n) y=y*0.88; else y=y; printf("%.2lf\n",y); return0; } Description 输入一个正整数的年份,判断是否为闰年。 Input 输入只有一行,为一个10000以内的正整数。 Output 输出为一行。 若输入为闰年偶数则输出“Yes”,否则输出“No”。 SampleInput 2010 SampleOutput No HINT 了解逻辑运算符和关系运算符。 #include intmain() { inta; scanf("%d",&a); if(a%4==0&&a%100! =0||a%400==0) printf("Yes"); elseprintf("No"); return0; } ProblemK: GHacker的解谜过关游戏 Description GHacker最近痴迷于一个新上市的解谜游戏,其中一关的过关是破解一个字符串S。 经过3天的冥思苦想,GHacker成功的搞明白了这其中的奥秘,把串S中的整数取出来求和,就可以过关了。 但是GHacker的数学实在糟糕。 他无法在短暂的时间内算出来,只好求助Jackie。 Jackie观察到虽然每次出现的数字不同,但是其它的符号并不会变化。 于是Jackie编写了一个非常短的程序,帮助GHacker把这一关过了。 Input 输入为串S,只有一行。 Output 串S中用非数字(0~9)分隔开的非负整数之和,不会超出int类型的数据范围。 SampleInput `13? : [7514],54.487=="(438922x159? ? 392)%032\n111cdef120$95; SampleOutput 447899 HINT scanf()可以解决这个问题,注意转义字符和格式控制字符。 #include intmain() { inti,sum,num; charstr[1000]; while(scanf("%s",str)! =EOF) { num=sum=0; for(i=0;;i++) { if(str[i]>='0'&&str[i]<='9') num=num*10+str[i]-'0'; else { sum=sum+num;num=0; if(str[i]=='\0')break; } } printf("%d\n",sum); } return0; } ProblemL: 水仙花数 Description 如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。 如: 13+53+33=153。 I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业 解析