计算机类 二级 C
C语言循环结构选择题 43 题 含答案 C
1 单选题 1 / 43
若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i--) for (j=0;j<4;j++){...}
A 20 B 25 C 24 D 30
查看答案 A. 20
2 单选题 2 / 43
设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 for(i=0,j=10;i<=j;i++,j--) k=i+j;
A 12 B 10 C 11 D 9
查看答案 B. 10
3 单选题 3 / 43
当执行以下程序段时 x=-1; do { x=x*x;} while( !x);
A 循环体将执行一次 B 循环体将执行两次 C 循环体将执行无限次 D 系统将提示有语法错误
查看答案 A. 循环体将执行一次
4 单选题 4 / 43
若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
A 5 B 4 C 6 D 1
查看答案 B. 4
5 单选题 5 / 43
有以下程序段 int k=0; while (k=1) k++; while循环执行的次数是
A 无限次 B 有语法错,不能执行 C 一次也不执行 D 执行一次
查看答案 A. 无限次
6 单选题 6 / 43
语句while(!e);中的条件 !e 等价于( )。
A e==0 B e!=1 C e!=0 D ~e
查看答案 A. e==0
7 单选题 7 / 43
以下for循环是( )。 for(x=0,y=0;(y!=123) && (x<4);x++)
A 无限循环 B 循环次数不定 C 执行4次 D 执行3次
查看答案 C. 执行4次
8 单选题 8 / 43
C语言中while 和do-while 循环的主要区别是( )。
A do-while的循环体至少无条件执行一次 B while 的循环控制条件比do-while 的循环控制条件严格 C do-while 允许从外部转到循环体内 D do-while 的循环体不能是复合语句
查看答案 A. do-while的循环体至少无条件执行一次
9 单选题 9 / 43
以下叙述正确的是( )。
A continue语句的作用是结束整个循环的执行 B 只能在循环体内和switch语句体内使用break语句 C 在循环体内使用break语句或continue语句的作用相同 D 从多层循环嵌套中退出时,只能使用goto语句
查看答案 B. 只能在循环体内和switch语句体内使用break语句
10 单选题 10 / 43
对下面程序段,描述正确的是( )。 for(t=1;t<=100;t++) { scanf("%d",&x); if (x<0) continue; printf("%d\n",t); }
A 当x<0时,整个循环结束 B 当x>=0时,什么也不输出 C printf函数永远也不执行 D 最多允许输出100个非负整数
查看答案 D. 最多允许输出100个非负整数
11 单选题 11 / 43
在下列选项中,没有构成死循环的程序段是
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;
查看答案 D. int s=36; while (s) --s;
12 单选题 12 / 43
以下程序的输出结果是 main( ) { int a,b; for(a=1,b=1;a<=100;a++) { if (b>=10) break; if (b%5==1) { b+=5; continue; } } printf("%d\n",a); }
A 101 B 6 C 4 D 3
查看答案 D. 3
13 单选题 13 / 43
以下程序的输出结果是( )。 #include <stdio.h> main() { int i; for(i=1;i<=5;i++) if(i%2) printf("*"); else continue; printf("#"); printf("$\n"); }
A ***#$ B #*#*#*$ C *#*#*#$ D **#*$
查看答案 A. ***#$
14 单选题 14 / 43
以下程序段的输出结果是( )。 int k,j,s; for(k=2;k<6;k++,k++) { s=1; for(j=k;j<6;j++) s+=j;} printf("%d\n",s);
A 1 B 9 C 11 D 10
查看答案 D. 10
15 单选题 15 / 43
以下程序段的输出结果是( )。 int k,n,m; n=10;m=1;k=1; while (k<=n) {m*=2;k+=4;} printf("%d\n",m);
A 4 B 16 C 8 D 32
查看答案 C. 8
16 单选题 16 / 43
设有如下程序段: int i=0, sum=1; do { sum+=i++;} while(i<6); printf("%d\n", sum); 上述程序段的输出结果是( )。
A 11 B 16 C 22 D 15
查看答案 B. 16
17 单选题 17 / 43
以下程序的输出结果是( )。 #include <stdio.h> main( ) { int count,i=0; for(count=1; count<=4; count++) {i+=2; printf("%d",i);} }
A 20 B 246 C 2468 D 2222
查看答案 C. 2468
18 单选题 18 / 43
下面程序的输出结果是( )。 main( ) { unsigned int num,k; num=26;k=1; do { k*=num%10; num/=10; } while(num); printf("%d\n", k); }
A 2 B 12 C 60 D 18
查看答案 B. 12
19 单选题 19 / 43
阅读以下程序: main( ) { int x; for(x=5;x>0;x--) if (x--<5) printf("%d,",x); else printf("%d,",x++); } 程序运行后的输出结果是( )。
A 4,3,2 B 4,3,1, C 5,4,2 D 5,3,1,
查看答案 B. 4,3,1,
20 单选题 20 / 43
以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。 main( ) { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while (________ ) { if (x>amax) amax=x; if (______) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); }
A x<=0 B x>0 x>amin x<=amin C x>0 D x>=0 x>amin x<amin
查看答案 D. x>=0 x>amin x<amin
21 单选题 21 / 43
下面程序是计算n个数的平均值,请填空。
main( )
{ int i,n;
float x,avg=0.0;
scanf("%d",&n);
for(i=0;i<n;i++)
{ scanf("%f",&x);
avg=avg+______; }
avg=________;
printf("avg=%f\n",avg);
}
A B C D
查看答案 B.
22 单选题 22 / 43
在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为 #include <stdio.h> main( ) { char ch; while ((ch=getchar( ))!='\n') { if (ch>='A' && ch<='Z') ch=ch+32; else if (ch>='a' && ch<'z') ch=ch-32; printf("%c",ch); } printf("\n"); }
A ABCdef B abcDEF C abc D DEF
查看答案 B. abcDEF
23 单选题 23 / 43
运行以下程序后,如果从键盘上输入:65 14<回车>,则输出结果为 main( ) { int m,n; printf("Enter m,n:"); scanf("%d%d",&m,&n); while (m!=n) { while (m>n) m-=n; while (n>m) n-=m; } printf("m=%d\n",m); }
A m=3 B m=2 C m=1 D m=0
查看答案 C. m=1
24 单选题 24 / 43
下面程序的输出结果是( )。 main( ) { int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d ",x--,y); }
A 10 1 9 2 B 9 8 7 6 C 10 9 9 0 D 10 10 9 1
查看答案 D. 10 10 9 1
25 单选题 25 / 43
有如下程序 main( ) { int n=9; while(n>6) {n--;printf("%d",n);} } 该程序段的输出结果是
A 987 B 876 C 8765 D 9876
查看答案 B. 876
26 单选题 26 / 43
函数pi的功能是根据以下近似公式求π值: (π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n) 请填空,完成求π的功能。 #include <math.h> main( ) { double s=0.0; long 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)
查看答案 C. 1.0/(i*i)
27 单选题 27 / 43
设有以下程序 main( ) { int n1,n2; scanf("%d",&n2); while (n2!=0) { n1=n2%10; n2=n2/10; printf("%d",n1); } } 程序运行后,如果从键盘上输入1298,则输出结果为( )。
A 892 B 8921 C 89 D 921
查看答案 B. 8921
28 单选题 28 / 43
以下函数的功能是:求x的y次方,请填空。 main( ) { int i,x,y; double z; scanf("%d %d",&x,&y); for(i=1,z=x;i<y;i++) z=z*______ ; printf("x^y=%e\n",z); }
A i++ B x++ C x D i
查看答案 C. x
29 单选题 29 / 43
下面程序的运行结果是( )。 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
查看答案 D. 25
30 单选题 30 / 43
执行下面程序段后,k的值是( )。 int i,j,k; for(i=0,j=10;i<j;i++,j--) k=i+j;
A 9 B 11 C 8 D 10
查看答案 D. 10
31 单选题 31 / 43
下面程序的运行结果是( )。 main( ) { int m=7,n=5,i=1; do { if (i%m==0); if (i%n==0) { printf("%d\n",i); break;} i++; } while(i!=0); }
A 7 B 6 C 5 D 4
查看答案 C. 5
32 单选题 32 / 43
下面程序的运行结果是( )。 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
查看答案 B. 3
33 单选题 33 / 43
以下程序的输出结果是( )。
#include <stdio.h>
main( )
{
int num=0;
while (num<=2)
{ num++;
printf( "%d\n",num); }
}
A B C D
查看答案 C.
34 单选题 34 / 43
以下程序运行后的输出结果是( )。 #include <stdio.h> main( ) { int s=0,k; for(k=7;k>=0;k--) {switch(k) { case 1: case 4: case 7: s++; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; } } printf("s=%d\n",s); }
A s=5 B s=1 C s=3 D s=7
查看答案 D. s=7
35 单选题 35 / 43
以下程序运行后的输出结果是( )。
#include <stdio.h>
main( )
{ int i,j;
for(i=4;i>=1;i--)
{ printf("*");
for(j=1;j<=4-i;j++)
printf("*");
printf("\n");
}
}
A B C D
查看答案 A.
36 单选题 36 / 43
有以下程序 #include <stdio.h> main() { int c; while ((c=getchar())!='\n') { switch(c-'2') { case 0: case 1: putchar(c+4); case 2: putchar(c+4);break; case 3: putchar(c+3); default: putchar(c+2);break; } } printf("\n"); } 从第一列开始输入以下数据,<CR>代表一个回车符。 2473<CR> 程序的输出结果是( )。
A 668977 B 668966 C 66778777 D 6688766
查看答案 A. 668977
37 单选题 37 / 43
当从键盘上输入字符“12134211”下面程序的 输出结果是( )。 main( ) { char s; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;k<=7;k++) { scanf("%c",&s); switch(s) { default: v4++; case '1': v1++; case '3': v3++; case '2': v2++; } } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A v1=4,v2=2,v3=1,v4=1 B v1=4,v2=9,v3=3,v4=1 C v1=5,v2=8,v3=6,v4=1 D v1=8,v2=8,v3=8,v4=8
查看答案 C. v1=5,v2=8,v3=6,v4=1
38 单选题 38 / 43
运行以下程序后,如果从键盘上输入china#<回车>, 则输出结果为 #include <stdio.h> main( ) { int v1=0,v2=0; char ch; while ((ch=getchar( ))!='#') switch(ch) { case 'a': case 'h': default: v1++; case 'o': v2++; } printf("%d,%d\n",v1,v2); }
A 2,0 B 5,0 C 5,5 D 2,5
查看答案 C. 5,5
39 单选题 39 / 43
下列程序的输出结果是( )。 main( ) { int i, j, m=0, n=0; for(i=0; i<2; i++) for(j=0; j<2; j++) if (j>=i) m=1; n++; printf("%d \n",n); }
A 4 B 2 C 1 D 0
查看答案 C. 1
40 单选题 40 / 43
下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。 #include <stdio.h> main( ) { int a,b,c,i; a=c=0; for(i=0;i<=10;i+=2) { a+=i; ______; c+=b; } printf("偶数之和=%d\n",a); printf("奇数之和=%d\n",c-11); }
A i+=2 B i++ C b=b+1 D b=i+1
查看答案 D. b=i+1
41 单选题 41 / 43
下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。
#include <stdio.h>
main( )
{ int i,j;
for(i=0;______; i++)
{ j=i*10+6;
if (_______) continue;
printf("%d",j);
}
}
A B C D
查看答案 C.
42 单选题 42 / 43
要输出下面的图形,请完善程序。
#include <stdio.h>
main( )
{ int i,j,k;
for(i=1;i<=6;i++)
{
for(j=1;j<=20-2*i;j++)
printf(" ");
for(k=1;________;k++)
printf("%2d",i);
________________
}
}
A i<=k printf(" "); B k<j printf("\n"); C k<=i printf("\n"); D k<=i printf(" ");
查看答案 C. k<=i printf("\n");
43 单选题 43 / 43
要输出下面的图形,请完善程序。
#include <stdio.h>
main( )
{ int i,j,k;
for(i=1;i<=5;i++)
{
for(j=1;j<=20-3*i;j++)
printf(" ");
for(k=1;_________;k++)
printf("%3d",k);
for(__________;k>0;k++)
printf("%3d",k);
printf("\n");
}
}
A k<=i k=i B k<i k=i-1 C k<i k=i D k<=i k=i-1
查看答案 D. k<=i k=i-1