《C语言程序设计(第2-3章)习题答案(魏为民)》由会员分享,可在线阅读,更多相关《C语言程序设计(第2-3章)习题答案(魏为民)(17页珍藏版)》请在人人文库网上搜索。
1、习题2参考答案一、基础题1若二维数组a有m列,则在aij前的元素个数为:A)j*m+i B) i*m+jC)i*m+j-1 D)i*m+j+1B2在C语言中(以16位PC机为例),五种基本数据类型存储空间长度的排列顺序是:A) char=y&chvoid main()char ch;printf(Please input a lower character:);ch=getchar();printf(Lower is %c, ASCII is %dn,ch,ch);printf(Upper is %c, ASCII is %dn,ch-32,ch-32);2一个水分子的质量约为3.010-23。
2、g,1夸脱水大约950g。编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少水分子。程序如下:#include void main()double q,m;printf(Please input the quality of water (quart):);scanf(%lf,&q);m=q*950.0/(3.0e-23);printf(The moleculus of %f quart water is %en,q,m);3写出下列程序的运行结果:#include void main()char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%cb%c。
3、tc%ctabcn”,c1,c2,c3);printf(“tb%c%cn”,c4,c5);运行结果:aabb cc abcAN4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=,c1=a,c2=b。写出程序,使之输出下面的结果。a = 3 b = 4 c = 5x = 1., y = 2., z = -3.x + y = 3.60 y + z = -1.20 z + x = -2.40u = 51274 n = c1 = a or c1 = 97c2 = b or c2 = 98程序如下:#include void main()int a=3,b=4,c=5。
4、;double x=1.2,y=2.4,z=-3.6;unsigned int u=51274,n=;char c1=a,c2=b;printf(a = %d b = %d c = %dn,a,b,c);printf(x = %f, y = %f, z = %fn,x,y,z);printf(x + y = %5.2f y + z = %5.2f z + x = %5.2fn,x+y,y+z,z+x);printf(u = %u n = %un,u,n);printf(c1 = %c or c1 = %dn,c1,c1);printf(c2 = %c or c2 = %dn,c2,c2);5用。
5、下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a。说明在键盘上如何输入数据。#include void main()int a,b;float x,y;char c1,c2;scanf(“a = %d b = %d”,&a,&b);scanf(“x = %f y = %e”,&x,&y);scanf(“c1 = %c, c2 = %c”,&c1,&c2);输入数据:a = 3 b = 7x = 8.5 y = 7.182e1c1 = A, c2 = a验证程序:#include void main()int a,b;float x,y;char c。
6、1,c2;scanf(a = %d b = %d,&a,&b);scanf(x = %f y = %e,&x,&y);scanf(c1 = %c, c2 = %c,&c1,&c2);printf(a = %d b = %dn,a,b);printf(x = %.2f y = %.2fn,x,y);printf(c1 = %c, c2 = %cn,c1,c2);6编写程序,输入一个华氏温度,求出相应的摄氏温度(输出结果保留两位有效数字)。公式为:程序如下:#include void main()float f,c;printf(Please input f=);scanf(%f,&f);c=5.。
7、0/9*(f-32);printf(f=%0.2f,c=%0.2fn,f,c);习题3一、基础题1设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的表达式是A) a&bB) a15?a+10:a-10;printf(%dn, b) ;A) 5 B) 25 C) 15 D) 10A4下面程序的输出结果是#include main( ) int a=2, b=7, c=5;switch(a0) case 1:switch(b=0时,什么也不输出C) printf函数永远也不执行D) 最多允许输出100个非负整数D14以下程序的输出结果是( )。#include mai。
8、n() int i;for(i=1;imain( ) int count, i=0;for(count=1; count8;y=+i)printf(%d %d , x-, y);A) 10 1 9 2 B) 9 8 7 6C) 10 9 9 0 D) 10 10 9 1D18设有以下程序main( ) int n1, n2;scanf(%d, &n2);while (n2!=0) n1=n2%10;n2=n2/10;printf(%d, n1);程序运行后,如果从键盘上输入1298,则输出结果为( 8921 )。892119下面程序的运行结果是( )。main( ) int s=0, i=1;。
9、while (smain( ) int s=0, k;for(k=7;k=0;k-)switch(k)case 1:case 4:case 7: s+; break;case 2:case 3:case 6: break;case 0:case 5: s+=2; break; printf(s=%dn, s);A)s=5 B)s=1C)s=3 D)s=7D21下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。#include main( ) int a, b, c, i;a=c=0;for(i=0;i,则输出结果为( )。main( ) int a, b, n1, n2, t;sc。
10、anf(%d, %d, &n1, &n2);if (n1n2) t=n1;n1=n2;n2=t;a=n1;b=n2;while (b!=0) t=a%b;a=b;b=t; printf(%d, %dn, a, n1*n2/a);A) 2,6 B) 4,24C) 4,12 D) 8,96B二、程序设计题1输入一个实数x,计算并输出下式的值,直到最后一项的绝对值小于10-5(保留两位小数)。程序如下:#include #include main()float x;int n=1;float s=0.0,term;printf(Please input the x:);scanf(%f,&x);te。
11、rm=1.0*x/n;while(fabs(term)10e-5)s=s+term;n=n+1;term=term*x/n;printf(The result is:%.2fn, s);2输入园的半径r,求该圆的周长、面积。结果保留两位小数。程序如下:#include void main() float pi=3.14,s,c,r; printf(请输入圆的半径:);scanf(%f,&r);s=pi*r*r;c=2*pi*r;printf(圆的面积为: %f,周长为: %fn,s,c); 3有一分数序列,求出这个数列前20项之和。程序如下:#includevoid main() int i,。
12、n=20;double s=0, a,b,c;for ( a=2,b=1,s=0,i=1; ivoid main()int Cock,Hen,Chick;for(Cock=0;Cockmain()int p,r,n,m,temp;printf(请输入两个正整数n,m:);scanf(%d,%d,&n,&m);if(nmain()int a,n,i=1,sn=0,tn=0;printf(a,n=);scanf(%d,%d,&a,&n);while(ivoid main( )int x; printf(input x: ); scanf (%d, &x);while(x 0)printf(%d ,。
13、 x%10);x = x / 10;8编程解决数学题:有一长阶梯,若每步跨2阶,最后剩1阶;若每步跨3阶,最后剩2阶;若每步跨5阶,最后剩4阶;若每步跨6阶,最后剩5阶;只有每步跨7阶,最后才正好1阶不剩。问这条阶梯共有多少阶?程序如下:#include void main()int Step=0;while(1)if(Step%2=1)&(Step%3=2)&(Step%5=4)&(Step%6=5)&(Step%7=0)break;Step+;printf(The Step is %dn,Step); 9编程解决三色球问题。 若一个口袋中放有12个球,其中3个红色球,3个白色球,6个黑色球。
14、,从中任取8个球,问共有多少种不同的颜色搭配?程序如下:#include main( )int white,red,black,count=0;for(white=1;whitemain( )int n;double t=0.01,MillionairePay=0.0,StrangerPay=0.0;for(n=1;nvoid main( )int i,n,k,flag=0;printf(Please input n=);scanf(%d,&n);doflag=0;for(i=2;i=n;i+)if(n%i=0)flag=1;k=i;break;if(flag=1)printf(%dn,k);n=n/k;while(n!=1。