Res春学期C语言上机练习参考答案汇总.docx

上传人:b****8 文档编号:30569104 上传时间:2023-08-16 格式:DOCX 页数:93 大小:40.27KB
下载 相关 举报
Res春学期C语言上机练习参考答案汇总.docx_第1页
第1页 / 共93页
Res春学期C语言上机练习参考答案汇总.docx_第2页
第2页 / 共93页
Res春学期C语言上机练习参考答案汇总.docx_第3页
第3页 / 共93页
Res春学期C语言上机练习参考答案汇总.docx_第4页
第4页 / 共93页
Res春学期C语言上机练习参考答案汇总.docx_第5页
第5页 / 共93页
点击查看更多>>
下载资源
资源描述

Res春学期C语言上机练习参考答案汇总.docx

《Res春学期C语言上机练习参考答案汇总.docx》由会员分享,可在线阅读,更多相关《Res春学期C语言上机练习参考答案汇总.docx(93页珍藏版)》请在冰豆网上搜索。

Res春学期C语言上机练习参考答案汇总.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1