return(p);
}
在下划线处应填入的是
A)i=pB)a[p]=a[i]C)p=jD)p=i
27.C语言中用于结构化程序设计的三种基本结构是
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue
28.对for(表达式1;;表达式3)可理解为
A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
29.下列运算符中优先级最高的是
A)
=
30.有以下程序
voidmain()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
执行后输出结果是
A)011122B)012C)012020D)120
31.有以下程序
voidmain()
{inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2)
}
执行后输出结果是
A)2B)3C)4
D)编译时有错,无结果
32.有以下程序
voidmain()
{intp[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2){k=k+p[i];i++;}
printf("%d\n",k);
}
执行后输出结果是
A)58B)56C)45D)24
33.有以下程序
voidmain()
{inti=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出结果是
A)16B)12C)28D)21
34.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式
A)从左起输出该字符串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
35.已有定义inta=-2;和输出语句printf("%8lx",a);以下正确的叙述是
A)整型变量的输出形式只有%d一种
B)%x是格式符的一种,它可以适用于任何一种类型的数据
C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
36.以下C程序正确的运行结果是
voidmain()
{longy=-43456;
printf("y=%-8ld\n",y);
printf("y=%-08ld\n",y);
printf("y=%08ld\n",y);
printf("y=%+8ld\n",y);
}
A)y=-43456(换行)y=-43456(换行)y=-0043456(换行)y=-43456
B)y=-43456(换行)y=-43456(换行)y=-0043456(换行)y=+-43456
C)y=-43456(换行)y=-43456(换行)y=-0043456(换行)y=-43456
D)y=-43456(换行)y=-0043456(换行)y=00043456(换行)y=+43456
37.putchar函数可以向终端输出一个
A)整型变量表达式值B)实型变量值
C)字符串D)字符或字符型变量值
38.以下程序的输出结果是
voidmain()
{
printf("\n*s1=%15s*","chinabeijing");
printf("\n*s2=%-15s*","chi");
}
A)*s1=chinabeijing*(换行)*s2=**chi*
B)*s1=chinabeijing*(换行)*s2=chi*
C)*s1=*chinabeijing*(换行)*s2=chi*
D)*s1=chinabeijing*(换行)*s2=chi*
39.下面程序段的运行结果是
intn=0;
while(n++<=2);printf("%d",n);
A)2B)3C)4D)有语法错
40.设有程序段:
t=0;
while(printf("*"))
{t++;
if(t<3)break;
}
下面描述正确的是
A)其中循环控制表达式与0等价
B)其中循环控制表达式与'0'等价
C)其中循环控制表达式是不合法的
D)以上说法都不对
41.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空
#include
voidmain()
{inta,b,t;
scanf("%d%d",&a,&b);
while(___________)
{if(a>b)
{t=a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
}
A)!
a=bB)a!
=bC)a==bD)a=b
42.以下描述中正确的是
A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D)do-while循环中,根据情况可以省略while
43.以下关于运算符优先顺序的描述中正确的是
A)关系运算符<算术运算符<赋值运算符<逻辑运算符
B)逻辑运算符<关系运算符<算术运算符<赋值运算符
C)赋值运算符<逻辑运算符<关系运算符<算术运算符
D)算术运算符<关系运算符<赋值运算符<逻辑运算符
44.以下程序段______
x=-1;
do
{x=x*x;}
while(!
x);
A)是死循环B)循环执行二次
C)循环执行一次D)有语法错误
45.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!
y)的值是
A)0B)语法错C)1D)“假”
46.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是
A)A%2==1B)!
(A%2==0)
C)!
(A%2)D)A%2
47.设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后n的值是
A)1B)2C)3D)4
48.判断char型变量cl是否为小写字母的正确表达式是
A)'a'<=cl<='z'B)(cl>=a)&&(cl<=z)
C)('a'>=cl)||('z'<=cl)D)(cl>='a')&&(cl<='z')
49.以下不正确的if语句形式是
A)if(x>y&&x!
=y);
B)if(x==y)x+=y;
C)if(x!
=y)scanf("%d",&x)elsescanf("%d",&y);
D)if(x50.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是
if(x>y)
z=x;x=y;y=z;
A)x=10,y=20,z=30B)x=20,y=30,z=30
C)x=20,y=30,z=10D)x=20,y=30,z=20
51.请阅读以下程序:
voidmain()
{
inta=5,b=0,c=0;
if(a=b+c)printf("***\n");
elseprintf("$$$\n");
}
以上程序
A)有语法错不能通过编译
B)可以通过编译但不能通过连接
C)输出***
D)输出$$$
52.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
A)1B)2C)3D)6
53.以下程序的输出结果是
voidmain()
{inta=100,x=10,y=20,ok1=5,ok2=0;
if(xif(y!
=10)
if(!
ok1)
a=1;
else
if(ok2)a=10;
a=-1;
printf("%d\n",a);
}
A)1B)0C)-1D)值不确定
54.以下程序的输出结果是
voidmain()
{intx=2,y=-1,z=2;
if(xif(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
A)3B)2C)1D)0
55.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与________配对
A)缩排位置相同的ifB)其之前最近的if
C)其之后最近的ifD)同一行上的if
56.有如下程序
voidmain()
{charch[2][5]={"6937","8254"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'\0';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
该程序的输出结果是
A)69825B)63825C)6385D)693825
57.逻辑运算符两侧运算对象的数据类型
A)只能是0或1
B)只能是0或非0正数
C)只能是整型或字符型数据
D)可以是任何类型的数据
58.以下程序的输出结果是
voidmain()
{inti,k,a[10],p[3];
k=5;
for(i=0;i<10;i++)a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k);
}
A)20B)21C)22D)23
59.以下程序的输出结果是
voidmain()
{intnum=0;
while(num<=2)
{num++;printf("%d\n",num);
}
A)1B)1C)1D)l
222
33
4
60.以下程序的输出结果是
voidmain()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=10)break;
if(b%3==1)
{b+=3;continue;}
}
printf("%d\n",a);
}
A)101B)6C)5D)4
61.与y=(x>0?
1:
x<0?
-1:
0);的功能相同的if语句是
A)if(x>0)y=1;B)if(x)
elseif(x<0)y=-1;if(x>0)y=1;
elsey=0;elseif(x<0)y=-1;
C)y=-1D)y=0;
if(x)if(x>=0)
if(x>0)y=1;if(x>0)y=1;
elseif(x==0)y=0;elsey=-1;
elsey=-1;
62.以下程序中,while循环的循环次数是
voidmain()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
......
}
A)1B)10C)6D)死循环,不能确定次数
63.有如下程序
voidmain()
{intn[5]={0,0,0},i,k=2;
for(i=0;iprintf("%d\n",n[k]);
}
该程序的输出结果是
A)不确定的值B)2C)1D)0
64.以下程序的输出结果是
voidmain()
{inta=0,i;
for(i=;i<5;i++)
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
A)31B)13C)10D)20
65.以下程序的输出结果是
#include
voidmain()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;
}