浙江大学城市学院C语言期末上机考试题库_

上传人:r****d 文档编号:95645270 上传时间:2022-05-24 格式:DOC 页数:121 大小:293.50KB
返回 下载 相关 举报
浙江大学城市学院C语言期末上机考试题库__第1页
第1页 / 共121页
浙江大学城市学院C语言期末上机考试题库__第2页
第2页 / 共121页
浙江大学城市学院C语言期末上机考试题库__第3页
第3页 / 共121页
点击查看更多>>
资源描述
上机考试练习题20021程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:输入 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)输出#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) = %.1fn, 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 = %dn, 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#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 = %.2fn, interest); 20024程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat= 0时,当x小于0时,f(x) = (x+1)2 + 2x + 1/x。输入输出例如:括号内是说明输入3(repeat=3)100输出#include #include int main(void) int repeat, ri; double x, y; scanf(%d, &repeat); for(ri = 1; ri =0) y=sqrt(x);else y=pow(x+1),2)+2*x+1/x; printf(f(%.2f) = %.2fn, x, y); 20025程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:输入实数 x,计算并输出以下分段函数 f(x) 的值,输出时保存1位小数。当 x 不等于10时,y = f(x) = x,当 x 等于10时,y = f(x) = 1/x。输入输出例如:括号内是说明输入2(repeat=2)10234输出#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) = %.1fn, x, y); 20026程序填空,不要改变与输入输出有关的语句。输入2个整数 num1 和 num2,计算并输出它们的和、差、积、商与余数。输出两个整数的余数可以用 printf(%d % %d = %dn, num1, num2, num1%num2);输入输出例如:括号内是说明输入5 3 (num1=5,num2=3)输出5 + 3 = 85 - 3 = 25 * 3 = 155 / 3 = 15 % 3 = 2#include int main(void)int num1, num2; /*-*/scanf(%d%d, &num1,&num2); printf(%d + %d = %dn, num1, num2, num1+num2); printf(%d - %d = %dn, num1, num2, num1-num2); printf(%d * %d = %dn, num1, num2, num1*num2); printf(%d / %d = %dn, num1, num2, num1/num2); printf(%d % %d = %dn, 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 = %dn, sum); 20032程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:输入一个正整数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 = 5050sum = 5005sum = 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 = %dn, sum); 20033程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:输入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)输出#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+i; printf(sum = %.3fn, sum); 20034程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:输入一个正整数 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)输出#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 = %.6fn, sum); 20035程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:读入一个正整数 n,计算11/41/71/10的前 n 项之和,输出时保存3位小数。输入输出例如:括号内是说明输入2 (repeat=2)310输出#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 = %.3fn, sum); 20036程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:读入2个整数 lower 和 upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是lower, upper,每次增加2F。计算公式:c = 5 * (f - 32) / 9,其中:c表示摄氏温度,f表示华氏温度。输出请使用语句 printf(%3.0f %6.1fn, fahr, celsius);输入输出例如:括号内是说明输入2 (repeat=2)32 35 (lower=32,upper=35)40 30 (lower=40,upper=30)输出fahr celsiusfahr 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 celsiusn); /*-*/for(fahr=lower;fahr=upper;fahr=fahr+2) celsius=5 * (fahr- 32) / 9; printf(%3.0f %6.1fn, fahr, celsius); 20037程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:输入2 个正整数 m 和 n,计算 m!n!。输入输出例如:括号内是说明输入:2 (repeat=2)1 4 (m=1,n=4)3 8 (m=3,n=8)输出:1! + 4! = 253! + 8! = 40326#include stdio.hint 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! = %.0fn, m, n, fm+fn); 20038程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:读入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)输出#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(%.2fn, mypow); 20041程序填空,不要改变与输入输出有关的语句。输入一个正整数n,生成一张3的乘方表,输出30 3n的值,可调用幂函数计算3的乘方。输出使用语句 printf(pow(3,%d) = %.0fn, i, mypow);输入输出例如:括号内是说明输入3(n=3)输出pow(3,0) = 1pow(3,1) = 3pow(3,2) = 9pow(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) = %.0fn, i, mypow); return 0;20042程序填空,不要改变与输入输出有关的语句。输入一个正整数n,生成一张阶乘表,输出 1! n! 的值,要求定义和调用函数fact(n)计算 n!,函数类型为double。输出使用语句 printf(%d! = %.0fn, i, myfact);输入输出例如:括号内是说明输入3(n=3)输出1! = 12! = 23! = 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! = %.0fn, 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 (0repeat10),做repeat次以下运算:输入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 = 21result = 792#include stdio.hdouble 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 = %.0fn, s);return 0;/*-*/double fact(int n) int i;double f=1;for(i=1;i=n;i+)f=f*i;return f;20044程序填空,不要改变与输入输出有关的语句。计算的值(保存2位小数),可调用sqrt函数计算平方根。输入输出例如:括号内是说明输出#include #include int main(void) int i; double sum; /*-*/ sum=0; for(i=100;i=1000;i+) sum=sum+sqrt(i); printf(sum = %.2fn, sum);30001程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:输入参数a,b,c,求一元二次方程a*x*xb*xc0的根,结果保存2位小数。输出使用以下语句:printf(参数都为零,方程无意义!n);printf(a和b为0,c不为0,方程不成立n);printf(x = %0.2fn, -c/b);printf(x1 = %0.2fn, (-b+sqrt(d)/(2*a);printf(x2 = %0.2fn, (-b-sqrt(d)/(2*a);printf(x1 = %0.2f+%0.2fin, -b/(2*a), sqrt(-d)/(2*a);printf(x2 = %0.2f-%0.2fin, -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,方程不成立#include #include int main(void) int repeat, ri; double a, b, c, d; scanf(%d, &repeat); for(ri = 1; ri =0)printf(x1 = %0.2fn, (-b+sqrt(d)/(2*a);printf(x2 = %0.2fn, (-b-sqrt(d)/(2*a); else printf(x1 = %0.2f+%0.2fin, -b/(2*a), sqrt(-d)/(2*a);printf(x2 = %0.2f-%0.2fin, -b/(2*a), sqrt(-d)/(2*a); 30002程序填空,不要改变与输入输出有关的语句。输入一个正整数 repeat (0repeat10),做 repeat 次以下运算:输入一个整数 x,计算并输出以下分段函数 sign(x) 的值。 -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 0) y=1;else if(x=0) y=0;else y=-1; printf(sign(%d) = %dn, 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 = a & c = A & c =0&c=9) digit +; else if(c = | c = n) blank +; else other +; printf(letter = %d, blank = %d, digit = %d, other = %dn, letter, blank, digit, other);return 0;30004程序填空,不要改变与输入输出有关的语句。输入一个正整数 repeat (0repeat10),做 repeat 次以下运算:输入五级制成绩(AE),输出相应的百分制成绩(0100)区间,要求使用switch语句。五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),如果输入不正确的成绩,显示Invalid input。输出使用以下语句:printf(90-100n); printf(80-89n); printf(70-79n); printf(60-69n);printf(0-59n);printf(Invalid inputn);输入输出例如:括号内是说明输入6ABCDEj (repeat=6,输入的五级成绩分别为A、B、C、D、E和无效的字符j) 输出90-10080-8970-7960-690-59Invalid 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-100n);break; case B: printf(80-89n);break; case C : printf(70-79n);break;case D : printf(60-69n);break;case E : printf(0-59n); break; default: printf(Invalid inputn); break; return 0;30005程序填空,不要改变与输入输出有关的语句。查询水果的单价。有4种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是元/公斤,元/公斤,元/公斤和元/公斤。在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。当用户输入编号14,显示相应水果的单价(保存1位小数);输入0,退出查询;输入其他编号,显示价格为0。输入输出例如:括号内是说明输入3 (oranges的编号) 0 (退出查询) 输出1 apples2 pears3 oranges4 grapes0 Exit1 apples2 pears3 oranges4 grapes0 Exit#include int main(void) int choice, i; double price; for(i = 1; i = 5; i+) printf(1 applesn); printf(2 pearsn); printf(3 orangesn); printf(4 grapesn); printf(0 Exitn); 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.1fn, price); return 0;30006程序填空,不要改变与输入输出有关的语句。输入5个学生的数学成绩,判断他们的成绩是否及格。如果成绩低于60,输出Fail,否那么,输出Pass。输入输出例如:括号内是说明输入6159924060输出PassFailPassFailPass#include int main(void)0 int i, mark; for(i = 1; i =60) printf(“Passn); else printf(“Failn); 30007程序填空,不要改变与输入输出有关的语句。输入一个正整数 repeat (0repeat10),做 repeat 次以下运算:输入三角形的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 = %.2fn,area, perimeter);printf(These sides do not correspond to a valid trianglen); 输入输出例如:括号内是说明输入2 (repeat=2) 5 5 3(a=5,b=5,c=3)1 4 1(a=1,b=4,c=1)输出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 c&b+ca&c+ab) perimeter=a+b+c; s= perimeter/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area = %.2f, perimeter = %.2fn,area, perimeter); else printf(These sides do not correspond to a valid trianglen);return 0;30008程序填空,不要改变与输入输出有关的语句。输入一个正整数 repeat (0repeat10),做 repeat 次以下运算:输入一个职工的月薪 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)输出ta#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.2fn, 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): 1Number of B(80-89): 0Number of C(70-79): 2Number of D(60-69): 1Number 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 =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): %dn, na); printf(Number of B(80-89): %dn, nb); printf(Number of C(70-79): %dn, nc); printf(Number of D(60-69): %dn, nd); printf(Number of E(0-59): %dn, ne);30010程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次以下运算:输入一个形式如操作数 运算符 操作数的表达式,对2个整数进行乘、除和求余运算。输出使用以下语句:printf(%d * %d = %dn, x, y, x * y);printf(%d / %d = %dn, x, y, x / y);printf(%d Mod %d = %dn,x, y, x % y);printf(Invalid operatorn);输入输出例如:括号内是说明输入4(repeat=4)21*821/821%821!8输出21 * 8 = 16821 / 8 = 221 Mod 8 = 5Invalid 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 = %dn, x, y, x * y);break; case /: printf(%d / %d = %dn, x, y, x / y); break; case %: printf(%d Mod %d = %dn, x, y, x % y); break; default: printf(Invalid operatorn); break; return 0;40011程序填空,不要改变与输入输出有关的语句。输入一个正整数 repeat (0repeat10),做 repeat 次以下运算:输入两个正整数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 (0repeat10),做repeat次以下运算:读入1个正实数 eps,计算并输出下式的值,精确到最后一项的绝对值小于 eps(保存6位小数)。请使用 while 语句实现循环。求11/41/71/101/131/16。输入输出例如:括号内是说明输入2 (repeat=2)1E-4 (eps=1E-4)0.1 (eps=0.1)输出sum = 0.869780#include #include int main(void) int denominator, flag; int repeat, ri; double eps, item, sum; scanf(%d, &repeat); for(ri =
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!