山东科技大学OJ部分题目记答案.doc

上传人:人*** 文档编号:561976948 上传时间:2022-11-02 格式:DOC 页数:28 大小:208.50KB
返回 下载 相关 举报
山东科技大学OJ部分题目记答案.doc_第1页
第1页 / 共28页
山东科技大学OJ部分题目记答案.doc_第2页
第2页 / 共28页
山东科技大学OJ部分题目记答案.doc_第3页
第3页 / 共28页
山东科技大学OJ部分题目记答案.doc_第4页
第4页 / 共28页
山东科技大学OJ部分题目记答案.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《山东科技大学OJ部分题目记答案.doc》由会员分享,可在线阅读,更多相关《山东科技大学OJ部分题目记答案.doc(28页珍藏版)》请在金锄头文库上搜索。

1、/Problem D: 货币兑换Description给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。要计算的外币有三种:美元、欧元、日元。Input输入有三行。第一行依次为美元、欧元、日元外币汇率,用空格分开。汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。汇率浮动范围为(0,10000)。第二行为外币金额x,第三行为人民币金额y。x,y均为整数,且0x,y10000。Output输出为两行。第一行为金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。第二行为金

2、额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。所有金额精确到小数点后两位。Sample Input668.5200 908.0685 7.985215001500Sample Output10027.80 13621.03 119.78#include int main() double i,j,k,a,b,c,d,e,f; double x,y; scanf (%lf %lf %lf,&i,&j,&k); scanf (%lf%lf,&x,&y); a=x/100*i;b=y/100*j;c=x/100*k; d=y*100/i;e=y*100/j;f=y*100/k; print

3、f (%.2lf %.2lf %.2lfn,a,b,c); printf (%.2lf %.2lf %.2lfn,d,e,f);/Problem E: 求字符的值/Description从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。Input输入为3个字符。Output输出为3行。每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。Sample Input0 ASample Output048 060 030032 040 020065 101 041#include

4、 int main() char x,y,z; scanf (%c%c%c,&x,&y,&z); printf (%.3d %.3o %.3xn,x,x,x); printf (%.3d %.3o %.3xn,y,y,y); printf (%.3d %.3o %.3xn,z,z,z);Problem A: 简单的打折计算Description商店规定:消费满n元,可以打八八折。设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。Input输入只有一行,三个整数m、n和x,且0xmn1000。Output输出金额,精确到分。Sample Input95 300 4

5、Sample Output334.40HINT了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。#include int main()int m,n,x;float s;scanf (%d %d %d,&m,&n,&x);if (m*x=n) s=m*x*0.88;else s=m*x;printf (%.2f,s);Problem C: 水仙花数Description如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。如:13+53+33=153。Input一个整数x,100=x=999。Outputx是水仙花数,则输出“YES”,否则为“NO”。#inclu

6、de int main() int x,a,b,c; scanf (%d,&x); a=x%10; b=x/10%10; c=x/100; if(a*a*a+b*b*b+c*c*c=x) printf (YES); else printf (NO);Problem A: 多少张钞票Description 客户去商店买东西时,不超过100美金的账单喜欢用现金支付。商店喜欢用最少的钞票给付客户的找零。请你编写一个程序帮助商店计算出:当客户买了x元商品给了一张100美元的钞票后,商店应该付给客户多少张20美元、10美元、5美元和1美元的钞票,使得钞票总数最少。假设不存在其他面值的钞票,也不会有几角几

7、分的价格,商店的各种钞票总是够用的。Input输入一个整数x,0x100。Output按顺序输出20美金、10美金、5美金和1美金面值的钞票张数。输出格式见sample。Sample Input7Sample Output$20 bills: 4$10 bills: 1 $5 bills: 0 $1 bills: 3#include int main()int x,s,a,b,c,d;scanf (%d,&x);s=100-x;a=s/20;b=(s-20*a)/10;c=(s-20*a-10*b)/5;d=s-20*a-10*b-c*5;printf ($20 bills: %dn,a);p

8、rintf ($10 bills: %dn,b);printf ( $5 bills: %dn,c);printf ( $1 bills: %dn,d);Problem B: 自动拨出电话的程序Sample Input(0532)621-15486Sample Output008653262115486HINT这是个可以用scanf()解决的问题,请注意电话号码都是数字这个规律。#include int main() int a,b,c; scanf(0%d)%d-%d,&a,&b,&c); printf(0086%d%d%d,a,b,c);/Problem C: 求1+2+.+n=?Desc

9、ription给定一个n,求出s = 1+2+3+.+n的值。Input输入只有一行,包含一个正整数n(n=232)。Output输出一行,为1+2+.+n的值。Sample Input10Sample Output55HINTn的数据范围大,需注意数据类型的选择和计算次序,以避免数据溢出。#include int main() unsigned long long int n,s,i; scanf(%llu,&n); if(n%2=0) s=n/2*(n+1); else s=(n+1)/2*n; printf (%llu,s);/Problem D: 2的多少次幂Description从键

10、盘输入一个数x,x是2的整数次幂(x=2y),请编程求出y的值。Input一个非负有理数x,x在0,2256范围内。Output一个整数y。#include #include int main()double x,n; scanf (%lf,&x); n=(log10(x)/(log10(2); printf (%d,(int)n);/Problem A: 输出是m的倍数或n的倍数、但不是m和n的公倍数的数Description输出1k之间是m的倍数或n的倍数、但不是m和n的公倍数的数,其中1=m,nk100,且m与n不相等。Input输入三个整数,依次为k、m、 n。Output从小到大输出

11、符合题意的所有整数,两数之间用一个空格分开。Sample Input15 2 3Sample Output2 3 4 8 9 10 14 15#include int main() int k,m,n,i=0,j; scanf (%d %d %d,&k,&m,&n); for (j=1;j=k;j+) if (j%m=0&j%n!=0)|(j%m!=0&j%n=0) i+; if(i=1) printf (%d,j); else printf ( %d,j); /Problem B: n个数的最大值和最小值Description找出n个数中最大的数和最小的数,并将它们的值输出出来。Input输

12、入为n+1个整数,都在int类型范围内。这些数可能用若干空格或者换行符分隔开。输入的第1个数为n,表示后续有n个数输入。从输入的第2个数开始,求出直到第n+1个数中最大的数和最小的数。Sample Input3 0 1 -1Sample OutputThe maximum number is 1.The minimum number is -1.#include int main() int i,n,m,max,min; scanf (%d%d,&n,&max); min=max; for(i=1;imax) max=m; if(mmin) min=m; printf(The maximum number is %d.nThe minimum number is %d.,max,min);Problem C: 成绩的等级Description把百分制的考试成绩转换成五级制的成绩:90100:Excellent8089:Good7079:Average6069:Pass059:Failing不在0100之间的输入是非法数据,输出“Error”。Input输入多行,每行一个整数。Output输入所对应的成绩等级。#include #include #include string.hint main() int n; while (scanf (%d,&n)!=EOF)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号