您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页宁波大学OJ系统C语言题目及答案精讲

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

来源:小侦探旅游网
C++资料复习

1000 整数输入输出练习

Description

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

Input

输入两个整数。

Output

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

Sample Input

7 -9

Sample Output

7 -9

HINT

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

int a,b;

scanf(\"%d%d\ printf(\"%d %d\\n\return 0; }

C++资料复习

1001 字符输入输出练习1

Description

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

Input

任意输入一个字符。

Output

输出该字符。

Sample Input

#

Sample Output

#

#include int main() { char a; scanf(\"%c\ printf(\"%c\\n\ 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(\"%d%d\ c=a+b; printf(\"%d\\n\ 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(\"%d%d\ while(a!=0||b!=0) { y=a+b; printf(\"%d\\n\ scanf(\"%d%d\ } 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() { int a,b,y,i=1,N; scanf(\"%d\ while(i<=N) { scanf(\"%d%d\ y=a+b; printf(\"%d\\n\i++; } 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(\"%lf%lf%lf\ d=(a+b+c)/3.0; printf(\"%.1f\\n\ return 0; }

06 计算月收入

Description

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

Input

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

C++资料复习

Output

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

Sample Input

3100 1200

Sample Output

4300.00

#include int main() { double a,b,c; scanf(\"%lf%lf\ c=a+b; printf(\"%.2f\\n\ return 0; }

1007 温度转换

Description

2011夏季,热浪席卷了全球的大部分地方。网上报道美国局部地区的温度达到了100华氏度,而我们国内的温度多在38摄氏度左右。那么38摄氏度和100华氏度到底哪个更热一些呢?请你帮忙编一个程序来解决这一问题。从键盘输入一个华氏温度,求出其对应的摄氏温度。计算公式如下: c=5*(f-32)/9

c表示摄氏温度,f表示华氏温度。

Input

输入一个华氏温度值。

Output

输出对应的摄氏温度值,结果要求保留2位小数。

Sample Input

C++资料复习

100

Sample Output

37.78

#include int main() { double c,f; scanf(\"%lf\ c=5*(f-32)/9; printf(\"%.2f\\n\ return 0; }

1008 求圆周长和圆面积

Description

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

Input

输入一个圆半径r。

Output

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

Sample Input

41

Sample Output

257.48 5278.34

C++资料复习

HINT

圆周率使用3.14

#include #define PI 3.14 int main() { double r,c,s; scanf(\"%lf\ c=2*PI*r; s=PI*r*r; printf(\"%.2f %.2f\\n\ return 0; }

1009 求圆柱体表面积

Description

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

Input

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

Output

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

Sample Input

42.1 71.6

Sample Output

C++资料复习

30060.92

HINT

圆周率使用3.14

#include #define PI 3.14 int main() { double r,h,s; scanf(\"%lf%lf\ s=2*PI*r*r+2*PI*r*h; printf(\"%.2f\\n\ return 0; }

1010 计算球体的体积

Description

编写程序计算球体的体积。参考公式v=(4/3)*PI*r*r*r,其中PI表示圆周率。球体的半径r的值由键盘输入,保留2位小数。

Input

输入球体半径r。

Output

计算球体体积并输出到屏幕上,保留2位小数。

Sample Input

96.2

Sample Output

C++资料复习

3727293.58

HINT

圆周率使用3.14

#include #define PI 3.14 int main() { double r,v; scanf(\"%lf\ v=(4/3.0)*PI*r*r*r; printf(\"%.2f\\n\ 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

C++资料复习

Sample Output

6.00

#include #include int main() { double a,b,c,p,s; scanf(\"%lf%lf%lf\ p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(\"%.2f\\n\ return 0; }

1012 判断三角形

Description

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

Input

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

Output

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

Sample Input

3 1 4

C++资料复习

Sample Output

Error

#include #include int main() { double a,b,c,p,s; scanf(\"%lf%lf%lf\ if(a+b>c&&fabs(a-b)1013 两点的距离

Description

从键盘输入数据表示平面上任意两点。计算并输出这两点之间的距离。保留2位小数。

Input

依次输入x1,y1和x2,y2分别表示平面上的两点。

Output

输出这两点间的距离。保留2位小数。

Sample Input

C++资料复习

3.1 4.2 5.0 6.0

Sample Output

2.62

#include #include int main() { double x1,x2,y1,y2,l; scanf(\"%lf%lf%lf%lf\ l=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); printf(\"%.2f\\n\ return 0; }

1014 数值类型转换

Description

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

Input

输入一个双精度数

Output

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

Sample Input

C++资料复习

1.22

Sample Output

1.22 1

#include #include int main() { double a; int b; scanf(\"%lf\ b=a; printf(\"%.2f %d\\n\ return 0; }

1015 两数交换

Description

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

Input

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

Output

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

Sample Input

12 23

C++资料复习

Sample Output

12 23 23 12

#include #include int main() { int a,b,t; scanf(\"%d%d\ printf(\"%d %d\\n\ t=a; a=b; b=t; printf(\"%d %d\\n\ return 0; }

1016 两数相除

Description

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

Input

输入两个浮点数x,y。

Output

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

Sample Input

2 3

C++资料复习

Sample Output

0.67

#include #include int main() { double x,y,t; scanf(\"%lf%lf\ t=x/y; printf(\"%.2f\\n\ return 0; }

1017 商和余数

Description

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

Input

输入两个整数x,y。

Output

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

Sample Input

65 14

C++资料复习

Sample Output

4 9

#include #include int main() { int x,y,a,b; scanf(\"%d%d\ a=x/y; b=x%y; printf(\"%d %d\\n\ return 0; }

1018 植树问题

Description

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

Input

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

Output

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

Sample Input

C++资料复习

163 32

Sample Output

5 3

#include #include int main() {

int m,n,a,b;

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

printf(\"%d %d\\n\return 0; }

1019 美元和人民币

Description

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

Input

输入美元的金额。

Output

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

C++资料复习

Sample Input

100

Sample Output

655.73

#include #include int main() { double x,y; scanf(\"%lf\ y=x*6.5573; printf(\"%.2f\\n\ return 0; }

1020 计算字符的ASCII码

Description

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

Input

输入一个字符。

Output

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

Sample Input

C++资料复习

A

Sample Output

65

#include #include int main() { char x; scanf(\"%c\ printf(\"%d\\n\ return 0; }

1021 单个字母的小写变大写

Description

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

Input

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

Output

输出其大写形式。

Sample Input

C++资料复习

a

Sample Output

A

#include #include int main() { char x,y; scanf(\"%c\ y=x-32; printf(\"%c\\n\ return 0; }

1022 简单译码

Description

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

Input

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

Output

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

C++资料复习

Sample Input

Hi

Sample Output

Kl

#include int main() {

char a,b;

scanf(\"%c%c\a=a+3; b=b+3;

printf(\"%c%c\\n\return 0; }

1023 字符加减运算

Description

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

Input

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

Output

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

C++资料复习

Sample Input

-ab

Sample Output

-1

#include int main() {

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

printf(\"%d\\n\}

else if(c=='+') {

printf(\"%d\\n\}

return 0; }

1024 求多项式值(1)

Description

求y=2*x^2+x+8的值。其中,x为浮点数,从键盘输入,经过计算后,将y的值输出到屏幕上,保留1位小数。

Input

输入浮点数x的值。

Output

C++资料复习

计算并输出y的值,保留1位小数。

Sample Input

1

Sample Output

11.0

#include #include int main() {

double x,y;

scanf(\"%lf\y=2*pow(x,2)+x+8; printf(\"%.1f\\n\return 0; }

1025 求多项式值(2)

Description

编程根据输入的x的值,结合数学函数计算多项式y=3*x^4-2*x^3-x^2+10的结果,结果保留1位小数。

Input

输入浮点数x的值。

Output

C++资料复习

计算并输出多项式的结果,保留1位小数。

Sample Input

1

Sample Output

10.0

HINT

建议用double

#include #include int main() {

double x,y;

scanf(\"%lf\

y=3*pow(x,4)-2*pow(x,3)-pow(x,2)+10; printf(\"%.1f\\n\return 0; }

1026 居民电费

Description

某地居民用电是这样计算的,正常使用部分每度0.538元,阶梯部分每度0.03元。某用户家9月份正常部分用电量为x度,阶梯部分y度,请编程计算该用户9月份应该缴纳的电费。从键盘输入x和y,输出应缴纳电费,保留2位小数。

Input

输入x和y的值。

C++资料复习

Output

输出应缴纳的电费,保留2位小数。

Sample Input

10 10

Sample Output

5.68

#include #include int main() {

double x,y,m;

scanf(\"%lf%lf\m=x*0.538+y*0.03; printf(\"%.2f\\n\return 0; }

1027 存款利息(1)

Description

输入存款金额money、存期year和年利率rate,根据公式计算存款到期时的利息interest(税前)。公式如下: interest=money(1+rate)^year-money

Input

输入存款金额money、存期year和年利率rate。

C++资料复习

Output

输出到期时的利息,保留2位小数。

Sample Input

1000 3 0.0415

Sample Output

129.74

HINT

建议用double

#include #include int main() {

double money,year,rate,interest;

scanf(\"%lf%lf%lf\interest=money*pow(1+rate,year)-money; printf(\"%.2f\\n\ return 0; }

1028存款利息(2)

Description

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

Input

输入年利率和存款总数。

C++资料复习

Output

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

Sample Input

0.03 100000

Sample Output

103000.00

#include #include int main() {

double I,S;

scanf(\"%lf%lf\S=S*(1+I);

printf(\"%.2f\\n\return 0; }

1029 三位数的数位分离

Description

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

Input

输入任意的一个三位整数

C++资料复习

Output

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

Sample Input

367

Sample Output

7 6 3

#include #include int main() {

int a,b,c,d;

scanf(\"%d\b=a%10;

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

printf(\"%d %d %d\\n\return 0; }

1030 棋盘上的麦粒

Description

舍罕是古印度的国王,据说他十分好玩。宰相依达尔为了讨好国王,发明了现今的国际象棋献给国王。国王非常喜欢,决定嘉奖宰相,许诺满足宰相提出的任何要求。宰相指着棋盘要求:“陛下,请您按棋盘的格子赏赐我一点小麦吧,第一个小格赏我1粒麦子,第二个小格赏我2粒,第三个小格赏4粒,以后每一小格都比前一个小

C++资料复习

格赏的麦子增加一倍,只要把棋盘上全部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\

#include #include int main() { int i,m,a; unsigned __int64 s=0; scanf(\"%d\ for(i=0;iC++资料复习

}

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

printf(\"%I64u\\n\return 0;

1031 数据逆序显示

Description

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

Input

C++资料复习

输入一个正整数

Output

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

Sample Input

123

Sample Output

321

#include #include int main() { int a,b; scanf(\"%d\ if(a%10==0) a=a/10; while(a>0) { b=a%10; printf(\"%d\ a=a/10; } printf(\"\\n\"); return 0; }

1032 各位数字求和

Description

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

Input

C++资料复习

输入一个正整数。

Output

输出各位数字的和

Sample Input

1234

Sample Output

10

#include #include int main() { int a,b,c=0; scanf(\"%d\ if(a%10==0) a=a/10; while(a>0) { b=a%10; c+=b; a=a/10; } printf(\"%d\\n\ return 0; }

1033 计算最高位数字

Description

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

Input

C++资料复习

输入一个正整数。

Output

输出最高位数字

Sample Input

4756

Sample Output

4

#include #include int main() { int a; scanf(\"%d\ if(a%10==0) a=a/10; while(!(a>=0&&a<=9)) { a=a/10; } printf(\"%d\\n\ return 0; }

1034 任意长度整数的位数

Description

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

Input

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

C++资料复习

Output

输出位数

Sample Input

0

Sample Output

1

#include #include int main() { int a,i=1; scanf(\"%d\ while(!(a>=0&&a<=9)) { a=a/10; i+=1; } printf(\"%d\\n\ return 0; }

1035 求整数的绝对值

Description

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

Input

输入一个整数n

C++资料复习

Output

输出该数的绝对值

Sample Input

-2

Sample Output

2

#include #include int main() {

int n,a;

scanf(\"%d\a=fabs(n);

printf(\"%d\\n\return 0; }

1036 符号属性判断

Description

从键盘输入任意数x,根据其符号属性,输出对应的y值。 y=-1 (x<0) y=0 (x=0) y=1 (x>0)

C++资料复习

Input

输入x。

Output

输出y的值

Sample Input

10

Sample Output

1

HINT

x取浮点类型

#include #include int main() {

double x; int y;

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

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

printf(\"%d\\n\return 0; }

1037 正数负数

Description

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

Input

输入整数n。

C++资料复习

Output

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

Sample Input

8

Sample Output

positive

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

scanf(\"%d\if(n>0)

printf(\"positive\\n\"); else if(n<0)

printf(\"negative\\n\"); return 0; }

1038 奇数偶数

Description

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

Input

输入整数n。

C++资料复习

Output

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

Sample Input

8

Sample Output

even

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

scanf(\"%d\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。

C++资料复习

Output

依次输出奇数和以及偶数和,各占一行。

Sample Input

100

Sample Output

2500 2550

#include #include int main() { int n,a=0,b=0,i=1; scanf(\"%d\ while(i<=n) { if(i%2==1) a+=i; else b+=i; i++; } printf(\"%d\\n%d\\n\ return 0; }

1040 奇数和与偶数和(2)

Description

输入正整数n,然后依次输入n个正整数,计算其中的奇数和与偶数和并输出。

Input

C++资料复习

先输入一个正整数n,然后依次输入n个正整数。

Output

依次输出其中的奇数和以及偶数和,各占一行。

Sample Input

5 1 8 9 6 4

Sample Output

10 18

#include #include int main() { int n,m,a=0,b=0,i=1; scanf(\"%d\ while(i<=n) { scanf(\"%d\ if(m%2==1) a+=m; else b+=m; i++; } printf(\"%d\\n%d\\n\ return 0; }

1041 分段函数(1)

Description

有一函数: y=x (x<1)

C++资料复习

y=3x-1 (1<=x<10) y=4x-2 (x>=10)

编写程序,输入x,输出y的值。

Input

输入一个任意整数x。

Output

输出函数y的值。

Sample Input

3

Sample Output

8

#include #include int main() {

int x,y;

scanf(\"%d\if(x<1) y=x;

else if(x>=1&&x<10) y=3*x-1; else y=4*x-2;

printf(\"%d\\n\return 0; }

1042 分段函数(2)

Description

输入整数x,计算并输出下面分段函数的值(保留两位小数)。

C++资料复习

y=x^2-2 (x>=0) y=sqrt(5-x) (x<0)

Input

输入一个整数x。

Output

输出函数的值。保留2位小数。

Sample Input

3

Sample Output

7.00

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

scanf(\"%d\if(x>=0)

y=pow(x,2)-2; else if(x<0) y=sqrt(5-x);

printf(\"%.2f\\n\return 0; }

1043 分段函数(3)

Description

输入浮点数x,计算并输出下面分段函数y的值(保留两位小数)。

C++资料复习

y=(x+1)^2+2x+1/x (x<0) y=sqrt(x) (x>=0)

Input

输入一个浮点数。

Output

输出函数的值。保留2位小数。

Sample Input

10

Sample Output

3.16

#include #include int main() {

double x,y;

scanf(\"%lf\if(x<0)

y=(x+1)*(x+1)+2*x+(1/x); else if(x>=0) y=sqrt(x);

printf(\"%.2f\\n\return 0; }

Description

第几象限1044

C++资料复习

从键盘输入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(\"%lf%lf\ if(x>0&&y>0) printf(\"1\\n\"); else if(x<0&&y>0) printf(\"2\\n\"); else if(x<0&&y<0) printf(\"3\\n\"); else printf(\"4\\n\"); return 0; }

1045 圆内圆外

Description

C++资料复习

有一个半径为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(\"%d%d\c=sqrt(a*a+b*b); if(c>10)

printf(\"out\\n\"); else if(c==10) printf(\"on\\n\"); else

printf(\"in\\n\"); return 0; }

1046 判断英文字母

Description

C++资料复习

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

Input

任意输入一个字符。

Output

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

Sample Input

2

Sample Output

NO

#include #include int main() {

char a; scanf(\"%c\

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

printf(\"NO\\n\"); return 0; }

1047 单个字母大小写互换

Description

C++资料复习

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

Input

任意输入一个英文字母。

Output

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

Sample Input

b

Sample Output

B

#include int main() { char x,y; scanf(\"%c\ if(x>='A'&&x<='Z') { y=x+32; printf(\"%c\\n\ } else if(x>='a'&&x<='z') { y=x-32; printf(\"%c\\n\ } else { y=x; printf(\"%c\\n\ } return 0; }

1048 ASCII码对应的英文字母

Description

C++资料复习

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

Input

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

Output

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

Sample Input

98

Sample Output

b

#include #include int main() { int a; scanf(\"%d\

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

printf(\"%d\\n\return 0; }

1049 单个字符判断

Description

C++资料复习

从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。

Input

输入一个字符。

Output

如果该字符是大写字母,则输出“upper”;若是小写字母,则输出“lower”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。(输出不含双引号)。

Sample Input

1

Sample Output

digit

#include int main() { char a; scanf(\"%c\if(a>='A'&&a<='Z') printf(\"upper\\n\");

else if(a>='a'&&a<='z') printf(\"lower\\n\");

else if(a>='0'&&a<='9') printf(\"digit\\n\"); else

printf(\"other\\n\"); return 0; }

1050 字符个数统计

Description

C++资料复习

统计从键盘输入的一行字符的个数(字符串长度小于等于1000)。输入以换行符结束。

Input

输入一行字符,以换行符作为结束标记。

Output

统计字符的个数并输出。不包括换行符。

Sample Input

Hello Boy.

Sample Output

10

#include int main() { char a; int i=0; scanf(\"%c\while(a!='\\n') { i++; scanf(\"%c\}

printf(\"%d\\n\ return 0; }

Description

字母统计

1051 C++资料复习

编写程序:输入一行字符串(字符串长度小于等于1000),统计出其中的英文字母的个数。以输入换行符作为结束。

Input

输入一行字符串,以换行符结束。

Output

输出字母的个数

Sample Input

Hello Mr.007,my name is @#$%

Sample Output

15

#include int main() { char a; int i=0; scanf(\"%c\while(a!='\\n') { if(a>='a'&&a<='z'||a>='A'&&a<='Z') i++; scanf(\"%c\}

printf(\"%d\\n\ return 0; }

1052 数字字符统计

Description

C++资料复习

编写程序:输入一行字符串(长度小于等于1000),统计出其中的数字字符的个数。以输入换行字符作为结束。

Input

输入一行字符串,以换行符结束。

Output

输出数字字符的个数

Sample Input

Hello Mr.007,my name is @#$%

Sample Output

3

#include int main() { char a; int i=0; scanf(\"%c\while(a!='\\n') { if(a>='0'&&a<='9') i++; scanf(\"%c\}

printf(\"%d\\n\ return 0; }

1053 字符分类统计

Description

C++资料复习

从键盘输入一行字符串(字符串长度小于等于1000),统计出其中的英文字母、空格、数字和其它字符的个数。输入以换行符结束。

Input

输入一行字符串,以换行符作为结束标记。

Output

按字母、数字、空格、其它字符的顺序输出各类字符的统计结果。为0的项目也要输出。用空格隔开(最后一个数字的后面无空格)。

Sample Input

Hello Boy. It is 30 July.

Sample Output

16 2 5 2

#include int main() { char e; int a=0,b=0,c=0,d=0; scanf(\"%c\while(e!='\\n') { if(e>='a'&&e<='z'||e>='A'&&e<='Z') a++; else if(e>='0'&&e<='9') b++; else if(e==' ') c++; else d++; scanf(\"%c\}

printf(\"%d %d %d %d\\n\ return 0; }

1054 相邻字符判相等

Description

C++资料复习

输入一行字符串(长度小于等于1000),以换行符结束。判断其中是否存在相邻两个字符相同的情形,若有,则输出该相同的字符并结束程序(只需输出第一种相等的字符即可)。否则输出No。

Input

输入一行字符。

Output

若相邻字符相等则输出该相同的字符,否则输出No。

Sample Input

hello anna

Sample Output

l

#include #include #define N 1000 int main() { int i=0,a=0; char str[N]; scanf(\"%s\ while(str[i]!='\\0') { if(str[i]==str[i+1]) {printf(\"%c\\n\ i++; } if(a==0) printf(\"No\\n\"); return 0; }

1055 统计行数

Description

C++资料复习

编写一个程序,要求统计输入文本的行数。

Input

每行输入任意长度的字符串(每一行的字符串的长度小于等于1000),以输入仅由‘@’号构成的行作为结束, @所在的行不计入行数(文本)

Output

输出文本的行数。

Sample Input

Hello world!

I come from China! I’m a boy! @

Sample Output

3

#include #include #include #define n 1000 int main() { char str[n]; int i=0,v=0,j; gets(str); j=strlen(str); while(j!=1||str[i]!='@') { v++; gets(str); j=strlen(str); } printf(\"%d\\n\ return 0; }

1056 特定字符出现次数

Description

C++资料复习

从键盘输入一个字符串(长度小于等于1000),以换行结束。再输入一个特定字符ch,判断ch在字符串中的出现次数。

Input

从键盘输入一个字符串,以换行结束。再输入一个特定字符ch。

Output

输出ch在字符串中的出现次数。

Sample Input

THIS IS A TEST I

Sample Output

2

#include #include #include #define n 1000 int main() { char str[n],ch; int i,j,v=0; gets(str); j=strlen(str); scanf(\"%c\ for(i=0;i1057 字符变换

Description

C++资料复习

输入任意一个字符串(长度小于等于1000),将该字符串中的大写英文字母转换成对应的小写英文字母,而将小写英文字母转换成对应的大写英文字母,其余字符不变,然后输出转换后的字符串。

Input

输入一行字符串,以换行结束。

Output

输出改编后的结果。

Sample Input

I am a student.I am 19.

Sample Output

i AM A STUDENT.i AM 19.

HINT

#include #include #define N 1000 int main() { char str[N]; int i=0; gets(str); while(str[i]!='\\0') { if(str[i]>='a'&&str[i]<='z') str[i]-=32; else if(str[i]>='A'&&str[i]<='Z') str[i]+=32; i++; } puts(str); return 0; }

1058 成绩合格问题

Description

C++资料复习

输入一个整数表示课程成绩,判断学生成绩是否合格:当分数大于等于60分时,输出合格信息,在60分以下的,输出不合格信息。

Input

输入一个成绩。

Output

如果该数大于等于60,则输出“pass”,否则输出“failure”。(输出不含双引号)。

Sample Input

61

Sample Output

pass

#include int main() { int a;

scanf(\"%d\if(a>=60)

printf(\"pass\\n\"); else

printf(\"failure\\n\"); return 0; }

Description

1059 成绩评级1

C++资料复习

对学生成绩(百分制)评等级:80分(含)以上为A等,60~79为B等,小于60分为C等。

Input

输入一个整数形式的百分制的成绩(0~100)。

Output

如果该成绩大于等于80则输出A,在60~79之间则输出B,小于60分则输出C。

Sample Input

60

Sample Output

B

#include int main() { int a;

scanf(\"%d\if(a>=80) printf(\"A\\n\");

else if(a>=60&&a<=79) printf(\"B\\n\"); else

printf(\"C\\n\"); return 0; }

Description

成绩评级2

1060 C++资料复习

在学生成绩管理中,成绩经常需要在百分制与等级制之间进行转换。输入一个表示成绩的百分制分数,将其转换为对应的等级制并输出。 90分以上 打印 A 80---89 打印 B 70---79 打印 C 60---69 打印 D 60 以下 打印 E

Input

输入一个整数表示百分制的成绩,保证输入的整数在0到100之内。

Output

输出百分制转换后对应的五级制

Sample Input

95

Sample Output

A

#include int main() { int a;

scanf(\"%d\if(a>=90) printf(\"A\\n\");

else if(a>=80&&a<=89) printf(\"B\\n\");

else if(a>=70&&a<=79) printf(\"C\\n\");

else if(a>=60&&a<=69) printf(\"D\\n\"); else

printf(\"E\\n\"); return 0; }

1061 两数求大数

Description

C++资料复习

从键盘输入任意两个整数,求出其中较大数的数值并输出。

Input

输入两个整数。

Output

输出较大数的数值。

Sample Input

18 9

Sample Output

18

#include int main() {

int a,b;

scanf(\"%d%d\if(aprintf(\"%d\\n\ return 0; }

Description

1062 两整数排序

C++资料复习

从键盘输入两个整数x,y,按从小到大的顺序输出它们的值。

Input

输入两个整数x,y。

Output

按从小到大的顺序输出它们的值。数据之间以空格间隔。

Sample Input

20 16

Sample Output

16 20

#include int main() {

int a,b;

scanf(\"%d%d\if(aprintf(\"%d %d\\n\else

printf(\"%d %d\\n\ return 0; }

Description

1063 字符间比大小

C++资料复习

请编写一个程序,比较两个不相同字符间的大小(按ASCII码值比大小)。

Input

任意输入两个字符。

Output

按ASCII码值从小到大输出这两个字符的内容。输出字符间以空格间隔。

Sample Input

BA

Sample Output

A B

#include int main() {

char a,b;

scanf(\"%c%c\if(aprintf(\"%c %c\\n\else

printf(\"%c %c\\n\ return 0; }

Description

1064 三数求大值

C++资料复习

从键盘输入三个整数x,y,z,求出最大数的值。

Input

输入三个整数x,y,z。

Output

输出最大数的值。

Sample Input

20 16 18

Sample Output

20

#include int main() {

int a,b,c;

scanf(\"%d%d%d\if(aif(bprintf(\"%d\\n\else

printf(\"%d\\n\} else {

if(aprintf(\"%d\\n\if(a>c)

printf(\"%d\\n\} return 0; }

1065 三整数排序

Description

C++资料复习

从键盘输入三个整数x,y,z,按从大到小的顺序输出它们的值。

Input

输入三个整数x,y,z。

Output

按从大到小的顺序输出它们的值。数据之间以空格间隔。

Sample Input

20 16 18

Sample Output

20 18 16

#include int main() {

int a,b,c;

scanf(\"%d%d%d\if(aprintf(\"%d %d %d\\n\else if(aprintf(\"%d %d %d\\n\else

printf(\"%d %d %d\\n\else {if(a>c) if(b>c)

printf(\"%d %d %d\\n\else

printf(\"%d %d %d\\n\else

printf(\"%d %d %d\\n\ return 0; }

1066 鸡兔同笼(1)

Description

C++资料复习

一个笼子里关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出NO answer。

Input

输入整数n和m,分别表示鸡兔的总数量及总腿数。

Output

依次输出鸡的数目和兔的数目。如果无解,则输出NO answer。

Sample Input

5 16

Sample Output

2 3

#include int main() { int n,m,x,y; scanf(\"%d%d\ x=2*n-0.5*m; y=0.5*m-n; if(x>=0&&y>=0&&n==x+y) printf(\"%d %d\\n\ else printf(\"NO answer\\n\"); return 0; }

1067 夏季促销

Description

C++资料复习

商场夏季促销,购物500元以下,不打折;购物500元(含)以上,95折;购物1000元(含)以上,9折;购物3000元(含)以上,85折;购物5000元(含)以上,8折。根据消费金额,确定用户实际需要支付的数目。

Input

输入消费金额。

Output

输出用户实际需要支出的数目,保留两位小数。

Sample Input

5100

Sample Output

4080.00

#include #include int main() {

double a;

scanf(\"%lf\if(a<500)

printf(\"%.2f\\n\

else if(a>=500&&a<1000) printf(\"%.2f\\n\

else if(a>=1000&&a<3000) printf(\"%.2f\\n\

else if(a>=3000&&a<5000) printf(\"%.2f\\n\else

printf(\"%.2f\\n\ return 0; }

1068 公园门票

Description

C++资料复习

某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。

Input

输入购票的张数

Output

输出用户实际需要支付的金额,保留两位小数。

Sample Input

30

Sample Output

1440.00

#include #include int main() {

double a;

scanf(\"%lfd\if(a<30)

printf(\"%.2f\\n\else

printf(\"%.2f\\n\ return 0; }

Description

1069 飞船飞行情况

C++资料复习

在“神州号”程序中,需要判断飞船飞行状况。当飞船速度继续加大时,飞船将达到第二宇宙、第三宇宙速度。试编写程序,输入不同的飞船速度V,判断它的各种飞行状况,并按要求显示出来。飞船速度( V) 单位(km/s)

7.91<=V<11.19 则输出1 ,表示飞船绕地球做匀速圆周运动; 11.19<=V<16.67 则输出2,表示(飞船离开地球的控制 ,围绕太阳转; V>=16.67 则输出3,表示飞船挣脱太阳引力飞出太阳系。

Input

输入一个浮点数表示飞船速度(假设输入速度大于等于7.91)

Output

输出该飞船的飞行情况

Sample Input

10.00

Sample Output

1

#include #include int main() {

double a;

scanf(\"%lf\

if(a>=7.91&&a<11.19) printf(\"1\\n\");

else if(a>=11.19&&a<16.67) printf(\"2\\n\"); else

printf(\"3\\n\"); return 0; }

1070 5和7的整倍数(1)

Description

C++资料复习

试编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no

Input

输入一个正整数。

Output

如果是5和7的整倍数就输出yes,如果不是就输出no

Sample Input

35

Sample Output

yes

#include #include int main() {

int a,b,c;

scanf(\"%d\b=a%5; c=a%7;

if(b==0&&c==0) printf(\"yes\\n\"); else

printf(\"no\\n\"); return 0; }

Description

1071 5和7的整倍数(2)

C++资料复习

输入正整数n,试编程输出n以内能被5和7整除的数。(不包括n)

Input

输入一个整整数n。

Output

输出n以内能被5和7整除的数。以空格间隔。

Sample Input

100

Sample Output

35 70

#include #include int main() { int n,i=1; scanf(\"%d\ while(i1072 是否闰年

Description

写一程序判断某一年是否是闰年。

C++资料复习

Input

输入一个整数表示年份

Output

判断该年份是否为闰年,如果不是就输出no ,是就输出yes

Sample Input

2000

Sample Output

yes

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

scanf(\"%d\

if(a%4==0&&a%100!=0||a%400==0) printf(\"yes\\n\"); else

printf(\"no\\n\"); return 0; }

1073 计算某年某月的天数

Description

C++资料复习

计算某年某月的天数。设计一个程序,根据用户输入的年,月,打印出该年的这一个月的天数。如用户输入的信息是2011年的4月,则打印出该月的天数为30。

Input

输入年和月的数值。如2011 2表示2011年的2月份。

Output

输出该月的天数。

Sample Input

2011 2

Sample Output

28

#include #include int main() {

C++资料复习

int a,b,c;

scanf(\"%d%d\switch(b) {

case 1: case 3: case 5: case 7: case 8: case 10: case 12: c=31; break; case 4: case 6: case 9: case 11: c=30; break; case 2:

if(a%4==0&&a%100!=0||a%400==0) c=29; else c=28; break; }

printf(\"%d\\n\return 0; }

1074 年龄

Description

C++资料复习

编写程序,输入一位学生的生日(年:y0,月:m0,日:d0);并输入当前的日期(年:y1,月:m1,日:d1);输出该生的实足年龄。

Input

输入学生的数据,每行6个整型,用空格隔开,依次代表y0、m0、d0、y1、m1、d1的值。

Output

输出该生的实足年龄。

Sample Input

1990 9 10 2008 5 5

Sample Output

17

#include int main() { int a,b,c,d,e,f; int N; scanf(\"%d%d%d%d%d%d\ N=d-a; if(e1075 求年月日

Description

C++资料复习

输入年份和天数,输出对应的年、月、日。(注意闰年的判断!)

Input

输入两个整数分别代表年份和天数。(假设数据都在有效范围内)

Output

对应的年、月、日

Sample Input

2011 20

Sample Output

2011-1-20

#include int main() { int a,b; scanf(\"%d%d\

if(b%4==0&&b%100!=0||b%400==0) {

if(a>=0&&a<=31)

printf(\"%d-1-%d\\n\else if(a>31&&a<=60)

printf(\"%d-2-%d\\n\else if(a>60&&a<=91)

printf(\"%d-3-%d\\n\else if(a>91&&a<=121) printf(\"%d-4-%d\\n\else if(a>121&&a<=152) printf(\"%d-5-%d\\n\else if(a>152&&a<=182) printf(\"%d-6-%d\\n\else if(a>182&&a<=213) printf(\"%d-7-%d\\n\else if(a>213&&a<=244) printf(\"%d-8-%d\\n\else if(a>244&&a<=274) printf(\"%d-9-%d\\n\else if(a>274&&a<=305)

C++资料复习

printf(\"%d-10-%d\\n\else if(a>305&&a<=335)

printf(\"%d-11-%d\\n\else

printf(\"%d-12-%d\\n\} else {

if(a>=0&&a<=31)

printf(\"%d-1-%d\\n\else if(a>31&&a<=59)

printf(\"%d-2-%d\\n\else if(a>59&&a<=90)

printf(\"%d-3-%d\\n\else if(a>90&&a<=120) printf(\"%d-4-%d\\n\else if(a>120&&a<=151) printf(\"%d-5-%d\\n\else if(a>151&&a<=181) printf(\"%d-6-%d\\n\else if(a>181&&a<=212) printf(\"%d-7-%d\\n\else if(a>212&&a<=243) printf(\"%d-8-%d\\n\else if(a>243&&a<=273) printf(\"%d-9-%d\\n\else if(a>273&&a<=304)

printf(\"%d-10-%d\\n\else if(a>304&&a<=334)

printf(\"%d-11-%d\\n\else

printf(\"%d-12-%d\\n\}

return 0; }

Description

a^2+b^2 1076

C++资料复习

编程输入整数a和b,若a^2+b^2 大于100,则输出a^2+b^2 百位以上的数字,否则输出a^2+b^2之和。

Input

输入整数a和b。

Output

输出对应结果。

Sample Input

3 5

Sample Output

34

#include #include int main() { int a,b,c; scanf(\"%d%d\ c=pow(a,2)+pow(b,2); if(c>100) printf(\"%d\\n\ else printf(\"%d\\n\ return 0; }

1077 员工薪水(1)

Description

C++资料复习

某公司规定,每周工作40(含)小时内工资是30元/小时,超过40小时后超出部分按1.5倍给付。编写程序,根据输入工作时数计算雇员收入。

Input

输入一个整数表示某一周工作的小时数。

Output

输出员工这一周的薪水

Sample Input

41

Sample Output

1245

#include #include int main() { int a; scanf(\"%d\ if(a<40) printf(\"%d\\n\ else printf(\"%d\\n\ return 0; }

1078 员工薪水(2)

Description

C++资料复习

某公司规定,销售人员工资由基本工资和销售提成两部分组成,其中基本工资是1500元/月,销售提成规则如下:

销售额小于等于10000元时,按照5%提成;

销售额大于10000元但小于等于50000元时,超出10000部分按照3%提成; 销售额大于50000元时,超出50000部分按照2%提成。 编写程序,根据销售额计算员工收入。

Input

输入一个整数表示销售额

Output

输出员工的薪水,保留2位小数。

Sample Input

9000

Sample Output

1950.00

#include #include int main() { int a; scanf(\"%d\ if(a<=10000) printf(\"%.2f\\n\ else if(a>10000&&a<=50000) printf(\"%.2f\\n\ else printf(\"%.2f\\n\ return 0; }

1079 所得税

Description

C++资料复习

编写程序,根据收入计算出个人所得税。个人所得税法规定,每月收入额减除费用3000元后的余额,为应纳税所得额。个人所得税税率表如下:级数 全月应纳税所得额 税率(%)

1 小于等于1500元的部分 5

2 大于1500元且小于等于4500元的部分 10 3 大于4500元且小于等于9000元的部分 20 4 大于9000元且小于等于35000元的部分 25 5 大于35000元且小于等于55000元的部分 30 6 大于55000元且小于等于80000元的部分 35 7 大于80000元的部分 45

(注:本表所称全月应纳税所得额是指每月收入额减除费用 3000元后的余额)

Input

输入一个整数表示个人的月收入。

Output

输出应交的税,如果应交税额为零,则直接输出数字0,否则输出需要缴纳的税额并保留2位小数。

Sample Input

9999

Sample Output

874.80

#include #include int main() {

C++资料复习

}

int a;

scanf(\"%d\a=a-3000; if(a<0) printf(\"0\"); else if(a>0&&a<=1500) printf(\"%.2f\\n\else if(a>1500&&a<=4500) printf(\"%.2f\\n\else if(a>4500&&a<=9000) printf(\"%.2f\\n\else if(a>9000&&a<=35000) printf(\"%.2f\\n\else if(a>35000&&a<=55000) printf(\"%.2f\\n\else if(a>55000&&a<=80000) printf(\"%.2f\\n\else printf(\"%.2f\\n\return 0;

1080 求乘客支付的车费

Description

C++资料复习

某城市普通出租车收费标准如下:起步里程小于等于3公里,起步费10元;超起步里程后小于等于10公里的,每公里租费2元;超过10公里以上的部分加收50%的回空补贴费,即每公里租费3元。营运过程中,因路阻及乘客要求临时停车的,每5分钟按1公里租费(租费两元)计收,不足5分钟的按5分钟计,保留到元,计算并输出乘客应支付的车费(元)。

Input

输入行驶里程与等待时间,均为整数。

Output

输出该乘客应支付的车费,保留到元(整数)。

Sample Input

3 0

Sample Output

10

HINT

如行驶里程为0,但等待时间非0,也需要计费。 #include int main() { int x,z,y; scanf(\"%d%d\ if(x<=0) y=0; else if(x<=3) y=10; else if(x<=10) y=10+2*(x-3); else y=24+3*(x-10); if(z%5!=0) y=y+(z/5+1)*2; else y=y+2*(z/5); printf(\"%d\\n\ return 0; }

1081 一元二次方程

Description

C++资料复习

求方程ax^2+bx+c=0的根。

Input

输入方程系数a、b、c ( 假设b^2 - 4ac>= 0 )。

Output

依次输出方程的根x1、x2(x1>x2)。若只有一个解,则输出x1。(结果保留2位小数)。

Sample Input

1 3 2

Sample Output

-1.00 -2.00

#include #include int main() { double a,b,c,d,e; scanf(\"%lf%lf%lf\ if(b*b-4*a*c==0) { d=-b/(2*a); printf(\"%.2f\\n\ } else { d=(-b+sqrt(b*b-4*a*c))/(2*a); e=(-b-sqrt(b*b-4*a*c))/(2*a); printf(\"%.2f %.2f\\n\ } return 0; }

1082 求点的高度

Description

C++资料复习

假设有四个圆塔,圆心座标分别为(2,2) (-2,2) (-2,-2) (2,-2)。圆塔直径都为1,圆塔高50米,其他都为平地(高度为0)。要求给出任一坐标值(x,y),打印出该点的高度。

Input

输入两个数x,y表示一个点的坐标。

Output

输出该点的高度

Sample Input

-2 2

Sample Output

50

HINT

double

#include #include int main() { double a,b,r; scanf(\"%lf%lf\

r=sqrt((fabs(a)-2)*(fabs(a)-2)+(fabs(b)-2)*(fabs(b)-2)); if(r<=0.5) printf(\"50\\n\"); else

printf(\"0\\n\"); return 0; }

1083 1到10的英文单词

Description

C++资料复习

输入1到10之间的任意一个数字,输出相应的英文单词(首字母大写)。如果输入其他数字则输出Error。

Input

输入1~10之间的任意一个数字。

Output

输出相应的英文单词。首字母大写。

Sample Input

8

Sample Output

Eight

#include #include int main() { int a; scanf(\"%d\ switch(a) { case 1:printf(\"One\\n\");break; case 2:printf(\"Two\\n\");break; case 3:printf(\"Three\\n\");break; case 4:printf(\"Four\\n\");break; case 5:printf(\"Five\\n\");break; case 6:printf(\"Six\\n\");break; case 7:printf(\"Seven\\n\");break; case 8:printf(\"Eight\\n\");break; case 9:printf(\"Nine\\n\");break; case 10:printf(\"Ten\\n\");break; default:printf(\"Error\\n\"); } return 0; }

1084 四则运算

Description

C++资料复习

输入一个数学表达式,输出运算结果。如输入为3+8,则输出结果11.000000,如输入为7*8,则输出结果为56.000000。(运算符号局限于+、-、*、/四种)

Input

输入形式为a+(-,*,/)b,即一个数字、一个四则运算符号、一个数字。如3+8。

Output

输出运算结果,如11.000000。

Sample Input

3+8

Sample Output

11.000000

#include #include int main() { char b; double a,c,q; scanf(\"%lf%c%lf\ switch(b) { case'+':q=a+c;break; case'-':q=a-c;break; case'*':q=a*c;break; case'/': if(c!=0) q=a/c;break; } printf(\"%lf\\n\ return 0; }

1085 运费计算

Description

C++资料复习

某运输公司对用户按照路程计算每公里运费。路程越远,每公里运费越低。运费标准如下:

路程km 折扣 s<250 无折扣

250<=s<500 2% 500<=s<1000 5% 1000<=s<2000 8% 2000<=s<3000 10% s>=3000 15%

假设每公里每吨货物的基本运费为p元,货物重量为w吨,距离为s公里。

Input

输入基本运费p(<10),货物重量w(<1000),距离s(<4000)。

Output

输出实际产生的运费。(输出时保留2位小数)

Sample Input

0.2 100 300

Sample Output

5880.00

#include #include int main() {

C++资料复习

}

double p,w,s,q;

scanf(\"%lf%lf%lf\if(s<250) q=p*w*s;

else if(s>=250&&s<500) q=p*w*s*0.98;

else if(s>=500&&s<1000) q=p*w*s*0.95;

else if(s>=1000&&s<2000) q=p*w*s*0.92;

else if(s>=2000&&s<3000) q=p*w*s*0.9; else

q=p*w*s*0.85; printf(\"%.2f\\n\ return 0;

1086 简单数字打印

Description

C++资料复习

编写程序打印数字1,2,3,…,n,要求每个数字占据一行。

Input

输入整数n(n<100)。

Output

输出1,2,3,…,n,要求每个数字占据一行。

Sample Input

5

Sample Output

1 2 3 4 5

#include #include int main() { int n,i=1; scanf(\"%d\ while(i<=n) { printf(\"%d\\n\ i++; } return 0; }

1087 字符串输入输出(2)

Description

C++资料复习

输入长度不超过3的字符序列并原样输出。

Input

输入长度不超过3的字符序列。

Output

输出该字符序列。

Sample Input

Cat

Sample Output

Cat

#include #include #define N 3 int main() { char str[N]; scanf(\"%s\ printf(\"%s\ putchar('\\n'); return 0; }

1088 字符串输入输出(3)

Description

C++资料复习

输入任意长度的字符串(以换行结束),原样输出.

Input

输入任意长度的字符串(<100个字符)(以换行结束)

Output

将输入的字符串从屏幕上原样输出

Sample Input

Hello C Language.

Sample Output

Hello C Language.

#include #include #include #define n 100 int main() { char str[n]; int i,j; gets(str); j=strlen(str); for(i=0;i1089 不能被3整除的数

Description

C++资料复习

输入正整数n1和n2,试编程输出n1和n2之间不能被3整除的数。每行输出5个数字。(包含n1和n2)

Input

输入正整数n1和n2。

Output

输出n1和n2之间不能被3整除的数。每行最多输出5个数字。每行数字如果满5个的话,则第5个数字后面没有空格,直接换行。

Sample Input

705 769

Sample Output

706 707 709 710 712 713 715 716 718 719 721 722 724 725 727 728 730 731 733 734 736 737 739 740 742 743 745 746 748 749 751 752 754 755 757 758 760 761 763 764 766 767 769

#include #include int main() {

C++资料复习

int i,m,n; int count=0;

scanf(\"%d%d\ for(i=m;i<=n;i++) { if(i%3==0) continue; else { } } return 0;

}

Description

count++; if(count!=0&&count%5==0||i==n) printf(\"%d\\n\else printf(\"%d \1090 整数数列求和(1)

C++资料复习

编写程序,要求计算m=1+2+3+4+····+n。

Input

输入一个正整数n(<2000)。

Output

输出对应的m。

Sample Input

10

Sample Output

55

#include #include int main() { int m=0,n,i; scanf(\"%d\ for(i=1;i<=n;i++) { m+=i; } printf(\"%d\\n\return 0; }

1091 Description

整数数列求和(2)

C++资料复习

编写程序,计算:m=1-2+3-4+····+(-)n。

Input

输入一个正整数n(<1000)。

Output

输出对应的m。

Sample Input

10

Sample Output

-5

#include #include int main() { int m=0,n,i,a; scanf(\"%d\ for(i=1;i<=n;i++) { a=i; if(a%2==0) a=-i; m+=a; } printf(\"%d\\n\return 0; }

1092 整数数列求和(3)

Description

C++资料复习

输入一个整数n,计算s=1+3+5+…+97+n。n是一个奇数(n>1)。

Input

输入一个奇数n(<1000)。

Output

输出s=1+3+…+n的和。

Sample Input

5

Sample Output

9

#include #include int main() { int m=0,n,i=1; do { scanf(\"%d\ } while(n%2==0); while(i-2!=n) { m+=i; i=i+2; } printf(\"%d\\n\return 0; }

1093 整数数列求和(4)

Description

C++资料复习

输入一个整数n,计算s=1+1+2+1+2+3+1+2+3+4+…+1+2+3+…+n。

Input

输入一个整数n(<100)(假设n为3)。

Output

(若n为3)输出s=1+1+2+1+2+3的和。

Sample Input

3

Sample Output

10

#include #include int main() { int m=0,n,i=1,a=0; scanf(\"%d\for(i=1;i<=n;i++) { a+=i; m+=a; } printf(\"%d\\n\return 0; }

1094 整数数列求和(5)

Description

C++资料复习

输入一个正整数n,计算s=1+2*2+3*3+….n*n。

Input

输入一个正整数n(<100)。

Output

输出s的值。

Sample Input

3

Sample Output

14

#include #include int main() { int s=0,n,i,a=0; scanf(\"%d\for(i=1;i<=n;i++) { a=i*i; s+=a; } printf(\"%d\\n\return 0; }

1095 整数数列求和(6)

Description

C++资料复习

输入一个整数n,计算s=1*2+2*3+3*4+…+n*(n+1)。

Input

输入一个整数n(<100)。

Output

输出计算结果。

Sample Input

3

Sample Output

20

#include #include int main() { int s=0,n,i,a=0; scanf(\"%d\for(i=1;i<=n;i++) { a=i*(i+1); s+=a; } printf(\"%d\\n\return 0; }

Description

求立方和

1096 C++资料复习

编写程序,求sum=1*1*1+2*2*2+3*3*3+4*4*4+5*5*5+····+n*n*n。

Input

输入一个正整数n(n<=60)。

Output

输出对应的sum。

Sample Input

2

Sample Output

9

#include #include int main() { int s=0,n,i,a=0; scanf(\"%d\for(i=1;i<=n;i++) { a=i*i*i; s+=a; } printf(\"%d\\n\return 0; }

1097 整数数列求和(7)

Description

C++资料复习

求s=a+aa+aaa+aaaa+….的值,其中,a是0~9范围内的一个数字。输入n和a,其中n表示累加的项数。例如,当n=5,a=2时,s=2+22+222+2222+22222。

Input

输入整数n和a,均<9。

Output

计算s=a+aa+aaa+aaaa+….的值并输出,其中共有n项进行累加。

Sample Input

3 2

Sample Output

246

#include #include int main() { int s=0,n,i,a,b=0; scanf(\"%d%d\for(i=1;i<=n;i++) { b+=pow(10,i-1); s+=a*b; } printf(\"%d\\n\return 0; }

1098 分数数列求和(1)

Description

C++资料复习

输入一个正整数n,计算1+1/2+1/3….的前n项之和,输出时保留6位小数。

Input

输入正整数n(n<100)

Output

输出前n项之和,保留6位小数。

Sample Input

2

Sample Output

1.500000

#include #include int main() { int n,i=1; double a,s=0; scanf(\"%d\while(i<=n) {

a=1.0/i; s+=a; i=i+1; } printf(\"%.6f\\n\return 0; }

1099 分数数列求和(2)

Description

C++资料复习

输入一个正整数n,计算1+1/3+1/5….的前n项之和,输出时保留6位小数。

Input

输入正整数n(n<100)

Output

输出前n项之和,保留6位小数。

Sample Input

2

Sample Output

1.333333

#include #include int main() { int n,i=1; double a,s=0; scanf(\"%d\while(i<=(2*n-1)) {

a=1.0/i; s+=a; i=i+2; } printf(\"%.6f\\n\return 0; }

1100 分数数列求和(3)

Description

C++资料复习

输入一个正整数,计算1-1/2+1/4-1/8+1/16……的前n项之和,输出时保留2位小数。

Input

输入正整数n

Output

输出前n项之和,保留2位小数。

Sample Input

5

Sample Output

0.69

#include #include int main() { int n,i=1,b; double a,c,s=0; scanf(\"%d\while(i<=n) { if(i%2==0) b=-1; else b=1; c=pow(2,i-1); a=b*1.0/c; s+=a; i++; } printf(\"%.6f\\n\return 0; }

1101 分数数列求和(4)

Description

C++资料复习

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,……,试编写程序计算此分数序列的前n项之和。

Input

输入正整数n

Output

输出前n项之和,保留6位小数。

Sample Input

5

Sample Output

8.391667

#include #include int main() { int n,i=1,b=1,c=2,t; double a,s=0; scanf(\"%d\while(i<=n) {

a=c*1.0/b; s+=a; i++; t=c; c=b+c; b=t; }

printf(\"%.6f\\n\return 0; }

1102 分数数列求和(5)

Description

C++资料复习

e=1+1/1!+1/2!+...+1/n!,从键盘输入n,计算e的值。

Input

输入一个整数n

Output

输出e的值,保留6位小数。

Sample Input

5

Sample Output

2.716667

#include #include int main() { int i,n; double a,e=1,b=1; scanf(\"%d\ for(i=1;i<=n;i++) { b*=i; a=1.0/b; e+=a; } printf(\"%.6f\\n\ return 0; }

1103 混合数列求和

Description

C++资料复习

有一数列:(1+2+...n)+(1^2+2^2+...+n^2)+(1+1/2+...+1/n) ,从键盘输入一个正整数n,计算该数列的结果。

Input

输入正整数n

Output

输出数列的计算结果,保留2位小数。

Sample Input

5

Sample Output

72.28

#include #include int main() { int n,i=1; double a,b,c,e=0; scanf(\"%d\while(i<=n) { a=i;

b=pow(i,2); c=1.0/i;

e=e+a+b+c; i++; }

printf(\"%.6f\\n\return 0; }

Description

计算n!

1104 C++资料复习

从键盘输入n,求n!的值并输出

Input

输入正整数n

Output

输出n!的值。

Sample Input

5

Sample Output

120

#include #include int main() { int n,i=1,a,e=1; scanf(\"%d\while(i<=n) { a=i; e=e*i; i++; }

printf(\"%d\\n\return 0; }

Description

1105 求阶乘之和

C++资料复习

求1+2!+3!+...+n!的和

Input

输入一个整数n。

Output

输出1+2!+3!+...+n!的值。

Sample Input

5

Sample Output

153

#include #include int main() { int n,i=1,a,e=1,b=0; scanf(\"%d\while(i<=n) { a=i; e=e*i; b+=e; i++; }

printf(\"%d\\n\return 0; }

1106 平均分及不及格人数

1000 Problem A

Description

输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格同学的个数。

C++资料复习

Input

输入一个正整数n表示学生的个数,再输入n个学生的成绩。

Output

输出分两行。

第一行输出平均分(保留1位小数)。

第二行输出不及格同学的个数。不及格人数为0时也要输出。

Sample Input 3

90 90 50

Sample Output 76.7 1 HINT

Source NBU OJ

#include void main() { int n,m=0,f,i=1; double sum=0; scanf(\"%d\ for(i=1;i<=n;i++) { scanf(\"%d\ sum+=f; if(f<60) m++; } printf(\"%.1f\\n\ printf(\"%d\\n\

C++资料复习

}

1107 还是平均分

1001 Problem B

Description

从键盘输入若干同学的成绩,计算他们的平均分。当输入负数时结束输入。

Input

输入若干整数,以负数作为结束标记。

Output

计算平均分(不包括负数),输出保留1位小数。

Sample Input 70 80 90 80 60 -9 Sample Output 76.0 HINT

Source NBU OJ

#include int main() { float sum=0,n; int i=0; do { scanf(\"%f\ if(n<0) break; sum+=n; i++; } while(1);

C++资料复习

}

printf(\"%.1f\\n\ return 0;

1108 百灯判熄

Description

有M盏灯,编号为1~M,分别由相应的M个开关控制。开始时全部开关朝上(朝上为开,灯亮),然后进行以下

操作:编号凡是1的倍数的灯反方向拨一次开关;是2的倍数的灯再反方向拨一次开关;是3的倍数的灯又反方

向拨一次开关,......,直到是M的倍数的灯又方向拨一次开关。请从键盘输入一个整数m代表灯的数量,求

出最后为熄灭状态的灯(不亮)的数量以及编号并输出。

Input

输入一个整数m(1<=n<=100)。

Output

输出为两行,第一行是熄灭状态的灯的数量;第二行是最后为熄灭状态的灯的编号(每个数据以4列的域宽显

示)。

Sample Input

100Sample Output 10

1 4 9 16 25 36 49 64 81 100 HINT

输出控制为%4d

Source

C++资料复习

NBU OJ

#include int main() { int j=0,i=1,n; scanf(\"%d\ while (i*i<=n) { j++; i++; } printf(\"%d\\n\ for (i=1;i<=j;i++) { printf(\"%4d\ } printf(\"\\n\"); }

1109 斐波那契的兔子问题

Description

1202年,意大利数学家斐波那契(Fibonacci)出版了他的《计算之书》,在书中提到了一个关于兔子繁殖的

问题:如果一对兔子,过一个月之后长成大兔子,到第三个月就可以生下一对兔子并且以后每个月都生下一

对兔子,而所生的一对小兔子也同样到一个月之后长成大兔子,到第三个月就可以生下一对小兔并且以后每

个月都会生一对。假如兔子都不死,问第n个月的时候兔子的总对数为多少?

Input

C++资料复习

输入一个整数n( 0 < n < =50)

Output

输出第n个月兔子的对数

Sample Input 6Sample Output 8HINT

数据量会超出int范围,建议用double或长整型

Source NBU OJ

#include #include #define ll __int64 ll a[51]; ll fun(int n) { if(n==1||n==2) return 1; if(!a[n]) a[n]=fun(n-1)+fun(n-2); return a[n]; } int main() { int n;

memset(a,0,sizeof(a));

while(scanf(\"%d\ { printf(\"%I64d\\n\ } }

1110 斐波那契数列

Description

输入整数n,输出斐波那契数列的前n项。

C++资料复习

Input

输入一个整数n(1<=n<=50)。

Output

输出斐波那契数列的前n项。以空格间隔,但最后一个数据的后面没有空格。

Sample Input 6Sample Output 1 1 2 3 5 8HINT

1、斐波那契数列的排列规则为:第1个数和第2个数的值都为1,从第3个数开始,每个数据都等于它前面相邻

的两个数据之和。

2、数据范围可能超出int,所以可考虑使用以下定义:

__int64 a; /*64 位整数数据类型,表示介于-2^63 到2^63-1之间的数值*/

则输入格式为 scanf(\"%I64d\ 输出格式为 printf(\"%I64d \

Source NBU OJ

#include int main() { int n,i=1; double a=1,b=1; scanf(\"%d\ if(n==1) printf(\"1\"); else if(n==2) printf(\"1 1\"); else

C++资料复习

} }

{ printf(\"1 1\"); for(i=3;i<=n;i++) { b=a+b; a=b-a; printf(\" %.f\}

printf(\"\\n\"); return 0;

1111统计素数

Description

判断[ k1,k2]之间有多少个素数(包含k1和k2),并输出这些素数。 ( 1 <= k1 < k2 <= 1000 )

Input

输入两个正整数k1和k2。

Output

输出两行信息,第一行是[k1,k2]之间素数个数,第二行输出所有素数。素数之间用空格分开。

Sample Input

1 10Sample Output 4

2 3 5 7HINT

最后一个素数的后面直接换行,不需要再加空格。

Source

C++资料复习

NBU OJ

#include int main() { int x,y,i,a,t,d=0,v=0; scanf(\"%d%d\ for(i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) d++; } printf(\"%d\\n\ for(i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) { v++; if(vC++资料复习

}

printf(\"\\n\"); return 0;

1112平均分及不及格人数

1000 Problem A

Description

输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格同学的个数。

Input

输入一个正整数n表示学生的个数,再输入n个学生的成绩。

Output

输出分两行。

第一行输出平均分(保留1位小数)。

第二行输出不及格同学的个数。不及格人数为0时也要输出。

Sample Input 3

90 90 50

Sample Output 76.7 1 HINT

Source NBU OJ

#include

C++资料复习

void main() { int n,m=0,f,i=1; double sum=0; scanf(\"%d\ for(i=1;i<=n;i++) { scanf(\"%d\ sum+=f; if(f<60) m++; } printf(\"%.1f\\n\ printf(\"%d\\n\}

1113 还是平均分

1001 Problem B

Description

从键盘输入若干同学的成绩,计算他们的平均分。当输入负数时结束输入。

Input

输入若干整数,以负数作为结束标记。

Output

计算平均分(不包括负数),输出保留1位小数。

Sample Input 70 80 90 80 60 -9 Sample Output 76.0 HINT

Source NBU OJ

#include

C++资料复习

int main() { float sum=0,n; int i=0; do { scanf(\"%f\ if(n<0) break; sum+=n; i++; } while(1); printf(\"%.1f\\n\ return 0; }

1114 百灯判熄

1002 Problem C

Description

有M盏灯,编号为1~M,分别由相应的M个开关控制。开始时全部开关朝上(朝上为开,灯亮),然后进行以下操作:编号凡是1的倍数的灯反方向拨一次开关;是2的倍数的灯再反方向拨一次开关;是3的倍数的灯又反方向拨一次开关,......,直到是M的倍数的灯又方向拨一次开关。请从键盘输入一个整数m代表灯的数量,求出最后为熄灭状态的灯(不亮)的数量以及编号并输出。

Input

输入一个整数m(1<=n<=100)。

Output

输出为两行,第一行是熄灭状态的灯的数量;第二行是最后为熄灭状态的灯的编号(每个数据以4列的域宽显示)。

Sample Input

100Sample Output 10

1 4 9 16 25 36 49 64 81 100 HINT

输出控制为%4d

C++资料复习

Source NBU OJ

#include int main() { int j=0,i=1,n; scanf(\"%d\ while (i*i<=n) { j++; i++; } printf(\"%d\\n\ for (i=1;i<=j;i++) { printf(\"%4d\ } printf(\"\\n\"); }

1115 斐波那契的兔子问题

Description

1202年,意大利数学家斐波那契(Fibonacci)出版了他的《计算之书》,在书中提到了一个关于兔子繁殖的问题:如果一对兔子,过一个月之后长成大兔子,到第三个月就可以生下一对兔子并且以后每个月都生下一对兔子,而所生的一对小兔子也同样到一个月之后长成大兔子,到第三个月就可以生下一对小兔并且以后每个月都会生一对。假如兔子都不死,问第n个月的时候兔子的总对数为多少?

Input

输入一个整数n( 0 < n < =50)

Output

输出第n个月兔子的对数

Sample Input 6Sample Output

C++资料复习

8HINT

数据量会超出int范围,建议用double或长整型

Source NBU OJ

#include #include #define ll __int64 ll a[51]; ll fun(int n) { if(n==1||n==2) return 1; if(!a[n]) a[n]=fun(n-1)+fun(n-2); return a[n]; } int main() { int n;

memset(a,0,sizeof(a));

while(scanf(\"%d\ { printf(\"%I64d\\n\ } }

1116 斐波那契数列

Description

输入整数n,输出斐波那契数列的前n项。

Input

输入一个整数n(1<=n<=50)。

Output

输出斐波那契数列的前n项。以空格间隔,但最后一个数据的后面没有空格。

Sample Input 6Sample Output 1 1 2 3 5 8HINT

C++资料复习

1、斐波那契数列的排列规则为:第1个数和第2个数的值都为1,从第3个数开始,每个数据都等于它前面相邻的两个数据之和。

2、数据范围可能超出int,所以可考虑使用以下定义:

__int64 a; /*64 位整数数据类型,表示介于-2^63 到2^63-1之间的数值*/

则输入格式为 scanf(\"%I64d\ 输出格式为 printf(\"%I64d \

Source NBU OJ

#include int main() { int n,i=1; double a=1,b=1; scanf(\"%d\ if(n==1) printf(\"1\"); else if(n==2) printf(\"1 1\"); else { printf(\"1 1\"); for(i=3;i<=n;i++) { b=a+b; a=b-a; printf(\" %.f\ } } printf(\"\\n\"); return 0; }

C++资料复习

117 统计素数

Description

判断[ k1,k2]之间有多少个素数(包含k1和k2),并输出这些素数。 ( 1 <= k1 < k2 <= 1000 )

Input

输入两个正整数k1和k2。

Output

输出两行信息,第一行是[k1,k2]之间素数个数,第二行输出所有素数。素数之间用空格分开。

Sample Input

1 10Sample Output 4

2 3 5 7HINT

最后一个素数的后面直接换行,不需要再加空格。

Source NBU OJ

#include int main() { int x,y,i,a,t,d=0,v=0; scanf(\"%d%d\ for(i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) d++; }

C++资料复习

} } }

printf(\"%d\\n\for(i=x;i<=y;i++) { t=0; for(a=1;a<=i;a++) { if(i%a==0) t++; } if(t==2) { v++; if(v1118 Problem I

Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 66 | Solved : 42 Description

期末考试结束了,陈老师找到集训队的同学,希望帮忙开发一个成绩排序的系统。这个应该难不倒集训队员的,先做一个内部小测试吧。随意输入10个学生的成绩,按从高到低的序列显示。

Input

输入10个学生的成绩

Output

输出从高到低的排序结果。

Sample Input

90 80 70 60 50 91 72 18 2 0Sample Output 91 90 80 72 70 60 50 18 2 0HINT

最后一个数据的后面不需要空格,直接加换行符

C++资料复习

Source NBU OJ

#include int main() { int a[10],i,j; int minloc,temp; for(i=0;i<10;i++) scanf(\"%d\for(i=0;i<9;i++) {minloc=i;

for(j=i+1;j<10;j++) if(a[j]for(i=9;i>=1;i--) printf(\"%d \ printf(\"%d\\n\

return 0; }

1119 Problem J

Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 64 | Solved : 48 Description

已知有10个同学的成绩,求最高分和最低分以及相应分数所在的位置。从键盘输入10个整数存放在数组中,假设这10个数互不相同,且无序排列。请找出其中最大数及它在数组中的下标,以及最小数和下标。

Input

从键盘输入10个整数。

C++资料复习

Output

找出其中最大数及它在数组中的下标,以及最小数和下标。各占一行。

Sample Input

60 70 90 50 65 76 88 95 91 80Sample Output 95 7

50 3HINT

Source NBU OJ

#include #define N 10 int main() {int a[N];

int i,min,max,minloc,maxloc; for(i=0;ia[i]) {min=a[i];minloc=i;} if(max{max=a[i];maxloc=i;} }

printf(\"%d %d\\n\printf(\"%d %d\\n\return 0; }

1120 Problem H

Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 101 | Solved : 53 Description

从键盘输入10个整数存放在数组中,再逆序显示这10个数。

C++资料复习

Input

从键盘输入10个整数。

Output

逆序显示这10个数。数据间以空格间隔,但最后一个数据后面没有空格,直接换行。

Sample Input

6 7 9 0 -6 16 18 -90 19 10Sample Output 10 19 -90 18 16 -6 0 9 7 6HINT

Source NBU OJ

#include int main() {int a[10]; int i;

for(i=0;i<10;i++) scanf(\"%d\for(i=9;i>=1;i--) printf(\"%d \printf(\"%d\printf(\"\\n\"); return 0; }

1121 Problem G

Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 126 | Solved : 44 Description

有5个整型数据存储在数组中,再输入一个数值key,删除数组中第1个等于key的元素,并将剩余的4个数据输出。如果key不是数组中的元素,则显示not found。

Input

先从键盘输入5个整数,然后再输入一个待删除的数据key。

Output

C++资料复习

输出删除后的结果,若不存在则输出not found。输出的每个数据后面到底有没有空格呢?其实没有。。

Sample Input 80 65 93 100 81 93Sample Output 80 65 100 81 HINT

Source NBU OJ

#include void main() {

int a[5];

int i,k,key,flag=0; for(i=0;i<5;i++) scanf(\"%d\scanf(\"%d\for(i=0;i<5;i++) {

if(key==a[i]) {

flag=1;

for(k=i;k<4;k++) a[k]=a[k+1]; } }

if(flag==1)

for(i=0;i<4;i++)

printf(\"%d%c\else

printf(\"not found\\n\"); }

1122 Problem F

Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 69 | Solved : 54 Description

从键盘输入任意的10个整数,从中找出最大值和最小值并输出。

C++资料复习

Input

输入任意的10个整数。

Output

输出这10个数中的最大值和最小值。各占一行。

Sample Input

1 2 5 4 7 8 3 54 13 20Sample Output 54 1 HINT

Source NBU OJ

#include int main() { int a[10],i; int min,max;

for(i=0;i<10;i++) scanf(\"%d\ min=max=a[0]; for(i=0;i<10;i++) {if(min>a[i]) min=a[i]; if(max1123 Problem E

Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 70 | Solved : 50 Description

已知某学生期中考试4门课程的成绩,请将这4个成绩存放到数组中,然后计算其本次考试的平均成绩并输出。

Input

从键盘输入4个成绩。

C++资料复习

Output

输出平均成绩。保留一位小数。

Sample Input

88 91 80 79Sample Output 84.5HINT

Source NBU OJ

#include int main()

{int i, a[4],sum; sum=0;double ave; for(i=0;i<4;i++) { scanf(\"%d\ sum=sum+a[i];}

ave=sum/4.0;

printf(\"%.1lf\\n\return 0; }

1124 Problem D

Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 50 | Solved : 39 Description

有一个3*4的矩阵,要求编程求出其中值最大的那个元素,以及其所在的行号和列号。(如果最大数有多个,则显示第1个出现的数据的信息)

Input

从键盘输入12个数字组成一个3*4的矩阵。

Output

输出矩阵中最大值,以及其所在的行号和列号。如有多个最大值,则显示第1个出现的。

Sample Input 1 2 9 3

C++资料复习

5 3 4 2

0 6 9 1Sample Output 9 0 2HINT

Source NBU OJ

#include void main() { int a[3][4],max=0; int i,j,row,column; for(i=0;i<3;i++) for(j=0;j<4;j++) { scanf(\"%d\ if(max1125 Problem B

Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 46 | Solved : 42 Description

输入3*3的 二维数组,求每行元素的平均值。

Input

输入3*3个数据。

Output

输出每行的平均值。每个数据各占一行。保留1位小数。

C++资料复习

Sample Input 95 68 78 65 77 88

94 82 73Sample Output 80.3 76.7

83.0HINT

Source NBU OJ

#include void main() { int a[3][3]; int i,j,k=0; double sum=0,ave,b[3]; for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf(\"%d\ sum += a[i][j]; } ave = sum/j; b[k++] = ave; sum=ave=0; } for(i=0;i<3;i++) printf(\"%.1lf\\n\ }

1126 Problem C

Time Limit : 1000 MS | Memory Limit : 32768 KB

C++资料复习

Submits : 65 | Solved : 41 Description

从键盘输入数值,构成一个3行4列的二维整型数组,对每个元素执行加1操作,然后输出该数组的内容。

Input

输入3行4列的二维数组。

Output

按行列形式输出操作后的数组。

Sample Input 1 2 3 4 5 6 7 8

9 10 11 12Sample Output 2 3 4 5 6 7 8 9

10 11 12 13 HINT

Source NBU OJ

#include void main() { int a[3][4]; int i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) { scanf(\"%d\ a[i][j] += 1; } for(i=0;i<3;i++) { for(j=0;j<4;j++) printf(\"%d \ printf(\"\\n\"); } }

C++资料复习

1127 Problem A

Time Limit : 1000 MS | Memory Limit : 32768 KB Submits : 54 | Solved : 42 Description

输入m行n列的二维数组的值,再按行列形式输出。

Input

第一行输入m,n代表行数和列数。接着输入具体的m*n个元素。

Output

按行列形式换行输出。每一个数据后面都有空格,一行输出完毕后换行。

Sample Input 2 5

1 4 6 23 1

1 -5 2 4 6Sample Output 1 4 6 23 1

1 -5 2 4 6HINT

Source NBU OJ

#include void main() { int m,n,i,j; int num[100][100]; scanf(\"%d%d\ for(i=0;iC++资料复习

1128 Problem B

Description

从键盘输入若干同学的成绩,计算他们的平均分。当输入负数时结束输入。

Input

输入若干整数,以负数作为结束标记。

Output

计算平均分(不包括负数),输出保留1位小数。

Sample Input

70 80 90 80 60 -9

Sample Output

76.0

HINT Source

NBU OJ

#include int main() { int C[1000],i,sum=0; for(i=0;;i++) { scanf(\"%d\ if(C[i]<0) break; else sum+=C[i]; } printf(\"%.1lf\\n\ return 0; }

C++资料复习

1129 Problem C

Description

杨辉三角的历史悠久,是我国古代数学家杨辉揭示二项展开式各项的系数的数字三角形。

从键盘输入一个整数n,输出如下所示的n行的杨辉三角形。下图是n为5时的杨辉三角形。

Input

输入一个整数n。(1<=n<=15)。

Output

输出n行的杨辉三角形。

Sample Input

5

Sample Output

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

HINT

每一个数据的后面都有空格。

Source

NBU OJ

#include #define N 100 int main() {

C++资料复习

int j,i,c; scanf(\"%d\ int a[N][N]; for(i=0;ifor(i=2;ia[i][j]=a[i-1][j]+a[i-1][j-1]; for(i=0;i1130Problem F

Description

擎天柱最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里单词的总数。下面你的任务是帮助擎天柱解决这个问题。

Input

输入一行字符表示一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到换行符时表示输入结束,文章最多由1000个字符组成。

Output

输出一个整数,代表一篇文章里单词的总数。

Sample Input

you are my friend

Sample Output

4

C++资料复习

HINT Source

NBU OJ

#include int main() { int number=0,i,isword=0; char str[1000]; char ch; gets(str);

for(i=0;str[i]!='\\0';i++) { ch=str[i]; if(ch==' ') isword=0; else if(isword==0) { isword=1;number++; } } printf(\"%d\\n\ return 0; }

1131 Problem A

Description

输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格同学的个数。

Input

输入一个正整数n表示学生的个数,再输入n个学生的成绩。

Output

输出分两行。

第一行输出平均分(保留1位小数)。

C++资料复习

第二行输出不及格同学的个数。不及格人数为0时也要输出。

Sample Input

3

90 90 50

Sample Output

76.7 1

HINT

学生成绩可能带小数

Source

NBU OJ

1000

#include #define n 1000 void main() { double a[n],s=0,t; int i,x,y=0; scanf(\"%d\ for(i=0;i1132 Problem G

C++资料复习

Description

求出二维数组每行的最大元素。

Input

输入一个3*4的二维数组。

Output

输出每行的最大值。各占一行。

Sample Input

1 3 5 7 2 6 9 2 11 4 6 5

Sample Output

7 9 11

HINT Source

NBU OJ

1006

#include #define n 3 #define m 4 void main() { int f[3][4],i,j,t; for(i=0;it) t=f[i][j];

C++资料复习

}

}

}

printf(\"%d\\n\

1133 Problem H

Description

有一个长度为n数组,需要将数组中从指定位置m开始的k个元素倒放在原来的数组中。

Input

第一行输入n,m,k (1<=n<=50)。 第二行输入数组中的n个数。

m代表元素的实际位置而不是在数组中的下标值。

Output

输出倒置后的数组。

Sample Input

13 3 11

1 2 3 4 5 6 7 8 9 10 11 12 13

Sample Output

1 2 13 12 11 10 9 8 7 6 5 4 3

HINT

C++资料复习

最后一个数据的后面直接换行。

Source

NBU OJ

1007

#include #define N 50 void main() { int f[N],j,n,i,y,m,k,t=0; scanf(\"%d%d%d\ for(i=0;i1134 Problem I

Description

1202年,意大利数学家斐波那契(Fibonacci)出版了他的《计算之书》,在书中提到了一个关于兔子繁殖的问题:如果一对兔子,过一个月之后长成大兔子,到第三个月就可以生下一对兔子并且以后每个月都生下一对兔子,而所生的一对小兔子也

C++资料复习

同样到一个月之后长成大兔子,到第三个月就可以生下一对小兔并且以后每个月都会生一对。假如兔子都不死,问第n个月的时候兔子的总对数为多少?

Input

输入一个整数n( 0 < n < =50)

Output

输出第n个月兔子的对数

Sample Input

6

Sample Output

8

HINT

数据量会超出int范围,建议用double或长整型

Source

NBU OJ

1008

#include #define n 1000 void main() { double a[n]; int i,x; scanf(\"%d\ if(x<=1) a[0]=a[1]=1; else { a[0]=a[1]=1; for(i=2;iC++资料复习

}

1135 Problem J

Description

判断[ k1,k2]之间有多少个素数(包含k1和k2),并输出这些素数。 ( 1 <= k1 < k2 <= 1000 )

Input

输入两个正整数k1和k2。

Output

输出两行信息,第一行是[k1,k2]之间素数个数,第二行输出所有素数。素数之间用空格分开。

Sample Input

1 10

Sample Output

4

2 3 5 7

HINT

最后一个素数的后面直接换行,不需要再加空格。

Source

NBU OJ

1009

#include int main() {

int x,y,i,a,t,d=0,v=0; scanf(\"%d%d\ for (i=x;i<=y;i++) {

t=0;

for(a=1;a<=i;a++) {

C++资料复习

if(i%a==0) t++; }

if(t==2) d++; }

printf(\"%d\\n\ for(i=x;i<=y;i++) {

t=0;

for(a=1;a<=i;a++) {

if(i%a==0) t++; }

if(t==2) {

v++; if(vprintf(\"%d \ else if (v==d) {

printf(\"%d\} }

printf(\"\\n\"); return 0; }

1136 Problem L

Description

已知一维数组中的10个元素各不相同,查找数组中是否存在值为key的数组元素。如果有,输出相应的下标,否则输出not found。已知数组无序排列。

Input

先从键盘输入10个整数。然后再输入一个待查找的数据key。

C++资料复习

Output

若存在,则输出该数所在位置的下标值。若不存在则输出\"not found\"(输出不包含双引号)。

Sample Input

6 70 -9 80 83 54 3 88 10 2 80

Sample Output

3

HINT

数组的下标从0开始

Source

NBU OJ

1011

#include void main() { int f[10],i,x,c=0; for(i=0;i<10;i++) scanf(\"%d\ scanf(\"%d\ for(i=0;i<10;i++) { if(x==f[i]) {printf(\"%d\\n\ break;} else c++; } if(c==10) printf(\"not found\\n\"); }

1012

#include #define N 11 void main()

C++资料复习

{ int f[N],i,j,a; for(i=0;i<10;i++) scanf(\"%d\ scanf(\"%d\ for(i=0;i=i;j--) f[j+1]=f[j]; f[i]=a; }

for(i=0;i1137 Problem N

Description

已知一维数组中的10个元素各不相同,但已按升序排列。查找数组中是否存在值为key的数组元素。如果有,输出相应的下标,否则输出not found。你有什么好方法吗?

Input

先从键盘输入10个升序排列的整数,然后再输入一个待查找的数据key。

Output

输出对应结果。若不存在则输出not found.

Sample Input

6 7 9 10 16 18 20 35 141 150 21

Sample Output

not found

HINT Source

C++资料复习

NBU OJ

1013

#include void main() { int f[10],i,x,c=0; for(i=0;i<10;i++) scanf(\"%d\ scanf(\"%d\ for(i=0;i<10;i++) { if(x==f[i]) {printf(\"%d\\n\ break;} else c++; } if(c==10) printf(\"not found\\n\"); }

1138 Problem O

Description

找出一个2维数组矩阵的鞍点,即该位置上的元素在该行中最大,在该列中最小,可能不存在鞍点,如果存在多个,输出最小的那个!

Input

输入 n,m表示二维矩阵的行数和列数,然后根据行列数输入n*m个数据构成一个二维矩阵。

Output

如果存在鞍点,则输出该鞍点的值,如果不存在则输出not exist。

Sample Input

4 5

C++资料复习

1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20

Sample Output

5

HINT Source

NBU OJ

1014

#include int main()

{ int a[100][100],row,col;

int i,j,k,max,maxj,flag1=1,flag2;

scanf(\"%d%d\ for(j=0;jfor(j=0;jfor(k=0,flag1=1;ka[k][maxj]) flag1=0;if(flag1) { printf(\"%d\\n\ if(flag2==0) printf(\"not exist\\n\");}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务