第1题
在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()。
(!E==0)
(E>0ǁE<0)
(E==0)
(E!=0)
第2题
要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。
while(ch=getchar()='N')printf("%c",ch);
while(ch=getchar()=="N")printf("%c",ch);
while(ch=getchar())!='N')printf("%c",ch);
whilet(ch=getchar())=='N')printf("%c",ch);
第3题
对于“while(!E)s;”,若要执行循环体s,则E的取值应为()。
E等于1
E不等于0
E不等于1
E等于0
第4题
关于do循环体while(条件表达式);以下叙述中正确的是()。
循环体的执行次数总是比条件表达式的执行次数多一次
条件表达式的执行次数总是比循环体的执行次数多一次
条件表达式的执行次数与循环体的执行次数无关
条件表达式的执行次数与循环体的执行次数一样
第5题
有以下程序:
#include<stdio.h>
main()
{
…
while
(
getchar
()!=
'\n'
);
}
以下叙述中正确的是()。
此while语句将无限循环
getchar()不可以出现在while语句的条件表达式中
当执行此while语句时,只有按回车键程序才能继续执行
当执行此while语句时,按任意键程序就能继续执行
第6题
若要实现total=1+2+3+4+5求和,以下程序段错误的是()。
int i=1,total=1; while(i<5) { total+=i; i+=1; }
int i=1,total=0; while(i <=5) { total+=i; i+=1; }
int i=0,total=0; while(i <5) { i+=1; total+=i; }
int i=0,total=0; while(i <=5) { total+=i; i+=1; }
第7题
#include <stdio.h>
int
y=10;
(y--);
printf
"y=%d\n"
,y);
程序运行后的输出结果是()。
y=0
y=-1
y=1
while构成无限循环
第8题
有以下程序
k=5;
(--k)
"%d\n"
,k-=3);
"\n"
执行后的输出结果是()。
1
2
4
死循环
第9题
a=7;
(a--);
, a);
-1
0
7
第10题
char
*s=
"12134"
;
k=0,a=0;
(s[k+1]!=
'\0'
)
k++;
if
(k%2==0)
a=a+s[k]-
'0'
+1;
continue
a=a+(s[k]-
"k=%d a=%d\n"
,k,a);
k=6 a=11
k=3 a=14
k=4 a=12
k=5 a=15
第11题
a=1,b=2;
(a<6)
b+=a;
a+=2;
b%=10;
"%d,%d\n"
,a,b);
5,11
7,1
7,11
6,1
第12题
若有以下程序
a=-2,b=0;
(a++) ++b;
则程序的输出结果是()。
1,2
0,2
1,3
2,3
第13题
(a++&&++b);
0,3
第14题
以下叙述正确的是()。
do-while语句构成的循环,当while语句中的表达式值为0时结束循 环
do-while语句和while-do构成的循环功能相同
while-do语句构成的循环,当while语句中的表达式值为非0时结束 循环
do-while语句构成的循环,必须用break语句退出循环
第15题
以下程序段中,循环次数不超过10的是()。
int i=10;do{i=i+1;}while(i<0);
int i=int i=5;do{i+=1;}while(i>0);
int i=1;do{i+=2;}while(i!=10);
int i=6;do{i-=2;}while(i!=1);
第16题
以下能够实现计算5!的程序段是()。
int fac=1,k=0;do{k++;fac*=k;}while(k<5);
int fac=0,k=1;do{fac*=k;k++;}while(k<5);
int fac=1,k=1;do{k++;fac*=k;}while(k<=5);
int fac=1,k=0;do{fac*=k;k++;}while(k<5);
第17题
若变量已正确定义,有以下程序段
i=0;
do
"%d,"
,i);
(i++);
其输出结果是()。
0,1
0,0
1,1
程序进入无限循环
第18题
++b;
(a++);
第19题
x=23;
"%2d\n"
,x--);
(!x);
程序的执行结果是()。
输出321
输出23
不输出任何内容
陷入无限循环
第20题
i=0,sum=1;
sum += i++;
(i<6);
,sum);
程序的输出结果是()。
22
18
20
16
第21题
sum=0,x=5;
{ sum+=x; }
(!--x);
程序的运行结果是()。
5
14
15
第22题
有以下程序(注:字符a的ASCII码值为97):
*s={
"abc"
};
"%d"
,*s%10);
++s;
(*s);
abc
789
7890
979800
第23题
c;
c =
();
putchar
(c);
(c!=
'#'
执行时如输入:abcdefg##<回车>,则输出结果是()。
abcdefg#
abcdefg
abcdefg##
##
第24题
i=5;
(i%3==1)
(i%5==2)
"*%d"
break
i++;
(i!=0);
程序运行的结果是()。
*7
*3*5
* 5
*2*6
第25题
x=0,y=6;
(--y)x++;
,x,y);
5,0
6,0
5,-1
6,-1
第26题
如果根据算法需要使用无限循环(即通常所称的“死循环”),则 只能使用while语句
对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的 值,以便决定是否开始循环
对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能 转换成while语句
只要适当地修改代码,就可以将do-while与while相互转换
第27题
若变量已正确定义
for
(x=0,y=0;(y!=99&&x<4);x++)
则以上for循环()。
执行无限次
执行3次
执行4次
执行次数不定
第28题
若变量已正确定义,则以下for循环():
(x = 0,y = 0;(y!=123)&&(x<4);x++);
执行次数不确定
执行123次
第29题
若k是int类型变量,且有以下for语句:
(k=-1;k<0;k++)
"****\n"
下面关于语句执行情况的叙述中正确的是()。
循环体执行一次
循环体执行两次
循环体一次也不执行
构成无限循环
第30题
若i和k都是int类型变量,有以下for语句:
(i=0,k=-1;k=1;k++)
"* * * * *\n"
第31题
有如下程序段:
k;
(k=2;k==0;)
,k--);
则for循环体执行的次数是()。
0次
1次
2次
无限次
第32题
以下不构成无限循环的语句或者语句组是()。
n=0;do{++n;}while(n<=0);
n=0;while(1){n++;}
n=10;while(n);{n--;}
for(n=0,i=1;i++)n+=i;
第33题
以下程序段中,与其他三个功能不同的程序段是()。
s=0;i=1;for(;;){s+=i; i++; if(i<=10) break;}
s=0,i=1;for(;i<=10;){s+=i; i++;}
s=0;for(i=1;i<=10;i++){s+=i;}
for(s=0,i=1;i<=10;s+=i,i++);
第34题
i=4;
,i);i<2;i++)
12
第35题
i,a;
(i=0;i<=10;i++)a=i;
,i,a);
11,10
10,10
10,11
11,11
第36题
有如下程序
i = 1;
,i); i<4; i++)
1123
123
0123
001
第37题
以下函数的功能是计算a的n次方作为函数值返回:
double
fun(
a,
n)
i;
s=1.0;
(i=1;i<=n;i++)s=______;
return
s;
为实现上述功能,函数中下画线处应填入的是()。
s*i
s*a
s+i*i
s+a*a
第38题
(;a<8;a++)
9,18
8,11
10,14
第39题
a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;
(i=0;i<5;i++)s=s+a[b[i]];
,s);
6
10
11
第40题
以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。
#define MIN -2147483647
fingmax (
x[],
i,max;
(i=0;i<n;i++)
max=MIN;
(max<x[i])max=x[i];
max;
造成错误的原因是()。
定义语句int i,max;中,max未赋初值
赋值语句max=MIN;中,不应给max赋MIN值
语句if(max<x[i])max=x[i];中,判断条件设置错误
赋值语句max=MIN;放错了位置
第41题
设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是()。
n=0;while((ch=getchar())!="\n")n++;
n=0;while(getchar()!="\n";n++);
for(n=0;getchar()!="\n";n++);
n=0;for(ch=getchar()!="\n";n++);
第42题
a=1,b=0;
(;a<5;a++)
(a%2==0)
,b);
第43题
x=8;
(;x>0;x--)
(x%3)
,--x);
7,4,2,
8,7,5,2,
9,7,6,4,
8,5,4,2,
第44题
y=9;
(;y>0;y--)
(y%3==0)
,--y);
852
963
741
875421
第45题
(i=1;i<=40;i++)
(i++%5==0)
(++i%8==0)
32
24
40
第46题
i,sum;
(i=1;i<6;i++)sum+=i;
随机值
第47题
a=6,b=0,c=0;
(;a;)
a-=++c;
"%d,%d,%d\n"
,a,b,c);
0,18,3
1,14,3
0,14,3
0,14,6
第48题
i,j;
(i=3;i>=1;i--)
(j=1;j<=2;j++)
,i+j);
234<换行>345<换行>
432<换行>543<换行>45<换行>
23<换行>34<换行>23<换行>
45<换行>34<换行>23<换行>
第49题
i,j,m=1;
(i=1;i<3;i++)
(j=3;j>0;j--)
(i*j>3)
m*=i*j;
"m=%d\n"
,m);
m=6
m=2
m=4
m=5
第50题
#include <math.h>
i,j,x = 0;
(i = 0;i < 2;i++)
x++;
(j = 0;j <= 3;j++)
(j%2==0)
"x = %d\n"
,x);
x=4
x=6
x=8
x=12
第51题
(j%2)
第52题
b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
(i=0;i<3;i++)
(j=i;j<=i;j++)t+=b[i][b[j][i]];
,t);
3
9
第53题
以下程序段中的变量已正确定义
( i=0; i<4; i++,i++ )
( k=1; k<3; k++ );
"*"
该程序段的输出结果是()。
*******
****
**
*
第54题
i,j,m=55;
(i=1;i<=3;i++)
(j=3;j<=i;j++)m=m%j;
第55题
有以下程序:
(i=1;i<4;i++)
(j=i;j<4;j++)
"%d*%d=%d "
,i,j,i*j);
1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9
1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9
1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9
第56题
main(){
(j=1;j<=2;j++){
,i+j);}
第57题
break语句只能用于switch语句体中
continue语句的作用是使程序的执行流程跳出包含它的所有循环
在循环体内使用break语句和continue语句的作用相同
break语句只能用在循环体内和switch语句体内
第58题
break语句不能用于提前结束for语句的本层循环
使用break语句可以使流程跳出switch语句体
continue语句使得整个循环终止
在for语句中,continue与break的效果是一样的,可以互换
第59题
有如下程序:
i,data;
scanf
,&data);
(i=0;i<5;i++)
(i < data)
程序运行时,从键盘输入:3<回车>后,程序输出结果为()。
3,4,
1,2,3,4,
0,1,2,3,4,5,
0,1,2,
第60题
(i>data)
0,1,
3,4,5,
0,1,2,3,
第61题
#include
(i=1;i<=5;i++)
(i%2)
else
"#"
"$\n"
*#*#*#$
*#*#*$
*#*#$
*#*#*#*$
第62题
a=1, b=0;
(; a<5;a++)
(a%2 == 0)
b += a;
"%d \n"
选择题(1 - 62题,共计100分)