上机考试练习题
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;