1、作业集锦 1(1-2)Description计算两整数 x和 y(0 int main() int x,y; 0 #define P 3.14 int main() float r,s,c; scanf(“%f“, s=P*r*r; c=2*r*P; printf(“Area: %fn“,s); printf(“Perimeter: %fn“,c); return 0; (1-4)Description求 3个数的平均值。Input输入只有一行,为 3个较小的整数。Output输出为这 3个整数的平均值,保留 3位小数。Sample Input1 2 3Sample Output2.000HI
2、NT注意除法运算对整型数据和浮点型数据是不一样的#include int main() int a,b,c; float Aver; scanf(“%d %d %d“, Aver=(a+b+c)/3.0; printf(“%.3fn“,Aver); return 0; (1-5)Description给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。要计算的外币有三种:美元、欧元、日元。Input输入有三行。第一行依次为美元、欧元、日元外币汇率,用空格分开。汇率用100外币为单位,精确到小数点后 4位,如 668.5200表示“
3、100 美元=668.5200 人民币” 。汇率浮动范围为(0,10000)。第二行为外币金额 x,第三行为人民币金额 y。x,y 均为整数,且0 int main() double x,y; double a,b,c,i,j,k,l,m,n; scanf(“%lf%lf%lf“, scanf(“%lf“, scanf(“%lf“, i=x/100*a; j=x/100*b; k=x/100*c; l=y/a*100; m=y/b*100; n=y/c*100; printf(“%.2lf %.2lf %.2lfn“,i,j,k); printf(“%.2lf %.2lf %.2lfn“,l,
4、m,n); return 0; (1-6)Problem F: 求字符的值Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 562 Solved: 373SubmitStatusWeb BoardDescription从键盘输入 3个字符(不含双字节字符) ,分别输出每个字符的十进制值(ASCII 码) 、八进制值和十六进制值。Input输入为 3个字符。Output输出为 3行。每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占 3个字符,不足 3个字符前面补 0。Sample Input0 ASample Out
5、put048 060 030032 040 020065 101 041HINT了解字符值的存储和整型的关系。#include int main() char a,b,c; scanf(“%c%c%c“, printf(“%.3d %.3o %.3xn“,a,a,a); printf(“%.3d %.3o %.3xn“,b,b,b); printf(“%.3d %.3o %.3xn“,c,c,c); return 0; (1-7)Problem G: 奇数还是偶数?Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 575 Solved: 455Submit
6、StatusWeb BoardDescription输入一个整数,判读它是奇数还是偶数。Input输入只有一行,为一个 100以内的正整数。Output输出为一行。若输入为偶数则输出“even” ,奇数输出“odd” 。Sample Input30Sample OutputevenHINT用整数运算可以解决,练习“?:”表达式。#include int main() int a; (0 #include #include int main() int a,c; double b,d; scanf(“%dn%lf“, c=abs(a); d=fabs(b); printf(“%dn%g“,c,d
7、); return 0; (1-9)Problem I: 简单的打折计算Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 919 Solved: 435SubmitStatusWeb BoardDescription商店规定:消费满 n元,可以打八八折。设某件商品标价 m元,输入购买的件数 x,计算出需要支付的金额(单位:元) ,精确到分。Input输入只有一行,三个整数 m、n 和 x,且 0 int main() int m,x,n,a; float b; scanf(“%d%d%d“, 0n) b=0.88*a; else b=a; printf(“
8、%.2fn“,b); return 0; (1-10)Problem J: 判断闰年Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 939 Solved: 443SubmitStatusWeb BoardDescription输入一个正整数的年份,判断是否为闰年。Input输入只有一行,为一个 10000以内的正整数。Output输出为一行。若输入为闰年偶数则输出“Yes” ,否则输出“No” 。Sample Input2010Sample OutputNoHINT了解逻辑运算符和关系运算符。#include int main() int a; 0 in
9、t main() int a,b,c,d,e,f,g,h,i,j,k,s; scanf(“%*c%d%*c%*c%*c%d%*c%*c%d%*c%d%*c%*c%*c%*c%d%*c%d%*c%*c%d%*c%*c%d%*c%*c%d%*c%*c%*c%*c%d%*c%d%*c“, s=a+b+c+d+e+f+g+h+i+j+k; printf(“%d“,s); return 0; (1-12)Problem L: 水仙花数Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 960 Solved: 534SubmitStatusWeb BoardDescri
10、ption如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。如:13+53+33=153。Input一个整数 x,100 int main() int a,b,c,d,e; scanf(“%d“, b=a/100; c=(a-b*100)/10; d=(a-b*100-c*10); e=b*b*b+c*c*c+d*d*d; if(a=e) printf(“YESn“); elseprintf(“NOn“); return 0; (1-13)Problem M: 求 1+2+.+n=?Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 2023
11、 Solved: 413SubmitStatusWeb BoardDescription给定一个 n,求出 s = 1+2+3+.+n的值。Input输入只有一行,包含一个正整数 n(n int main() unsigned long long n; scanf(“%llu“, if(n%2=0) printf(“%llu“,n/2*(n+1); elseprintf(“%llu“,(n+1)/2*n); return 0; (1-14)Problem N: 2的多少次幂Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 1022 Solved: 470S
12、ubmitStatusWeb BoardDescription从键盘输入一个数 x,x 是 2的整数次幂(x=2y) ,请编程求出 y的值。Input一个非负有理数 x,x 在0,2256范围内。Output一个整数 y。Sample Input1Sample Output0HINT看起来数据很大,但是用 double完全可以存储。为什么?请研究下IEEE-754标准的浮点数存储格式。这里要用到 C语言标准库的数学函数。#include #include int main() double x; int y; scanf(“%lf“, y=log2(x); printf(“%d“,y); re
13、turn 0; 第二次作业(2_1)问题 A: 哪一行比较长时间限制: 1 Sec 内存限制: 2 MB提交: 625 解决: 252提交状态讨论版题目描述读取两行字符串,按每行的长度从长到短输出。输入输入为两行,每行不会超过 26个字符。输出输出为两行,按每行的长度从长到短输出。样例输入abcdefghijkabcdefghijklmnopqrstuvwxyz样例输出abcdefghijklmnopqrstuvwxyzabcdefghijk提示了解字符串的存储和操作,了解 gets()和 scanf(“%s“)读入字符串的不同之处#include #include int main()cha
14、r s127,s227;int a,b;gets(s1);gets(s2);a=strlen(s1);b=strlen(s2);if (a=b)puts(s1);puts(s2);elseputs(s2);puts(s1);return 0;(2_2 ) 题目描述从键盘上输入 0100 之间的三个数,按从小到大的顺序输出。输入输入只有一行,为三个整数。输出按从小到大输出这三个数。样例输入15 10 20样例输出10 15 20提示用 if语句判断各种情况可以解决这个问题。#include int main()int a,b,c;scanf(“%d%d%d“,if (a=belse if (a=
15、celse if (b=celse if (b=aelse if (c=belseprintf(“%d %d %dn“,b,a,c);return 0;Append Code(2_3) 题目描述输出 1k 之间是 m的倍数或 n的倍数、但不是 m和 n的公倍数的数,其中 1int main()int k,m,n,a,b,i,c,d;scanf(“%d%d%d“,if (mn)c=m,d=n;elsec=n,d=m;printf(“%d“,d);for (i=d+1;iint main()int a,b;while(scanf(“%d %d“,return 0;Append Code(2_5)问题 E: A+B Problem (II) : Input/Output Pratice时间限制: 1 Sec 内存限制: