c语言部分习题参考答案(4--7)

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

c语言部分习题参考答案(4--7)

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-1280xff8034870xd9f4.3下列那些是合法的单字符常量?合法单个字符常量:(1)直接形式:例‘A’;(2)八进制‘ddd’;(3)十六进制‘xhh’;(4)转义字符:以‘’开头。‘A’合法;‘84’不合法;八进制中无“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为204.5结果为:9,114.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。10n第5章顺序结构程序设计5.2D5.3BB5.4B5.5A5.6以下程序的输出结果为:i:dec=-4,oct=177774,hex=fffc,unsigned=655325.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:%dn",b);}(2)根据圆柱体的高和半径,求圆柱体的表面积和体积。N-S流程图参考:源程序参考:#definePI3.14main(){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=%.2fn",s,v);}10n第6章选择结构程序设计6.1(1)D(2)B(3)D(4)B(5)B(6)B6.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("%dn",c);}/*6.4*/输入a,b,cmax=a;maxb)max=a;elsemax=b;if(maxz且y+z>xY且z+x>yNs1=(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=%.2fn",s2);}elseprintf("errorn");}补2、有一函数:输入,求的值输入xYx<1Ny=x*xx10(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()输入xsin=0a=xn=1b=1s=1t=a/bsin=sin+ta=a*x*xb=b*(n+1)*(n+1)s=-1*st=a/bn=n+2while(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)=%fn",x,sin);}/*7.7*/main(){longnum;/*num代表一任意数*/输入一任意数numsum=0while(num!=0)x=num%10sum=sum+x*xnum=num/10输出任意数各位的平方和sumintx,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=1for(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=%fn",x);}10n/*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+zzyx=z*100+y*10+xxyz+zyxY==1231N输出xyzmain(){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=%dn",x,y,z);}}/*7.11*/a=3b=2for(i=1;i<=20;i++)sum=sum+(float)a/bt=aa=a-bb=t+b输出summain(){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=%fn",sum);}/*7.6*/main(){longnum;intx;printf("inputnumn");scanf(“%ld”,&num);do{x=num%10;printf(“%d“,x);num=num/10;}while(num!=0);}10n/*7.16*/输入mflag=1t=sqrt(m)for(i=2;i<=t;i++)m%i=Y=0Nflag=0breakflag10m是素数for(i=2;i=1;i--)m%i==0&&n%i==0YNbreak输出mmain(){intm,n,i,temp;printf(“pleaseinputm,nn”);scanf(“%d,%d”,&m,&n);if(m=1;i--)if(m%i==0&&n%i==0)break;printf(“最大公约数是:%dn”,i);}10nmain(){intm,n,i,temp;输入m,m=1;i--)m%i==0&&n%i==0YNbreak输出mprintf(“pleaseinputm,nn”);scanf(“%d,%d”,&m,&n);if(m
查看更多

相关文章