c语言部分习题参考答案47.docx

上传人:b****3 文档编号:3939676 上传时间:2023-05-06 格式:DOCX 页数:20 大小:60.69KB
下载 相关 举报
c语言部分习题参考答案47.docx_第1页
第1页 / 共20页
c语言部分习题参考答案47.docx_第2页
第2页 / 共20页
c语言部分习题参考答案47.docx_第3页
第3页 / 共20页
c语言部分习题参考答案47.docx_第4页
第4页 / 共20页
c语言部分习题参考答案47.docx_第5页
第5页 / 共20页
c语言部分习题参考答案47.docx_第6页
第6页 / 共20页
c语言部分习题参考答案47.docx_第7页
第7页 / 共20页
c语言部分习题参考答案47.docx_第8页
第8页 / 共20页
c语言部分习题参考答案47.docx_第9页
第9页 / 共20页
c语言部分习题参考答案47.docx_第10页
第10页 / 共20页
c语言部分习题参考答案47.docx_第11页
第11页 / 共20页
c语言部分习题参考答案47.docx_第12页
第12页 / 共20页
c语言部分习题参考答案47.docx_第13页
第13页 / 共20页
c语言部分习题参考答案47.docx_第14页
第14页 / 共20页
c语言部分习题参考答案47.docx_第15页
第15页 / 共20页
c语言部分习题参考答案47.docx_第16页
第16页 / 共20页
c语言部分习题参考答案47.docx_第17页
第17页 / 共20页
c语言部分习题参考答案47.docx_第18页
第18页 / 共20页
c语言部分习题参考答案47.docx_第19页
第19页 / 共20页
c语言部分习题参考答案47.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言部分习题参考答案47.docx

《c语言部分习题参考答案47.docx》由会员分享,可在线阅读,更多相关《c语言部分习题参考答案47.docx(20页珍藏版)》请在冰点文库上搜索。

c语言部分习题参考答案47.docx

c语言部分习题参考答案47

C语言部分习题参考答案

第4章数据类型及表达式

4.1若a,b为整型变量,则下列表达式正确的是那些?

a=-21正确a=-0123正确以0开头的是八进制整型常量

a=0×12ab错误十六进制整型常量以0x开头

b=a正确a必须先有确定的值

a=b+a=3错误a=b+a=3等价于a=(b+a)=3等价于a=((b+a)=3)

b=a=3正确b=a=3等价于b=(a=3)

4.2写出下列整型数据在内存中的存储形式。

(用十六进制表示)

150xf-327600x80081270x7f

-327680x8000-1280xff8034870xd9f

4.3下列那些是合法的单字符常量?

合法单个字符常量:

(1)直接形式:

例‘A’;

(2)八进制‘\ddd’;(3)十六进制‘\xhh’;(4)转义字符:

以‘\’开头。

‘A’合法;‘\084’不合法;八进制中无“8”这个数码

‘\x34’,‘\n’合法;‘\m’不合法;“0”不合法;“0”为字符串

‘ab’不合法;单引号内为两个字符‘\t’合法。

4.4设有如下的数据描述:

inta=4,b=5;

floatx=65.789;

charc1='A',c2='\375';

(1)a*100+b*10+2=>4*100+5*10+2=>452

(2)c1*(a=x)=>65*(a=x)=>65*65=>4225其中:

x为float,需转化为int,舍弃小数点,表达式的值等于a的值

(3)b/a+(int)(x+a)%c1=>1+(int)69.789%c1=>1+69%65=>1+4=>5

(4)c1%c2=>65%(-3)=>2

(5)a+=a-=a%=a等价于a+=(a-=(a%=a))等价于a+=(a-=0)等价于a+=0等价于a=a+0等价于0a为0,表达式为0

(6)(a*=b,a*2),a+6等价于(a=a*b,a*2),a+6等价于(a=20,a*2),a+6等价于(a=20,40),a+6等价于40,a+6等价于表达式的值为26,a为20

4.5结果为:

9,11

4.6

(1)(x*x+y*y)/(x-y),v*t+1/2.0*a*t*t

(2)3.14*R*R,3/4.0*3.14*R*R*R

(3)2*(a+b),(a+b+c)/3.0,8*x+7*y+5*(12-x-y)

(4)sin(x+0.5)*sin(x+0.5)+3*cos(2*x+4)+atan(x)

4.8

(1)赋值表达式的值:

4;c=4,a=4;

(2)赋值表达式的值:

65533;d=65533,b=-3;

(3)赋值表达式的值:

‘.’;b=-3,c2=‘.’;

(4)赋值表达式的值:

‘>’;c1=‘>’,c2=‘z’;

(5)赋值表达式的值:

‘A’;c1=‘A’,x=65.789;

(6)赋值表达式的值:

65533,d=65533,c2=‘z’;

(7)赋值表达式的值:

1;a=1,b=-3。

第5章顺序结构程序设计

5.2D5.3BB5.4B5.5A

5.6以下程序的输出结果为:

i:

dec=-4,oct=177774,hex=fffc,unsigned=65532

5.9正确的数据输入形式是:

a=3b=7x=8.5y=71.82c1=Ac2=a↓

5-11编程题:

(1)输入一个三位数,将它反向输出,例如输入258,输出852。

N-S流程图:

源程序参考:

main()

{inta,b,ge,shi,bai;

printf("InputaThreeBitsNumber:

");

scanf("%d",&a);

bai=a/100;

shi=a/10%10;

ge=a%10;

b=bai+shi*10+ge*100;

printf("Output:

%d\n",b);

}

(2)根据圆柱体的高和半径,求圆柱体的表面积和体积。

N-S流程图参考:

源程序参考:

#definePI3.14

main()

{floatr,h,s,v;

printf("Inputr,h=");

scanf("%f,%f",&r,&h);

s=2*PI*r*r+2*PI*r*h;

v=PI*r*r*h;

printf("S=%.2f,V=%.2f\n",s,v);

}

第6章选择结构程序设计

6.1

(1)D

(2)B(3)D(4)B(5)B(6)B

6.2

(1)3,3,3,3

(2)x:

yu=z

(3)0.600000

(4)**1**

**3**

(5)c==tt=50(6)<==

/*6.5*/

main()

{inta,b,c;

printf("inputa,b:

\n");

scanf("%d,%d",&a,&b);

if(a*a+b*b>100)c=(a*a+b*b)/100;

elsec=a+b;

printf("%d\n",c);

}

/*6.4*/

输入a,b,c

max=a;

max

max=b

max

max=c

输出最大数max

main()/*方法一*/

{floata,b,c,max;

printf("inputa,b,c:

\n");

scanf("%f,%f,%f",&a,&b,&c);

max=a;

if(max

if(max

printf("%f\n",max);

}

main()/*方法二*/

{floata,b,c,max;

printf("inputa,b,c:

\n");

scanf("%f,%f,%f",&a,&b,&c);

max=a

b:

a;

if(max

printf("%f\n",max);

}

输入a,b,c

a

max=a

max=b

max

max=c

输出最大数max

main()/*方法三*/

{floata,b,c,max;

printf("inputa,b,c:

\n");

scanf("%f,%f,%f",&a,&b,&c);

if(a>b)max=a;

elsemax=b;

if(max

printf("%f\n",max);

}

/*6.3*/

输入x

Y

x<3

N

y=2x3+3x+5

x<

Y

6

N

输出y

#include"math.h"

main()

{floatx,y;

printf("inputx:

\n");

scanf("%f",&x);

if(x<3)y=2*x*x*x+3*x+5;

elseif(x<6)y=pow((x-3)/(x+5),3);

elsey=sqrt(x+2*sin(3*x));

printf("x=%f,y=%f\n",x,y);

}

/*6.7*/

main()

{intx,flag;

printf("inputx:

\n");

scanf("%d",&x);

flag=0;

if(x%3==0)flag=flag+3;

if(x%5==0)flag=flag+5;

if(x%7==0)flag=flag+7;

switch(flag)

{case0:

printf("不能被3,5,7任一个整除\n");break;

case3:

printf("能被3整除\n");break;

case5:

printf("能被5整除\n");break;

case7:

printf("能被7整除\n");break;

case8:

printf("能被3,5整除\n");break;

case10:

printf("能被3,7整除\n");break;

case12:

printf("能被5,7整除\n");break;

case15:

printf("能被3,5,7整除\n");break;

}

}

补1、输入三角形三边长,判断其能否构成三角形,若能计算并输出三角形面积。

输入三边长x,y,z

x+y>z且y+z>x

Y

且z+x>y

N

s1=(x+y+z)/2

三边长

错误

s2=

输出面积

#include"math.h"

main()

{floatx,y,z,s1,s2;

printf("inputxyz:

\n");

scanf("%f%f%f",&x,&y,&z);

if(x+y>z&&y+z>x&&z+x>y)

{s1=(x+y+z)/2;

s2=sqrt(s1*(s1-x)*(s1-y)*(s1-z));

printf("area=%.2f\n",s2);

}

elseprintf("error\n");

}

补2、有一函数:

输入

,求

的值

输入x

Y

x<1

N

y=x*x

x<

Y

=10

N

y=2x-1

y=3x-1

输出y

main()

{floatx,y;

printf("inputx:

\n");

scanf("%f",&x);

if(x<1)y=x*x;

elseif(x<=10)y=2*x-1;

elsey=3*x-11;

printf("x=%f,y=%f\n",x,y);

}

补3、输入学生考试成绩,输出相应的等级

main()

{chargrade;

floatx;

inttemp;

printf("inputx:

\n");

scanf("%f",&x);

temp=x/10;

switch(temp)

{case10:

case9:

grade='A';break;

case8:

grade='B';break;

case7:

grade='C';break;

case6:

grade='D';break;

default:

grade='E';

}

printf("x=%f,grade=%c\n",x,grade);

}

第7章循环结构程序设计

7.3

(1)0

(2)5,5

7.4

(1)break;i>10

(2)i<10j%3(或j%3!

=0)(3)i==ji!

=k&&j!

=k

(4)j=1k<=6(5)100-5*i-2*jk>=0

/*7.9*/

main()

输入x

sin=0a=xn=1b=1s=1

t=a/b

sin=sin+t

a=a*x*x

b=b*(n+1)*(n+1)

s=-1*s

t=a/b

n=n+2

while(t>=1e-10)

输出sin

{floatsin,x,a,b,t;/*a代表分子,b代表分母*/

ints,n;/*s代表每项的符号*/

printf("inputx:

\n");

scanf("%f",&x);

sin=0;a=x;n=1;b=1;s=1;t=a/b;

do

{sin=sin+s*t;

a=a*x*x;

b=b*(n+1)*(n+2);

s=-1*s;t=a/b;

n=n+2;

}while(t>=1e-10);

printf("sin(%.2f)=%f\n",x,sin);

}

/*7.7*/

main()

{longnum;/*num代表一任意数*/

输入一任意数num

sum=0

while(num!

=0)

x=num%10

sum=sum+x*x

num=num/10

输出任意数各位的平方和sum

intx,sum;/*x代表整数的各位数,sum代表累加和*/

printf("inputnum:

\n");

scanf("%ld",&num);

sum=0;

while(num!

=0)

{x=num%10;

sum=sum+x*x;

num=num/10;

}

printf("sum=%d",sum);

}

x=1

for(i=2;i<=10;i++)

x=x*10+x

输出x

/*7.15*/

main()

{floatx;/*x代表蚂蚁数*/

inti;

x=1;

for(i=2;i<=10;i++)

x=x*10+x;

printf("x=%f\n",x);

}

/*7.10*/

for(x=1;x<=9;x++)

for(y=0;y<=9;y++)

for(z=1;z<=9;z++)

xyz=x*100+y*10+z

zyx=z*100+y*10+x

xyz+zyx

Y

==1231

N

输出xyz

main()

{intx,y,z,xyz,zyx;

for(x=1;x<=9;x++)

for(y=0;y<=9;y++)

for(z=1;z<=9;z++)

{xyz=x*100+y*10+z;

zyx=z*100+y*10+x;

if(xyz+zyx==1231)

printf("x=%d,y=%d,z=%d\n",x,y,z);

}

}

/*7.11*/

a=3b=2

for(i=1;i<=20;i++)

sum=sum+(float)a/b

t=a

a=a-b

b=t+b

输出sum

main()

{floatsum=0;

inta,b,i,t;

a=3;b=2;

for(i=1;i<=20;i++)

{sum=sum+(float)a/b;

t=a;

a=a-b;

b=t+b;

}

printf("sum=%f\n",sum);

}

/*7.6*/

main()

{longnum;

intx;

printf("inputnum\n");

scanf(“%ld”,&num);

do

{x=num%10;

printf(“%d“,x);

num=num/10;

}while(num!

=0);

}

 

/*7.16*/

输入m

flag=1t=sqrt(m)

for(i=2;i<=t;i++)

m%i=

Y

=0

N

flag=0

break

flag

1

0

m是素数

for(i=2;i

Ym%i=

=0N

输出因子i

#include"math.h"

main()

{intm,i,t,flag;

printf("inputm\n");

scanf("%d",&m);

flag=1;

t=sqrt(m);

for(i=2;i<=t;i++)

if(m%i==0)

{flag=0;

break;

}

if(flag)printf("%disaprime\n",m);

elsefor(i=2;i

if(m%i==0)printf("%d",i);

printf("\n");

}

或:

main()

{intm,i,t,flag;

printf("inputm\n");

scanf("%d",&m);

flag=1;

for(i=2;i

if(m%i==0)

{flag=0;

printf("%d",i)

}

if(flag)printf("%disaprime\n",m);

printf("\n");

}

/*7.5*/

1、

s=0,f=1

for(i=1;i<=20;i++)

f=f*i

s=s+f

输出s

main()

{floats=0,f=1;

inti;

for(i=1;i<=20;i++)

{f=f*i;

s=s+f;

}

printf("1!

+2!

+3!

+…+20!

=%.0f\n",s);

}

2、

main()

{intsum=0,s=0,i;

for(i=1;i<=20;i++)

{s=s+f;

sum=sum+s;

}

printf("sum=%d\n",sum);

}

3、

方法一:

方法二:

main()main()

{intx,a,b,c;{intx,a,b,c;

for(x=100;x<=999;x++)for(a=1;a<=9;a++)

{a=x/100;for(b=0;b<=9;b++)

b=x/10%10;for(c=0;c<=9;c++)

c=x%10;{x=a*100+b*10+c;

if(x==a*a*a+b*b*b+c*c*c)if(x==a*a*a+b*b*b+c*c*c)

printf('%d",x);printf('%d",x);

}}

}}

/*7.8合并8.8*/

longfac(n)main()

intn;{intcmn,n,m;

{longf=1;longfac();

inti;printf(“inputm,n:

\n”);

for(i=1;i<=n;i++)scanf(“%d,%d”,&m,&n);

f=f*i;cmn=fac(m)/(fac(n)*fac(m-n));

return(f);printf(“cmn=%d\n”,cmn);

}}

/*求俩个数的最大公约数和最小公倍数概念法*/

main()

{intm,n,i,temp;

printf(“pleaseinputm,n\n”);

scanf(“%d,%d”,&m,&n);

if(m

{t=m;m=n;n=t;}

for(i=n;i>=1;i--)

if(m%i==0&&n%i==0)break;

printf(“最大公约数是:

%d\n”,i);

}

main()

{intm,n,i,temp;

printf(“pleaseinputm,n\n”);

scanf(“%d,%d”,&m,&n);

if(m

for(i=m;i<=m*n;i++)

if(i%m==0&&i%n==0)break;

printf(“最小公倍数是:

%d\n”,i);

}

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2