一、单项选择题
1.下面程序段的运行结果是( C )。
int n=0;
while(n++<=2);
printf(“%d”,n);
A) 2
B) 3
C) 4
D) 有语法错
2.设有程序段:
t=0;
while(printf(“*”))
{t++;
if(t<3) break;
}
下面描述正确的是( D )。
A) 其中循环控制表达式与0等价
B) 其中循环控制表达式与'0'等价
C) 其中循环控制表达式是不合法的
D) 以上说法都不对
3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空( B )。
#include
main()
{int a,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=b
B) a!=b
C) a==b
D) a=b
4.C语言中,while和do-while循环的主要区别是( A )。
A) do-while的循环体至少无条件执行一次
B) while的循环控制条件比do-while的循环控制条件更严格
C) do-while允许从外部转到循环体内
D) do-while的循环体不能是复合语句
5.对以下程序段描述正确的是( C )。
x=-1;
do
{x=x*x;}
while(!x);
A) 是死循环
B) 循环执行二次
C) 循环执行一次
D) 有语法错误
6.以下描述中正确的是( C )。
A) do-while循环中循环体内不能使用复合语句
B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D) do-while循环中,根据情况可以省略while
7.若有如下语句
int x=3;
do{ printf(“=”,x-=2);} while(!(--x));
则上面程序段( B )。
A) 输出的是1
B) 输出的是1和-2
C) 输出的是3和0
D) 是死循环
8.下面有关for循环的正确描述是( D )。
A) for循环只能用于循环次数已经确定的情况
B) for循环是先执行循环的循环体语句,后判断表达式
C) 在for循环中,不能用break语句跳出循环体
D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
9.对for(表达式1; ;表达式3)可理解为( B )。
A) for(表达式1;0;表达式3)
B) for(表达式1;1;表达式3)
C) for(表达式1;表达式1;表达式3)
D) for(表达式1;表达式3;表达式3)
10.若i为整型变量,则以下循环执行次数是( B )。
for(i=2;i==0;) printf(“%d”,i--);
A) 无限次
B) 0次
C) 1次
D) 2次
11.以下不是无限循环的语句为( A )。
A) for(y=0,x=1;x>++y;x=i++) i=x;
B) for(;;x++=i);
C) while(1){x++;}
D) for(i=10;;i--) sum+=i;
12.下面程序段的运行结果是( C )。
for(y=1;y<10;) y=((x=3*y,x+1),x-1);
printf(“x=%d,y=%d”,x,y);
A) x=27,y=27
B) x=12,y=13
C) x=15,y=14
D) x=y=27
13.执行语句for(i=1;i++<4;) ;后变量i的值是( C )。
A) 3
B) 4
C) 5
D) 不定
14.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空( D )。
#include
main()
{int i;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!((i-3)%7))
if( ______ )
printf(“%d”,i);
}
A) i%9=5
B) i%9!=5
C) (i-5)%9!=0
D) i%9==5
15.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空( B )。
#include
main()
{ int i=0,j,k;
do{i++;k=316-13*i;}while( _k______ );
j=k/11;
printf(“316=13*%d+11*%d”,i,j);
}
A) k/11
B) k
C) k/11==0
D) k==0
16.下面程序的运行结果是( D )。
#include
main()
{int y=10;
do{y--;}while(--y);
printf(“%d\n”,y--);
}
A) -1
B) 1
C) 8
D) 0
17.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是( D )。
#include
main()
{char c;
int v0=1,v1=0,v2=0;
do{
switch(c=getchar())
{case ‘a’:case ‘A’:
case ‘e’:case ‘E’:
case ‘i’:case ‘I’:
case ‘o’:case ‘O’:
case ‘u’:case ‘U’:v1+=1;
default:v0+=1;v2+=1;
}
}while(c!=’\n’);
printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);
}
A) v0=7,v1=4,v2=7
B) v0=8,v1=4,v2=8
C) v0=11,v1=4,v2=11
D) v0=12,v1=4,v2=12
18.下面程序的运行结果是( B )。
#include
main()
{int a=1,b=10;
do
{b-=a;a++;}
while(b--<0);
printf(“a=%d,b=%d\n”,a,B);
}
A) a=3,b=11
B) a=2,b=8
C) a=1,b=-1
D) a=4,b=9
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |