收藏 分销(赏)

宁波大学OJ系统C语言题目答案与解析精讲.doc

上传人:二*** 文档编号:4496580 上传时间:2024-09-25 格式:DOC 页数:203 大小:313KB
下载 相关 举报
宁波大学OJ系统C语言题目答案与解析精讲.doc_第1页
第1页 / 共203页
本文档共203页,全文阅读请下载到手机保存,查看更方便
资源描述
(word完整版)宁波大学OJ系统C语言题目答案与解析精讲 1000 整数输入输出练习 Description 从键盘输入任意两个整数,再向屏幕输出这两个数据。 Input 输入两个整数。 Output 输出这两个整数。以空格间隔. Sample Input 7 —9 Sample Output 7 —9 HINT 本题的样例代码如下: #include<stdio.h〉 int main() { int a,b; scanf(”%d%d",&a,&b);   printf("%d %d\n”,a,b); return 0; } 1001 字符输入输出练习1 Description 从键盘任意输入一个字符,再输出这个字符。 Input 任意输入一个字符。 Output 输出该字符。 Sample Input # Sample Output # #include〈stdio。h> int main() { char a; scanf("%c",&a); printf(”%c\n”,a); return 0; } 1002 单组A+B Description 从键盘输入任意两个整数a和b,计算并输出a+b的值。 Input 从键盘输入两个整数a和b。 Output 输出这两个数的和 Sample Input 1 2 Sample Output 3 #include<stdio.h〉 int main() { int a,b,c; scanf("%d%d",&a,&b); c=a+b; printf("%d\n”,c); return 0; } 1003 多组A+B(1) Description 分别计算多组a+b的值。 Input 输入包含多组测试数据。每行包含一组整数a,b.当输入为0 0 时,测试结束,此时的结果不输出. Output 对于每一对整数a,b,输出它们的和,并且每行输出一个结果. Sample Input 1 5 10 20 0 0 #include<stdio。h> int main() { int a,b,y; scanf(”%d%d”,&a,&b); while(a!=0||b!=0) { y=a+b; printf(”%d\n",y); scanf(”%d%d",&a,&b); } return 0; } 1004 多组A+B(2) Description 分别计算多组a+b的值。 Input 第一行包含一个整数N,表示有N组数据。接下来的N行,每行输入一组a,b数据。 Output 对于每一对整数a,b,输出它们的和,并且每行输出一个结果。 Sample Input 2 1 5 10 20 Sample Output 6 30 #include〈stdio.h> int main() { int a,b,y,i=1,N; scanf("%d",&N); while(i〈=N) { scanf("%d%d”,&a,&b); y=a+b; printf("%d\n”,y); i++; } return 0; } 1005 计算平均分(1) Description 输入一个学生的3门课成绩a,b,c,求出该学生的平均分. Input 输入三个成绩a,b,c. Output 输出平均值,要求保留1位小数。 Sample Input 60 70 80 Sample Output 70.0 #include<stdio.h> int main() { double a,b,c,d; scanf(”%lf%lf%lf”,&a,&b,&c); d=(a+b+c)/3。0; printf(”%.1f\n",d); return 0; } 06 计算月收入 Description 某小型外贸公司员工月收入的计算方法为:月基本工资加当月提成.从键盘输入某员工某月的基本工资和该月的提成,计算并输出该员工的月收入。 Input 输入两个数分别代表月基本工资和月提成。 Output 计算并输出月收入(保留2位小数). Sample Input 3100 1200 Sample Output 4300.00 #include〈stdio.h> int main() { double a,b,c; scanf(”%lf%lf",&a,&b); c=a+b; printf("%。2f\n",c); return 0; } 1007 温度转换 Description 2011夏季,热浪席卷了全球的大部分地方。网上报道美国局部地区的温度达到了100华氏度,而我们国内的温度多在38摄氏度左右。那么38摄氏度和100华氏度到底哪个更热一些呢?请你帮忙编一个程序来解决这一问题。从键盘输入一个华氏温度,求出其对应的摄氏温度。计算公式如下: c=5*(f-32)/9 c表示摄氏温度,f表示华氏温度。 Input 输入一个华氏温度值。 Output 输出对应的摄氏温度值,结果要求保留2位小数. Sample Input 100 Sample Output 37。78 #include<stdio。h> int main() { double c,f; scanf("%lf”,&f); c=5*(f—32)/9; printf("%.2f\n”,c); return 0; } 1008 求圆周长和圆面积 Description 从键盘输入一个圆的半径r,计算并输出圆周长和圆面积。 Input 输入一个圆半径r。 Output 按序输出圆周长和圆面积,结果保留两位小数。 Sample Input 41 Sample Output 257.48 5278.34 HINT 圆周率使用3.14 #include<stdio。h〉 #define PI 3。14 int main() { double r,c,s; scanf(”%lf",&r); c=2*PI*r; s=PI*r*r; printf("%.2f %。2f\n",c,s); return 0; } 1009 求圆柱体表面积 Description 输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上,保留2位小数。 Input 输入圆柱体的底面半径r和高h。 Output 计算圆柱体的表面积并输出到屏幕上,保留2位小数. Sample Input 42.1 71.6 Sample Output 30060。92 HINT 圆周率使用3。14 #include<stdio。h〉 #define PI 3.14 int main() { double r,h,s; scanf("%lf%lf”,&r,&h); s=2*PI*r*r+2*PI*r*h; printf("%。2f\n",s); return 0; } 1010 计算球体的体积 Description 编写程序计算球体的体积。参考公式v=(4/3)*PI*r*r*r,其中PI表示圆周率。球体的半径r的值由键盘输入,保留2位小数。 Input 输入球体半径r。 Output 计算球体体积并输出到屏幕上,保留2位小数. Sample Input 96。2 Sample Output 3727293.58 HINT 圆周率使用3.14 #include<stdio.h〉 #define PI 3。14 int main() { double r,v; scanf(”%lf",&r); v=(4/3。0)*PI*r*r*r; printf(”%。2f\n”,v); return 0; } 1011 三角形面积 Description 从键盘上输入三角形的3条边的边长a,b,c(假定3条边长可以构成三角形),求三角形面积并输出到屏幕上. 可利用海伦公式求解:s=sqrt(p*(p-a)*(p-b)*(p—c));其中p=(a+b+c)/2; Input 输入三条边的边长(假设3条边长可以构成三角形). Output 输出三角形面积。保留2位小数。 Sample Input 3 4 5 Sample Output 6.00 #include〈stdio.h〉 #include<math.h> int main() { double a,b,c,p,s; scanf(”%lf%lf%lf”,&a,&b,&c); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p—b)*(p-c)); printf(”%.2f\n”,s); return 0; } 1012 判断三角形 Description 输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积,否则输出Error。 Input 输入三个数a,b,c(浮点类型). Output 如果这三条边能构成一个三角形就计算并输出这个三角形的面积,保留2位小数。如果不能构成三角形就输出Error。 Sample Input 3 1 4 Sample Output Error #include<stdio.h〉 #include〈math.h〉 int main() { double a,b,c,p,s; scanf("%lf%lf%lf”,&a,&b,&c); if(a+b〉c&&fabs(a-b)<c) { p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("%。2f\n”,s); } else printf("Error\n"); return 0; } 1013 两点的距离 Description 从键盘输入数据表示平面上任意两点。计算并输出这两点之间的距离。保留2位小数。 Input 依次输入x1,y1和x2,y2分别表示平面上的两点. Output 输出这两点间的距离.保留2位小数. Sample Input 3。1 4.2 5.0 6.0 Sample Output 2。62 #include〈stdio.h> #include〈math。h〉 int main() { double x1,x2,y1,y2,l; scanf(”%lf%lf%lf%lf”,&x1,&y1,&x2,&y2); l=sqrt((x2—x1)*(x2-x1)+(y2—y1)*(y2—y1)); printf("%.2f\n”,l); return 0; } 1014 数值类型转换 Description 输入一个双精度数,输出它的整型值。 Input 输入一个双精度数 Output 输出该数的浮点数形式(保留2位小数)和它对应的整型形式。两数之间以空格间隔。 Sample Input 1。22 Sample Output 1。22 1 #include〈stdio.h> #include<math。h〉 int main() { double a; int b; scanf("%lf",&a); b=a; printf(”%.2f %d\n”,a,b); return 0; } 1015 两数交换 Description 从键盘输入两个整数x,y,然后交换它们的顺序并输出。 Input 输入两个整数x,y(以空格间隔). Output 首先输出x,y的初始值,然后换行输出交换后的两数。同一行内的数据以空格间隔。 Sample Input 12 23 Sample Output 12 23 23 12 #include<stdio。h〉 #include〈math。h> int main() { int a,b,t; scanf("%d%d”,&a,&b); printf("%d %d\n",a,b); t=a; a=b; b=t; printf(”%d %d\n",a,b); return 0; } 1016 两数相除 Description 输入两个浮点数x,y,计算x除以y的值。 Input 输入两个浮点数x,y. Output 输出运算结果的值,要求保留两位小数。 Sample Input 2 3 Sample Output 0。67 #include<stdio。h〉 #include〈math。h> int main() { double x,y,t; scanf(”%lf%lf”,&x,&y); t=x/y; printf(”%.2f\n”,t); return 0; } 1017 商和余数 Description 输入两个整数x,y,计算x除以y的商和余数。 Input 输入两个整数x,y。 Output 输出商和余数。以空格间隔. Sample Input 65 14 Sample Output 4 9 #include<stdio。h> #include<math.h〉 int main() { int x,y,a,b; scanf("%d%d”,&x,&y); a=x/y; b=x%y; printf(”%d %d\n",a,b); return 0; } 1018 植树问题 Description 某学校植树节开展植树活动,已知树苗有m株,参加植树的同学有n人(且m〉n),请问每位同学平均可以植树几株?还有几株剩余? Input 输入两个整数m和n,分别表示树苗的数量和学生的人数(m〉n)。 Output 输出每位同学平均植树的数量及剩余的树苗数量。 Sample Input 163 32 Sample Output 5 3 #include<stdio.h〉 #include〈math。h> int main() { int m,n,a,b; scanf("%d%d”,&m,&n); a=m/n; b=m%n; printf("%d %d\n",a,b); return 0; } 1019 美元和人民币 Description 美元越来越贬值了,手上留有太多的美元似乎不是件好事。赶紧算算你的那些美元还值多少人民币吧.假设美元与人民币的汇率是1美元兑换6.5573元人民币,编写程序输入美元的金额,输出能兑换的人民币金额。 Input 输入美元的金额。 Output 输出能兑换的人民币的数值。输出保留2位小数。 Sample Input 100 Sample Output 655。73 #include<stdio.h〉 #include〈math.h〉 int main() { double x,y; scanf(”%lf”,&x); y=x*6.5573; printf(”%。2f\n",y); return 0; } 1020 计算字符的ASCII码 Description 编写程序,从键盘输入一个字符,输出它的ASCII码值。 Input 输入一个字符. Output 输出字符对应的十进制ASCII码值。 Sample Input A Sample Output 65 #include<stdio。h〉 #include〈math。h〉 int main() { char x; scanf(”%c",&x); printf(”%d\n",x); return 0; } 1021 单个字母的小写变大写 Description 从键盘输入一个小写字母,将其转换成大写字母并输出。。 Input 输入一个小写字母.(假设输入的一定是小写字母) Output 输出其大写形式. Sample Input a Sample Output A #include〈stdio.h> #include〈math。h> int main() { char x,y; scanf(”%c”,&x); y=x-32; printf("%c\n”,y); return 0; } 1022 简单译码 Description 从键盘输入两个字母,对它们进行译码.如需要将"Hi”译成密码,规则是:用原字母后的第3个字母来代替,如H后面第3个字母是K,i后面第3个字母是l,因此“Hi”应译为“Kl”。 Input 从键盘输入两个字母,分别存放到变量ch1,ch2中. Output 按上述规则进行译码后输出,输出字母间不加间隔。 Sample Input Hi Sample Output Kl #include<stdio。h〉 int main() { char a,b; scanf(”%c%c",&a,&b); a=a+3; b=b+3; printf("%c%c\n",a,b); return 0; } 1023 字符加减运算 Description 编写一个程序,求两个字符之间的加减运算。 Input 连续输入三个字符,其中第一个输入运算符号(+或者—),后两个输入字符。如+ab表示计算字符a与字符b相加的结果。 Output 输出两字符ASCII码值相加减的结果。 Sample Input —ab Sample Output —1 #include〈stdio.h〉 int main() { int a,b,c; c=getchar(); a=getchar(); b=getchar(); if(c==’-’) { printf("%d\n”,a-b); } else if(c=='+’) { printf(”%d\n",a+b); } return 0; } 1024 求多项式值(1) Description 求y=2*x^2+x+8的值。其中,x为浮点数,从键盘输入,经过计算后,将y的值输出到屏幕上,保留1位小数。 Input 输入浮点数x的值. Output 计算并输出y的值,保留1位小数。 Sample Input 1 Sample Output 11。0 #include<stdio.h〉 #include<math.h> int main() { double x,y; scanf("%lf”,&x); y=2*pow(x,2)+x+8; printf("%.1f\n”,y); return 0; } 1025 求多项式值(2) Description 编程根据输入的x的值,结合数学函数计算多项式y=3*x^4-2*x^3—x^2+10的结果,结果保留1位小数。 Input 输入浮点数x的值。 Output 计算并输出多项式的结果,保留1位小数。 Sample Input 1 Sample Output 10。0 HINT 建议用double #include<stdio。h〉 #include<math.h〉 int main() { double x,y; scanf(”%lf",&x); y=3*pow(x,4)—2*pow(x,3)-pow(x,2)+10; printf("%。1f\n”,y); return 0; } 1026 居民电费 Description 某地居民用电是这样计算的,正常使用部分每度0。538元,阶梯部分每度0。03元。某用户家9月份正常部分用电量为x度,阶梯部分y度,请编程计算该用户9月份应该缴纳的电费。从键盘输入x和y,输出应缴纳电费,保留2位小数。 Input 输入x和y的值。 Output 输出应缴纳的电费,保留2位小数。 Sample Input 10 10 Sample Output 5.68 #include〈stdio。h〉 #include<math。h> int main() { double x,y,m; scanf(”%lf%lf”,&x,&y); m=x*0.538+y*0.03; printf(”%。2f\n",m); return 0; } 1027 存款利息(1) Description 输入存款金额money、存期year和年利率rate,根据公式计算存款到期时的利息interest(税前)。公式如下: interest=money(1+rate)^year—money Input 输入存款金额money、存期year和年利率rate。 Output 输出到期时的利息,保留2位小数。 Sample Input 1000 3 0.0415 Sample Output 129。74 HINT 建议用double #include 〈stdio.h> #include 〈math。h〉 int main() { double money,year,rate,interest; scanf(”%lf%lf%lf”,&money,&year,&rate); interest=money*pow(1+rate,year)—money; printf("%。2f\n”,interest); return 0; } 1028存款利息(2) Description 输入人民币存款年利率I和存款总额S,计算满一年后本息合计并输出。 Input 输入年利率和存款总数。 Output 计算满一年后本息合计,保留两位小数。 Sample Input 0.03 100000 Sample Output 103000.00 #include〈stdio。h〉 #include〈math.h〉 int main() { double I,S; scanf(”%lf%lf",&I,&S); S=S*(1+I); printf(”%.2f\n”,S); return 0; } 1029 三位数的数位分离 Description 从键盘输入一个任意的3位整数,分别求出其个位、十位和百位上的数字。 Input 输入任意的一个三位整数 Output 依次输出个位、十位、百位上的数字。以空格间隔。 Sample Input 367 Sample Output 7 6 3 #include<stdio.h> #include〈math.h〉 int main() { int a,b,c,d; scanf("%d”,&a); b=a%10; c=(a/10)%10; d=a/100; printf("%d %d %d\n”,b,c,d); return 0; } 1030 棋盘上的麦粒 Description 舍罕是古印度的国王,据说他十分好玩。宰相依达尔为了讨好国王,发明了现今的国际象棋献给国王.国王非常喜欢,决定嘉奖宰相,许诺满足宰相提出的任何要求。宰相指着棋盘要求:“陛下,请您按棋盘的格子赏赐我一点小麦吧,第一个小格赏我1粒麦子,第二个小格赏我2粒,第三个小格赏4粒,以后每一小格都比前一个小格赏的麦子增加一倍,只要把棋盘上全部64个小格按这样的方法得到的麦子都赏赐给我,我就心满意足了"。国王听了宰相这个“小小"的要求,马上同意了。 结果在给宰相麦子时,国王发现他要付出的比自己想象的要多得多,于是进行了计算,结果令他大惊失色。问题是:舍罕王的计算结果是多少粒麦子。 Input 输入一个整数n代表棋盘的格子,该数字大于1且小于等于64。如输入2,则表示有2个格子,第一个格子放1粒,第二个格子放2粒,则2个格子一共需要3粒麦子. Output 输出n个格子需要的麦粒数。 Sample Input 64 Sample Output 18446744073709551615 HINT 如果麦粒数sum如下定义:        unsigned __int64 sum;   则计算完成后其输出形式为:        printf(”%I64u\n”, sum); #include〈stdio。h> #include<math.h〉 int main() { int i,m,a; unsigned __int64 s=0; scanf("%d”,&m); for(i=0;i<m;i++) { a=pow(2,i); s+=a; } printf("%I64u\n”,s); return 0; } 1031 数据逆序显示 Description 输入一个任意长度的正整数,将该数逆序输出。如,输入正数237,则逆序显示的结果为732。如输入230,则逆序显示的结果为32。 Input 输入一个正整数 Output 该数的逆序显示结果(数字最前面的0不显示,如340反转后。要求输出为43,而不是043) Sample Input 123 Sample Output 321 #include<stdio.h> #include〈math.h〉 int main() { int a,b; scanf(”%d”,&a); if(a%10==0) a=a/10; while(a>0) { b=a%10; printf("%d”,b); a=a/10; } printf(”\n”); return 0; } 1032 各位数字求和 Description 编写一个程序,输入一个正整数,然后计算组成该数的各位数字的和。如,输入正数237,其各位的数字分别为2,3,7,加起来的和应该为2+3+7=12. Input 输入一个正整数。 Output 输出各位数字的和 Sample Input 1234 Sample Output 10 #include〈stdio.h> #include〈math。h> int main() { int a,b,c=0; scanf(”%d”,&a); if(a%10==0) a=a/10; while(a〉0) { b=a%10; c+=b; a=a/10; } printf(”%d\n",c); return 0; } 1033 计算最高位数字 Description 输入一个任意长度的正整数,求出其最高位数字。如,输入237,则最高位数字为2。 Input 输入一个正整数。 Output 输出最高位数字 Sample Input 4756 Sample Output 4 #include<stdio。h〉 #include<math。h〉 int main() { int a; scanf("%d”,&a); if(a%10==0) a=a/10; while(!(a〉=0&&a<=9)) { a=a/10; } printf(”%d\n",a); return 0; } 1034 任意长度整数的位数 Description 输入一个任意长度的正整数,求出它是几位数。 Input 输入一个任意长度的正整数. Output 输出位数 Sample Input 0 Sample Output 1 #include<stdio.h> #include〈math.h> int main() { int a,i=1; scanf(”%d",&a); while(!(a〉=0&&a<=9)) { a=a/10; i+=1; } printf(”%d\n”,i); return 0; } 1035 求整数的绝对值 Description 输入一个整数,输出它的绝对值 Input 输入一个整数n Output 输出该数的绝对值 Sample Input -2 Sample Output 2 #include〈stdio。h> #include<math。h〉 int main() { int n,a; scanf(”%d",&n); a=fabs(n); printf("%d\n”,a); return 0; } 1036 符号属性判断 Description 从键盘输入任意数x,根据其符号属性,输出对应的y值。 y=—1  (x〈0) y=0   (x=0) y=1   (x〉0) Input 输入x. Output 输出y的值 Sample Input 10 Sample Output 1 HINT x取浮点类型 #include<stdio.h> #include<math。h> int main() { double x; int y; scanf("%lf”,&x); if(x〈0) y=-1; else if(x==0) y=0; else y=1; printf(”%d\n",y); return 0; } 1037 正数负数 Description 输入一个整数,判断该数是正数还是负数。 Input 输入整数n. Output 如果该数是正数就输出“positive",负数就输出“negative”(输出不含双引号)。  Sample Input 8 Sample Output positive #include<stdio.h〉 #include<math.h〉 int main() { int n; scanf(”%d",&n); if(n>0) printf(”positive\n”); else if(n<0) printf(”negative\n”); return 0; } 1038 奇数偶数 Description 输入一个整数,判断该数是奇数还是偶数。 Input 输入整数n。 Output 如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。 Sample Input 8 Sample Output even #include<stdio.h> #include〈math。h> int main() { int n; scanf(”%d",&n); if(n%2==0) printf(”even\n"); else if(n%2==1) printf("odd\n"); return 0; } 1039 奇数和与偶数和(1) Description 输入正整数n,计算1~n中的奇数和以及偶数和并输出。 Input 输入一个正整数n。 Output 依次输出奇数和以及偶数和,各占一行。 Sample Input 100 Sample Output 2500 2550 #include<stdio。h〉 #include〈math。h〉 int main() { int n,a=0,b=0,i=1; scanf("%d”,&n); while(i〈=n) { if(i%2==1) a+=i; else b+=i; i++; } printf("%d\n%d\n",a,b); return 0; } 1040 奇数和与偶数和(2) Description 输入正整数n,然后依次输入n个正整数,计算其中的奇数和与偶数和并输出. Input 先输入一个正整数n,然后依次输入n个正整数. Output 依次输出其中的奇数和以及偶数和,各占一行。 Sample Input 5 1 8 9 6 4 Sample Output 10 18 #include<stdio。h〉 #include〈math。h> int main() { int n,m,a=0,b=0,i=1; scanf(”%d”,&n); while(i<=n) { scanf(”%d
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服