通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
第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> main() { int y=10; while(y--); printf("y=%d\n",y); }
程序运行后的输出结果是()。
y=0
y=-1
y=1
while构成无限循环
第8题
有以下程序
#include<stdio.h> main() { int k=5; while(--k)printf("%d\n",k-=3); printf("\n"); }
执行后的输出结果是()。
1
2
4
死循环
第9题
#include <stdio.h> main() { int a=7; while(a--); printf("%d\n", a); }
-1
0
7
第10题
#include<stdio.h> main() { char *s="12134"; int k=0,a=0; while(s[k+1]!='\0') { k++; if(k%2==0) { a=a+s[k]-'0'+1; continue; } a=a+(s[k]-'0'); } printf("k=%d a=%d\n",k,a); }
k=6 a=11
k=3 a=14
k=4 a=12
k=5 a=15
第11题
#include <stdio.h> main() { int a=1,b=2; while(a<6) { b+=a; a+=2; b%=10; } printf("%d,%d\n",a,b); }
5,11
7,1
7,11
6,1
第12题
若有以下程序
#include <stdio.h> main() { int a=-2,b=0; while(a++) ++b; printf("%d,%d\n",a,b); }
则程序的输出结果是()。
1,2
0,2
1,3
2,3
第13题
#include<stdio.h> main() { int a=-2,b=0; while(a++&&++b); printf("%d,%d\n",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 printf("%d,",i); while(i++); printf("%d\n",i);
其输出结果是()。
0,1
0,0
1,1
程序进入无限循环
第18题
#include <stdio.h> main() { int a=-2,b=0; do { ++b; }while(a++); printf("%d,%d\n",a,b); }
第19题
#include<stdio.h> main() { int x=23; do { printf("%2d\n",x--); } while(!x); }
程序的执行结果是()。
输出321
输出23
不输出任何内容
陷入无限循环
第20题
#include <stdio.h> main() { int i=0,sum=1; do { sum += i++; }while(i<6); printf("%d\n",sum); }
程序的输出结果是()。
22
18
20
16
第21题
#include <stdio.h> main() { int sum=0,x=5; do{ sum+=x; } while(!--x); printf("%d\n",sum); }
程序的运行结果是()。
5
14
15
第22题
有以下程序(注:字符a的ASCII码值为97):
#include <stdio.h> main() { char *s={"abc"}; do { printf("%d",*s%10); ++s; }while(*s); }
abc
789
7890
979800
第23题
#include <stdio.h> main() { char c; do { c = getchar(); putchar(c); }while(c!='#'); printf("\n"); }
执行时如输入:abcdefg##<回车>,则输出结果是()。
abcdefg#
abcdefg
abcdefg##
##
第24题
#include <stdio.h> main() { int i=5; do { if(i%3==1) if(i%5==2) { printf("*%d",i); break; } i++; } while(i!=0); printf("\n"); }
程序运行的结果是()。
*7
*3*5
* 5
*2*6
第25题
#include<stdio.h> main() { int x=0,y=6; do { while(--y)x++; } while(y--); printf("%d,%d\n",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循环():
for(x = 0,y = 0;(y!=123)&&(x<4);x++);
执行次数不确定
执行123次
第29题
若k是int类型变量,且有以下for语句:
for(k=-1;k<0;k++)printf("****\n");
下面关于语句执行情况的叙述中正确的是()。
循环体执行一次
循环体执行两次
循环体一次也不执行
构成无限循环
第30题
若i和k都是int类型变量,有以下for语句:
for(i=0,k=-1;k=1;k++)printf("* * * * *\n");
第31题
有如下程序段:
int k; for(k=2;k==0;) printf("%d",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题
#include <stdio.h> main() { int i=4; for(printf("%d",i);i<2;i++)printf("%d",i); printf("\n"); }
12
第35题
#include <stdio.h> main() { int i,a; for(i=0;i<=10;i++)a=i; printf("%d,%d\n",i,a); }
11,10
10,10
10,11
11,11
第36题
有如下程序
#include <stdio.h> main() { int i = 1; for (printf("%d",i); i<4; i++) printf("%d",i); printf("\n"); }
1123
123
0123
001
第37题
以下函数的功能是计算a的n次方作为函数值返回:
double fun(double a,int n) { int i; double s=1.0; for(i=1;i<=n;i++)s=______; return s; }
为实现上述功能,函数中下画线处应填入的是()。
s*i
s*a
s+i*i
s+a*a
第38题
#include <stdio.h> main() { int a=1,b=2; for(;a<8;a++) { b+=a; a+=2; } printf("%d,%d\n",a,b); }
9,18
8,11
10,14
第39题
#include<stdio.h> main() { int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=0;i<5;i++)s=s+a[b[i]]; printf("%d\n",s); }
6
10
11
第40题
以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。
#define MIN -2147483647 int fingmax (int x[],int n) { int i,max; for(i=0;i<n;i++) { max=MIN; if(max<x[i])max=x[i]; } return 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题
#include <stdio.h> main() { int a=1,b=0; for(;a<5;a++) { if(a%2==0)break; b+=a; } printf("%d\n",b); }
第43题
#include <stdio.h> main() { int x=8; for(;x>0;x--) { if(x%3) { printf("%d,",x--); continue; } printf("%d,",--x); } }
7,4,2,
8,7,5,2,
9,7,6,4,
8,5,4,2,
第44题
#include <stdio.h> main() { int y=9; for(;y>0;y--) if(y%3==0) printf("%d",--y); }
852
963
741
875421
第45题
#include <stdio.h> main() { int i; for(i=1;i<=40;i++) { if(i++%5==0) if(++i%8==0)printf("%d",i); } printf("\n"); }
32
24
40
第46题
#include <stdio.h> main() { int i,sum; for(i=1;i<6;i++)sum+=i; printf("%d\n",sum); }
随机值
第47题
#include <stdio.h> main() { int a=6,b=0,c=0; for(;a;) { b+=a; a-=++c; } printf("%d,%d,%d\n",a,b,c); }
0,18,3
1,14,3
0,14,3
0,14,6
第48题
#include <stdio.h> main() { int i,j; for(i=3;i>=1;i--) { for(j=1;j<=2;j++)printf("%d",i+j); printf("\n"); } }
234<换行>345<换行>
432<换行>543<换行>45<换行>
23<换行>34<换行>23<换行>
45<换行>34<换行>23<换行>
第49题
#include <stdio.h> main() { int i,j,m=1; for(i=1;i<3;i++) { for(j=3;j>0;j--) { if(i*j>3)break; m*=i*j; } } printf("m=%d\n",m); }
m=6
m=2
m=4
m=5
第50题
#include <stdio.h> #include <math.h> main() { int i,j,x = 0; for(i = 0;i < 2;i++) { x++; for(j = 0;j <= 3;j++) { if(j%2==0)continue; x++; } x++; } printf("x = %d\n",x); }
x=4
x=6
x=8
x=12
第51题
#include <stdio.h> #include <math.h> main() { int i,j,x = 0; for(i = 0;i < 2;i++) { x++; for(j = 0;j <= 3;j++) { if(j%2)continue; x++; } x++; } printf("x = %d\n",x); }
第52题
#include <stdio.h> main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++)t+=b[i][b[j][i]]; printf("%d\n",t); }
3
9
第53题
以下程序段中的变量已正确定义
for( i=0; i<4; i++,i++ ) for( k=1; k<3; k++ ); printf("*" );
该程序段的输出结果是()。
*******
****
**
*
第54题
#include <stdio.h> main() { int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++)m=m%j; printf("%d\n",m); }
第55题
有以下程序:
#include <stdio.h> main() { int i,j; for(i=1;i<4;i++) { for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j); printf("\n"); } }
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题
#include<stdio.h> main(){ int i,j; for(i=3;i>=1;i--) { for(j=1;j<=2;j++){printf("%d",i+j);} printf("\n"); } }
第57题
break语句只能用于switch语句体中
continue语句的作用是使程序的执行流程跳出包含它的所有循环
在循环体内使用break语句和continue语句的作用相同
break语句只能用在循环体内和switch语句体内
第58题
break语句不能用于提前结束for语句的本层循环
使用break语句可以使流程跳出switch语句体
continue语句使得整个循环终止
在for语句中,continue与break的效果是一样的,可以互换
第59题
有如下程序:
#include <stdio.h> main() { int i,data; scanf("%d",&data); for(i=0;i<5;i++) { if(i < data) continue; printf("%d,",i); } printf("\n"); }
程序运行时,从键盘输入:3<回车>后,程序输出结果为()。
3,4,
1,2,3,4,
0,1,2,3,4,5,
0,1,2,
第60题
#include <stdio.h> main() { int i,data; scanf("%d",&data); for(i=0;i<5;i++) { if(i>data) break; printf("%d,",i); } }
0,1,
3,4,5,
0,1,2,3,
第61题
#include<stdio.h> main() { int i; for(i=1;i<=5;i++) { if(i%2)printf("*"); else continue; printf("#"); } printf("$\n"); }
*#*#*#$
*#*#*$
*#*#$
*#*#*#*$
第62题
#include <stdio.h> main() { int a=1, b=0; for(; a<5;a++) { if(a%2 == 0)break; continue; b += a; } printf("%d \n",b); }
选择题(1 - 62题,共计100分)