1、第三章1.为表达关系xyz,应使用表达式是A.(x=y)&(y=z)B.(x=y=z)C.(x=y)AND(y=z)D.(x=y)&(y=z)2.有如下程序 main() int i; for(i=0;i3;i+) switch(i) case 1:printf(%d,i); case 2:printf(%d,i); default :printf(%d,i); 执行后输出成果是A.011122B.120C.01D.0123.对 for(表达式1;;表达式3) 可理解为()。A.for(表达式1;1;表达式3)B.for(表达式1;0;表达式3)C.for(表达式1;表达式1;表达式3)D.f
2、or(表达式1;表达式3;表达式3)4.若i为整型变量,则如下循环执行次数是()。for(i=2;i=0;) printf(%d,i-);A.0次B.1次C.无限次D.2次5.有如下程序段int n=0,p;do scanf(%d,&p); n+;while(p!=12345&n3);此处do-while循环结束条件是_。A.p值等于12345并且n值不不大于等于3B.p值不等于12345并且n值不大于3C.p值不等于12345或者n值不大于3D.p值等于12345或者n值不不大于等于36.有如下程序段int n=0,p;do scanf(%d,&p); n+;while(p!=12345&n
3、3);如下描述中对的是()。A.do-while 循环中,依照状况可以省略 whileB.由于 do-while 循环中循环体语句只能是一条可执行语句,因此循环体内不能使用复合语句C.do-while 循环由do开始,用while结束,在 while(表达式)背面不能写分号D.在 do-while 循环体中,一定要有能使 while 背面表达式值变为零(假)操作7.执行语句 for(i=1;i+bc) printf(%dn,d); else if(c-1 = d) = 1) printf(%dn,d+1); else printf(%dn,d+2); 执行后输出成果是A.2B.4C.编译时出错
4、D.3main()int x=1,a=0,b=0;switch (x) case 0:b+; case 1:a+; case 2:a+;b+; printf(a=%d,b=%d,a,b);该程序输出成果是( )A.2,2B.2,1C.1,1D.1,010.如下程序功能是:按顺序读入10名学生4门课程成绩,计算出每位学生平均分并输出,程序如下:main() int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+ ) scanf(%f,&score);sum+=score; ave=sum/4.0; printf
5、(NO%d:%fn,n,ave); 上述程序运营后成果不对的,调试中发既有一条语句出当前程序中位置不对的。这条语句是A.ave=sum/4.0B.sum=0.0;C.sum+=score;D.printf(NO%d:%fn,n,ave);11.运营如下程序后,输出成果是main() int k = -3; if(k 0) y = 1;else y = 0;A.B.C.D.13.如下程序输出成果是 main() int x, i; for(i = 1;i b?(bc?1:0):0;功能相似是( )A.if(ab)&(bc) k=1;else k=0; B.if(ab)|(bc) k=1; els
6、e k=0;C.if(ab) k=1;else if(bc) k=1;else k=0;D.if(a=b) k=0;else if(b=c) k=1;15.为了避免在嵌套条件语句 if-else 中产生二义性,C语言规定:else子句总是与()配对。A.其之后近来ifB.其之前近来ifC.缩排位置相似ifD.同一行上if16.t为int类型,进人下面循环之前,t值为0while( t=1 ) 则如下论述中对的是_。A.以上说法都不对B.循环控制表达式值为1C.循环控制表达式值为0D.循环控制表达式不合法17.如下程序段输出成果是int k,j,s;for(k = 2;k 6;k+,k+) s
7、= 1; for(j = k;j 6;j+) s += j;printf(“%dn”,s);A.15B.10C.24D.918.语句while(!E);中表达式!E等价于()。A.E!=1B.E= =0C.E=1D.E!=019.如下程序段输出成果是int x= 3;do pritnf(“%3d”,x-=2); while (!(-x);A.死循环B.1 -2 C.3 0D.120.如下程序运营成果是()。main() int i=1,sum=0; while(ib) c=a,a=b,b=c;B.if(ab) c=a,a=b,b=c;C.if(ab) c=a;a=b;b=c;D.if(ab)
8、c=a;a=b;b=c;22.如下程序中,while循环循环次数是_main() int i=0; while(i10) if(ib)a=b;if(ac)a=c;则a值为()。A.1B.不一定C.3D.225.有如下程序,若想从键盘上输入数据,使变量m中值为123,n中值为456,p中值为789,则对的输入是( )#includeint main()int m,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%dn,m,n,p);return 0;A.m=123 n=456 p=789B.m=123n=456p=789C.123 456 789D.m=1
9、23,n=456,p=78926.有如下程序main() int i=1,j=1,k=2; if(j+|k+)&i+)printf(%d,%d,%dn,i,j,k);执行后输出成果是 A.2,2,2B.2,2,3C.1,1,2D.2,2,127.如下程序段输出成果为()。 for(i=4;i1;i-) for(j=1;ji;j+) putchar(#);A.#B.无C.#D.#28.有如下程序main() float x=2.0,y;if(x0.0)y=0.0;else if(x10.0)y=1.0/x;else y=1.0;printf(%fn,y);该程序输出成果是A.0.500000B.
10、0.250000C.1.000000D.0.00000029.判断两个字符串与否相等,对的表达方式是A.while(s1=s2)B.while(s1= =s2)C.while(strcmp(s1,s2)=0)D.while(strcmp(s1,s2)= =0)30.若x是int类型变量,如下程序段输出成果是 for(x = 3;x 6;x+) printf( (x%2)?(“*%d”):(“#%dn”),x);A.B.C.D.31.C语言中,switch后括号内表达式值可以是A.只能为整型和字符型B.只能为整型C.任何类型D.只能为整型,字符型,枚举型32.设j和k都是int类型,则下面for
11、循环语句()。 for(j=0,k=0;jbc)a=b;else a=c;则a值为()。A.2B.3C.1D.034.为了避免在嵌套条件语句if-else中产生二义性,C语言规定:else总与( )配对A.同一行上ifB.其之后近来ifC.其之前近来未配对ifD.缩排位置相似if35.如下不对的if语句形式是()。A.if(xy&x!=y);C.if(x=y) x+=y;D.if(x!=y) scanf(%d,&x) else scanf(%d,&y);36.构造化程序设计所规定三种基本控制构造是()。A.树形、网形、环形B.输入、解决、输出C.主程序、子程序、函数D.顺序、选取、循环37.如
12、下程序输出成果是main() int y = 10 for(;y 0;y -) if(y % 3 = 0) pritnf(“%d”,-y); continue; A.741 B.963C.875421D.852 38.如下程序执行成果是main() int x = 0,s = 0; while( !x != 0 ) s += +x; printf( %d ,s );A.无限循环B.0C.1D.语法错误39.int a=1,b=2,c=3;if(ac)b=a;a=c;c=b;则c值为()。A.3B.2C.不一定D.140.如下论述对的是()。A.do-while语句构成循环不能用其他语句构成循环
13、来代替.B.用do-while语句构成循环,在while后表达式为零时结束循环C.用do-while语句构成循环,在while后表达式为非零时结束循环.D.do-while语句构成循环只能用break语句退出.41.假定所有变量均已正拟定义,下列程序段运营后x值是()。k1=1;k2=2;k3=3;x=15;if(!k1) x-;else if(k2) x=4; else x=3;A.15B.14C.3D.442.有如下程序,程序运营后输出成果是 ( )#include int main()int i,j,m=1;for(i=1;i0;j-) if(i*j3) break; m*=i*j;pr
14、intf(“m=%dn”,m);return 0;A.m=2B.m=6C.m=4D.m=543.如下for循环执行次数是 for(x=0,y=0;(y=123)&(x4);x+);()。A.4次B.是无限循环C.3次D.循环次数不定44.下列程序输出成果是()。 main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2:a+;b+;break; case 3:a+;b+;break; printf(a=%d,b=%dn,a,b); A.a=2,b=1B.a=2
15、,b=2C.a=1,b=0D.a=1,b=145.有如下程序,当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一种字符)1234则输出成果是(B)#include int main()char a,b,c,d;scanf(%c%c,&a,&b);c=getchar(); d=getchar();printf(%c%c%c%cn,a,b,c,d);return 0;A.1234B.1234C.123D.1246.如下程序运营成果是()。main() int n; for(n=1;n+y;x=i+) i=x;D.for(i=10;i-) sum+=i;49.从循环体内某一层
16、跳出,继续执行循环外语句是A.break语句B.return语句C.continue语句D.空语句50.下列程序输出为()。main() int y=10; while(y-); printf(y=%dn,y); A.while构成无限循环B.y=0C.y=-1D.y=151.有如下程序,程序运营后输出成果是( )#include int main()int a=1,b=2;while(a0|E0)C.(!E=0)D.(E!=0)53.如下程序段输出成果是int i,j,m = 0;for(i = 1;i = 15;i += 4) for(j = 3;j = 19;j += 4) m+;pri
17、ntf(“%dn”,m);A.15B.12C.20D.2554.执行下列语句后输出为()。 int j=-1; if(j=1) printf(*n); else printf(%n);A.%cB.有错,执行不对的C.*D.%55.如下程序执行成果是_. main() int num = 0; while( num = 2 ) num+; printf( %d,num ); A.1,2,3,B.1,2,3,4,C.1,2,D.0,1,256.下面程序运营成果是#include main() int y=10;doy-;while(-y);printf(%dn,y-);A.0B.1C.8D.-15
18、7.若有定义语句int a,b;double x;则下列选项中没有错误是( )A.switch(int)(x)%2)case 0.0:a+;break; case 1.0:b+;break; default:a+;b+;B.switch(int)x%2)case 0:a+;break; case 1:b+;break; default:a+;b+; C.switch(x%2) case 0:a+;break; case 1:b+;break; default:a+;b+; D.switch(int)x%2.0)case 0:a+;break; case 1:b+;break; default:
19、a+;b+;58.设a、b和c都是int变量,且a=3,b=4,c=5;则如下表达式中,值为0表达式是A.a|b+c&b-cB.a=bC.!(a j共执行了多少次#include main() int i = 0,j = 10,k = 2,s = 0; for( ;) i += k; if(i j) printf(“%dn”,s); break; s += i; A.4B.8C.6D.761.while(fabs(t)1e-5)if(!s/10)break;循环结束条件是()。A.fabs(t)1e-5&!s/10B.fabs(t)=1e-5&t-10&s10D.s/10=062.如下论述对的
20、是:A.用do-while构成循环时,只有在while后表达式为非零时结束循环B.do-while语句构成循环不能用其他语句构成循环来代替。C.用do-while构成循环时,只有在while后表达式为零时结束循环D.do-while语句构成循环只能用break语句退出。63.如下程序输出成果是main() int i,sum; for(i = 1;i 6;i+) sum += i; printf(“%dn” sum);A.15B.不拟定 C.16D.064.有如下程序,程序运营后输出成果是( )#includeint main() char b,c;int i;b=a;c=A;for(i=0;
21、i10;i+)D.int s=6;m:if(s100) exit(0); else s-=2;goto m:判断char型变量c与否为大写字母C表达式是A.A=c=ZB. (A=c) C. (c=A)&(c=A)&(c=Z)下列程序输出成果是()。main() int x=1,y=0,a=0,b=0; switch(x) case 1:switch(y) case 0:a+;break; case 1:b+;break; case 2:a+;b+;break; case 3:a+;b+;break; printf(a=%d,b=%dn,a,b);A.a=2,b=1B.a=1,b=0C.a=2,
22、b=2D.a=1,b=1下面关于 for 循环对的描述是()。A.for 循环是先执行循环循环体语句,后判断表达式B.在 for 循环中,不能用 break 语句跳出循环体C.for 循环只能用于循环次数已经拟定状况D.for 循环循环体语句中,可以包括多条语句,但必要用花括号括起来假定所有变量均已正拟定义,下面语句段执行后x值是a = b = c = 0;x = 35; if(!a) x-;else if(b) ;if(c) x = 3;else x = 4;A.34B.4C.35D.3在C语言中,为了结束由while语句构成循环,while后一对圆括号中表达式值应当为()。A.1B.0C.
23、TrueD.非0有如下程序,程序执行后输出成果是( )#include int main()int y=10;while(y-);printf(“y=%dn”,y);return 0;A.y=-1B.y=1C.while构成无限循环D.y=0有如下程序,程序运营后输出成果是( )#include int main()int a=1,b=0;if(!a) b+;else if(a=0) if(a) b+=2;else b+=3;printf(%dn,b);return 0;A.3B.0C.1D.2有输入语句:scanf(a=%d,b=%d,c=%d,&a,&b,&c);为使变量a值为1,b值为3
24、,c值为2,则对的数据输入方式是( )。A.a=1 b=3 c=2B.a=1,b=3,c=2C.132D.1,3,2程序段:int x=12;double y=3.141593;printf(“%d%8.6f”,x,y);输出成果是( )A.12,3.141593 B.12 3.141593C.123.141593D.123.1415930若变量已正拟定义,有如下程序段i=0;do printf(“%d,”,i);while(i+);printf(“%dn”,i); 其输出成果是 ( )A.0,0B.程序进入无限循环C.1,1D.0,1下列条件语句中输出成果与其她语句不同是( )A.if(a)
25、 printf(%dn,x); else printf(%dn,y);B.if(a=0) printf(%dn,y); else printf(%dn,x);C.if(a=0) printf(%dn,x); else printf(%dn,y);D.if(a!=0) printf(%dn,x); else printf(%dn,y);有如下程序,程序运营后输出成果是 ( )#includeint main() int x=1,y=0;if(!x) y+;else if(x=0)if (x) y+=2;else y+=3;printf(%dn,y);return 0;A.3B.2C.0D.1有如
26、下程序段char name20;int num;scanf(name=%s num=%d,name;&num);当执行上述程序,并从键盘输入:name=Lili num=1001后,name值( )A.Lili num=B.name=LiliC.LiliD.name=Lili num=1001执行下列程序片段时输出成果是( )。int x=13,y=5;printf(%d,x%=(y/=2);A.2B.3C.1D.0已知有如下定义和输入语句,若规定a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,对的数据输入方式是( )。int a1,a2;char c1,c2;sc
27、anf(%d%c%d%c,&a1,&c1,&a2,&c2);A.10A20BB.10A20 BC.10 A20BD.10 A 20 B若定义x为double型变量,则能对的输入x值语句是( )。A.scanf(%5.1f,&x);B.scanf(%f,x);C.scanf(%lf,&x);D.scanf(%f,&x);如下程序段中变量已正拟定义for(i=0;i4;i+,i+)for(k=1;k3;k+) printf(“*”);程序段输出成果是 ( )A.*B.*C.*D.*有如下程序段,如下论述中对的是( )int main() while( getchar()!=n); A.此while
28、语句将无限循环B.当执行此while语句时,只有按回车键程序才干继续执行C.当执行此while语句时,按任意键程序就能继续执行D.getchar()不可以出当前while语句条件表达式中有如下程序:程序运营后输出成果是 ( )#include int main() int a=7;while(a-);printf(%dn,a);return 0;A.-1B.1C.0D.7if语句基本形式是:if(表达式)语句,如下关于表达式值论述中对的是( )A.必要是正数B.可以是任意合法数值C.必要是整数值D.必要是逻辑值设变量均已正拟定义并且赋值,如下与其她三组输出构造不同一组语句是( )A.n=+x;
29、printf(%dn,n);B.n=x+;printf(%dn,n);C.+x;printf(%dn,x);D.x+;printf(%dn,x);若有定义:int a,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给变量a,5付给变量b输入数据是( )A.3,5B.3 5C.3;5D.35有如下程序#include int main()int a1,a2; char c1,c2;scanf(%d%c%d%c,&a1,&c1,&a2,&c2);printf(%d,%c,%d,%c,a1,c1,a2,c2);return 0;若想通过键盘输入,使得a1值为12,a2值为34
30、,c1值为字符a,c2值为字符b,程序输出成果是:12,a,34,b则对的输入格式是(如下_代表空格,代表回车)A.12,a,34,bB.12_a34_bC.12a34bD.12_a_34_b有如下程序,程序运营后输出成果是( )#include int main()int a=1,b=2;for(;a8;a+) b+=a;a+=2;printf(“%d,%dn”,a,b);return 0;A.8,11B.7,11C.9,18D.10,14若i和k都是int类型变量,有如下for语句for(i=0,k=-1;k=1;k+) printf(*n);下面关于语句执行状况论述中对的是 ( )A.构
31、成无限循环B.循环体一次也不执行C.循环体执行两次D.循环体执行一次程序设计/*编写函数fun,它功能是:求n以内(不涉及n)同步能被5与11整除所有自然数之和平方根s,并作为函数值返回。例如,n为1000时,函数值应为s=96.979379。注意:某些源程序给出如下。请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。试题程序:*/#include #include #includedouble fun(int n)/*Begin*/* End */void main() FILE *wf;printf(s=%fn,fun(1000);/*/ wf=fopen(debugout6.dat,w); fprintf(wf,%lf,fun(1000); fclose(wf);/*/【参照代码】double fun(int n) double s=0.0; int i; for(i=0;in;i+) if(i%5=0&i%11=0) s=s+i; s=sqrt(s); /*对s求平方根*/ return s; P=m!/(n!(m-n)!),例如,m=12,n=8时,运营成果为495.000000。