第1题
以下选项中,能表示逻辑值“假”的是( )。
1
0.000001
0
100.0
第2题
以下表达式的值与x无关、其值恒为真的是( )。
0<x<5
x>10&&x<5
x>10ǁx<5
x<10&&x>5
第3题
当变量c的值不为2、4、6时,值也为“真”的表达式是( )。
(c==2)ǁ(c==4)ǁ(c==6)
(c>=2&&c<=6)ǁ(c!=3)ǁ(c!=5)
(c>=2&&c<=6)&&!(c%2)
(c>=2&&c<=6)&&(c%2!=1)
第4题
设有定义:
int
a=0,b=1;
以下表达式中,会产生“短路”现象,致使变量b的值不变的是 ( )。
+aǁ++b
a++ǁ++b
++a&&b++
a++&&b++
第5题
若有定义语句
b=2;
则表达式(b<<2)/(3ǁb)的值是( )。
4
8
2
第6题
若a是数值类型,则逻辑表达式(a==1)ǁ(a!=1)的值是( )。
不知道a的值,不能确定
第7题
以下选项中,当x为大于1的奇数时,值为0的表达式是( )。
x%2==1
x/2
x%2!=0
x%2==0
第8题
k1=10,k2=20;
执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为 ( )。
0和1
0和20
10和1
10和20
第9题
已知a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c<d)后n的值为( )。
-1
第10题
执行以下程序段后,w的值为( )。
w=
'A'
,x=14,y=15;
w=((x||y)&&(w<
'a'
));
NULL
第11题
有以下程序:
#include <stdio.h>
main()
{
a,b,c=241;
a=c/100%9;
b=(-1)&&(-1);
printf
(
"%d,%d\n"
,a,b);
}
程序运行后的输出结果是( )。
2,1
6,1
6,0
2,0
第12题
a=-2,b=0;
while
(a++&&++b);
1,3
0,2
0,3
1,2
第13题
有以下程序
:#include <stdio.h>
main(){
n=2,k=0;
(k++&&n++>2);
"%d %d\n"
,k,n);
0 2
1 3
5 7
1 2
第14题
以下叙述中正确的是( )。
分支结构是根据算术表达式的结果来判断流程走向的
在C语言中,逻辑真值和假值分别对应1和0
对于浮点变量x和y,表达式:x==y是非法的,会出编译错误
关系运算符两边的运算对象可以是C语言中任意合法的表达式
第15题
若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是( )。
a<>b+c
c=getchar()
a==b+c
a++
第16题
为了避免在嵌套的if-else语句中产生二义性,C语言规定与else子 句配对是( )。
与其在同一行上的if子句
在其之后最近的不带else的if子句
与其缩排位置相同的if子句
在其之前最近的不带else的同层if子句
第17题
下列条件语句中,输出结果与其他语句不同的是( )。
if(a)print f("%d\n",x);else printf("%d\n",y);
if(a==0)print f("%d\n",y);else printf("%d\n",x);
if(a!=0)print f("%d\n",x)else printf("%d\n",y);
if(a==0)print f("%d\n",x)else printf("%d\n",y);
第18题
a=1,b=2,c=3;
以下语句中执行效果与其他三个不同的是( )。
if(a>b)c=a,a=b,b=c;
if(a>b){c=a,a=b,b=c}
if(a>b)c=a;a=b;b=c;
if(a>b){c=a;a=b;b=c}
第19题
有以下程序段,若变量已正确定义并赋值
if
(a>b)
"x=%d,"
,x);
else
"y=%d,"
,y);
(a<=b)i++;
j++;
则与此程序段功能相同的选项是( )。
if(a>b) { printf("x=%d,",x); j++ } else { printf("y=%d,",y); i++ }
if(a>b) { printf("x=%d,",x); i++ } else { printf("y=%d,",y); j++ }
if(a<=b) { printf("x=%d,",x); i++ } else { printf("y=%d,",y); j++ }
if(a>=b) { printf("x=%d,",x); i++ } else { printf("y=%d,",y);j++}
第20题
x=0x13;
(x=0x12)
"True"
);
"False\n"
True
TrueFalse
False
TrueFalseTrue
第21题
有以下程序段:
scanf
"%d%d%d"
,&a,&b,&c);
(a>b)a=b;
(a>c)a=c;
"%d\n"
,a);
该程序段的功能是( )。
输出a、b、c中的最小值
输出a、b、c中的最大值
输出a的原始值
输出a、b、c中值相等的数值
第22题
(a<b)a==b;
(a<c)a=
"=c;"
第23题
以下程序的功能是判断输入的一个整数是否能被3或7整除,若能 整除,输出YES,否则输出NO。在下划线处应填入的选项是 ( )。
k;
"Enter a int number:"
"%d"
,&k);
_____
"YES\n"
"NO\n"
,k%3);
((k%3==0)ǁ(k%7==0))
(k/3==0)ǁ(k/7==0)
((k%3=0)ǁ(k%7=0))
((k%3==0)&&(k%7==0))
第24题
'\0'
==0)
putchar
'1'
'0'
'2'
>
'b'
)
'3'
123
23
3
第25题
x;
,&x);
(x>10)
"1"
(x>20)
"2"
(x>30)
"3"
);}
若运行时输入:35<回车>,则输出结果是( )。
第26题
a,b,c;
a=10;b=50;c=30;
(a>b)a=b,b=c;c=a;
"a=%db=%dc=%d"
,a,b,c);
程序的输出结果是( )。
a=10 b=50 c=10
a=10 b=50 c=30
a=10 b=30 c=10
a=10 b=30 c=50
第27题
若变量已正确定义,有以下程序段:
a=3,b=5,c=7;
(a>b) a=b;c=a;
(c!=a)c=b;
"%d,%d,%d\n"
其输出结果是( )。
程序段有语法错误
3,5,3
3,5,5
3,5,7
第28题
以下函数按每行8个输出数组中的数据:
void
fun(
*w,
n)
i;
for
(i=0;i<n;i++) {______
,w[i]);}
"\n"
下划线处应填入的语句是( )。
if(i/8==0) printf("\n");
if(i/8==0) printf("\n"); B.if(i/8==0)continue;
if(i%8==0) printf("\n");
if(i%8==0)continue;
第29题
x=1,y=2,z=3;
(x>1)
(y>x)
'B'
(z<x)
'C'
'D'
程序的运行结果是( )。
D
C
B
A
第30题
(x>y)
(y<z)
,++z);
,++y);
,x++);
程序运行的结果是( )。
331
41
第31题
#include main()
x=1,y=0;
(!x)y++;
(x==0)
(x)y+=2;
y+=3;
第32题
在以下程序:
a=1,b=0;
(!a) b++;
(a==0)
(a)b+=2;
b+=3;
,b);
第33题
(x<=3);
(x!=10)
程序运行时,输入的值在( )范围才会有输出结果。
不等于10的整数
大于3且不等于10的整数
大于3或等于10的整数
小于3的整数
第34题
若有以下程序
a=1,b=2,c=3,d=4;
((a==2)||(b==1))c=2;
((c==3)&&(d==-1))a=5;
"%d,%d,%d.%d\n"
,a,b,c,d);
则程序的输出结果是( )。
2,2,2,4
2,1,2,-1
5,1,2,-1
1,2,3,4
第35题
a=0,b=0,c=0,d=0;
(a=1)b=1;c=2;
d=3;
"%d,%d,%d,%d\n"
程序输出( )。
0,0,0,3
编译有错
1,1,2,0
0,1,2,0
第36题
有如下程序
(x=0x18)
"T"
"F"
TF
T
F
TFT
第37题
有以下计算公式:
若程序前面已在命令行中包含math.h文件,不能够计算上述公式的程 序段是( )。
y=sqrt(x); if(x<0)y=sqrt(-x);
if(x>=0)y=sqrt(x); else y=sqrt(-x);
if(x>=0)y=sqrt(x); if(x<0)y=sqrt(-x);
y=sqrt(x>=0?x:-x);
第38题
如有表达式(w)?(-x):(++y),则其中与w等价的表达式是 ( )。
w==1
w==0
w!=1
w!=0
第39题
若有定义:int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是( )。
(x-y==0)
(x-y<0)
(x-y>0)
(x-y<0ǁx-y>0)
第40题
有如下嵌套的if语句:
(a<b)
(a<c)k=
"a;"
=
""
k=
"c;"
(b<c)k=
"b;"
以下选项中与上述if语句等价的语句是( )。
k=(a<b)?a:b;k=(b<c)?b:c;
k=(a<b)?((b<c)?a:b):((b<c)?b:c);
k=(a<b)?((a<c)?a:c):((b<c)?b:c);
k=(a<b)?a:b;k=(a<c)?a:c;
第41题
以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是( )。
if((a>b) && (b>c)) k=1; else k=0;
if((a>b)ǁ(b>c)) k=1; else k=0;
if(a<=b) k=0; else if(b<=c) k=1;
if(a>b) k=1; else if(b>c) k=1; else k=0;
第42题
有语句:k=x<y?(y<z?1:0):0; 以下选项中,与此语句功能相同的是( )。
if(x<yǁy<z)k=1;else k="0;"
if(x<y)k=0;else if(y<z)k="1;"
if(x<y)if(y<z)k=1;else k="0;"
if(x<y &&="" y<z)k="1;else" k="0;"
第43题
若有定义:
有C语言表达式 (a++ && b++)? c++ : d++,以下关于其执行顺序的叙述 正确是( )。
先执行a++,表达式a++的值为0,由此即可确定(a++ && b++)值为0,因此执行d++
先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++ && b++)值为0,因此执行d++
先执行a++,表达式a++的值为1;再执行b++,表达式b++的值为1,由此可确定(a++ && b++)值为1,因此执行c++
先执行b++,表达式b++的值为1;再执行a++,表达式a++的值为1,由此可确定(a++ && b++)值为1,因此执行c++
第44题
以下关于C语言表达式:(++aǁ++b)? ++c:++d执行顺序的叙述正确的是 ( )。
先执行++a,表达式++a的值为1;再执行++b,表达式++b的值为1,由此可确定(++aǁ++b)值为1,因此执行++c
先执行++a,表达式++a的值为1,由此可确定(++aǁ++b)值为1,因 此执行++c
先执行++b,表达式++b的值为1;再执行++a,表达式++a的值为1,由此可确定(++aǁ++b)值为1,因此执行++c
先执行++a,++b,++c,++d,使得a,b,c,d的值都为1,由此可 确定(++aǁ++b)值为1,因此执行++c
第45题
char
a=
'H'
;
a=(a>=
&&a<=
'z'
)?(a-
+
):a;
"%c\n"
a
H
h
第46题
(x=3;x<6;x++)
((x%2)?(
"*%d"
):(
"#%d"
),x);
*3#4*5
#3*4#5
*3*4#5
*3#4#5
第47题
m1(
x,
y)
return
x<=y?x:y;
m2(
x<=y?y:x;
a,
b){
a+b;
x=2,y=3,z=1;
,fun(m1(x,y),m2(y,z)));
6
5
第48题
(++a||++b)?++c:++d;
,a,b,c,d);}
1,0,1,0
1,1,0,1
1,0,0,1
1,1,1,0
第49题
下列叙述中正确的是( )。
在switch语句中,不一定使用break语句
在switch语句中,必须使用default
break语句必须与switch语句中的case配对使用
break语句只能用于switch语句
第50题
float
x=1.5;
a=1,b=3,c=2;
则正确的switch语句是( )。
switch(a+b) { case 1: printf("*\n"); case c: printf("**\n"); }
switch((int)x); { case 1: printf("*\n"); case 2: printf("**\n"); }
switch(x) { case 1.0: printf("*\n"); case 2.0: printf("**\n"); }
switch(a+b) { case 1: printf("*\n"); case 2+1: printf("**\n"); }
第51题
若有定义语句int a,b;double x;则下列选项中没有错误的是( )。
switch(x%2) { case 0:a++;break; case 1:b++;break; default:a++;b++; }
switch((int)x/2.0) { case 0:a++;break; case 1:b++;break; default:a++;b++; }
switch((int)x%2) { case 0:a++;break; case 1:b++;break; default:a++;b++; }
switch((int)(x)%2) { case 0.0:a++;break; case 1.0:b++;break; default:a++;b++;}
第52题
k,n=0;
c,str[]=
"teach"
(k=0;str[k];k++)
c=str[k];
switch
(k)
casel: case3: case5:
(C);
,++n);
break
default
:
'N'
Ne1NN
e1a2e3
Ne1Nc2N
Na1NNNN
第53题
c;
((c=
getchar
())!=
'\n'
(c-
case
0:
1:
(c+4);
2:
3:
(c+3);
(c+2);
程序运行后从第一列开始输入以下数据:2473<回车>程序的输出结果是( )。
668977
4444
6677877
68766
第54题
a,b;
(a=0; a<3; a++)
, &b);
(b)
"%d,"
, ++b);
执行时输入:1 2 3 <回车>,则输出结果是( )。
2,3,3,4,5,6
2,3,4
2,2,3,4,4,4
2,3,4,3,4,4
第55题
i=1,k=0;
(;i<6;)
(i%3)
0:k++;
1:k++;
2:k++;
continue
i+=1;
,k);
程序的运行情况是( )。
形成无限循环
输出6
输出5
输出4
第56题
s;
,&s);
(s>0)
(s)
,s+5);
,s+4);
,s+3);
,s+1);
运行时,若输入1 2 3 4 5 0<回车>,则输出结果是( )。
6566456
66656
66666
6666656
第57题
i,n;
(i=0; i<8; i++)
n=
rand
()%5;
(n)
,n);
4:
exit
(0);
以下关于程序执行情况的叙述中,正确的是( )。
for循环语句固定执行8次
当产生的随机数n为4时结束循环操作
当产生的随机数n为1和2时不做任何操作
当产生的随机数n为0时结束程序运行
第58题
a[]={2,3,5,4},i;
(i=0;i<4;i++)
(i%2)
(a[i]%2)
0:a[i]++;
1:a[i]--;
1:a[i]=0;
,a[i]);
3344
2050
3040
0304
第59题
x=1,y=0,a=0,b=0;
(x)
(y)
0:a++;
1:b++;
2:a++;b++;
3:a++;b++;
"a=%d,b=%d\n"
a=1,b=0
a=2,b=2
a=1,b=1
a=2,b=1
第60题
k=5,n=0;
do
3:n+=1;k--;
:n=0;k--;
4:n+=2;k--;
(k>0&&n<5);
235
0235
02356
2356
第61题
*s=
"120119110"
n0,n1,n2,nn,i;
n0=n1=n2=nn=i=0;
(s[i++])
:nn++;
:n0++;
:n1++;
:n2++;
(s[i]);
"n0=%d,n1=%d,n2=%d,nn=%d\n"
,n0,n1,n2,nn);
n0=3,n1=8,n2=9,nn=1
n0=2,n1=5,n2=1,nn=1
n0=2,n1=7,n2=10,nn=1
n0=4,n1=8,n2=9,nn=1
选择题(1 - 61题,共计100分)