Res春学期C语言上机练习参考答案汇总.docx
- 文档编号:18423458
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:93
- 大小:40.27KB
Res春学期C语言上机练习参考答案汇总.docx
《Res春学期C语言上机练习参考答案汇总.docx》由会员分享,可在线阅读,更多相关《Res春学期C语言上机练习参考答案汇总.docx(93页珍藏版)》请在冰点文库上搜索。
Res春学期C语言上机练习参考答案汇总
第2周(M2)2
20011求华氏温度100°F对应的摄氏温度。
2
20012求华氏温度150°F对应的摄氏温度。
3
20013求摄氏温度26°C对应的华氏温度。
3
20015当n为152时,分别求出n的个位数字(digit1)、十位数字(digit2)和百位数字(digit3)的值。
3
20026输入2个整数num1和num2,计算并输出它们的和、差、积、商与余数。
4
第3周(M3)5
20031求1+2+3+......+100(调试示例error02_5)5
20032求m+(m+1)+(m+2)+......+1005
20033求1/m+1/(m+1)+1/(m+2)+......+1/n6
20034求1+1/3+1/5+......的前n项和7
20035求1-1/4+1/7-1/10+……的前n项之和7
20036输出华氏-摄氏温度转换表(改错题error02_6)8
20038求x的n次幂9
20041生成3的乘方表10
20044求100^0.5+101^0.5+……+1000^0.510
20053计算物体自由下落的距离11
20056计算分段函数11
20061阶梯电价12
20062求m*m+1/m+(m+1)*(m+1)+1/(m+1)+(m+2)*(m+2)+1/(m+2)+......+n*n+1/n13
20063求1-2/3+3/5-4/7+5/9-6/11+……14
20064求2^1+2^2+2^3+……+2^n15
第4周(M4)15
10007显示图案(复习printf()的字符串输出)15
20042生成阶乘表16
20043使用函数求n!
/(m!
*(n-m)!
)16
20054求平均值17
20057求1+1/2+1/3+......+1/n18
20065求0!
+1!
+2!
+……+n!
18
40015求最小值19
40018求a+aa+aaa+aa…a20
第5周(M5)21
30001求一元二次方程的根21
30002求分段函数的值23
30003分类统计字符23
30004显示五级记分制成绩所对应的百分制成绩区间(使用switch)24
30005显示水果的价格(使用switch)25
30007求三角形的面积和周长27
30008计算个人所得税28
30051判断闰年29
30052统计学生平均成绩与及格人数30
30053分段计算水费(使用嵌套的if-else语句)31
第6周(M6)32
40011求最小公倍数和最大公约数(调试示例error04_1)32
40012求1-1/4+1/7-1/10+1/13-1/16+……33
40014求整数的位数34
40023换硬币35
40024找出各位数字的立方和等于它本身的数36
40025找完数(改错题error04_2)38
40027从高位开始逐位输出一个整数的各位数字(选作)39
40052判断素数40
40053逆序输出整数41
40054输出斐波那契序列42
第7周(M7)42
50002使用函数判断数的符号42
50003使用函数求奇数和43
50005使用函数统计素数并求和44
50006使用函数统计一个整数中数字的个数45
50007使用函数找水仙花数46
50009使用函数求余弦函数的近似值48
50052使用函数找最大值49
50062使用函数输出指定范围内的Fibonacci数50
50063使用函数找出指定范围内的完数51
第8周(M8)52
40013求奇数和52
40062求x+x*x/2!
+x*x*x/3!
+x*x*x*x/4!
+……的值53
50004使用函数计算两点间的距离54
50061使用函数求a+aa+aaa+aa…a55
60002整数的十进制、八进制和十六进制表现形式56
60003分类统计字符57
60006验证歌德巴赫猜想58
60007使用函数输出整数的逆序数59
60009统计单词60
60062简单计算器61
第2周(M2)
20011求华氏温度100°F对应的摄氏温度。
计算公式如下,c=5*(f-32)/9,式中:
c表示摄氏温度,f表示华氏温度。
(源程序error02_1.cpp)
输入输出示例:
fahr=100,celsius=37
#include
intmain(void)
{
intcelsius,fahr;
/*---------*/
fahr=100;
celsius=5*(fahr-32)/9;
printf("fahr=%d,celsius=%d\n",fahr,celsius);
return0;
}
20012求华氏温度150°F对应的摄氏温度。
计算公式:
C=5*F/9-5*32/9,式中:
C表示摄氏温度,F表示华氏温度。
输入输出示例:
fahr=150,celsius=66
#include
intmain(void)
{
intcelsius,fahr;
/*---------*/
fahr=150;
celsius=5*fahr/9-5*32/9;
printf("fahr=%d,celsius=%d\n",fahr,celsius);
return0;
}
20013求摄氏温度26°C对应的华氏温度。
计算公式如下,f=9*c/5+32,式中:
c表示摄氏温度,f表示华氏温度。
输入输出示例:
celsius=26,fahr=78
#include
intmain(void)
{
intcelsius,fahr;
/*---------*/
celsius=26;
fahr=9*celsius/5+32;
printf("celsius=%d,fahr=%d\n",celsius,fahr);
return0;
}
20015当n为152时,分别求出n的个位数字(digit1)、十位数字(digit2)和百位数字(digit3)的值。
输入输出示例:
整数152的个位数字是2,十位数字是5,百位数字是1
#include
intmain(void)
{
intn,digit1,digit2,digit3;
n=152;
digit1=n%10;
digit2=(n/10)%10;
digit3=n/100;
/*---------*/
printf("整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",n,digit1,digit2,digit3);
return0;
}
20026输入2个整数num1和num2,计算并输出它们的和、差、积、商与余数。
输出两个整数的余数可以用printf("%d%%%d=%d\n",num1,num2,num1%num2);
输入输出示例:
括号内是说明
输入
53(num1=5,num2=3)
输出
5+3=8
5-3=2
5*3=15
5/3=1
5%3=2
#include
intmain(void)
{
intnum1,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);
return0;
}
第3周(M3)
20031求1+2+3+......+100(调试示例error02_5)
计算表达式1+2+3+......+100的值。
输出示例:
sum=5050
#include
intmain(void)
{
inti,sum;
sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("sum=%d\n",sum);
}
20032求m+(m+1)+(m+2)+......+100
输入一个正整数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 intmain(void) { inti,m,sum; intrepeat,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求1/m+1/(m+1)+1/(m+2)+......+1/n 输入一个正整数repeat(0 输入2个正整数m和n(m<=n),计算表达式1/m+1/(m+1)+1/(m+2)+......+1/n的值,输出时保留3位小数。 输入输出示例: 括号内为说明 输入 3(repeat=3) 515(计算1/5+1/6+1/7+...+1/15) 1020(计算1/10+1/11+1/12+...+1/20) 13(计算1+1/2+1/3) 输出 sum=1.235 sum=0.769 sum=1.833 #include intmain(void) { inti,m,n; intrepeat,ri; doublesum; 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求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 intmain(void) { inti,n; intdenominator; intrepeat,ri; doublesum; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n); sum=0; denominator=1; for(i=1;i<=n;i++) { sum=sum+1.0/denominator; denominator=denominator+2; } printf("sum=%.6f\n",sum); } } 20035求1-1/4+1/7-1/10+……的前n项之和 输入一个正整数repeat(0 读入一个正整数n,计算1-1/4+1/7-1/10+……的前n项之和,输出时保留3位小数。 输入输出示例: 括号内是说明 输入 2(repeat=2) 3 10 输出 sum=0.893 sum=0.819 #include intmain(void) { intflag,i,n,t; intrepeat,ri; doubleitem,sum; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n); 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("sum=%.3f\n",sum); } } 20036输出华氏-摄氏温度转换表(改错题error02_6) 输入一个正整数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) 3235(lower=32,upper=35) 4030(lower=40,upper=30) 输出 fahrcelsius 320.0 341.1 fahrCelsius #include intmain(void) { intlower,upper; intrepeat,ri; doublecelsius,fahr; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d%d",&lower,&upper); printf("fahrcelsius\n"); for(fahr=lower;fahr<=upper;fahr++,fahr++) { celsius=5*(fahr-32)/9; printf("%3.0f%6.1f\n",fahr,celsius); }/*---------*/ } } 20038求x的n次幂 输入一个正整数repeat(0 读入1个实数x和正整数n(n<=50),计算并输出x的n次幂(保留2位小数),不允许调用pow函数求幂。 输入输出示例: 括号内是说明 输入 2(repeat=2) 1.52(x=1.5,n=2) 27(x=2,n=7) 输出 2.25 128.00 #include intmain(void) { inti,n; intrepeat,ri; doublemypow,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("%.2f\n",mypow); } } 20041生成3的乘方表 输入一个正整数n,生成一张3的乘方表,输出3^0~3^n的值,可调用幂函数计算3的乘方。 输出使用语句printf("pow(3,%d)=%.0f\n",i,mypow); 输入输出示例: 括号内是说明 输入 3(n=3) 输出 pow(3,0)=1 pow(3,1)=3 pow(3,2)=9 pow(3,3)=27 #include #include intmain(void) { inti,n; doublemypow; scanf("%d",&n); for(i=0;i<=n;i++){ mypow=pow(3,i); printf("pow(3,%d)=%.0f\n",i,mypow); } } 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 #include intmain(void) { inti; doublesum; sum=0; for(i=100;i<=1000;i++) sum=sum+sqrt(i); /*---------*/ printf("sum=%.2f\n",sum); } 20053计算物体自由下落的距离 一个物体从100m的高空自由落下,编写程序,求它在前3s内下落的垂直距离(结果保留2位小数)。 设重力加速度为10米/秒^2。 #include intmain(void) { doubleheight; height=0.5*10*3*3;/*---------*/ printf("height=%.2f\n",height); } 20056计算分段函数 输入一个正整数repeat(0 编写程序,输入x,计算并输出下列分段函数f(x)的值(保留2位小数),请调用sqrt()函数求平方根,调用pow()函数求幂。 当x>=0时,f(x)=x^0.5,当x小于0时,f(x)=x^5+2x+1/x。 输入输出示例: 括号内是说明 输入 3(repeat=3) 10(x=10) -0.5(x=-0.5) 0(x=0) 输出 f(10.00)=3.16 f(-0.50)=-3.03 f(0.00)=0.00 #include #include intmain(void) { intrepeat,ri; doublex,y; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%lf",&x); if(x>=0)y=sqrt(x); elsey=pow(x,5)+2*x+1.0/x; /*---------*/ printf("f(%.2f)=%.2f\n",x,y); } } 20061阶梯电价 输入一个正整数repeat(0 为了提倡居民节约用电,某省电力公司执行"阶梯电价",安装一户一表的居民用户电价分为两个"阶梯": 月用电量50千瓦时以内的,电价为0.53元/千瓦时;超过50千瓦时的用电量,电价上调0.05元/千瓦时。 输入用户的月用电量e(千瓦时),计算并输出该用户应支付的电费(元),结果保留2位小数。 输入输出示例: 括号内是说明 输入 2(repeat=2) 10(e=10) 100(e=100) 输出 cost=5.30 cost=55.50 #include intmain(void) { intrepeat,ri; doublecost,e; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%lf",&e); if(e<=50) cost=e*0.53; else cost=0.53*50+(e-50)*0.58; /*---------*/ printf("cost=%.2f\n",cost); } } 20062求m*m+1/m+(m+1)*(m+1)+1/(m+1)+(m+2)*(m+2)+1/(m+2)+......+n*n+1/n 输入一个正整数repeat(0 输入两个正整数m和n(m<=n),求sum=m*m+1/m+(m+1)*(m+1)+1/(m+1)+(m+2)*(m+2)+1/(m+2)......+n*n+1/n,结果保留6位小数。 输入输出示例: 括号内为说明 输入 3(repeat=3) 12(m=1,n=2) 25(m=2,n=5) 510(m=5,n=10) 输出 sum=6.500000 sum=55.283333 sum=355.845635 #include intmain(void) { inti,m,n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Res 学期 语言 上机 练习 参考答案 汇总