2012春学期C语言上机练习参考答案 - 图文
更新时间:2023-11-18 07:12:01 阅读量: 教育文库 文档下载
- 学期就要结束了推荐度:
- 相关推荐
第1周(1-4题略).............................................................................................................................2
5) 10006 显示\...............................................................2 6) 10007 显示图案 (复习printf()的字符串输出)..............................................3 第2周.............................................................................................................................................3
1) 20011求华氏温度100°F对应的摄氏温度。...............................................................3 2) 20012 求华氏温度 150°F 对应的摄氏温度。............................................................4 3) 20013 求摄氏温度26°C对应的华氏温度.............................................................4 4) 20014 计算三门课程的平均成绩............................................................................4 5) 20015当n为152时,分别求出n的个位数字(digit1)、十位数字(digit2)和百位数字(digit3)的值。.....................................................................................................................5 6) 20016 计算x的平方(改错题error02_2)................................................................5 7) 20021 计算分段函数的值(调试示例error02_3)....................................................6 8) 20023 计算存款利息......................................................................................................6 9) 20024 计算分段函数......................................................................................................7 10) 20026 输入2个整数 num1 和 num2,计算并输出它们的和、差、积、商与余数。 8
第3周.............................................................................................................................................8
1) 20031 求1+2+3+......+100(调试示例error02_5)............................................8 2) 20032 求m+(m+1)+(m+2)+......+100....................................................................9 3) 20033 求1/m+1/(m+1)+1/(m+2)+......+1/n..................................................10 4) 20035 求1-1/4+1/7-1/10+……的前n项之和...........................................10 5) 20038 求x的n次幂...........................................................................................12 6) 20041 生成 3 的乘方表......................................................................................12 7) 20044 求100^0.5+101^0.5+……+1000^0.5.................................................13 8) 20053 计算物体自由下落的距离........................................................................14 9) 20057 求1+1/2+1/3+......+1/n.......................................................................14 10) 20061 阶梯电价....................................................................................................15 第4周...........................................................................................................................................15
1) 20025 计算分段函数的值(改错题error02_4)......................................................15 2) 20027计算旅途时间。.................................................................................................16 3) 20028数字加密.............................................................................................................17 4) 20034 求1 + 1/3 + 1/5 + ......的前n项和..............................................................18 5) 20036 输出华氏-摄氏温度转换表(改错题error02_6)..................................19 6) 20043 使用函数求 n! /(m!* (n-m)!).....................................................................20 7) 20062 求m*m+1/m+(m+1)*(m+1)+1/(m+1)+(m+2)*(m+2)+1/(m+2)+......+n*n+1/n............................................................................................................................21 8) 20063 求1-2/3+3/5-4/7+5/9-6/11+……........................................................21 9) 20064 求2^1+2^2+2^3+……+2^n...............................................................22 10) 20065 求0!+1!+2!+……+n!.......................................................................23 第5周...........................................................................................................................................24
1) 30001 求一元二次方程的根..................................................................................24 2) 30002 求分段函数的值..........................................................................................26 3) 30004 显示五级记分制成绩所对应的百分制成绩区间(使用switch)..........27 4) 30005 显示水果的价格(使用switch)..............................................................28
1
5) 30007 求三角形的面积和周长..............................................................................29 6) 30008 计算个人所得税..........................................................................................30 7) 30009 统计学生成绩..............................................................................................32 8) 30053 分段计算水费(使用嵌套的if-else语句)..............................................33 9) 30061 出租车计费..................................................................................................33 10) 30062 输出21世纪所有闰年..................................................................................34 第6周...........................................................................................................................................35
1) 40011 求最小公倍数和最大公约数(调试示例error04_1)............................35 2) 40012 求1-1/4+1/7-1/10+1/13-1/16+……...............................................37 3) 40014 求整数的位数..............................................................................................38 4) 40017 求2/1+3/2+5/3+8/5+............................................................................39 5) 40023 换硬币..........................................................................................................40 6) 40024 找出各位数字的立方和等于它本身的数..................................................41 7) 40025 找完数(改错题error04_2)....................................................................42 8) 40026 验证歌德巴赫猜想(选作)...........................................................................43 9) 40027 从高位开始逐位输出一个整数的各位数字(选作)...................................45 10) 40051 求平均成绩并统计不及格人数..................................................................46 第7周...........................................................................................................................................47
1) 50002 使用函数判断数的符号..............................................................................47 2) 50003 使用函数求奇数和......................................................................................48 3) 50005 使用函数统计素数并求和..........................................................................49 4) 50006 使用函数统计一个整数中数字的个数......................................................50 5) 50007 使用函数找水仙花数..................................................................................51 6) 50008 使用函数求1! + 2! + … + m!(改错题error05_2)...............................52 7) 50009 使用函数求余弦函数的近似值..................................................................53 8) 50052 使用函数找最大值......................................................................................55 9) 50062 使用函数输出指定范围内的 Fibonacci 数.............................................55 10) 50063 使用函数找出指定范围内的完数..........................................................57 第8周...........................................................................................................................................58
1) 40062 求x+x*x/2!+x*x*x/3!+x*x*x*x/4!+……的值....................................58 2) 50004 使用函数计算两点间的距离......................................................................59 3) 50051 数字金字塔........................................................................................................60 4) 50061 使用函数求a+aa+aaa+aa…a...............................................................61 5) 60001 使用函数求PI(调试示例源程序error06_1).......................................62 6) 60002 整数的十进制、八进制和十六进制表现形式..........................................63 7) 60003 分类统计字符..............................................................................................64 8) 60007 使用函数输出整数的逆序数......................................................................65 9) 60009 统计单词......................................................................................................66 10) 60062 简单计算器..............................................................................................68
第1周(1-4题略)
5) 10006 显示\
编写程序,在屏幕上显示一个短句\
2
#include
printf(\return 0; }
6) 10007 显示图案 (复习printf()的字符串输出)
编写程序,在屏幕上显示如下图案。 * * * * * * * * * *
#include
printf(\ \ \ * *\\n\ \ *\\n\/*---------*/ }
第2周
1) 20011求华氏温度100°F对应的摄氏温度。 计算公式如下,c=5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。(源程序error02_1.cpp) 输入输出示例: fahr=100,celsius=37
#include
int celsius, fahr; /*---------*/ fahr=100;
celsius=5*(fahr-32)/9;
printf(\
return 0;
3
}
2) 20012 求华氏温度 150°F 对应的摄氏温度。
计算公式:C = 5*F/9-5*32/9,式中:C表示摄氏温度,F表示华氏温度。 输入输出示例: fahr=150, celsius=66
#include
int celsius, fahr;
/*---------*/ fahr=150;
celsius=5*fahr/9-5*32/9;
printf(\ return 0; }
3) 20013 求摄氏温度26°C对应的华氏温度
程序填空,不要改变与输入输出有关的语句。
求摄氏温度26°C对应的华氏温度。计算公式:f = 9*c/5 + 32,式中:c表示摄氏温度,f表示华氏温度。 输入输出示例:
celsius = 26, fahr = 78
#include
int celsius, fahr;
/*---------*/ celsius = 26; fahr = 78; fahr = 9*celsius/5 + 32;
printf(\}
4) 20014 计算三门课程的平均成绩
程序填空,不要改变与输入输出有关的语句。
4
已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。 输入输出示例:
math = 87, eng = 72, comp = 93, average = 84
#include
int math, eng, comp, average; math = 87; eng = 72; comp = 93;
/*---------*/
average = (math+eng+comp)/3;
printf(\ }
5) 20015当n为152时,分别求出n的个位数字(digit1)、十位数字(digit2)和百位数字(digit3)
的值。 输入输出示例:
整数152的个位数字是2,十位数字是5,百位数字是1
#include
int n,digit1,digit2,digit3; n=152;
digit1=n; digit2=(n/10); digit3=n/100; /*---------*/
printf(\整数%d的个位数字是%d, 十位数字是%d, 百位数字是%d\\n\digit2, digit3); return 0; }
6) 20016 计算x的平方(改错题error02_2) 程序填空。
假设 x 的值为3,计算 x 的平方 y,并分别以\和\的形式输出 x 和 y 的值。
输入输出示例:
5
sum = 0.893 sum = 0.819
#include
int flag, i, n, t; int repeat, ri; double item, sum;
scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ sum=0; flag=1; t=1;
for(i=1;i<=n;i++){ item=flag*1.0/t; sum=sum+item; flag=-flag; t=t+3;
}/*---------*/
printf(\= %.3f\\n\sum); } }
参考2:
#include
int flag, i, n, t; int repeat, ri; double item, sum;
scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ flag=1; sum=0;
for(i=1;i<=n;i++) {
item=1.0/(3*i-2); sum=sum+flag*item;
11
flag=-flag; }
printf(\= %.3f\\n\sum); } }
5) 20038
求x的n次幂
输入一个正整数repeat (0 2 (repeat=2) 1.5 2 (x=1.5,n=2) 2 7 (x=2,n=7) 输出 2.25 128.00 #include int i, n; int repeat, ri; double mypow, x; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ mypow=1; for(i=1;i<=n;i++) mypow=mypow*x; /*---------*/ printf(\mypow); } } 6) 20041 生成 3 的乘方表 输入一个正整数n,生成一张3的乘方表,输出3^0 ~ 3^n的值,可调用幂函数计算3的乘方。 输出使用语句 printf(\输入输出示例:括号内是说明 12 输入 3 (n=3) 输出 pow(3,0) = 1 pow(3,1) = 3 pow(3,2) = 9 pow(3,3) = 27 #include int i, n; double mypow; scanf(\ for(i=0;i<=n;i++) { mypow=pow(3,i); printf(\= %.0f\\n\i, mypow); } } 7) 20044 求100^0.5+101^0.5+……+1000^0.5 计算 100^0.5+101^0.5+……+1000^0.5的值(保留2位小数),可调用sqrt函数计算平方根。 输入输出示例:括号内是说明 输出 sum = 20435.99 #include int i; double sum; sum=0; for(i=100;i<=1000;i++) sum=sum+sqrt(i); /*---------*/ printf(\= %.2f\\n\} 13 8) 20053 计算物体自由下落的距离 一个物体从 100m 的高空自由落下,编写程序,求它在前 3s 内下落的垂直距离(结果保留2位小数)。设重力加速度为10米/秒^2。 #include double height; height=0.5 * 10 * 3* 3; /*---------*/ printf(\= %.2f\\n\height); } 9) 20057 求1+1/2+1/3+......+1/n 程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 编写程序,输入一个正整数n,求1+1/2+1/3+......的前n项之和,输出时保留6位小数。 输入输出示例:括号内为说明 输入 2 (repeat=2) 6 (计算1+1/2+1/3+1/4+1/5+1/6) 2 (计算1+1/2) 输出 sum = 2.450000 sum = 1.500000 #include int i, n; int repeat, ri; double sum; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ sum=0; for(i=1;i<=n;i++) sum=sum+1.0/i; printf(\= %.6f\\n\sum); } 14 } 10) 20061 阶梯电价 输入一个正整数repeat (0 输入用户的月用电量e(千瓦时),计算并输出该用户应支付的电费(元),结果保留2位小数。 输入输出示例:括号内是说明 输入 2 (repeat=2) 10 (e=10) 100 (e=100) 输出 cost = 5.30 cost = 55.50 #include int repeat, ri; double cost, e; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ if(e<=50) cost=e*0.53; else cost=0.53*50+(e-50)*0.58; /*---------*/ printf(\= %.2f\\n\cost); } } 第4周 1) 20025 计算分段函数的值(改错题error02_4) 程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 输入实数 x,计算并输出下列分段函数 f(x) 的值,输出时保留1位小数。 当 x 不等于10时,y = f(x) = x,当 x 等于10时,y = f(x) = 1/x。 15 输入输出示例:括号内是说明 输入 2 (repeat=2) 10 234 输出 f(10.0) = 0.1 f(234.0) = 234.0 #include int repeat, ri; double x, y; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ /*---------*/ scanf(\ if(x!=10) y=x; else y=1/x; printf(\ } return 0; } 2) 20027计算旅途时间。 输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 有效的时间范围是0000到2359(前两位表示小时,后两位表示分钟),不需要考虑出发时间晚于到达时间的情况。 例:括号内是说明 输入 712 1411 (出发时间是7:12,到达时间是14:11) 输出 The train journey time is 6 hours 59 minutes. #include int time1, time2, hour, minutes, t1, t2, result; scanf(\ t1 = (time1 / 100) * 60 + time1 % 100; /* 统一化成minutes: */ t2 = (time2 / 100) * 60 + time2 % 100; result = t2 - t1; 16 hour = result / 60; minutes = result % 60; printf(\} 参考2: #include int time1, time2, hour, minutes; int th1,th2,tm1,tm2; // ?? 这里随便加入printf(“\\n”)也能通过? scanf(\&time1, &time2); th1=time1/100; th2=time2/100; tm1=time10; tm2=time20; if(tm1>tm2){ hour=th2-th1-1; minutes=tm2+60-tm1; } else{ hour=th2-th1; minutes=tm2-tm1; } printf(\ return 0; } 3) 20028数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。 例:括号内是说明 输入 1257 输出 The encrypted number is 4601(每一位上的数字加9除以10取余后,得0146,交换后得到4601) #include int number, digit1, digit2, digit3, digit4, newnum; scanf(\&number); /*---------*/ 17 digit1=(number+9)*100; /* 取个位+9之后除以10取余,然后变成百位(个位与百位交换) */ digit2=(number/10+9)*1000; /* 取十位+9之后除以10取余,然后变成千位,将千位和十位上的数字互换 */ digit3=(number/100+9); /* 取百位+9之后除以10取余,变成个位,百位和个位上的数字互换*/ digit4=(number/1000+9)*10; /* 取千位+9之后除以10取余,变成十位,千位数字与十位数字交换 */ newnum=digit1+digit2+digit3+digit4; printf(\encrypted number is %d\\n\ return 0; } 参考2: #include int digit1, digit2, digit3, digit4, newnum, number; printf(\ scanf(\&number); digit1=(number+9); /* 个位 */ digit2=((number/10)+9); /* 十位 */ digit3=((number/100)+9); /* 百位 */ digit4=(number/1000+9); /* 千位 */ newnum=digit2*1000+digit1*100+digit4*10+digit3; printf(\ return 0; } 4) 20034 求1 + 1/3 + 1/5 + ......的前n项和 输入一个正整数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 18 int main(void) { int i, n; int denominator; int repeat, ri; double sum; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ sum=0; denominator=1; for(i=1;i<=n;i++) { sum=sum+1.0/denominator; denominator=denominator+2; } printf(\= %.6f\\n\sum); } } 5) 20036 输出华氏-摄氏温度转换表(改错题error02_6) 输入一个正整数repeat (0 读入2个整数 lower 和 upper,输出一张华氏—摄氏温度转换表,华氏温度的取值范围是[lower, upper],每次增加2F。 计算公式:c = 5 * (f - 32) / 9,其中:c表示摄氏温度,f表示华氏温度。 输出请使用语句 printf(\输入输出示例:括号内是说明 输入 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 lower, upper; int repeat, ri; double celsius, fahr; 19 scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ printf(\ for(fahr=lower;fahr<=upper; fahr++, fahr++) { celsius=5*(fahr-32)/9; printf(\ }/*---------*/ } } 6) 20043 使用函数求 n! /(m!* (n-m)!) 输入一个正整数repeat (0 要求定义并调用函数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 \int main(void) { int m, n; int repeat, ri; double s; double fact(int n); scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ s=fact(n)/(fact(m)*fact(n-m)); printf(\= %.0f\\n\s); } } double fact(int n) { double result; int i; 20 scanf(\ if(in<0) in=-in; power=in; temp=0; k = 1; while(power>0) { power=power/10; temp++; k = k * 10; } power=in; while(temp>0) /* temp是控制循环次数 */ { temp --; k = k/10; digit = power / k; power = power % k; /* power向右推进 */ printf(\ } printf(\ } return 0; } 10) 40051 求平均成绩并统计不及格人数 程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 从键盘输入一批学生的成绩(以负数为结束标志),计算平均分(保留2位小数),并统计不及格成绩的个数。 输入输出示例:括号内为说明 输入 2 (repeat=2) 67 88 73 54 82 –3 8 7 4 3 70 5 6 100 -1 输出 Grade average is 72.80,the number of fail is 1 Grade average is 25.38,the number of fail is 6 #include 46 int main(void) { int fail, num; int repeat, ri; double grade, total; scanf(\ for(ri = 1; ri <= repeat; ri++){ total=0; num=0; fail=0; do{ scanf (\ if(grade<0)break; num++; if(grade<60) fail++; total=total+grade; }while(grade>=0); if(num > 0) printf(\total/num, fail); } return 0; } 第7周 1) 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) 47 sign(0) = 0 (x=0时sign(x)的值为0) ① #include int x, y; int repeat, ri; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ y=sign(x); printf(\= %d\\n\x, y); } } int sign(int x) { int t=0; if(x<0) t=-1; else if(x==0) t=0; else t=1; return t; } 2) 50003 使用函数求奇数和 输入一个正整数repeat (0 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 48 int n, sum; int ri, repeat; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ sum=0; scanf(\ while (n>0){ if (even(n)==0) sum=sum+n; scanf(\ } printf(\ } } int even(int n) { int t; if (n%2==0) t=1; else t=0; return t; } 3) 50005 使用函数统计素数并求和 输入一个正整数 repeat (0 输入2个正整数 m 和 n(1<=m,n<=500),统计并输出 m 到 n 之间的素数的个数以及这些素数的和。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 要求定义并调用函数 prime(m) 判断m是否为素数,当m为素数时返回1,否则返回0,函数形参 m 的类型是int,函数类型是int。 输入输出示例:括号内是说明 输入: 1 (repeat=1) 1 10 (m=1, n=10) 输出: Count = 4, sum = 17 (1到10之间有4个素数:2,3,5,7) #include \#include \int main(void) { int count, i, m, n, sum; 49 int repeat, ri; int prime(int m); scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\&m, &n); sum=0; count=0; if (m==1) m++; /* 若第一个数是1, 可直接判定下一个数 */ for(i=m;i<=n;i++){ if(prime(i)==1){ sum=sum+i; count++; } } printf(\ } } int prime(int m) { int t, result; if (m == 1) return 0; result = 0; for ( t=2; t <= m/2; t++) if (m%t == 0) break; if (t>m/2) result=1; return result; } 4) 50006 使用函数统计一个整数中数字的个数 输入一个正整数 repeat (0 要求定义并调用函数countdigit(number,digit),它的功能是统计整数 number 中数字 digit 的个数 ,函数形参number和digit的类型是int,函数类型是int。例如,countdigit(10090,0)的返回值是3。 输入输出示例:括号内是说明 输入 2 (repeat=2) 21252 2 (number=21252, digit=2) -1111 9 (number=-1111, digit=9) 输出 50 int repeat, ri; double a, b, c, d; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ d=b*b-4*a*c; if(a==0&&b==0&&c==0) printf(\参数都为零,方程无意义!\\n\ if(a==0&&b==0&&c!=0) printf(\和b为0,c不为0,方程不成立\\n\ if(a==0&&b!=0) printf(\= %0.2f\\n\-c/b); if(a!=0&&d>=0){ printf(\= %0.2f\\n\(-b+sqrt(d))/(2*a)); printf(\ } if(a!=0&&d<0){ printf(\= %0.2f+%0.2fi\\n\ printf(\= %0.2f-%0.2fi\\n\ } } } 2) 30002 求分段函数的值 输入一个正整数 repeat (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 repeat, ri; 26 int x, y; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ if(x==0) y=0; else if(x>0) y=1; else y=-1; printf(\= %d\\n\x, y); } } 3) 30004 显示五级记分制成绩所对应的百分制成绩区间(使用switch) 输入一个正整数 repeat (0 五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),如果输入不正确的成绩,显示\输出使用以下语句: printf(\printf(\printf(\printf(\printf(\ printf(\ 输入输出示例:括号内是说明 输入 6ABCDEj (repeat=6,输入的五级成绩分别为A、B、C、D、E和无效的字符j) 输出 90-100 80-89 70-79 60-69 0-59 Invalid input (输入数据不合法) #include char ch; int repeat, ri; scanf(\&repeat); 27 for(ri = 1; ri <= repeat; ri++){ ch = getchar(); switch(ch){ case'A': printf(\ break; case'B': printf(\ break; case'C': printf(\ break; case'D': printf(\ break; case'E': printf(\ break; default: printf(\input\\n\ break; } } return 0; } 4) 30005 显示水果的价格(使用switch) 查询水果的单价。有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 28 price = 4.1 [1] apples [2] pears [3] oranges [4] grapes [0] Exit #include int choice, i; double price; for(i = 1; i <= 5; i++){ printf(\apples\\n\ printf(\pears\\n\ printf(\oranges\\n\ printf(\grapes\\n\ printf(\Exit\\n\ scanf(\ if(choice == 0) break; else{ switch (choice){ case 1: price= 3.00; case 2: price=2.50; case 3: price=4.10; case 4: price=10.20; default: price=0; } printf(\= %0.1f\\n\price); } } } 5) 30007 求三角形的面积和周长 break; break; break; break; break; 输入一个正整数 repeat (0 在一个三角形中,任意两边之和大于第三边。三角形面积计算公式:area = (s(s-a)(s-b)(s-c))^0.5 ,其中s = (a+b+c)/2 输出使用以下语句: printf(\ 29 printf(\ 输入输出示例:括号内是说明 输入 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 int a, b, c; int repeat, ri; double area, perimeter, s; scanf(\&repeat); for(ri = 1; ri <= repeat; ri++){ scanf(\ if ((a+b>c)&& (a+c>b) && (b+c>a) ){ perimeter=a+b+c; s=(a+b+c)/2.00; area =sqrt(s*(s-a)*(s-b)*(s-c)); printf(\= %.2f, perimeter = %.2f\\n\ } else printf(\ } } 6) 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% 输入输出示例:括号内是说明 30 输入 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 ri, repeat; double rate, salary, tax; scanf(\&repeat); for(ri=1; ri<=repeat; ri++) { scanf(\&salary); if (salary<=850) { rate=0; tax=rate*(salary-850); } else if (salary<=1350) { rate=0.05; tax=rate*(salary-850); } else if (salary<=2850) { rate=0.10; tax=rate*(salary-850); } else if (salary<=5850) { rate=0.15; tax=rate*(salary-850); } else { rate=0.20; tax=rate*(salary-850); } printf(\= %0.2f\\n\tax); 31 } } 7) 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 scanf(\ na=nb=nc=nd=ne=0; for(i=1; i<=n; i++){ scanf(\/*---------*/ if(mark>=90&&mark<=100) na++; else if(mark>=80&&mark<=89) nb++; else if(mark>=70&&mark<=79) nc++; else if(mark>=60&&mark<=69) nd++; else ne++; } printf(\ printf(\of B(80-89): %d\\n\nb); printf(\of C(70-79): %d\\n\nc); printf(\of D(60-69): %d\\n\nd); printf(\of E(0-59): %d\\n\ne); return 0; } 32 8) 30053 分段计算水费(使用嵌套的if-else语句) 输入一个正整数repeat (0 输入输出示例:括号内是说明 输入 3 (repeat=3) -0.5 (x=-0.5) 9.5 (x=9.5) 21.3 (x=21.3) 输出 f(-0.50) = 0.00 f(9.50) = 12.67 f(21.30) = 42.75 #include int repeat, ri; double x, y; scanf(\&repeat); for(ri = 1;ri <= repeat; ri++){ scanf(\ if(x<0) y=0; else if(x>=0&&x<=15) y=4.0*x/3; else y=2.5*x-10.5; printf(\= %.2f\\n\x, y); } } 9) 30061 出租车计费 程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 某城市普通出租车收费标准如下:\3公里,起步费10元;超起步里程后10公里内,每公里租费2元,超过10公里以上的部分加收50%的回空补贴费, 33 即每公里租费3元。营运过程中,因路阻及乘客要求临时停车的,每5分钟按1公里租费计收。运价计费尾数四舍五入,保留到元。\编写程序,输入行驶里程(公里)与等待时间(分钟),计算并输出乘客应支付的车费(元)。 提示:先将等待的时间折算成公里数,与原公里数相加后再处理。 输入输出示例:括号内是说明 输入 3 (repeat=3) 1.6 2 52 (行驶1.6公里,等待2分52秒) 3.1 6 15 (行驶3.1公里,等待6分15秒) 11.8 2 30 (行驶11.8公里,等待2分30秒) 输出 cost = 10 cost = 13 cost = 31 #include int repeat, ri; int minutes, seconds; double cost, mile; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ mile=mile+(minutes*60+seconds)*1.0/300; // 先将所有的等待时间转换成公里 if(mile<=3) cost=10; else if(mile<=10) cost=10+(mile-3)*2; else cost=10+7*2+(mile-10)*3; printf(\ } } 10) 30062 输出21世纪所有闰年 程序填空,不要改变与输入输出有关的语句。 输入21世纪所有的闰年。判断闰年的条件是:能被 4 整除但不能被 100 整除,或者能被 400 整除。 输出使用语句 printf(\ 输入输出示例:括号内是说明 输出 34 2000 2004 2008 2012 2016 2020 2024 2028 2032 2036 2040 2044 2048 2052 2056 2060 2064 2068 2072 2076 2080 2084 2088 2092 2096 #include int year; for(year = 2000; year <= 2099; year++){ if((year%4==0 && year0!=0)||(year@0==0)) printf(\ } } 第6周 1) 40011 求最小公倍数和最大公约数(调试示例error04_1) 输入一个正整数 repeat (0 35
正在阅读:
制成哑铃型片材。 表2 不同固化剂用量的丁羟胶性能(10006-07
感恩的心,关于感恩的名言名句08-01
新编基础物理学上册16-17单元课后答案12-13
国有企业基层员工激励问题05-26
甲醇制氢反应器的一维模拟及工况分析05-28
我最喜欢的一个汉字作文02-05
ppt中插入flash和视频方法08-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 上机
- 练习
- 学期
- 答案
- 语言
- 参考
- 图文
- 2012
- 小升初数学年龄问题应用题-教学文档
- UML课后习题答案 - 图文
- 2016江西省高等学校教学改革研究课题申报书 - 互联网+下慕课教学模式研究与实践-以单片机应用课程为例 - 图文
- J2EE期末复习(含答案)
- 郴州市2008年冰雪灾害应对工作评估报告
- 最新人教版二年级数学下册总复习基础知识
- 漳州市人民政府关于印发《漳州市中心城区建设项目容积率规划管理规定》的通知
- 2013北京市17区县语文一模选择题汇总(含答案)
- 人教版七年级下数学 第六章《实数》全章测试题(含答案)
- 浅谈如何提高员工集体荣誉感,建一流团队
- 三个和尚引起的管理学
- 领导廉政谈话提纲
- 《刑案汇览》之略人略卖人
- 形而上学
- 评估222222 文档(2)
- 传奇源码分析
- 潘祖仁版高分子化学各章名词解释
- 一年级语文学科过程性评价方案
- 2011年井控管理工作要点
- 应用数据结构课设最短航空路线求解报告