温成绩转换c语言浙大,浙江大学城市学院C语言期末上机考试题库之一

20021程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入 x,计算并输出下列分段函数 f(x) 的值(保留1位小数)。

当 x 不等于0时,y = f(x) = 1/x,当 x 等于0时,y =

f(x) = 0。

输入输出示例:括号内是说明

输入

2 (repeat=2)

10 (x=10)

0 (x=0)

输出

f(10.00) = 0.1

f(0.00) = 0.0

#include

int main(void)

{

int repeat,

ri;

double x,

y;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%lf", &x);

if(x!=0) y=1/x;

else y=0;

printf("f(%.2f) = %.1f\n", x,

y);

}

}

20022程序填空,不要改变与输入输出有关的语句。

输入华氏温度,输出对应的摄氏温度。计算公式:c =

5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。

输入输出示例:括号内为说明

输入

150 (fahr=150)

输出

celsius = 65

#include

int main(void)

{

int celsius,

fahr;

scanf(“%d”,&fahr);

celsius=5.0*(fahr-32)/9;

printf("celsius = %d\n",

celsius);

}

20023程序填空,不要改变与输入输出有关的语句。

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

rate,根据下列公式计算存款到期时的利息 interest(税前),输出时保留2位小数。

interest = money(1+rate)^year -

money

输入输出示例:括号内为说明

输入

1000 3

0.025 (money = 1000, year = 3,

rate = 0.025)

输出

interest = 76.89

#include

#include

int main(void)

{

int money,

year;

double interest, rate;

scanf(“%d%d%lf”,&money,&year,&rate);

interest=money*pow((1+rate),year)-money;

printf("interest = %.2f\n", interest);

}

20024程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入 x,计算并输出下列分段函数 f(x) 的值(保留2位小数),请调用

sqrt 函数求平方根,调用 pow 函数求幂。

当x >= 0时,f(x) =

x^0.5,当x小于0时,f(x) = (x+1)^2 + 2x + 1/x。

输入输出示例:括号内是说明

输入

3 (repeat=3)

10

-0.5

0

输出

f(10.00) = 3.16

f(-0.50) = -2.75

f(0.00) = 0.00

#include

#include

int main(void)

{

int repeat,

ri;

double x,

y;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%lf", &x);

if(x>=0) y=sqrt(x);

else y=pow((x+1),2)+2*x+1/x;

printf("f(%.2f)

= %.2f\n", x,

y);

}

}

20025程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入实数 x,计算并输出下列分段函数 f(x)

的值,输出时保留1位小数。

当 x 不等于10时,y = f(x) = x,当 x 等于10时,y =

f(x) = 1/x。

输入输出示例:括号内是说明

输入

2 (repeat=2)

10

234

输出

f(10.0) = 0.1

f(234.0) = 234.0

#include

int main(void)

{

int repeat,

ri;

double x,

y;

scanf("%d",

&repeat);

for(ri = 1; ri <=

repeat; ri++){

scanf("%lf", &x);

if(x!=10) y=x;

else y=1/x;

printf("f(%.1f) = %.1f\n", x,

y);

}

}

20026程序填空,不要改变与输入输出有关的语句。

输入2个整数 num1 和

num2,计算并输出它们的和、差、积、商与余数。

输出两个整数的余数可以用 printf("%d %% %d = %d\n",

num1, num2, num1%num2);

输入输出示例:括号内是说明

输入

5

3 (num1=5,num2=3)

输出

5 + 3 = 8

5 - 3 = 2

5 * 3 = 15

5 / 3 = 1

5 % 3 = 2

#include

int main(void)

{

int num1, num2;

scanf("%d%d",

&num1,&num2);

printf("%d + %d = %d\n", num1, num2, num1+num2);

printf("%d - %d = %d\n", num1, num2, num1-num2);

printf("%d * %d = %d\n", num1, num2, num1*num2);

printf("%d / %d = %d\n", num1, num2, num1/num2);

printf("%d %% %d = %d\n", num1, num2, num1%num2);

return 0;

}

20031程序填空,不要改变与输入输出有关的语句。

计算表达式 1 + 2 + 3 + ...... + 100的值。

输出示例:

sum = 5050

#include

int main(void)

{

int i, sum;

sum=0;

for(i=1;i<=100;i++)

sum=sum+i;

printf("sum

= %d\n", sum);

}

20032程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入一个正整数m(0<=m<=100),计算表达式 m + (m+1) +

(m+2) + ...... + 100的值。

输入输出示例:括号内为说明

输入

3 (repeat=3)

0 (计算0+1+2+...+100)

10 (计算10+11+12+...+100)

50 (计算50+51+52+...+100)

输出

sum = 5050

sum = 5005

sum = 3825

#include

int main(void)

{

int i, m,

sum;

int repeat,

ri;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &m);

sum=0;

for(i=m;i<=100;i++)

sum=sum+i;

printf("sum = %d\n", sum);

}

}

20033程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入2个正整数 m 和

n(m<=n),计算表达式 1/m + 1/(m+1) + 1/(m+2) + ...... +

1/n的值,输出时保留3位小数。

输入输出示例:括号内为说明

输入

3 (repeat=3)

5

15 (计算1/5+1/6+1/7+...+1/15)

10

20 (计算1/10+1/11+1/12+...+1/20)

1

3 (计算1+1/2+1/3)

输出

sum = 1.235

sum = 0.769

sum = 1.833

#include

int main(void)

{

int i, m,

n;

int repeat,

ri;

double

sum;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d%d", &m, &n);

sum=0;

for(i=m;i<=n;i++)

sum=sum+1.0/i;

printf("sum = %.3f\n", sum);

}

}

20034程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入一个正整数 n,计算表达式 1 + 1/3 + 1/5 + ......

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

输入输出示例:括号内为说明

输入

2 (repeat=2)

5 (计算1+1/3+1/5+1/7+1/9)

23 (计算1+1/3+1/5+...+1/45)

输出

sum = 1.787302

sum = 2.549541

#include

int main(void)

{

int i,

n;

int repeat,

ri;

double

sum;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &n);

sum=0;

for(i=1;i<=n;i++)

sum=sum+1.0/(2*i-1);

printf("sum = %.6f\n", sum);

}

}

20035程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

读入一个正整数 n,计算1-1/4+1/7-1/10+……的前 n

项之和,输出时保留3位小数。

输入输出示例:括号内是说明

输入

2 (repeat=2)

3

10

输出

sum = 0.893

sum = 0.819

#include

int main(void)

{

int flag, i,

n, t;

int repeat,

ri;

double item,

sum;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d",

&n);

sum=0;flag=1;item=0;t=1;

for(i=1;i<=n;i++)

{ item=flag*1.0/t;

sum=sum+item;

flag=-flag;

t=t+3;

}

printf("sum = %.3f\n", sum);

}

}

20036程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

读入2个整数 lower 和

upper,输出一张华氏—摄氏温度转换表,华氏温度的取值范围是[lower, upper],每次增加2F。

计算公式:c = 5 * (f - 32) /

9,其中:c表示摄氏温度,f表示华氏温度。

输出请使用语句 printf("%3.0f %6.1f\n", fahr,

celsius);

输入输出示例:括号内是说明

输入

2 (repeat=2)

32

35 (lower=32,upper=35)

40

30 (lower=40,upper=30)

输出

fahr celsius

32 0.0

34 1.1

fahr celsius

#include

int main(void)

{

int lower,

upper;

int repeat,

ri;

double

celsius, fahr;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d%d", &lower, &upper);

printf("fahr celsius\n");

for(fahr=lower;fahr<=upper;fahr=fahr+2){

celsius=5 * (fahr- 32) / 9;

printf("%3.0f %6.1f\n", fahr, celsius);

}

}

}

20037程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入2 个正整数 m 和 n,计算 m!+n!。

输入输出示例:括号内是说明

输入:

2 (repeat=2)

1

4 (m=1,n=4)

3

8 (m=3,n=8)

输出:

1! + 4! = 25

3! + 8! = 40326

#include "stdio.h"

int main(void)

{

int i, m,

n;

int repeat,

ri;

double fm,

fn;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d%d", &m, &n);

fm=fn=1;

for(i=1;i<=m;i++)

fm=fm*i;

for(i=1;i<=n;i++)

fn=fn*i;

printf("%d! + %d! = %.0f\n", m, n, fm+fn);

}

}

20038程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

读入1 个实数x和正整数

n(n<=50),计算并输出 x 的 n 次幂(保留2位小数),不允许调用pow函数求幂。

输入输出示例:括号内是说明

输入

2 (repeat=2)

1.5

2 (x=1.5,n=2)

2

7 (x=2,n=7)

输出

2.25

128.00

#include

int main(void)

{

int i,

n;

int repeat,

ri;

double

mypow, x;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%lf%d", &x, &n);

mypow=1;

for(i=1;i<=n;i++)

mypow = mypow*x;

printf("%.2f\n", mypow);

}

}

20041程序填空,不要改变与输入输出有关的语句。

输入一个正整数n,生成一张3的乘方表,输出3^0 ~

3^n的值,可调用幂函数计算3的乘方。

输出使用语句 printf("pow(3,%d) = %.0f\n", i,

mypow);

输入输出示例:括号内是说明

输入

3 (n=3)

输出

pow(3,0) = 1

pow(3,1) = 3

pow(3,2) = 9

pow(3,3) = 27

#include

#include

int main(void)

{

int i, n;

double

mypow;

scanf("%d", &n);

for(i=0;i<=n;i++){

mypow=pow(3,i);

printf("pow(3,%d) = %.0f\n", i, mypow);

}

return 0;

}

20042程序填空,不要改变与输入输出有关的语句。

输入一个正整数n,生成一张阶乘表,输出 1! ~ n!

的值,要求定义和调用函数fact(n)计算 n!,函数类型为double。

输出使用语句 printf("%d! = %.0f\n", i,

myfact);

输入输出示例:括号内是说明

输入

3 (n=3)

输出

1! = 1

2! = 2

3! = 6

#include

int main(void)

{

int i,

n;

double

myfact;

double

fact(int n);

scanf("%d", &n);

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

myfact=fact(i);

printf("%d! = %.0f\n", i, myfact);

}

return 0;

}

double fact(int n)

{

int i;

double f=1;

for(i=1;i<=n;i++)

f=f*i;

return f;

}

20043程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入2个正整数 m 和 n(m<=n),计算

n! /(m!* (n-m)!) 。

要求定义并调用函数fact(n)计算n的阶乘, 其中 n 的类型是

int,函数类型是 double。

例:括号内是说明

输入:

2 (repeat=2)

2

7 (m=2,

n=7)

5

12 (m=5, n=12)

输出:

result = 21

result = 792

#include "stdio.h"

double fact(int n);

int main(void)

{

int m,

n;

int repeat,

ri;

double

s;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d%d", &m, &n);

s= fact(n)/(fact(m)*fact(n-m));

printf("result = %.0f\n", s);

}

return 0;

}

double fact(int n)

{

int i;

double f=1;

for(i=1;i<=n;i++)

f=f*i;

return f;

}

20044程序填空,不要改变与输入输出有关的语句。

计算

100^0.5+101^0.5+……+1000^0.5的值(保留2位小数),可调用sqrt函数计算平方根。

输入输出示例:括号内是说明

输出

sum = 20435.99

#include

#include

int main(void)

{

int i;

double

sum;

sum=0;;

for(i=100;i<=1000;i++)

sum=sum+sqrt(i);

printf("sum

= %.2f\n", sum);

}

30001程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入参数a,b,c,求一元二次方程a*x*x+b*x+c=0的根,结果保留2位小数。

输出使用以下语句:

printf("参数都为零,方程无意义!\n");

printf("a和b为0,c不为0,方程不成立\n");

printf("x = %0.2f\n", -c/b);

printf("x1 = %0.2f\n",

(-b+sqrt(d))/(2*a));

printf("x2 = %0.2f\n",

(-b-sqrt(d))/(2*a));

printf("x1 = %0.2f+%0.2fi\n", -b/(2*a),

sqrt(-d)/(2*a));

printf("x2 = %0.2f-%0.2fi\n", -b/(2*a),

sqrt(-d)/(2*a));

输入输出示例:括号内为说明

输入:

5 (repeat=5)

0 0 0

(a=0,b=0,c=0)

0 0

1 (a=0,b=0,c=1)

0 2

4 (a=0,b=2,c=4)

2.1 8.9

3.5 (a=2.1,b=8.9,c=3.5)

1 2

3 (a=1,b=2,c=3)

输出:

参数都为零,方程无意义!

a和b为0,c不为0,方程不成立

x = -2.00

x1 = -0.44

x2 = -3.80

x1 = -1.00+1.41i

x2 = -1.00-1.41i

#include

#include

int main(void)

{

int repeat,

ri;

double a, b,

c, d;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%lf%lf%lf", &a, &b,

&c);

d=b*b-4*a*c;

if(a==0)

if(b==0)

if(c==0)

printf("参数都为零,方程无意义!\n");

else

printf("a和b为0,c不为0,方程不成立\n");

else printf("x = %0.2f\n", -c/b);

else if(d>=0){

printf("x1 = %0.2f\n",

(-b+sqrt(d))/(2*a));

printf("x2 = %0.2f\n",

(-b-sqrt(d))/(2*a));

}

else

{ printf("x1 = %0.2f+%0.2fi\n", -b/(2*a),

sqrt(-d)/(2*a));

printf("x2 = %0.2f-%0.2fi\n", -b/(2*a),

sqrt(-d)/(2*a));

}

}

}

30002程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入一个整数 x,计算并输出下列分段函数 sign(x) 的值。

-1 x < 0

y = sign(x) = 0

x = 0

1

x > 0

输入输出示例:括号内是说明

输入

3 (repeat=3)

10 (x=10)

0 (x=0)

-98 (x=-98)

输出

sign(10) =

1 (x = 10时 y

= 1)

sign(0) =

0 (x = 0时 y = 0)

sign(-98) = -1 (x =

-98时y = -1)

#include

int main(void)

{

int repeat,

ri;

int x,

y;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &x);

if(x>0) y=1;

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

else y=-1;

printf("sign(%d) = %d\n", x, y);

}

return 0;

}

30003程序填空,不要改变与输入输出有关的语句。

输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

输入输出示例:括号内是说明

输入

Reold 123?

输出

letter = 5, blank = 1, digit = 3, other

= 1

#include

int main(void)

{

char c;

int blank,

digit, i, letter, other;

blank =

digit = letter = other =

0;

for(i = 1; i <=

10; i++){

c = getchar();

if((c >= 'a' && c

<= 'z' ) || ( c >= 'A'

&& c <= 'Z'))

letter ++;

else if(c

>='0'&&c<='9')

digit ++;

else if(c == ' ' || c == '\n')

blank ++;

else other ++;

}

printf("letter = %d, blank = %d, digit

= %d, other = %d\n", letter, blank, digit, other);

return 0;

}

30004程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间,要求使用switch语句。

五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),如果输入不正确的成绩,显示"Invalid

input"。

输出使用以下语句:

printf("90-100\n");

printf("80-89\n");

printf("70-79\n");

printf("60-69\n");

printf("0-59\n");

printf("Invalid input\n");

输入输出示例:括号内是说明

输入

6ABCDEj (repeat=6,输入的五级成绩分别为A、B、C、D、E和无效的字符j)

输出

90-100

80-89

70-79

60-69

0-59

Invalid input (输入数据不合法)

#include

int main(void)

{

char ch;

int repeat,

ri;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

ch =

getchar();

switch(ch) {

case 'A’:

printf("90-100\n");break;

case 'B':

printf("80-89\n");break;

case 'C' :

printf("70-79\n");break;

case 'D' : printf("60-69\n");break;

case 'E' : printf("0-59\n"); break;

default: printf("Invalid input\n"); break;

}

}

return 0;

}

30005程序填空,不要改变与输入输出有关的语句。

查询水果的单价。有4种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤和10.20元/公斤。

在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。

当用户输入编号1~4,显示相应水果的单价(保留1位小数);输入0,退出查询;输入其他编号,显示价格为0。

输入输出示例:括号内是说明

输入

3 (oranges的编号)

0 (退出查询)

输出

[1] apples

[2] pears

[3] oranges

[4] grapes

[0] Exit

price = 4.1

[1] apples

[2] pears

[3] oranges

[4] grapes

[0] Exit

#include

int main(void)

{

int choice,

i;

double

price;

for(i = 1; i

<= 5; i++){

printf("[1] apples\n");

printf("[2] pears\n");

printf("[3] oranges\n");

printf("[4] grapes\n");

printf("[0] Exit\n");

scanf("%d", &choice);

if(choice == 0)

break;

else{

switch (choice)

{

case 1: price=3.0; break;

case 2: price=2.5; break;

case 3: price=4.1; break;

case 4: price=10.2; break;

default: price=0.0; break;

}

printf("price

= %0.1f\n", price);

}

return

0;

}

30006程序填空,不要改变与输入输出有关的语句。

输入5个学生的数学成绩,判断他们的成绩是否及格。如果成绩低于60,输出"Fail",否则,输出"Pass"。

输入输出示例:括号内是说明

输入

61

59

92

40

60

输出

Pass

Fail

Pass

Fail

Pass

#include

int main(void)0

{

int i,

mark;

for(i = 1; i

<= 5; i++){

scanf("%d", &mark);

if(mark>=60) printf(“Pass\n”);

else printf(“Fail\n”);

}

}

30007程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

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

和周长 perimeter(保留2位小数);否则,输出"These sides do not correspond to a

valid triangle"。

在一个三角形中,任意两边之和大于第三边。三角形面积计算公式:area =

(s(s-a)(s-b)(s-c))^0.5 ,其中s = (a+b+c)/2

输出使用以下语句:

printf("area = %.2f, perimeter =

%.2f\n",area, perimeter);

printf("These sides do not correspond

to a valid triangle\n");

输入输出示例:括号内是说明

输入

2 (repeat=2)

5 5

3 (a=5,b=5,c=3)

1 4

1 (a=1,b=4,c=1)

输出

area = 7.15, perimeter = 13.00

These sides do not correspond to a

valid triangle

#include

#include

int main(void)

{

int a, b,

c;

int repeat,

ri;

double area,

perimeter, s;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d%d%d", &a, &b,

&c);

if(a+b>c&&b+c>a&&c+a>b)

{  perimeter=a+b+c;

s= perimeter/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("area = %.2f, perimeter =

%.2f\n",area, perimeter);

}

else

printf("These sides do not correspond to a valid triangle\n");

}

return 0;

}

30008程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入一个职工的月薪 salary,输出应交的个人所得税

tax(保留2位小数)。

计算公式:tax = rate * (salary - 850)

当 salary ≤850 时,rate = 0

当 850 < salary ≤ 1350 时,rate = 5%

当 1350 < salary≤ 2850

时,rate = 10%

当 2850 < salary ≤ 5850 时,rate = 15%

当 5850 < salary 时,rate = 20%

输入输出示例:括号内是说明

输入

5 (repeat=5)

1010.87 (salary=1010.87)

32098.76 (salary=32098.76)

800 (salary=800)

4010 (salary=4010)

2850 (salary=2850)

输出

tax = 8.04

tax = 6249.75

tax = 0.00

tax = 474.00

tax = 200.00

#include

int main(void)

{

int repeat,

ri;

double rate,

salary, tax;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%lf", &salary);

if(salary<=850) rate=0;

else

if(salary<=1350) rate=0.05;

else

if(salary<=2850) rate=0.1;

else

if(salary<=5850) rate=0.15;

else rate=0.2;

tax = rate * (salary

- 850);

printf("tax

= %0.2f\n", tax);

}

}

30009程序填空,不要改变与输入输出有关的语句。

输入一个正整数 n,再输入 n

个学生的百分制成绩,统计各等级成绩的个数。成绩等级分为五级,分别为A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59)。

输入输出示例:括号内是说明

输入

5 (n=5)

77 54 92 73 60

输出

Number of A(90-100): 1

Number of B(80-89): 0

Number of C(70-79): 2

Number of D(60-69): 1

Number of E(0-59): 1

#include

int main(void)

{

int i, mark,

n;

int na, nb,

nc, nd, ne;

scanf("%d",&n);

na = nb = nc

= nd = ne = 0;

for(i = 1; i

<= n; i++){

scanf("%d", &mark);

if(mark >=90) na++;

else if(mark >=80)

nb++;

else if(mark >=70)

nc++;

else if(mark >=60)

nd++;

else ne++;

}

printf("Number of A(90-100): %d\n", na);

printf("Number of B(80-89): %d\n", nb);

printf("Number of C(70-79): %d\n", nc);

printf("Number of D(60-69): %d\n", nd);

printf("Number of E(0-59): %d\n", ne);

}

30010程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入一个形式如"操作数

运算符操作数"的表达式,对2个整数进行乘、除和求余运算。

输出使用以下语句:

printf("%d * %d = %d\n", x, y, x *

y);

printf("%d / %d = %d\n", x, y, x /

y);

printf("%d Mod %d = %d\n",x, y, x %

y);

printf("Invalid operator\n");

输入输出示例:括号内是说明

输入

4 (repeat=4)

21*8

21/8

21%8

21!8

输出

21 * 8 = 168

21 / 8 = 2

21 Mod 8 = 5

Invalid operator

#include

int main(void)

{

char

sign;

int x,

y;

int repeat,

ri;

scanf("%d",&repeat);

for(ri =

1;ri <= repeat; ri++){

scanf("%d%c%d", &x, &sign,

&y);

switch(sign){

case ‘*’: printf("%d * %d = %d\n", x, y, x * y);break;

case ‘/’: printf("%d / %d = %d\n", x, y, x / y); break;

case ‘%’: printf("%d Mod %d = %d\n", x, y, x % y); break;

default: printf("Invalid operator\n"); break;

}

}

return 0;

}

40011程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入两个正整数m和n,输出它们的最小公倍数和最大公约数。

输入输出示例:括号内为说明

输入:

3 (repeat=3)

3

7 (m=3,n=7)

24

4 (m=24,n=4)

24

18 (m=24,n=18)

输出:

21 is the least common multiple of 3

and 7, 1 is the greatest common divisor of 3 and 7.

24 is the least common multiple of 24

and 4, 4 is the greatest common divisor of 24 and 4.

72 is the least common multiple of 24

and 18, 6 is the greatest common divisor of 24 and 18.

#include

int main(void)

{

int gcd, lcm, m,

n;

int repeat,

ri;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &m);

scanf("%d", &n);

if(m <= 0 || n <= 0)

printf("m <= 0 or n <= 0");

else{

for(lcm=m;lcm%n!=0;lcm=lcm+m)

;

gcd= m*n/lcm;

}

printf("%d is the least common multiple of %d and %d, %d is the

greatest common divisor of %d and %d.\n", lcm, m, n, gcd, m,

n);

}

return

0;

}

40012程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

读入1个正实数 eps,计算并输出下式的值,精确到最后一项的绝对值小于

eps(保留6位小数)。请使用 while 语句实现循环。

求1-1/4+1/7-1/10+1/13-1/16+……。

输入输出示例:括号内是说明

输入

2 (repeat=2)

1E-4 (eps=1E-4)

0.1 (eps=0.1)

输出

sum = 0.835699

sum = 0.869780

#include

#include

int main(void)

{

int

denominator, flag;

int repeat,

ri;

double eps,

item, sum;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%le", &eps);

sum=0; denominator =1;flag=1;item=1;

while(fabs(item)>=eps)

{ item= flag*1.0/ denominator;

sum=sum+item;

denominator = denominator +3;

flag=-flag;

}

printf("sum = %.6f\n", sum);

}

}

40013程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

读入一批正整数(以零或负数为结束标志),求其中的奇数和。请使用while语句实现循环。

输入输出示例:括号内是说明

输入

2 (repeat=2)

1 3 90 7 0

8 7 4 3 70 5 6 101 -1

输出

The sum of the odd numbers is 11.

The sum of the odd numbers is 116.

#include

int main(void)

{

int x,

sum;

int repeat,

ri;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &x);

sum=0;

while(x>0)

{

if(x%2) sum=sum+x;

scanf("%d",

&x);

}

printf("The sum of the odd numbers is %d.\n",

sum);

}

}

40014程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入一个整数

in,求它的位数。例如123的位数是3。请使用do-while语句实现循环。

输入输出示例:括号内是说明

输入

4 (repeat=4)

12345 (in=12345)

-100 (in=-100)

-1 (in=-1)

1290 (in=1290)

输出

count = 5

(12345的位数是5)

count = 3

(-100的位数是3)

count = 1

(-1的位数是1)

count = 4

(99的位数是2)

#include

int main(void)

{

int count,

in;

int repeat,

ri;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d",

&in);

count =0;

if(in<0) in=-in;

do{

count ++;

in=in/10;

}while(in);

printf("count = %d\n",

count);

}

}

40015程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入一个正整数n, 再输入n个整数,输出最小值。

输入输出示例:括号内是说明

输入

3 (repeat=3)

4 -2 -123 100 0

4 -9 -1 1 -8

3 5 3 1

输出

min = -123

min = -9

min = 1

#include

int main(void)

{

int i, min,

n, x;

int repeat,

ri;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &n);

scanf("%d",

&x);

min=x;

for(i=1;i

scanf("%d", &x);

if(x

printf("min = %d\n", min);

}

}

40016程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入一个整数 in,求它的位数以及各位数字之和。例如 123 的各位数字之和是

6,位数是 3。

输入输出示例:括号内是说明

输入

4 (repeat=4)

0 (in=0)

23456 (in=23456)

-100 (in=-100)

-1 (in=-1)

输出

count = 1, sum = 0

(0的位数是1,

各位数字之和是0)

count = 5, sum = 20

(23456的位数是5, 各位数字之和是20)

count = 3, sum = 1

(-100的位数是3,

各位数字之和是1)

count = 1, sum = 1

(-1的位数是1,

各位数字之和是1)

#include

int main(void)

{

int count,

in, sum;

int repeat,

ri;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &in);

count=sum=0;

if(in<0) in=-in;

if(in==0) {count=1;sum=0;}

while(in!=0)

{

sum=sum+in;

count++;

in=in/10;

}

printf("count = %d, sum = %d\n", count, sum);

}

}

40017程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入一个正整数 n,输出

2/1+3/2+5/3+8/5+……前n项之和,保留2位小数。(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)

输入输出示例:括号内是说明

输入

3 (repeat=3)

1 (n=1)

5 (n=5)

20 (n=20)

输出

sum =

2.00 (第1项是2.00)

sum =

8.39 (前5项的和是8.39)

sum = 32.66 (前20项的和是32.66)

#include

int main(void)

{

int i,

n;

int repeat,

ri;

double

denominator, numerator, sum, temp;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &n);

denominator=1; numerator =2;sum=0;

for(i=0;i

{ sum=sum+ numerator / denominator;

temp= numerator;

numerator = denominator +

numerator;

denominator =temp;

}

printf("sum =

%.2f\n",sum);

}

}

40018程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入2个正整数 a 和 n,求

a+aa+aaa+aa…a(n个a)之和。例如,输入 2 和 3,输出 246(2 + 22 + 222)。

输入输出示例:括号内是说明

输入

3 (repeat=3)

2

3 (a=2, n=3)

5

4 (a=5, n=4)

1

1 (a=1, n=1)

输出

sum =

246 (2+22+222)

sum =

6170 (5+55+555+5555)

sum =

1 (1)

#include

int main(void)

{

int a, i, n,

sn, tn;

int ri,

repeat;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%ld%d", &a, &n);

sn=0; tn=1;

for(i=0;i

sn=sn+tn;

tn=tn*10+1;

}

sn=sn*a;

printf("sum = %d\n", sn);

}

}

40019程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

皮球从

height(米)高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第 n

次落地时,在空中一共经过多少距离?第 n 次反弹的高度是多少?(输出保留1位小数)

输入输出示例:括号内是说明

输入

3 (repeat=3)

10 2 (height=10m, n=2)

4 1 (height=2m, n=1)

100

8 (height=100m, n=8)

输出

distance=20.0,

height=2.5 (第2次落地时,空中经过距离为20米, 第2次反弹高度为2.5米)

distance=4.0,

height=2.0 (第1次落地时,空中经过距离为4米,第1次反弹高度为2米)

distance=298.4,

height=0.4 (第8次落地时,空中经过距离为298.4米,第8次反弹高度为0.4米)

#include

int main(void)

{

int i,

n;

int repeat,

ri;

double

distance, height;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%lf%d", &height, &n);

distance = height ; height = height /2;

for(i=2;i<=n;i++){

distance = distance +2* height;

height = height

/2;

}

printf("distance = %.1f, height = %.1f\n",

distance, height);

}

}

40021程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入1个正整数n,计算下式的前n项之和(保留4位小数)。要求使用嵌套循环。

e

= 1+1/1!+1/2!+....+1/n!

输入输出示例:括号内为说明

输入:

2 (repeat=2)

2 (n=2)

10 (n=10)

输出:

e = 2.5000

e = 2.7183

#include "stdio.h"

int main(void)

{

int i, j,

n;

int repeat,

ri;

double e,

product;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &n);

e=1;

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

product =1;

for(j=1;j<=i;j++)

product = product *j;

e=e+1.0/ product ;

}

printf("e =

%0.4f\n", e);

}

}

40022程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat

(0

输入2个正整数 m 和 n(1<=m,

n<=500),输出 m 和 n

之间的所有素数,每行输出6个。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。

输出语句:printf("%d ", i);

输入输出示例:括号内为说明

输入:

2 (repeat=2)

1

35 (m=1, n=35)

2

10 (m=2,n=10)

输出:

primes:

(1到35之间的素数)

2 3 5 7 11 13

17 19 23 29 31

primes:

(2到10之间的素数)

2 3 5 7

#include "stdio.h"

#include "math.h"

int main(void)

{

int count,

i, j, k, m, n;

int

ri,repeat;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat;ri++){

scanf("%d%d", &m, &n);

printf("primes:\n");

if(m==1)

m=m+1;

count =0;

for (i =m ; i <=n ; i

++)

{ k =sqrt (i );

for (j=2;j<=k ;j++)

if (i %j ==0) break;

if (j>k ) {

printf("%d ",

i);

count++;

if(count%6==0) printf("\n");

}

}

printf("\n");

}

}

40023程序填空,不要改变与输入输出有关的语句。?

输入一个正整数 repeat

(0

将一笔零钱(大于8分,小于1元,

精确到分)换成5分、2分和1分的硬币。

输入金额,问有几种换法?针对每一种换法,输出各种面额硬币的数量和硬币的总数量,要求每种硬币至少有一枚。先输出硬币总数量少的换法。

输出使用语句:printf("fen5:%d,fen2:%d,fen1:%d,total:%d\n",fen5, fen2,

fen1, fen5+fen2+fen1);

输入输出示例:括号内为说明

输入:

2 (repeat=2)

10 (money=10分)

13 (money=13分)

输出:

fen5:1,fen2:2,fen1:1,total:4

fen5:1,fen2:1,fen1:3,total:5

count =

2 (10分有2种换法)

fen5:2,fen2:1,fen1:1,total:4

fen5:1,fen2:3,fen1:2,total:6

fen5:1,fen2:2,fen1:4,total:7

fen5:1,fen2:1,fen1:6,total:8

count =

4 (13分有4种换法)

#include "stdio.h"

int main(void)

{

int count,

fen1, fen2, fen5, money;

int repeat,

ri;

scanf("%d",

&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d", &money);

count=0;

for(fen1=1; fen1<=money;

fen1++)

for(fen2=1; fen2<=money/2;

fen2++)

for(fen5=1; fen5<=20/5;

fen5++)

if(fen1*1+ fen2*2+ fen5*5==money)

{count++;

printf("fen5:%d,fen2:%d,fen1:%d,total:%d\n",fen5, fen2, fen1,

fen5+fen2+fen1);

}

printf("count = %d\n", count);

}

}

#include "stdio.h"

int main(void)

{

int count, fen1, fen2, fen5, money;

int repeat, ri;

scanf("%d", &repeat);

for(ri = 1; ri <= repeat; ri++){

scanf("%d", &money);

count=0;

for(fen5= money/5; fen5>=1; fen5--)

for(fen2= money/2; fen2>=1; fen2--)

for(fen1=1; fen1< money ; fen1++)

if(fen1*1+ fen2*2+ fen5*5==money){

count++;

printf("fen5:%d,fen2:%d,fen1:%d,total:%d\n",fen5, fen2, fen1, fen5+fen2+fen1);

}

printf("count = %d\n", count);

}

}

40024程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入两个正整数 m 和 n(1<=m,

n<=1000),输出 m 到 n之间的所有满足各位数字的立方和等于它本身的数。

例如153的各位数字的立方和是 13+53+33=153。

输出使用语句:printf("%d\n", i);

输入输出示例:括号内为说明

输入:

2 (repeat=2)

100

400 (m=100, n=400)

1 100 (m=1,

n=100)

输出:

result:

153 (1*1*1+5*5*5+3*3*3=153)

370 (3*3*3+7*7*7=370)

371 (3*3*3+7*7*7+1*1*1=371)

result:

1 (1*1*1=1)

#include "stdio.h"

int main(void)

{

int i,

digit, m, n, number, sum;

int repeat,

ri;

scanf("%d",&repeat);

for(ri = 1;

ri <= repeat; ri++){

scanf("%d%d", &m, &n);

printf("result:\n");

for(i=m;i<=n; i++)

{  sum=0;number=i;

while (number)

{

digit =number ;

sum =sum +digit *digit *digit ;

number = number /10;

}

if(i==sum) printf(“%d\n”,i );

}

}

}

40025程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat

(0

输入两个正整数 m 和 n(1<=m,

n<=1000),输出 m 到

n之间的所有完数,并输出其因子。一个数如恰好等于它的因子之和,这个数称为完数,例如,6=1+2+3,其中1、2、3为因子,6为因子和。

输出使用以下语句:

printf("%d = 1", number);

printf(" + %d", factor);

printf("\n");

输入输出示例:括号内为说明

输入:

2 (repeat=2)

1

30 (m=1, n=30)

400

500 (m=400,

n=500)

输出

result:

1 = 1

6 = 1 + 2 + 3

28 = 1 + 2 + 4 + 7 + 14

result:

496 = 1 + 2 + 4

#include

int main(void)

{

int factor, m, n,

number, sum;

int repeat, ri;

scanf("%d",&repeat);

for(ri = 1; ri

<= repeat; ri++){

scanf("%d%d", &m, &n);

printf("result:\n");

for(factor=m;factor<=n;factor++)

{

sum=1;

for(number=2;number<=factor/2;number++)

if(factor%number==0) sum+=number;

if(sum==factor)

{

printf("%d =

1",factor);

for(number=2;number<=factor/2;number++)

if(factor%number==0)

printf(" + %d",number);

printf("\n");

}

}

}

}

50001

程序填空,不要改变与输入输出有关的语句。

从键盘输入一个正整数n,计算 n! 的值。要求定义和调用函数fact(n),计算n!,函数形参n的类型是int,函数类型是double。

输入输出示例:括号内是说明

5 (n=5)

5! = 120.000000

#include

int main(void)

{

int n;

double factorial;

double fact(int n);

scanf ("%d", &n);

factorial=fact(n);

printf("%d! = %f\n", n, factorial);

}

double fact(int n)

{ int i;double s=1;

for(i=1;i<=n;i++)

s=s*i;

return s;

}

50002

程序填空,不要改变与输入输出有关的语句。

输入一个正整数 repeat (0

输入1个整数 x,若 x 大于0,sign(x) = 1;若 x 等于0,sign(x) = 0;否则,sign(x) = -1,最后输出sign(x)的值。

要求定义和调用函数sign(x)实现该分段函数, 函数形参x的类型是int,函数类型是int。

输入输出示例:括号内是说明

输入

3 (repeat=3)

10 (x=10)

-5 (x=-5)

0 (x=0)

输出

sign(10) = 1 (x=10时sign(x)的值为1)

sign(-5) = -1 (x=-5时sign(x)的值为-1)

sign(0) = 0 (x=0时sign(x)的值为0)

#include

int sign(int x);

int main(void)

{

int x, y;

int repeat, ri;

scanf("%d", &repeat);

for(ri = 1; ri <= repeat; ri++){

scanf("%d",&x);

y=

sign(x);

printf("sign(%d) = %d\n", x, y);

}

}

int sign(int x)

{ if(x>0) return 1;

else if(x==0) return 0;

else return -1;

}

50003

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat (0

输入一批正整数(以零或负数为结束标志),求其中的奇数和。

要求定义和调用函数even(n) 判断数的奇偶性,当n为偶数时返回1,否则返回0,函数形参n的类型是int,函数类型是int。

输入输出示例:括号内是说明

输入

2 (repeat=2)

12 9 7 18 3 11 20 0

11 8 6 17 2 10 19 -1

输出

The sum of the odd numbers is 30.

The sum of the odd numbers is 47.

#include

int even(int n);

int main(void)

{

int n, sum;

int ri, repeat;

scanf("%d", &repeat);

for(ri = 1; ri <= repeat; ri++){

scanf("%d",&n);

sum=0;

while(n>0){

if(even(n)==0)

sum=sum+n;

scanf("%d",&n);

}

printf("The sum of the odd numbers is %d.\n", sum);

}

}

int even(int n)

{  if(n%2==0) return 1;

else return 0;

}

50004

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat (0

给定平面任意两点坐标 (x1, y1) 和 (x2, y2),求这两点之间的距离(保留2位小数)。

要求定义和调用函数 dist(x1, y1, x2, y2)计算两点间的距离,函数形参x1、y1、x2和y2的类型都是double,函数类型是double。

输入输出示例:括号内是说明

输入

1 (repeat=1)

10 10 (x1=10, y1=10)

200 100 (x2=200, y2=100)

输出

Distance = 210.24

#include

#include

double dist(double x1, double y1, double x2, double y2);

int main(void)

{

int repeat, ri;

double distance, x1, y1, x2, y2;

scanf("%d", &repeat);

for(ri = 1; ri <= repeat; ri++){

scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2);

distance=dist(x1,x2,y1,y2);

printf("Distance = %.2f\n", distance);

}

}

double dist(double x1, double x2,

double y1, double y2)

{

return sqrt(pow((x1-x2),2)+pow((y1-y2),2));

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值