51.设x、y均为float型变量,则以下不合法的赋值语句是( )。
A)++x B)y=(x%2)
/10 C)x*=y+8 D)x=y=0
52.设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,
x、y和z的值是( )。
A)x=10 y=15 z=10 B)x=10 y=10 z=10
C)x=10 y=10 c=15 D)x=10 y=5 z=10
53.设有说明:double y=0.5,z=1.5;int x=10;
则能够正确使用C语言库函数的赋值语句是( )。
A)z=exp(x,y)+fabs(x) B)y=log10(y)+pow(y)
C)z=sqrt(y-z) D)x=(int)(atan2((double)x,y)+exp(y-0.2))
54.逻辑运算符两侧运算对象的数据类型( )
A)只以是0和1 B)只能是0和非0正数
C)只能是整形和字符型数据 D)可以是任何类型的数据
55.以下正确的描述是( )。在C语言程序中
A)函数的定义可以嵌套,但函数的调用不可以嵌套
B)函数的定义不可以嵌套,但函数的调用可以嵌套
C)函数的定义和函数的调用均不可以嵌套
D)函数的定义和函数的调用均可以嵌套
56.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,
否则为假”的表达式是( )。
A) (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B) (x>=1)||(x<=10)||(x>=200)||(x<=210)
C) (x>=1)&&(x<=10)||(x>=200)&&(x<=210)
D) (x>=1)||(x<=10)&&(x>=200)||(x<=210)
57.以下程序的输出结果是( )。
Main()
{ int a=100,x=10,y=20,ok1=5,ok2=0;
if(x<y)
if(y!=10)
if(! Ok1)
a=1;
else
if(ok2) a=10;
a=-1;
printf(″%d\n″,a);}
A) 1 B) 0 C)-1 D)值不确定
58.以下程序的输出结果是( )。
main()
{ int x=2,y=﹣1,z=2;
if (x<y)
if (y<0) z=0;
else z+=1;
printf (″%d″,z)}
A) 3 B) 2 C) 1 D) 0
59.为了避免在嵌套的条件语句if﹣else中产生二义性,
C语言规定:else子句总是与( )配对。
A)缩排位置相同的if B)其之前最近的if
C)其之后最近的if D)同一行上的if
60.以下不正确的语句为( )。
A) if (x>y);
B) if(x=y)&&(x!=0)x+=y
C) if(x!=y)scanf(″%d″,&x);else scanf(″%d″,&y)
D)if(x
61.请阅读以下程序:
#include
main()
{ float a,b;
scanf(″%f″,&a);
if(a<0.0)b=0.0;
else if
(a<0.5)&&(a!=2.0)/(a+2.0);
else if(a<10.0)b=1.0/a;
else b=10.0;
printf(″%f\n″,b);}
若运行时输入2.0,则上面程序的输出是( )。
A)0.000000 B)0.500000 C)1.000000 D)0.250000
62.若有条件表达式(exp) ?a++b--,
则以下表达式中能完全等价于表达式(exp)的是的( )。
A) (exp==0) B) (exp!=0) C) exp==1 D) (exp!=1)
63.若运行时给变量x输入12,则以下程序的运行结果是( )。
Main()
{ int x,y;
Scanf(″%d″,&x);
Y=x>12?x+10;x-12;
Printf(″%d\n″,y);
}
A)
0 B)
22 C)12 D)10
64.以下程序的运行结果是( )。
main()
{ int k=4,a=3,b=2,c=1;
Printf(″\n%d\n″,k
k:c
}
A)
4 B)
3 C)
2 D) 1
65.执行以下程序段后,变量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
66.若w、x、y、z、m均为int型变量,则执行下面语句后的m的值是( )。
w=1;x=2;y=3,z=4
m=(w
m=(m
m=(m
A)
1 B)
2 C)
3 D) 4
67.若w=1,x=2,y=3,z=4,则条件表达式w
y:z的值是( )。
A)
4 B)
3 C)
2 D) 1
68.执行以下程序段后的输出结果是( )。
int w=3 z=7,x=10;
printf(″%d\n″,x>10?x+100:x-10);
printf(″%d\n″,w++||z++);
printf(″%d\n″,!w>z);
printf(″%d\n″,w&&z);
A)
0 B)
1 C)
0 D) 0
1 1 1 1
1 1 0 0
1 1 1 0
69.设有程序段
t=0;
while(printf(″*″))
{t++;
if(t<3) break;
}
下面描述正确的是( )。
A)其中循环控制表达式与0等价 B)其中循环控制表达式与'1'等价
C)其中循环控制表达式是不合法的 D)以上说法都不对
70.下面程序的功能是将从键盘输入的一对数,由小到大排序输出。
当输入一对相等数时结束循环,请选择。
#include
main()
{ int a,b,t;
scanf(
while(【1】)
{ if(a>b)
{t=a;a=b;b=t;}
printf(″%d,%d\n″,a,b);
scanf(″%d%d″,&a,&b);}
A)
!a=b B)
a!=b C)
a==b D) a=b
71.设有程序段
int k=10;
while (k==0) k=k-1;
则以下描述中正确的是( )。
A)
while循环执行0次 B) 循环是无限循环
C)
循环体语句一次也不执行 D) 循环体语句执行一次
72.设有以下程序段
int x=0,s=0;
while(x!=0) s+=++x;
printf(″%d″,s);
则( )。
A)运行程序段后输出0 B)运行程序段后输入1
C)程序段中的控制表达式是非法的 D)程序段执行无限次
73.语句while(! E);中的表达式!E等价于( )。
A)
E==0 B) E!=0 C)
E!=0 D) E==1
74.下面程序段的运行结果是( )。
a=1;b=2;c=2
while(a
printf(″%d,%d,%d″,a,b,c);
A)
1,2,0 B) 2,1,0 C)
1,2,1 D)2,1,1
75.下面程序段的运行结果是( )。
x=y=0;
while(x<15) y==,x+=++y;
printf(″%d,%d″,y,x);
A)
20,7 B)6,12 C)20,8 D)8,20
76.下面程序段的运行结果是( )。
int n=0;
while(n++<=2);printf(″%d″,n);
A)
2 B)
3 C)
4 D) 有语法错误
77.下面程序的功能是在输入的一批正整数中求出最大者,
输入0结束循环,请选择填空。
#include
main()
{ int a,max=0;
scanf(″%d″,&a);
while(【1】)
{ if(max