您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 山东科技大学OJ部分题目记答案
ProblemA:Helloworld!DescriptionXiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放学回家,父母分别跟他们打招呼。Input无Output请输出:HelloDa_min,HelloEr_min,HelloXiao_ming!SampleInputSampleOutputHelloDa_min,HelloEr_min,HelloXiao_ming!HINT请注意换行符#includestdio.hintmain(){printf(HelloDa_min,\nHelloEr_min,\nHelloXiao_ming!);}ProblemA:算术基本运算Description计算两整数x和y(0x,y1000)的和、差、积、商、余数、x的平方和y的三次方。Input输入只有一行,格式见sample。Output输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sampleSampleInputx=11,y=3SampleOutputx+y:14x-y:8x*y:33x/yquotient:3,remainder:2x^2:121y^3:27HINT注意输入输出格式。了解C语言整数除法运算符的特点,并且没有求幂的运算符。#includestdio.hintmain(){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);}ProblemB:求圆的面积和周长Description从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。Input输入一个浮点型数据,有效数字不会超过十进制的6位。Output输出为两行。第一行为圆的面积,第二行为圆的周长,格式见sample。SampleInput3SampleOutputArea:28.260000Perimeter:18.840000HINT了解浮点类型的输入、输出和算术运算符#includestdio.h#definePI3.14intmain(){floatr,Area,Perimeter;scanf(%f,&r);Area=PI*r*r;Perimeter=2*PI*r;printf(Area:%f\n,Area);printf(Perimeter:%f\n,Perimeter);}ProblemC:平均值Description求3个数的平均值。Input输入只有一行,为3个较小的整数。Output输出为这3个整数的平均值,保留3位小数。SampleInput123SampleOutput2.000#includestdio.hintmain(){intx,y,z;floata;scanf(%d%d%d,&x,&y,&z);a=(x+y+z)/3.0;printf(%.3f,a);}ProblemD:货币兑换Description给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。要计算的外币有三种:美元、欧元、日元。Input输入有三行。第一行依次为美元、欧元、日元外币汇率,用空格分开。汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。汇率浮动范围为(0,10000)。第二行为外币金额x,第三行为人民币金额y。x,y均为整数,且0x,y10000。Output输出为两行。第一行为金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。第二行为金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。所有金额精确到小数点后两位。SampleInput668.5200908.06857.985215001500SampleOutput10027.8013621.03119.78224.38165.1918784.75HINT了解浮点数据类型的精确度和输出控制。#includestdio.hintmain(){doublei,j,k,a,b,c,d,e,f;doublex,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;printf(%.2lf%.2lf%.2lf\n,a,b,c);printf(%.2lf%.2lf%.2lf\n,d,e,f);}ProblemE:求字符的值Description从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。Input输入为3个字符。Output输出为3行。每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。SampleInput0ASampleOutput048060030032040020065101041HINT了解字符值的存储和整型的关系。#includestdio.hintmain(){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);}ProblemF:奇数还是偶数?Description输入一个整数,判读它是奇数还是偶数。Input输入只有一行,为一个100以内的正整数。Output输出为一行。若输入为偶数则输出“even”,奇数输出“odd”。SampleInput30SampleOutputevenHINT用整数运算可以解决,练习“?:”表达式。#includestdio.hintmain(){intx;scanf(%d,&x);x%2==0?printf(even):printf(odd);}ProblemG:绝对值Description求整型数据和浮点型数据的绝对值。Input输入两个数,第一个是整数,第二个是浮点数。Output输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。SampleInput-11SampleOutput11HINT求绝对值可以用标准库函数来完成,也可以自己判断。注意浮点数的输出格式。求绝对值的函数在哪个头文件?貌似很多人会搞错,包括很多编书的人!#includestdio.hintmain(){intx;floaty;scanf(%d%f,&x,&y);x=0?printf(%d\n,x):printf(%d\n,-x);y=0?printf(%g,y):printf(%g,-y);}ProblemA:简单的打折计算Description商店规定:消费满n元,可以打八八折。设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。Input输入只有一行,三个整数m、n和x,且0xmn1000。Output输出金额,精确到分。SampleInput953004SampleOutput334.40HINT了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。#includestdio.hintmain(){intm,n,x;floats;scanf(%d%d%d,&m,&n,&x);if(m*x=n)s=m*x*0.88;elses=m*x;printf(%.2f,s);}ProblemB:判断闰年Description输入一个正整数的年份,判断是否为闰年。Input输入只有一行,为一个10000以内的正整数。Output输出为一行。若输入为闰年偶数则输出“Yes”,否则输出“No”。SampleInput2010SampleOutputNoHINT了解逻辑运算符和关系运算符。#includestdio.hintmain(){inty;scanf(%d,&y);if(y%4==0&&y%100!=0||y%400==0)printf(Yes);elseprintf(No);}ProblemC:水仙花数Description如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。如:13+53+33=153。Input一个整数x,100=x=999。Outputx是水仙花数,则输出“YES”,否则为“NO”。SampleInput153SampleOutputYESHINT#includestdio.hintmain(){intx,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);elseprintf(NO);}ProblemA:多少张钞票Description客户去商店买东西时,不超过100美金的账单喜欢用现金支付。商店喜欢用最少的钞票给付客户的找零。请你编写一个程序帮助商店计算出:当客户买了x元商品给了一张100美元的钞票后,商店应该付给客户多少张20美元、10美元、5美元和1美元的钞票,使得钞票总数最少。假设不存在其他面值的钞票,也不会有几角几分的价格,商店的各种钞票总是够用的。Input输入一个整数x,0x100。Output按顺序输出20美金、10美金、5美金和1美金面值的钞票张数。输出格式见sample。SampleInput7SampleOutput$20bills:4$10bills:1$5bills:0$1bills:3HINT当能支付大面值钞票时不要支付更小面值的钞票,才能满足钞票总数最少,注意scanf()格式的控制。#includestdio.hintmain(){intx,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($20bills:%d\n,a);printf($10bills:%d\n,b);printf($5bills:%d\n,c);printf($1bills:%d\n,d);}ProblemB:自动拨出电话的程序Description某外国销售公司需要向国内的一些大型单位打电话推销产品。这个公司的工作场景是这样推销员坐在自己电脑旁边,通过一款自动拨电话的软件与客户联系。所有需要被拨打的电话号码都事先存储在服务器上,推销员不需要每次都很麻烦的输入客户的电话号码,当推销员点击软件里拨打的按钮,下一个电话将会自动拨出。现在你需要编写个程序来模拟这个自动拨电话软件的工作过程。电话号码是按照中国的习惯存储下来的,可能是从网站上抓取的,也可能是扫描的手写件。不过它们都被按照这样的格式存储下来:(城市区号)分区前缀-分机号比如青岛的一个大型单位的某部电话是(0532)621-15486,是指如果在单位内部直接拨打15486就行,在青岛的其他地方要拨打62115486,而在北京要拨打053262115486。根据常识,先拨0就是要转外线,所以一般电话号码的各个部分都不会以0开头。你的程序可以把如上格式的电话号码翻译成一个只包含有数字的串,发送给电话机并拨出。值得注意的是中国的城市区号长度并不相同,比如北京是010。再有不同城市的电话号码位数也不相同,并且不同单位根据内部电话分机数目多少,有的可能只有3位分机号码,有的可能分区前缀号会只有2位。但不管怎样中国现在
本文标题:山东科技大学OJ部分题目记答案
链接地址:https://www.777doc.com/doc-2515876 .html