NEWS
选择题
1、执行下列程序段后的输出结果是________.
int x=1,y=1,z=1;
x+=y+=z;
printf("%d\n",x<y?y:x);
A) 3 B) 2 C) 1 D) 4
2、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.
A) Z B) a C) z D) A
3、下面程序的输出结果是________.
#include <stdio.h>
void main( )
{ int x=8,y=-7,z=9;
if (x<y)
if (y<0) z=0;
else z-=1;
printf("%d\n",z);
}
A) 8 B) 1 C) 9 D) 0
4、运行下面程序时,若从键盘输入"5 <CR>",则程序的输出结果是_______.
#include <stdio.h>
void main( )
{ int a ;
scanf("%d",&a);
if (a++>5)printf("%d\n",a);
else printf("%d\n",a--) ;
}
A) 7 B) 6 C) 5 D) 4
5、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.
#include <stdio.h>
void main( )
{ int a,b,s;
scanf("%d,%d",&a,&b);
s=a;
if (s<b) s=b;
s=s*s;
printf("%d\n",s) ;
}
A) 14 B) 16 C) 18 D) 20
6、下列程序的执行结果是_________.
#include <stdio.h>
void main( )
{ int x=0,y=1,z=0;
if (x=z=y)
x=3;
printf("%d,%d\n",x,z);
}
A) 3,0 B) 0,0 C) 0,1 D) 3,1
7、假定等级和分数有以下对应关系:
等级:A 分数:85~100
等级:B 分数:60~84
等级:C 分数:60 以下
对于等级grade输出相应的分数区间,能够完成该功能的程序段是________.
A) switch (grade)
{
case 'A':printf("85--100\n");
case 'B':printf("60--84\n");
case 'C':printf("60以下\n");
default:printf("等级错误!\n");
}
B) switch (grade)
{
case 'A':printf("85--100\n");break;
case 'B':printf("60--84\n");
case 'C':printf("60以下\n");
default:printf(" 等级错误!\n");
}
C) switch (grade)
{
case 'A':printf("85--100\n");break;
case 'B':printf("60--84\n");break;
case 'C':printf("60以下\n");
default:printf("等级错误!\n");
}
D) switch (grade)
{
case 'A':printf("85--100\n");break;
case 'B':printf("60--84\n");break;
case 'C':printf("60以下 \n");break;
default:printf("等级错误!\n");
}
8、能够完成如下函数计算的程序段是______.
┌ -1 x<0
y= ┤ 0 x=0
└ 1 x>0
A) y=1; B) if (x>=0)
if(x!=0) if(x>0) y=1;
if(x>0) y=1; else y=0;
else y=0; else y=-1;
C) y=0; D) y=-1;
if (x>=0) if (x>0) y=1;
if (x>0) y=1; else y=0;
else y=-1;
9、有如下程序
#include <stdio.h>
void main( )
{ float x=5.0,y;
if(x<0.0) y=0.0;
else if (x<10.0) y=1.0/x;
else y=1.0;
printf("%f\n",y);
}
该程序的输出结果是_________.
A) 0.000000 B) 0.50000
C) 0.200000 D) 1.000000
10、以下程序的执行结果是_______.
#include <stdio.h>
void main( )
{ int x=1,y=0;
switch (x)
{
case 1:
switch (y)
{
case 0:printf("first\n");break;
case 1:printf("second\n");break;
}
case 2:printf("third\n");
}
}
A) first
second
B) first
third
C) first
D) second
third
11、以下程序的执行结果是________.
#include <stdio.h>
void main( )
{ int a,b,c,d,x;
a=c=0;
b=1;
d=20;
if (a) d=d-10;
else if(!b)
if (!c) x=15;
else x=25;
printf("d=%d\n",d);
}
A) d=20 B) d=10
C) d=15 D) 25
12、有如下程序:
#include <stdio.h>
void main( )
{ int a=2,b=-1,c=2;
if (a<b)
if (b<0) c=0;
else c++;
printf("%d\n",c);
}
该程序的输出结果是________.
A) 0 B) 1 C) 2 D) 3
13、下列程序执行后的输出结果是________.
#include <stdio.h>
void main( )
{ int x,y=1,z;
if ((z=y)<0) x=4;
else if (y==0) x=5;
else x=6;
printf("%d,%d\n",x,y);
}
A) 4,1 B) 6,1
C) 5,0 D) 出错信息
14、有如下程序
#include <stdio.h>
void main( )
{ int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是__________.
A) a=2,b=1 B) a=1,b=1
C) a=1,b=0 D) a=2,b=2
15、下面程序的输出结果是_________.
#include <stdio.h>
void main( )
{ int a=-1,b=1,k;
if ((++a<0) && (b--<=0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);
}
A) -1 1 B) 0 1
C) 1 0 D) 0 0
16、下面程序段的运行结果是_______.
int x=0,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
17、下面程序的运行结果是________.
#include<stdio.h>
void main()
{ int s=0,i=1;
while (s<=10)
{ s=s+i*i;
i++;
}
printf("%d",--i);
}
A) 4 B) 3
C) 5 D) 6
18、函数pi的功能是根据以下近似公式求π值:_________
(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)
请填空,完成求π的功能。
#include <math.h>
void main( )
{ double s=0.0; int i,n;
scanf("%ld",&n);
for(i=1;i<=n;i++)
s=s+_______ ;
s=(sqrt(6*s));
printf("s=%e",s);
}
A) 1/i*i B) 1.0/i*i
C) 1.0/(i*i) D) 1.0/(n*n)
19、下面程序段的运行结果是________.
for(x=10;x>3;x--)
{ if(x%3) x--;
--x; --x;
printf("%d ",x);
}
A) 6 3 B) 7 4 C) 6 2 D) 7 3
20、下面程序的运行结果是_________.
#include<stdio.h>
void main( )
{ int a,b;
a=-1;
b=0;
do {
++a;
++a;
b+=a;
} while(a<9);
printf("%d\n",b);
}
A) 34 B) 24 C) 26 D) 25
21、下面程序的输出结果是________.
#include<stdio.h>
void main( )
{int x=3;
do {
printf("%d ",x-=2);
}while(!(--x));
}
A) 1 B) 1 -2
C) 3 0 D)是死循环
22、定义如下变量:
int n=10;
则下列循环的输出结果是_______.
while(n>7)
{ n--; printf("%d\n",n);}
A) 10 B) 9 C) 10 D) 9
9 8 9 8
8 7 8 7
7 6
23、语句while(!e);中的条件 !e 等价于________.
A) e==0 B) e!=1
C) e!=0 D) ~e
24、以下叙述正确的是_________.
A) continue语句的作用是结束整个循环的执行
B) 只能在循环体内和switch语句体内使用break语句
C) 在循环体内使用break语句或continue语句的作用相同
D) 从多层循环嵌套中退出时,只能使用goto语句
25、在下列选项中,没有构成死循环的程序段是____.
A) int i=100;
while (1)
{ i=i%100+1;
if (i>100) break;
}
B) for( ; ; );
C) int k=1000;
do {++k;} while (k>=1000);
D) int s=36;
while (s) --s;
26、下面程序的输出结果是_________.
#include<stdio.h>
void main( )
{ int i;
for(i=1;i<=5;i++)
{ if (i%2) printf("*");
else continue;
printf("#");
}
printf("$\n");
}
A) *#*#*#$ B) #*#*#*$
C) #*#*$ D) *#*#$
27、下面程序段中,循环体的执行次数是_________.
int a=10,b=0;
do {b+=2;a-=2+b;} while(a>=0);
A) 4 B) 5 C) 3 D) 2
28、若i为整型变量,则以下循环语句的循环次数是__.
for(i=2;i==0;)
printf("%d",i--);
A) 无限次 B) 0次
C) 1次 D) 2次
29、C语言中while 和do-while 循环的主要区别是.____
A) do-while的循环体至少无条件执行一次
B) while 的循环控制条件比do-while 的循环控制条件严格
C) do-while 允许从外部转到循环体内
D) do-while 的循环体不能是复合语句
30、对于for(表达式1;;表达式3)可理解为_________.
A) for(表达式1;0;表达式3)
B) for(表达式1;1;表达式3)
C) for(表达式1;表达式1;表达式3)
D) for(表达式1;表达式3;表达式3)
参考答案
1~5 ABCBB
6~10 DDDCB
11~15 ACBAC
16~20 DBCBD
21~25 BBABD
26~30 ACBAB