1、C语言上机题库百科园第3章南信大第三章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); 执行后输出结果是3.对 for(表达式1; ;表达式3) 可理解为()。(表达式1;1;表达式3)(表达式1;0;表达式3)(表达式1;表达式1;表达式3)(表达式1;表达式3;表达式
2、3)4.若i为整型变量,则以下循环执行次数是()。for(i=2;i=0;) printf(%d,i-);次次C.无限次次5.有以下程序段int n=0,p;do scanf(%d,&p); n+;while(p!=12345&n3);此处do-while循环的结束条件是_。的值等于12345并且n的值大于等于3的值不等于12345并且n的值小于3的值不等于12345或者n的值小于3的值等于12345或者n的值大于等于36.有以下程序段int n=0,p;do scanf(%d,&p); n+;while(p!=12345&n3);以下描述中正确的是()。 循环中,根据情况可以省略 while
3、B.由于 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); 执行后输出结果是C.编译时出错main()int x=1,a=0,b=0;switch (x) case 0: b+; case 1: a+;
4、case 2: a+;b+; printf(a=%d,b=%d,a,b);该程序的输出结果是( ),2,1,1,010.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main() int n,k; float score,sum,ave; sum=; for(n=1;n=10;n+) for(k=1;k=4;k+ ) scanf(%f,&score); sum+=score; ave=sum/; printf(NO%d:%fn,n,ave); 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是=sum/=;+=sc
5、ore;(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(bc1:0):0;功能相同的是( )(ab)&(bc) k=1; else k=0; (ab)|(bc) k=1; else k=0;(ab) k=1;else if(bc) k=1;else k=0;(a=b) k=0;else if(b=c) k=1;15.为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定
6、:else子句总是与()配对。A.其之后最近的ifB.其之前最近的ifC.缩排位置相同的ifD.同一行上的if为int类型,进人下面的循环之前,t的值为0while( t=1 ) 则以下叙述中正确的是_。A.以上说法都不对B.循环控制表达式的值为1C.循环控制表达式的值为0D.循环控制表达式不合法17.以下程序段的输出结果是int k, j, s;for(k = 2; k 6; k+, k+) s = 1; for(j = k; j 6; j+) s += j;printf(“%dn”, s);18.语句while(!E);中的表达式!E等价于()。!=1= =0=1!=019.以下程序段的输
7、出结果是int x= 3;do pritnf(“%3d”, x-=2); while (!(-x);A.死循环 -2 020.以下程序的运行结果是()。main() int i=1,sum=0; while(ib) c=a,a=b,b=c;(ab) c=a,a=b,b=c; (ab) c=a;a=b;b=c;(ab) c=a;a=b;b=c;22.以下程序中,while循环的循环次数是_main() int i=0; while(i10) if(ib)a=b; if(ac)a=c; 则a的值为()。B.不一定25.有以下程序,若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中
8、的值为789,则正确的输入是( )#includeint main()int m,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%dn,m,n,p);return 0;=123 n=456 p=789=123n=456p=789 456 789=123,n=456,p=78926.有以下程序main() int i=1,j=1,k=2; if(j+|k+)&i+)printf(%d,%d,%dn,i,j,k);执行后输出结果是 ,2,2,2,3,1,2,2,127.以下程序段的输出结果为()。 for(i=4;i1;i-) for(j=1;ji;j+)
9、 putchar(#);A.#B.无C.#D.#28.有如下程序main() float x=,y;if(x)y=;else if(x)y=x;else y=;printf(%fn,y);该程序的输出结果是判断两个字符串是否相等,正确的表达方式是(s1=s2)(s1= =s2)(strcmp(s1,s2)=0)(strcmp(s1,s2)= =0)30.若x是int类型变量,以下程序段的输出结果是 for(x = 3; x 6; x+) printf( (x%2)(“*%d”):(“#%dn”),x);A.B.C.D.语言中,switch后的括号内表达式的值可以是A.只能为整型和字符型B.只能
10、为整型C.任何类型D.只能为整型,字符型,枚举型32.设j和k都是int类型,则下面的for循环语句()。 for(j=0,k=0;jbc)a=b; else a=c; 则a的值为()。34.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else总与( )配对A.同一行上的ifB.其之后最近的ifC.其之前最近的未配对的ifD.缩排位置相同的if35.以下不正确的if语句形式是()。(xy&x!=y);(x=y) x+=y;(x!=y) scanf(%d,&x) else scanf(%d,&y);36.结构化程序设计所规定的三种基本控制结构是()。A.树形、网形、环形B.输
11、入、处理、输出C.主程序、子程序、函数D.顺序、选择、循环37.以下程序的输出结果是main() int y = 10 for(; y 0; y -) if(y % 3 = 0) pritnf(“%d”, -y); continue; 38.以下程序的执行结果是main() int x = 0, s = 0; while( !x != 0 ) s += +x; printf( %d ,s ); A.无限循环D.语法错误 a=1,b=2,c=3; if(ac)b=a;a=c;c=b;则c的值为()。C.不一定40.以下叙述正确的是()。语句构成的循环不能用其它语句构成的循环来代替.B.用do-while语句构成的循环,在while后的表达式为零时结束循环C.用do-while语句构成的循环,在while后的表