C语言程序设计 - 习题大全(含答案) - C语言-1 下载本文

B) 只能在循环体内和switch语句内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用goto语句 26以下程序输出结果为( ) #include \ main() {int i,b,k=0; for(i=1;i<=5;i++) { b=i%2;

while (b-->=0) k++;} printf(\ }

A. 3,-1 B. 8,-1 C. 3,0 D. 8,-2 27以下程序段中循环体总的执行次数是( ) int i,j; for(i=7;i;i--) for(j=0;j<6;j++) {......} A) 42

B) 21

C) 13

D) 36

28以下不正确的描述是( ) A. break 语句不能用于循环语句和switch语句外的任何其他语句 B. 在switch语句中使用break语句或continue语句的作用相同

C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个

循环的执行

D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

1else语句总是和靠它最近的if匹配。 2switch语句中一定有default分支 3case后只能跟常量,不能跟变量 4break语句的作用就是结束本层循环。

5do-while语句构成的循环不能用其它语句构成的循环来代替。

6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。 7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。

8for循环中,如果表达式2为空,则该循环一定是死循环。

9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。

10for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。 1若a、b均为int型变量,且a=100,则以下的for循环是死循环. for (b=100;a!=b;++a,b++) printf(\执行语句:for(i=1;i++<4;++i);后;变量i的值是5。 2以下程序的运行结果是【 】 main()

{int x,y,z; x=1;y=2;z=3; x=y--<=x||x+y!=z; printf(\,%d\,y); }

3以下程序的运行结果是【 】 main() {int x,y,z; x=1;y=1;z=0;

x=x||y&&z;

printf(\,%d\,x&&!y||z); }

4以下程序的运行结果是【 】 main() {int a,b,c; int s,w=0,t; a=-1;b=3;c=3; if(c>0)s=a+b; if(a<=0) {if(b>0)

if(c<=0)w=a-b; }

else if(c>0)w=a-b; else t=c;

printf(\}

5阅读下面程序: main()

{ int s, t, a, b; scanf(\ s=1; t=1;

if(a>0) s=s+1; if(a>b) t=s+t; else if (a==b) t=5; else t=2*s;

printf(\}

6为了使输出结果t=4, 输入量a和b应满足的条件是【 】

7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。 #include main() { int a,max=0; scanf(\

while(【 】){ if (max

printf(\}

8执行下面的程序段后,k值是【 】。 k=1; n=263;

do { k*=n; n/=10; } while(n);

9等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。 #include main() { int a,d,sum; a=2;d=3;sum=0; do { sum+=a; a+=d;

if (【 】) printf(\} while(sum<200); }

10鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。 C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; for(x=1;x<=29;x++) { y=30-x;

if (【 】) printf(\}

11写出下面程序的运算结果【 】。 # include main ( )

{ int a=14, b=63; while (a!=b)

{while (a>b) a-=b; while (a

printf (\ }

12下列程序的输出为【 】。 #include main() {

int i,j,x=0; for(i=0;i<3;i++) { if(i%3==2) break; x++;

for(j=0;j<4;j++) { if(j%2) break; x++; } x++; }

printf(\}

C语言(分支和循环结构)二 以下程序的输出结果是( ) main( )

{ int a=-1,b=1,k; if((++a<0)&&!(b--<=0)) printf(\,a,b); else

printf(\,b,a); } A) -1 1

B) 0 1

C) 1 0

D) 0 0

与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是( ) A) if (x>0) y=1; B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0;

else y=-1;

若执行以下程序时从键盘上输入9,则输出结果是( ) main() { int n;

scanf(\

if(n++<10) printf(\ else printf(\}

A) 11 B) 10 C) 9 D) 8 若i为int型,且有程序如下,则输出结果是( ) i=111; if(i%3==0); printf(\ printf(\

A) #### B) **** C) ####**** D) 无输出结果 请读下面程序: main()

{int x=1, y=2, z=3; x+=y+=z;

printf(\ printf(\}

程序输出结果为( )

A) 5 4 B) 4 5 C) 5 6 D) 6 5 在C语言的if语句中,用作判断的表达式为( ) A) 关系表达式 B) 逻辑表达式 C) 算术表达式 D) 任意表达式

若变量都已正确说明,则以下程序段输出为( ) int a=1,b=2,c,d; if (a=b) c=d=a; else c=b;d=b; printf(\A)c=1,d=1 B)c=1,d=2 C)c=2,d=1 D)c=2,d=2 以下程序的输出结果是( ) main()

{int a=100,x=10,y=20,a1=5,a2=0 if(x

if(a2) a=10; a=-1; printf(\

A)1 B) 0 C) 10 D)-1

若w、x、y、z、m均为int型变量,则执行下面语句后的m值是( ) w=1;x=2;y=3; z=4; m=(w

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

若有定义: float w; int a, b; 则合法的switch语句是( ) A) switch(w) B) switch(a);

{ case 1.0: printf(\ case 2.0: printf(\} }

C) switch(b) D) switch(a+b);

{ case 1: printf(\ default: printf(\ case 1+2: printf(\} } 若输入B,以下程序的运行结果为 ( ) main() { char grade;

scanf(\ switch(grade)

{ case 'A': printf(\ case 'B':

case 'C': printf(\ case 'D': printf(\ default: printf(\}

A) >=85 B) >=60 C) >=60 D) error. <60 error. 选择出i的正确结果( ) int i=10; switch(i) {

case 9: i++; case 10: i+=1; case 11:i++; default: i+=1; }

A) 10 B) 11 C) 12 D) 13

C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的( )

不能丢,它表示d0_while循环的结束。 A) \\n

B) ;

C) %

D) ,

C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的( )

不能丢,它表示d0_while循环的结束。 A) \\n

B) ;

C) %

D) ,

以下程序的输出结果是( )。 #include main()

{

int num=0; while(num<=2) { num++;

printf(\} }

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

以下程序的输出为( ) # include main( ) { int y=10; while (y--);

printf (\

A. y=0 B. 无限循环,无结果输出 C. y=1 D. y=-1 设有程序段 int x=0,s=0;

while(!x!=0) s+=++x; printf(\则( )。

A) 运行程序段后输出0

B) 运行程序段后输出1

C) 程序段中的控制表达式是非法的 D) 程序段执行无限次下面程序段的运行结果是( )。 a=1;b=2;c=2; while(a

{t=a; b=a; a=t; c--; } printf(\A) 1,2,0

B) 2,1,0

C) 1,2,1

D) 2,1,1

以下能正确计算1×2×3×4...×10的程序段是( )。 A) do {i=1; s=1; s=s*i; i++; } while(i<=10) B) do {i=1; s=0; s=s*i; i++; } while(i<=10) C) i=1; s=1;

do {s=s*i; i++; } while(i<=10) D) i=1; s=0;

do {s=s*i; i++; } while(i<=10) 下面程序的运行结果是( )。 #include main()

{ int a=1,b=10;

do {b-=a; a++;} while(b--<0); printf(\}

A) a=3,b=11 B) a=2,b=8 C) a=1,b=-1 D) a=4,b=9 若i为整型变量,则以下循环执行的次数是( )。 for(i=2;i==0;) printf(\A) 无限次 B) 0次

C) 1次

D) 2次

下面程序段的运行结果是( )。

for(y=1;y<10;) y=((x=3*y, x+1), x-1); printf(\A) x=27,y=27

B) x=12,y=13

C) ) x=15,y=14 D) x=y=27

以下的for循环( )

for(x=0,y=0;(y!=123)&&(x<4);x++);

A. 执行3次 B. 执行4次 C. 循环次数不定

D. 是无限循环

下列程序段不是死循环的是( )。 A) int i=100;

while(1) {i=i0+1; if (i>100) break;} B) for( ; ; ); C) int k=0;

do { ++k;} while(k>=0); D) int s=36; while(s) ;--s; 下面程序段( )。 for(t=1;t<=100;t++) {scanf(\ if (x<0) continue; printf(\ }

A) 当x<0时整个循环结束 B) x>=0时什么也不输出 C) printf函数永远也不执行 D) 最多允许输出100个非负整数 以下为死循环的程序段是( )。 A) for(i=1; ; )

{if (++i%2==0) continue; if (++i%3==0) break; } B) i=32767;

do { if (i<0) break;} while(++i); C) for(i=1; ; ) if (++i<10) continue; D) i=1; while(i--); 若有如下程序段 int m=15; while(!m==0)

{m+=m; printf(\以下说法中正确的是( )。 A) 循环体语句执行一次。

B) 循环执行无限次

C) 循环体语句一次也不执行 D) 循环执行两次 下面程序的运行结果是( ). #include main() { int i,b,k=0; for(i=1;i<=5;i++) { b=i%2;

while(b-->=0) k++; }

printf(\

} A) 3,-1

B) 8,-1

C) 3,0

D) 8,-2

语句if(a) x=1;与 if(a==0)x=1;等价 switch语句中的default分支一定放在最后

while语句do-while语句无论什么情况下,二者的执行结果都一样。 C语言的while、do-while和for几个循环语句,可以进行相互嵌套。 do-while语句构成的循环只能用break语句退出。 for( ; ; ) {循环体} 永远是一个死循环。

要使for(表达式1;表达式2;表达式3){循环体}不形成死循环,表达式2一定不能为空。

while循环和do-while循环的while()后一定要有一个分号。 C语言程序的三种基本结构是嵌套结构、递归结构、顺序结构。

C语言中while与do-while语句的主要区别是do-while的循环体至少无条件执行一次。

语句 x=3; do {printf(\的执行结果是3。 以下循环for (i=0; i<10;printf(\ i++;

printf(\是死循环。

以下程序的运行结果是【 】 main() {int a,b; int i=5,j=7,k=0; a=!k; b=i!=j;

printf(\,a,b); }

以下程序的运行结果是【 】 main()

{if(2*1==2<2*2==4) printf(\; else

printf(\; }

以下程序的运行结果是【 】 main()

{int a,b,c,d; a=c=0; b=1; d=20;

if(a)d=d-10; else if(!b) if(! c)d=15; else d=25; printf(\,d); }

若运行时输入:3 5 /<回车>,则以下程序的运行结果是【 】 main() {float x,y; char o; double r;