c语言程序基础练习题500道(附答案)

{ 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(\

则( d )。

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

{t=a; b=a; a=t; c--; }

printf(\

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

以下能正确计算1×2×3×4...×10的程序段是( c )。 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为整型变量,则以下循环执行的次数是( c )。 for(i=2;i==0;) printf(\

A) 无限次 B) 0次 C) 1次 D) 2次 下面程序段的运行结果是( c )。 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循环( b ) for(x=0,y=0;(y!=123)&&(x<4);x++); A. 执行3次 B. 执行4次 C. 循环次数不定 D. 是无限循环

45

下列程序段不是死循环的是( )。 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; 下面程序段( d )。 for(t=1;t<=100;t++) {scanf(\ if (x<0) continue; printf(\ }

A) 当x<0时整个循环结束 B) x>=0时什么也不输出 C) printf函数永远也不执行

D) 最多允许输出100个非负整数 以下为死循环的程序段是( c )。 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(\以下说法中正确的是( b )。 A) 循环体语句执行一次。 C) 循环体语句一次也不执行 下面程序的运行结果是( d ). #include main()

{ int i,b,k=0;

for(i=1;i<=5;i++) { b=i%2;

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

printf(\

B) 循环执行无限次 D) 循环执行两次

46

}

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(\ while(!x); 的执行结果是3。 以下循环for (i=0; i<10;printf(\ i++;

printf(\是死循环。

以下程序的运行结果是【 1 1 】

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(\; }

以下程序的运行结果是【 20 】 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); }

47

对 错

对 对 对

若运行时输入:3 5 /<回车>,则以下程序的运行结果是【0.600000】 main()

{float x,y; char o; double r;

scanf(\,&x,&y,&o); switch(o)

{case '+':r=x+y;break; case '-':r=x-y;break; case '*':r=x*y;break; case '/':r=x/y;break; }

printf(\}

当运行下面程序时,从键盘键入right?<回车>,则下面程序的运行结果是【sjhiu 】。#include main() { char c;

while((c=getchar())!='?') putchar(++c); }

下面程序段的运行结果是【** 】。 x=2;

do { printf(\

当运行以下程序时,从键盘键入1 2 3 4 5 -1 <回车>,则下面程序的运行结果是【14 -1#include main() { int k=0,n;

do { scanf(\ printf(\ n=%d\\n\ }

下面程序段的运行结果是【 -1 】。 for( a=1,i=-1;-1<=i<1;i++) { a++;

printf(\ }

printf(\

以下程序输出结果为【-3 】。 main() {

int x=-5; do

{ printf(\ while (!(x++)); }

48

。 】

联系客服:779662525#qq.com(#替换为@)