haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 初中教育 > 初中历政地初中历政地

循环练习题

发布时间:2013-12-21 13:36:02  

第三部分 循环结构

一、基础题

【1】有以下程序段: 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)9 (B)1 (C)11 (D)10 【2】有以下程序段: int i,j,m;

for( i=1;i<=15;i+=4)

for(j=3;j<=19;j+=4) m++; printf(“%d \n”,m);

程序段的输出结果是

(A)12 (B)15 (C)20 (D)25 【3】有以下程序段: 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 【4】有以下程序段: int x=3; do {

printf(“%3d”, x-=2); }

while(! (--x));

程序段的输出结果是

(A)1 (B)30 (C)1 -2 (D)死循环【5】有以下程序段: #include <stdio.h> min()

{

int i,sum;

for( i =1;i<6;i++) sum +=sum; printf(“%d\n”,sum);

} 程序段的输出结果是

(A)15 (B)14 (C)不确定 (D)0 【6】有以下程序段: #include <stdio.h> min() {

int y=10;

for ( ; y>0; y--) if( y%3= = 0) {

printf(“%d”,--y); continue; }

程序段的输出结果是

(A)741 (B)852 (C)963 (D)875421 【7】有以下程序段:

int x;

for (x =3; x<6 ; x++)

printf((x%2)?(“**%d”):(“##%d \n”) , x ); 程序段的输出结果是

(A)**3 (B)##3 (C)##3 (D)**3##4 ##4 **4 **4##5 **5 **5 ##5 【8】有以下程序段:

#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)#*#*$

9】以下叙述中正确的是( )

(A) do-while语句构成的循环不能用其他语句构成

的循环来代替 【4】 运行以下程序后,如果从键盘上输入Hi,

(B) do-while语句构成的循环只能用break语句退出how /are/you#<回车>,则输出结果为

#include<stdio_h> (C) 用do-while语句构成循环时,只有在while后的

main() 表达式为非零时结束循环

(D) 用do-while语句构成循环时,只有在while后的 {int v1=0,v2=0; char ch;

表达式为零时结束循环 while((ch=getchar()!=’#’)

switch(ch) 【10】以下程序的输出结果是

#include<stdio.h> {

main() case ’o’:v2++;

{ int x=2; default: vl++;

while(x--); }

printf(“%d\n”,x); printf(“%d,%d\n”,vl,v2);} } (A)15,2 (B)14,2 (C)13,2 (D)12,2

【11】以下程序的输出结果是 【5】 有如下程序

int i = 0, sum =i ; main()

do {sum+=i++;}while (i<5); {int i,sum=0;

printf(“%d\n”,sum); for(i=l;i<=1;sum++)

sum+=i;

答案:1.D; 2.C; 3.D; 4.C; 5.C; 6.B; 7.D 8.A; 9.B printf(”%d\n”,sum);

10.-1 11.10. }

该程序的执行结果是 二、提高题 (A)0 (B)1 (C)2 (D)死循环.

【1】设x和y均为int型变量则执行下面的循环后,【6】下血的程序的输出是 。

main() y的值为。

for(y=1,x=l;y<=l0;y++) { int x=10,y=15,a=5;

while(x++!=(y-=1)) { if(x>=10) break;

if(x%2==1) { a+=1;

{x+=3; continue;} if (y<x) break;

x+=2; }

} printf(”x=%d,y=%d,a=%d\n”,x,y,a);

(A)3 (B)4 (C)5 (D)6 }

【2】 以下程序段的执行次数 。 (A)x=12,y=13,a=7

x=10; (B)x=12,y=12,a=7

do{x=x*x;} while(!x); (C)x=13,y=12,a=7

(A)l (B)2 (D)x=13,y=13,a=7

(C)无限次 (D)循环体将提示有语法错误 【7】假设a和b为int型变量,则执行以下语句后,b

【3】 以卜程序的输出结果是 。 的值为 。

main() a=2;b=10:

do { int i:

for(i=’A’;i<=’I’;i++)printf(“%c”,i+32); {b-=a;

printf(“\n”); }while(b--<=a++);

} (A)9 (B)8 (C)7 (D)0

(A)编译不通过,无输出 (B)ABCDEFGH 【8】 以下程序执行后sum的值是 。

(C)abcdefghi (D)abcdefgh main()

{int i,sum; 程序输出的第一行是 (1) ,第二行 (2) , for(i=1;i<l00;i++) sum+=i; 第三行是 (3) 。 printf(“%d\n”,sum): 【14】程序 } main() (A)5050 (B)5000 (C)5049 (D)不确定 { int j,k,s,m; 【9】 若a是int型变量,有如_F程序段: for(k=l;k<10;k++)

for(x=4;x<=10;x+=3) { s=l;m=k+2; printf((x%2)?(”**%d”):(”##%d\n”),x); for(j=k;j<m;j++,k++) s+=j;

执行该程序段后的输出结果是

(A) **4 (B) ##4 ##7 **7 **10 ##10 (C) ##4 (D) **4##7 **7##10 **10 【10】有如下程序: main() {int j,k,s,m; for(k=l;k<l 0;k++) { s=l;m=k+2; for(j=k;j<m;j++,k++)s+=j; } printf(“s=%d,k=%d”,s,k);

} 程序的输出结果是() (A)s=16,k=10 (B)s=15,k=10

(C)s=16,k=9 (D)s=15,k=9

【11】 执行语句:for(i=10;i++<4:);后,变 量i的值是 。 【12】 要使以下程序段输出l0个整数, 填入一个正确的整数值。 for(i=0;printf(”%d,%d\n”,i, i+=2)); 【13】程序

#include<stdio.h> int i,j=2; main() {

for(i=0;i<3;i++) for(j=0;j<4;j++)

{printf(“%d”,++j);

if((i+2)%2==0)printf(“\n”); }

printf(“%d\n”,i); }

} printf(“s=%d,k=%d”,s,k); }

程序的输出结果s= (1) ,k= (2) 。 【15】以下程序打印所有符合下列条件的3位正整数:是某一个数的平方数,其中有两位数字相同。如100、121等。

main() {int a,b,c,n,k; for(k=l 0;;k++) {n= ; if(n>999) ; a=n/l 00;

b= · c=n%10; if(!((a-b)*(b-c)*(c-a))) printf(“\n%d,%d”,n,k); } } 答案:1. C;2. A;3. C;4. B;5. D;6. C;7. C;8. D;9. C;10. A;11. 11;12. 8或9;

13. (1) 3 (2) 45 (3) 65; 14. (1)s=16 (2)k=l0;15. 1)k*k (2)break (3) n/10%10

三、历年真题

【1】[06-4]在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( )

A)(!E==0) B)(E>0‖E<0) C)(E==0) D)(E!=0)

【2】[06-4]要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义, 以下正确的程序段是( )

A)while((ch=getchar())!=′N′)printf("%c",ch);

B)while(ch=getchar()!=′N′)printf("%c",ch);

C)while(ch=getchar()==′N′)printf("%c",ch);

D)while((ch=getchar())==′N′)printf("%c",ch);

【3】[06-4]有以下程序

main()

{int y=10;

while(y--);printf("y=%d\n",y);

}程序执行后的输出结果是( )

A)y=0 B)y=-1 C)y=1 D)while构成无限循环

【4】[06-4]有以下程序

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);

}

程序执行后的输出结果是( )

A)x=4 B)x=8 C)x=6 D)x=12

【5】[07-4]以下叙述中正确的是( )

A)break语句只能用于switch语句体中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C)break 语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用相同

【6】[07-4]有以下程序

mian()

{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”);

}

}

程序运行后的输出结果是( )

A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=3

2*1=2 2*2=4 2*2=4 2*3=6

3*1=3 3*3=9

C) 1*1=1 D) 1*1=1

1*2=2 2*2=4 2*1=2 2*2=4

1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9

【7】[07-4]有以下函数

int fun(char *s)

{char *t=s;

while(*t++);

return(t-s);

}

该函数的功能是( )

A)比较两个字符的大小 B)计算s所指字符串占用内存字节的个数

C)计算s所指字符串的长度 D)将s所指字符串复制到字符串t中

【8】[07-4]当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行 次。

#include <stdio.h>

main()

{char ch;

while((ch=getchar())==’0’) printf(“#”);

}

【9】[07-4]以下程序的运行结果是 。

int k=0;

void fun(int m)

{ m+=k; k+=m; printf(“m=%d\n k=%d ”,m,k++);} main()

{ int i=4;

fun(i++); printf(“i=%d k=%d\n”,i,k);

}

【10】[07-9]有以下程序

#include

main()

{int y=9;

for(;y>0;y--)

if(y%3= =0) printf("%d",--y);

}

程序的运行结果是

A)741 B)963 C)852 D)875421

【11】[07-9]有以下程序

#include

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);

}

程序的运行结果是

A)0 B)1 C)2 D)3

【12】[07-9]有以下函数

int aaa(char *s)

{char *t=s;

while(*t++);

t--;

return(t-s);

}

以下关于aaa函数的功能叙述正确的是( )

A)求字符串s的长度 B)比较两个串的大小

C)将串s复制到串t D)求字符串s所占字节数

【13】[07-9]以下程序的输出结果是_[9]_______. #include

main()

{ int n=12345,d;

while(n!=0){ d=n%10; printf("%d",d); n/=10;} }

【14】[07-9]有以下程序段,且变量已正确定义和赋值 for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

请填空,使下面程序段的功能为完全相同

s=1.0;k=1;

while(_[10]_______){ s=s+1.0/(k*(k+1)); _[11]_______;}

printf("s=%f\n\n",s);

【15】[07-9]以下程序的输出结果是_[12]_______.

#include

main()

{ int i;

for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'A');

printf("\n");

}

答案:1.C 2.A 3.B 4.B 5.C 6.B 7.B 8.0 9.m=4(换行)k=4 i=5 k=5 10.C 11.B 12.A 13.54321

14.k<=n k++ 15.ACE

网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com