一、选择题
1 下列运算符中优先级最低的是:
A)?: B)&& c)+ D) !=
2 请阅读以下程序:
main()
{int a=5,b=0,c=0;
if(a=b+c) printf(\e1se printf(\ 以上程序 :
A)有语法错不能通过编译 B)可以通过编译但不能通过连接 C)输出*** D)输出$$$
3 以下程序的运行结果是 :
main() {int m=5;
if(m++> 5) printf(\ e1se printf(\ A)4 B)5 C)6 D)7
4 当a=1,b=3,c=5,d=4 ,执行完下面一段程序后x 的值是 : if(a
if(c if(b A)1 B)2 C)3 D)6 5 以下程序的输出结果是: main() {int a=100,x =10,y=20,okl=5,ok2=0; if (x if(ok2) a=10; a=-1; printf(\ A) 1 B) 0 C)-1 D)值不确定 6 以下程序的输出结果是: main() {int x= 2,y=-1,z=2; if (x if(y<0) z= 0; else z+ =1; printf(\ A)3 B )2 C)1 D) 0 7 为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与( )配对。 A)缩排位置相同的if B)其之前最近的if C) 之后最近的if D)同一行上的if 8 请阅读以下程序: #include {float a,b scanf(\if (a<0.0) b=0.0; else if((a<0.5) &&(a!=2.0)) b= 1.0/(a+2.0); else if(a<10.0) b= 1.0/x ; else b=10.0; printf(\ 若运行时输入2.0(回车),则上面程序的输出结果是: A)0.000000 B)0.500000 C) 1. 000000 D) 0.250000 9 若有条件表达式(exp) ? a++:b--,则以下表达式中能完全等价于表达式(exp)的是: A) (exp==0) B) (exp!=0) C) (exp==1) D) (exp!=1) 10 若运行时给变量x 输入12,则以下程序的运行结果是: main() {int x,y; scanf(\ y=x>12 ? x+10:x-12; printf(\ A)0 B)22 C)12 D)10 11 以下程序的运行结果是: main()' {int k= 4,a=3,b=2,c=1; printf(\ A)4 B )3 C)2 D)1 12 执行以下程序段后,变量a,b,c的值分别是: int x=10,y=9; int a,b,c; a =(--x==y++)?--x:++y ; b = x++; c = y; A)a=9,b=9,c= 9 B )a=8,b=8,c=10 C)a=9,b=10,c=9 D)a=1,b=11,c=10 13 若w,x,y,z,m均为int型变量,则执行下面语句后的m值是: w= 1;x = 2;y= 3;z=4; m=(w A)1 B )2 C)3 D)4 14 若w=1,x=2,y=3,z=4,则条件表达式w 15 执行以下程序段后的输出结果是 int w=3, z=7,x =10; printf(\ printf(\ printf(\ printf(\ A)0 B) 1 C)0 D) 0 16 以下不正确的if语句形式是: A)if(x>y && x!=y); B)if(x= =y) x+=y; C)if(x != y) scanf(\ D)if(x B) if (x= y) &&(x! = 0) x+= y; C) if(x!= y)scanf(\ D) if(x< y){x++ ;y++;} 二、填空题 1 以下程序运行结果是 。 main() {int a=2,b=3,c; c=a; if(a>b) c=1; else if (a==b) c=0; else c=-1; printf(”%d\\n”,c); } 2 若a=1,b=2,则表达式a>b?a:b+1的值是 。 3 若a=1,b=2,c=3,d=4,则表达式a>b?a:c>d?c:d的值是 。 4 设有变量定义:int a=10,c=9; 则表达式 (--a!=c++)?—a:++c的值是 。 5 若有说明语句:int x=1,y=0;则表达式x>(y+x)?10:12.5>y++?’a’: ’A’的值是【97或'a'】。 作业六 循环结构 一、选择题 1下面程序的运行结果是( ). #include {int num=0; while(num<=2) {num++; printf(“%d\\n”,num); } } A)1 B)1 2 C)1 2 3 D)1 2 3 4 2 有以下程序段 int x=0,s=0; while (!x!= 0) s+=++x; printf(\则 A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 3 语句while(!E)中的表达式!E等价于: A) E==0 B) E!=1 C) E!=0 D) E==1 4 下面程序段的运行结果是: a=1;b= 2;c=2; while(a