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

发布时间 : 星期一 文章c语言程序基础练习题500道(附答案)更新完毕开始阅读

{case 0: a++; case 1: b++; } case 2: a++; b++; }

printf(\}

A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2

13C语言的for语句中的表达式可以部分或全部省略,但两个( c )不可省略。但当三个表达式 均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。 A) < B) ++ C) ; D) , 14下面有关for循环的正确描述是(d )。

A) for循环只能用于循环次数已经确定的情况 B) for循环是先执行循环体语句,后判定表达式 C) 在for循环中,不能用break语句跳出循环体

D) for循环体语句中,可以包含多条语句,但要用花括号括起来 15以下程序段( d )。 x=-1; do

{ x=x*x;} while(!x)

A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误 16如下的数组中,数组array占用的内存空间是( b )个字节。 char array[]={'c','h','i','n','a'};

A. 1 B. 5 C. 6 D. 不确定 17设有程序段 int k=10;

while(k=0) k=k-1;

则下面描述正确的是( c )。 A) while 循环执行10次 B) 循环是无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 18下列程序段的运行结果是( d ) int n=0;

while(n++<3); printf(\

A. 2 B. 3 C. 4 D. 以上都不对 19设有程序段 t=0;

while(printf(\ { t++;

if (t<3) break; }

下面描述正确的是( c )。

A) 其中循环控制表达式与0等价 B) 其中循环控制表达式与'0'等价

37

C) 其中循环控制表达式是不合法的 20下面程序的运行结果是( d )。 #include main() { int y=10;

do { y--;} while(--y); printf(\}

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

D) 以上说法都不对

21以下程序段的输出结果是( a ). main() { int i=5;

for ( ;i<=15; ) { i++;

if (i%4==0) printf(\ else continue;} }

A. 8 12 16 B. 8 12 C. 12 16 D. 8 22以下不是无限循环的语句为( a )。 A) for(y=0,x=1;x>++y;x=i++) i=x; B) for( ; ;x++=i); C) while(1){x++;}

D) for(i=10; ; i--) sum+=i; 23有如下语句 int x=3; do

{ printf(\

则上面程序段( b )

A. 输出的是1 B. 输出的是1和-2 C. 输出的是3和0 D. 是死循环 24以下不是无限循环的是( a ) A. for(y=0,x=1;x>++y;x=i++) i=x; B. for( ; ;x++=i); C. while(1) x++;

D. for(i=10; ;i--) s+=i;

25以下正确的描述是( b )。

A) continue语句的作用是结束整个循环的执行

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

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

38

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以下程序段中循环体总的执行次数是( a ) int i,j;

for(i=7;i;i--)

for(j=0;j<6;j++) {......} A) 42 B) 21 C) 13 D) 36

28以下不正确的描述是( b ) 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以下程序的运行结果是【 1 1 】 main()

{int x,y,z; x=1;y=2;z=3; x=y--<=x||x+y!=z;

printf(\,%d\,y); }

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

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

39

4以下程序的运行结果是【 2 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(\}

0 随机值 】

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应满足的条件是【a0 】 7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。 #include main() { int a,max=0; scanf(\

while(【 a 】){ if (max

printf(\}

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

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

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

{ int a,d,sum;

40

联系合同范文客服:xxxxx#qq.com(#替换为@)