宁波大学OJ系统前105道C语言题目及答案精讲

更新时间:2024-01-27 08:08:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C++资料复习

1000 整数输入输出练习

Description

从键盘输入任意两个整数,再向屏幕输出这两个数据。

Input

输入两个整数。

Output

输出这两个整数。以空格间隔。

Sample Input

7 -9

Sample Output

7 -9

HINT

本题的样例代码如下: #include int main() {

int a,b;

scanf(\ printf(\return 0; }

C++资料复习

1001 字符输入输出练习1

Description

从键盘任意输入一个字符,再输出这个字符。

Input

任意输入一个字符。

Output

输出该字符。

Sample Input

#

Sample Output

#

#include int main() { }

char a;

scanf(\printf(\return 0;

C++资料复习

1002 单组A+B

Description

从键盘输入任意两个整数a和b,计算并输出a+b的值。

Input

从键盘输入两个整数a和b。

Output

输出这两个数的和

Sample Input

1 2

Sample Output

3

#include int main() { int a,b,c; }

scanf(\c=a+b; printf(\return 0;

C++资料复习

1003 多组A+B(1)

Description

分别计算多组a+b的值。

Input

输入包含多组测试数据。每行包含一组整数a,b。当输入为0 0 时,测试结束,此时的结果不输出。

Output

对于每一对整数a,b,输出它们的和,并且每行输出一个结果。

Sample Input

1 5 10 20 0 0

#include int main() { }

int a,b,y;

scanf(\while(a!=0||b!=0) { y=a+b;

printf(\

scanf(\

}

return 0;

C++资料复习

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 int main() { i++; }

int a,b,y,i=1,N; scanf(\while(i<=N) {

scanf(\

y=a+b;

printf(\

}

return 0;

C++资料复习

1005 计算平均分(1)

Description

输入一个学生的3门课成绩a,b,c,求出该学生的平均分。

Input

输入三个成绩a,b,c。

Output

输出平均值,要求保留1位小数。

Sample Input

60 70 80

Sample Output

70.0

#include int main() { double a,b,c,d; }

scanf(\d=(a+b+c)/3.0; printf(\return 0;

C++资料复习

1006 计算月收入

Description

某小型外贸公司员工月收入的计算方法为:月基本工资加当月提成。从键盘输入某员工某月的基本工资和该月的提成,计算并输出该员工的月收入。

Input

输入两个数分别代表月基本工资和月提成。

Output

计算并输出月收入(保留2位小数)。

Sample Input

3100 1200

Sample Output

4300.00

#include int main() { }

double a,b,c;

scanf(\c=a+b;

printf(\return 0;

C++资料复习

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 int main() { }

double c,f; scanf(\c=5*(f-32)/9;

printf(\return 0;

C++资料复习

1008 求圆周长和圆面积

Description

从键盘输入一个圆的半径r,计算并输出圆周长和圆面积。

Input

输入一个圆半径r。

Output

按序输出圆周长和圆面积,结果保留两位小数。

Sample Input

41

Sample Output

257.48 5278.34

HINT

圆周率使用3.14

#include #define PI 3.14 int main() { }

double r,c,s; scanf(\c=2*PI*r;

s=PI*r*r;

printf(\return 0;

C++资料复习

1009 求圆柱体表面积

Description

输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上,保留2位小数。

Input

输入圆柱体的底面半径r和高h。

Output

计算圆柱体的表面积并输出到屏幕上,保留2位小数。

Sample Input

42.1 71.6

Sample Output

30060.92

HINT

圆周率使用3.14

#include #define PI 3.14 int main() { }

double r,h,s;

scanf(\s=2*PI*r*r+2*PI*r*h; printf(\return 0;

C++资料复习

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 #define PI 3.14 int main() { }

double r,v; scanf(\v=(4/3.0)*PI*r*r*r; printf(\return 0;

C++资料复习

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 #include int main() { }

double a,b,c,p,s;

scanf(\p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(\return 0;

C++资料复习

1012 判断三角形

Description

输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积,否则输出Error。

Input

输入三个数a,b,c(浮点类型)。

Output

如果这三条边能构成一个三角形就计算并输出这个三角形的面积,保留2位小数。如果不能构成三角形就输出Error。

Sample Input

3 1 4

Sample Output

Error

#include #include int main() { double a,b,c,p,s; }

scanf(\if(a+b>c&&fabs(a-b)

s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(\} else

printf(\return 0;

C++资料复习

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 #include int main() { }

double x1,x2,y1,y2,l;

scanf(\l=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); printf(\return 0;

C++资料复习

1014 数值类型转换

Description

输入一个双精度数,输出它的整型值。

Input

输入一个双精度数

Output

输出该数的浮点数形式(保留2位小数)和它对应的整型形式。两数之间以空格间隔。

Sample Input

1.22

Sample Output

1.22 1

#include #include int main() { }

double a; int b;

scanf(\b=a;

printf(\return 0;

C++资料复习

1015 两数交换

Description

从键盘输入两个整数x,y,然后交换它们的顺序并输出。

Input

输入两个整数x,y(以空格间隔)。

Output

首先输出x,y的初始值,然后换行输出交换后的两数。同一行内的数据以空格间隔。

Sample Input

12 23

Sample Output

12 23 23 12

#include #include int main() { }

int a,b,t;

scanf(\printf(\t=a;

a=b; b=t;

printf(\return 0;

C++资料复习

1016 两数相除

Description

输入两个浮点数x,y,计算x除以y的值。

Input

输入两个浮点数x,y。

Output

输出运算结果的值,要求保留两位小数。

Sample Input

2 3

Sample Output

0.67

#include #include int main() { }

double x,y,t;

scanf(\t=x/y;

printf(\return 0;

C++资料复习

1017 商和余数

Description

输入两个整数x,y,计算x除以y的商和余数。

Input

输入两个整数x,y。

Output

输出商和余数。以空格间隔。

Sample Input

65 14

Sample Output

4 9

#include #include int main() { }

int x,y,a,b;

scanf(\a=x/y;

b=x%y;

printf(\return 0;

C++资料复习

1018 植树问题

Description

某学校植树节开展植树活动,已知树苗有m株,参加植树的同学有n人(且m>n),请问每位同学平均可以植树几株?还有几株剩余?

Input

输入两个整数m和n,分别表示树苗的数量和学生的人数(m>n)。

Output

输出每位同学平均植树的数量及剩余的树苗数量。

Sample Input

163 32

Sample Output

5 3

#include #include int main() {

int m,n,a,b;

scanf(\a=m/n; b=m%n;

printf(\return 0; }

C++资料复习

1019 美元和人民币

Description

美元越来越贬值了,手上留有太多的美元似乎不是件好事。赶紧算算你的那些美元还值多少人民币吧。假设美元与人民币的汇率是1美元兑换6.5573元人民币,编写程序输入美元的金额,输出能兑换的人民币金额。

Input

输入美元的金额。

Output

输出能兑换的人民币的数值。输出保留2位小数。

Sample Input

100

Sample Output

655.73

#include #include int main() { double x,y; }

scanf(\y=x*6.5573; printf(\return 0;

C++资料复习

1020 计算字符的ASCII码

Description

编写程序,从键盘输入一个字符,输出它的ASCII码值。

Input

输入一个字符。

Output

输出字符对应的十进制ASCII码值。

Sample Input

A

Sample Output

65

#include #include int main() { char x; }

scanf(\printf(\return 0;

C++资料复习

1021 单个字母的小写变大写

Description

从键盘输入一个小写字母,将其转换成大写字母并输出。。

Input

输入一个小写字母。(假设输入的一定是小写字母)

Output

输出其大写形式。

Sample Input

a

Sample Output

A

#include #include int main() { }

char x,y;

scanf(\y=x-32; printf(\return 0;

C++资料复习

1022 简单译码

Description

从键盘输入两个字母,对它们进行译码。如需要将”Hi”译成密码,规则是:用原字母后的第3个字母来代替,如H后面第3个字母是K,i后面第3个字母是l,因此“Hi”应译为“Kl”。

Input

从键盘输入两个字母,分别存放到变量ch1,ch2中。

Output

按上述规则进行译码后输出,输出字母间不加间隔。

Sample Input

Hi

Sample Output

Kl

#include int main() {

char a,b;

scanf(\a=a+3; b=b+3;

printf(\return 0; }

C++资料复习

1023 字符加减运算

Description

编写一个程序,求两个字符之间的加减运算。

Input

连续输入三个字符,其中第一个输入运算符号(+或者-),后两个输入字符。如+ab表示计算字符a与字符b相加的结果。

Output

输出两字符ASCII码值相加减的结果。

Sample Input

-ab

Sample Output

-1

#include int main() {

int a,b,c; c=getchar(); a=getchar(); b=getchar(); if(c=='-')

{

printf(\}

else if(c=='+') {

printf(\} return 0; }

C++资料复习

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 #include int main() {

double x,y; scanf(\y=2*pow(x,2)+x+8; printf(\return 0; }

C++资料复习

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 #include int main() {

double x,y;

scanf(\

y=3*pow(x,4)-2*pow(x,3)-pow(x,2)+10; printf(\return 0; }

C++资料复习

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 #include int main() {

double x,y,m;

scanf(\m=x*0.538+y*0.03; printf(\return 0; }

C++资料复习

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 #include int main()

{

double money,year,rate,interest;

scanf(\interest=money*pow(1+rate,year)-money; printf(\ return 0; }

C++资料复习

1028存款利息(2)

Description

输入人民币存款年利率I和存款总额S,计算满一年后本息合计并输出。

Input

输入年利率和存款总数。

Output

计算满一年后本息合计,保留两位小数。

Sample Input

0.03 100000

Sample Output

103000.00

#include #include int main() {

double I,S;

scanf(\S=S*(1+I);

printf(\return 0; }

C++资料复习

1029 三位数的数位分离

Description

从键盘输入一个任意的3位整数,分别求出其个位、十位和百位上的数字。

Input

输入任意的一个三位整数

Output

依次输出个位、十位、百位上的数字。以空格间隔。

Sample Input

367

Sample Output

7 6 3

#include #include int main() {

int a,b,c,d;

scanf(\b=a;

c=(a/10); d=a/100;

printf(\return 0; }

C++资料复习

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(\

C++资料复习

#include #include int main() { }

int i,m,a;

unsigned __int64 s=0; scanf(\for(i=0;i

a=pow(2,i); s+=a; }

printf(\return 0;

C++资料复习

1031 数据逆序显示

Description

输入一个任意长度的正整数,将该数逆序输出。如,输入正数237,则逆序显示的结果为732。如输入230,则逆序显示的结果为32。

Input

输入一个正整数

Output

该数的逆序显示结果(数字最前面的0不显示,如340反转后。要求输出为43,而不是043)

Sample Input

123

Sample Output

321

#include #include int main() { }

int a,b;

scanf(\if(a==0) a=a/10; while(a>0) { }

b=a; printf(\a=a/10;

printf(\return 0;

C++资料复习

1032 各位数字求和

Description

编写一个程序,输入一个正整数,然后计算组成该数的各位数字的和。如,输入正数237,其各位的数字分别为2,3,7,加起来的和应该为2+3+7=12。

Input

输入一个正整数。

Output

输出各位数字的和

Sample Input

1234

Sample Output

10

#include #include int main() { int a,b,c=0; }

scanf(\if(a==0) a=a/10; while(a>0) {

b=a; c+=b;

a=a/10; }

printf(\return 0;

C++资料复习

1033 计算最高位数字

Description

输入一个任意长度的正整数,求出其最高位数字。如,输入237,则最高位数字为2。

Input

输入一个正整数。

Output

输出最高位数字

Sample Input

4756

Sample Output

4

#include #include int main() { int a; }

scanf(\if(a==0)

a=a/10;

while(!(a>=0&&a<=9)) { }

a=a/10;

printf(\return 0;

C++资料复习

1034 任意长度整数的位数

Description

输入一个任意长度的正整数,求出它是几位数。

Input

输入一个任意长度的正整数。

Output

输出位数

Sample Input

0

Sample Output

1

#include #include int main() { }

int a,i=1;

scanf(\while(!(a>=0&&a<=9)) { a=a/10; }

i+=1;

printf(\return 0;

C++资料复习

1035 求整数的绝对值

Description

输入一个整数,输出它的绝对值

Input

输入一个整数n

Output

输出该数的绝对值

Sample Input

-2

Sample Output

2

#include #include int main() {

int n,a;

scanf(\a=fabs(n);

printf(\return 0; }

C++资料复习

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 #include int main() {

double x; int y;

scanf(\if(x<0) y=-1;

else if(x==0) y=0; else y=1;

printf(\return 0; }

C++资料复习

1037 正数负数

Description

输入一个整数,判断该数是正数还是负数。

Input

输入整数n。

Output

如果该数是正数就输出“positive”,负数就输出“negative”(输出不含双引号)。

Sample Input

8

Sample Output

positive

#include #include int main() {

int n;

scanf(\if(n>0)

printf(\else if(n<0) printf(\return 0; }

C++资料复习

1038 奇数偶数

Description

输入一个整数,判断该数是奇数还是偶数。

Input

输入整数n。

Output

如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。

Sample Input

8

Sample Output

even

#include #include int main() {

int n;

scanf(\if(n%2==0) printf(\else if(n%2==1) printf(\return 0; }

C++资料复习

1044 第几象限

Description

从键盘输入2个整数x、y值表示一个坐标点,判断该坐标点处于第几象限,并输出相应的结果。假设坐标点不会处于x轴和y轴上。

Input

输入x,y值表示一个坐标点。坐标点不会处于x轴和y轴上。

Output

输出对应的象限,用数字1,2,3,4分别对应四个象限。

Sample Input

1 1

Sample Output

1

#include #include int main() { }

double x;

double y;

scanf(\if(x>0&&y>0) printf(\else if(x<0&&y>0) printf(\else if(x<0&&y<0) printf(\else

printf(\

return 0;

C++资料复习

1045 圆内圆外

Description

有一个半径为10的圆,圆心坐标为(0,0),从键盘输入任意点的坐标(a,b),判断该点在圆内,在圆外,还是恰巧在圆周上。

Input

输入a,b(a,b均为整数)值表示一个坐标点。

Output

输出对应的信息。in表示在圆内,out表示在圆外,on表示在圆周上。

Sample Input

1 1

Sample Output

in

#include #include int main() {

int a,b;

double c; scanf(\c=sqrt(a*a+b*b); if(c>10)

printf(\else if(c==10) printf(\else printf(\return 0; }

C++资料复习

1046 判断英文字母

Description

编写一个程序,判断输入的一个字符是否是英文字母。

Input

任意输入一个字符。

Output

输出该字符是否属于英文字母的信息(大小写都可以),属于则输出YES,不属于则输出NO。

Sample Input

2

Sample Output

NO

#include #include int main() {

char a;

scanf(\

if(a>='a'&&a<='z'||a>='A'&&a<='Z') printf(\else

printf(\return 0; }

C++资料复习

1047 单个字母大小写互换

Description

从键盘输入一个英文字母,要求编写一个程序,实现字母的大小写转换。如果输入的是小写字母,则输出其大写形式。如果输入的是大写字母,则输出其小写形式。若是其他字符则原样输出。如输入A,则输出a;若输入#,则依然输出#。

Input

任意输入一个英文字母。

Output

输出对应字符的大(小)写字符,(如A对应于a)。

Sample Input

b

Sample Output

B

#include int main() { char x,y; }

scanf(\if(x>='A'&&x<='Z') { y=x+32; printf(\}

else if(x>='a'&&x<='z') { y=x-32; printf(\} else {

y=x;

printf(\

}

return 0;

C++资料复习

1048 ASCII码对应的英文字母

Description

从键盘输入一个代表ASCII码值的数字(<127),若该数字对应的字符是英文字母,则输出其字母的形式,否则输出数字本身。

Input

输入一个数字(小于127)。

Output

输出该ASCII值对应的英文字母。

Sample Input

98

Sample Output

b

#include #include int main() { int a;

scanf(\

if(a>='a'&&a<='z'||a>='A'&&a<='Z') printf(\else

printf(\return 0; }

本文来源:https://www.bwwdw.com/article/93sw.html

Top