文档库 最新最全的文档下载
当前位置:文档库 › 浙江大学C语言上机考试题库

浙江大学C语言上机考试题库

浙江大学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

输出

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

相关文档