Res - 2009春学期C语言上机练习参考答案汇总(4)

2019-04-23 22:33

C程序设计 2009春学期 上机练习M2-M8参考答案

}

{ rate=0.15; tax=rate*(salary-850); } else { rate=0.20; tax=rate*(salary-850); } } }

30052 统计学生平均成绩与及格人数

输入一个正整数 n,再输入 n 个学生的成绩,计算平均分(结

if((year%4==0&&year0!=0)||(year@0==0)) else printf(\.\\n\printf(\.\\n\printf(\} 果保留1位小数),并统计所有及格的人数。 输入输出示例:括号内是说明 输入

5 (n=5) 77 54 92 73 60 输出

average = 71.2 count = 4

#include int main(void) { int count, i, n; double average, grade, total; 30051 判断闰年

输入一个正整数repeat (0

输入年year,判断该年是否为闰年。判断闰年的条件是:能被 4 整除但不能被 100 整除,或者能被 400 整除。 输出使用以下语句:

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

3 (repeat=3) 2000 (year=2000) 2010 (year=2010) 2011 (year=2011) 输出

2000 is a leap year. 2010 isn't a leap year. 2011 isn't a leap year.

#include int main(void) { int repeat, ri; int year; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ scanf(\ total=0; count=0; for(i=1;i<=n;i++){ } average = 1.00 * total/n; scanf(\total=total+grade; if(grade>=60){ } count++; printf(\ }

30053 分段计算水费(使用嵌套的if-else语句)

printf(\ 16

C程序设计 2009春学期 上机练习M2-M8参考答案

输入一个正整数repeat (0

为鼓励居民节约用水,自来水公司采取按月用水量分段计费的办法,居民应交水费y(元)与月用水量x(吨)的函数关系式如下。

输入用户的月用水量x(吨),计算并输出该用户应支付的水费y(元)(保留2位小数)。要求用嵌套的if-else语句。

0

(x<0) (0<=x<=15)

输入一个正整数 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,c; int repeat, ri; scanf(\for(ri = 1; ri <= repeat; ri++) { scanf(\ scanf(\ if(m<=n) c=m; /* 若m小,最大可能的公约y = f(x) = 4x/3

2.5x-10.5 (x>15)

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

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 main(void) { int repeat, ri; double x, y; scanf(\ for(ri = 1;ri <= repeat; ri++){ scanf(\x); if(x<0) y=0; else if(x>=0&&x<=15) y=4.0*x/3; else y=2.5*x-10.5; 数就是m */ else c=n; for(lcm=1; ;lcm++) { if(lcm%m==0&&lcm%n==0) } break; printf(\ = %.2f\\n\ } }

第6周(M6)

40011 求最小公倍数和最大公约数(调试示例error04_1)

} for(gcd=c; ;gcd--) { if(m%gcd==0&&n%gcd==0) break; printf(\is the least common multiple of %d and %d, %d is the greatest common divisor of %d and %d.\\n\ } return 0; 17

C程序设计 2009春学期 上机练习M2-M8参考答案

} 参考方法2: #include int main(void) { int gcd, lcm, m, n,i; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ scanf(\ if(m <= 0 || n <= 0) printf(\ else{ i=1; while(i<=(m+n)/2) { } lcm=m*n/gcd; if((m%i==0)&&(n%i==0)) i++; gcd=i; 输出

sum = 0.835549 sum = 0.826310 #include #include int main(void) { int denominator, flag; int repeat, ri; double eps, item, sum; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ sum=0; denominator=1; flag=1; item=1.0; while(fabs(item)>=eps){ } printf(\item=flag*1.0/denominator; sum=sum+item; flag=-flag; denominator=denominator+3; printf(\is the least common multiple of %d and %d, %d is the greatest common divisor of %d and %d.\\n\ } } }

40012 求1-1/4+1/7-1/10+1/13-1/16+…… 输入一个正整数repeat (0

读入1个正实数 eps,计算并输出下式的值,精确到最后一项的绝对值小于 eps(保留6位小数)。请使用 while 语句实现循环。

计算:1-1/4+1/7-1/10+1/13-1/16+…… 输入输出示例:括号内是说明 输入

2 (repeat=2) 2E-4 (eps=2E-4) 0.02 (eps=0.02)

} }

return 0; 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)

18

C程序设计 2009春学期 上机练习M2-M8参考答案

count = 3 (-100的位数是3) count = 1 (-1的位数是1) count = 4 (99的位数是2)

#include int main(void) { int count, in; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ count=0; if(in<0) do{ count++; in=in/10; in=-in; 13 输出:

(money=13分)

fen5:1,fen2:2,fen1:1,total:4 fen5:1,fen2:1,fen1:3,total:5 count = 2 分有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 分有4种换法) #include \int main(void) { int count, fen1, fen2, fen5, money; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ return 0; scanf(\ count=0;

(10

(13

} while (in!=0); printf(\ } }

40023 换硬币

输入一个正整数 repeat (0

将一笔零钱(大于8分,小于1元, 精确到分)换成5分、2分和1分的硬币。

输入金额,问有几种换法?针对每一种换法,每种硬币至少有一枚,请输出各种面额硬币的数量和硬币的总数量。 要求:硬币面值按5分、2分、1分顺序,各类硬币数量依次从大到小的顺序,输出各种换法。 输出使用语句:

printf(\fen2, fen1, fen5+fen2+fen1); 输入输出示例:括号内为说明 输入: 2 10

(repeat=2)

for(fen5=money/5;fen5>=1;fen5--) for(fen2=money/2;fen2>=1;fen2--) for(fen1=money/1;fen1>=1;fen1--) if(fen5*5+fen2*2+fen1*1==money){ printf(\fen2, fen1, fen5+fen2+fen1); count++;} printf(\ } }

40024 找出各位数字的立方和等于它本身的数 输入一个正整数 repeat (0

return 0; (money=10分)

19

C程序设计 2009春学期 上机练习M2-M8参考答案

输入两个正整数 m 和 n(1<=m, n<=1000),输出 m 到 n之间的所有满足各位数字的立方和等于它本身的数。 例如153的各位数字的立方和是 1^3+5^3+3^3=153 ,这里a^b表示a的b次方。

输出使用语句:printf(\输入输出示例:括号内为说明 输入:

2 (repeat=2) 100 400 (m=100, n=400) 1 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 \int main(void) { int i, digit, m, n, a,b,c,sum; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ printf(\ for(i=m;i<=n;i++){ digit=i; a=digit; digit=digit/10; b=digit; digit=digit/10; c=digit; sum=a*a*a+b*b*b+c*c*c; (m=1, n=100)

int main(void) { int i, digit, m, n, number, sum; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ printf(\ for(i=m;i<=n;i++){ number=i; sum=0; while(number>0){ digit=number; sum=sum+digit*digit*digit; number=number/10; } if(sum==i) printf(\ } } }

40025 找完数(改错题error04_2)

输入一个正整数 repeat (0

输入两个正整数 m 和 n(1<=m, n<=1000),输出 m 到 n之间的所有完数,并输出其因子。一个数如恰好等于它的因子之和,这个数称为完数,例如,6=1+2+3,其中1、2、3为因子,6为因子和。 输出使用以下语句: printf(\printf(\printf(\

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

2 (repeat=2) 1 30 (m=1, n=30) 400 500 (m=400, n=500)

if(sum==i) printf(\ } } 参考2: #include \return 0; } 输出 result: 1 = 1

6 = 1 + 2 + 3

28 = 1 + 2 + 4 + 7 + 14

20


Res - 2009春学期C语言上机练习参考答案汇总(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:单元评价检测(二)(第二单元 生物体的结构层次)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: