C语言错题集2:分支与循环
Posted 歌咏^0^
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言错题集2:分支与循环相关的知识,希望对你有一定的参考价值。
一、填空题
1. 下列程序的输出为()
main()
{
int y=10;
while(y--);
printf("y=%d\\n",y);
}
A、while构成无限循环 B、y=0 C、y=-l D、y=l
2. 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和ll整除,请选择填空________ #include <stdio.h>
main()
{
int i=0,j,k;
do{i++,k=316-13*i;}while(______);
j=k/11;
printf("316=13*%d+11*%d",i,j);
}
A、k%11==0 B、k/11 C、k%11 D、k/11==0
3. 以下语句中,循环次数不为10次的语句是(___).
A、for(i=1;i<10;i++);
B、i=10;while(i>0){--i;}
C、i=1;do{i++;}while(i<=10);
D、i=1;m:if(i<=10){i++;goto m;}
4. 以下程序段的输出结果是_____
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、15 B、10 C、24 D、9
5. 以下程序的运行结果是( ).
main()
{
int i=1,sum=0;
while (i<10) sum=sum+1;i++;
printf("i=%d,sum=%d",i,sum);
}
A、i=10,sum=9 B、死循环 C、i=2,sum=1 D、i=9,sum=9
6. 语句while(!E);中的表达式!E等价于(_____).
A、E!=1 B、E==O C、E==1 D、E!=O
7. 以下程序段的输出结果是_____
int x=3;
do
{
printf("%3d",x-=2);
}while(!(--x));
A、死循环 B、1 -2 C、3 0 D、l
8. 以下程序的功能是按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{
int n,k;
float score,sum,ave;
sum=0.0;
for (n=1;n<=10;n++)
{
for (k=1;k<=4;k++)
{
scanf("%f",&score);
sum+=score;
}
ave=sum/4.0;
printf("NO%d:%f\\n",n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确.这条语句是____________
A、ave=sum/4.0 B、sum=0.0; C、sum+=score; D、printf("NO%d:%f\\n",n,ave);
9. 下面程序的运行结果是________
#include <stdio.h>
main()
{
int y=10;
do{y--;}while(--y);
printf("%d\\n",y--);
}
A、0 B、1 C、8 D、-l
32. 若x是int类型变量,以下程序段的输出结果是
for(x=3;x<6;x++)
printf((x%2)?("**%d"):("##%d\\n"),x); (三目运算符的结果为这两个)
A、
##3
**4
##5
B、
##3
**4##5
C、
**3
##4
**5
D、
**3##4
**5
20.void main
{
int a = 2;
switch(a)
(
default:
printf("S")
case 1:
printf("0");
}
问以上代码的执行结果为_____
A.S B.0 C.S0 D.编译错误
二、填空题
1. 以下程序段的输出结果是______.
int i=0,sum=1;
do
{
sum+=i++;
} while(i<5);
printf("%d\\n",sum);
-------------------------------------------------------------
2. 有以下程序段:
s=1.0;
for(k=1;k<=n;k++)
s=s+1.0/(k*(k+1));
printf("%f\\n",s);
请填空,使下面的程序段的功能完全与之等同.
s=0.0;
d=1.0;
k=0;
do
{
s+=d;
______;
d=1.0/(k*(k+1));
}while(______);
printf("%f\\n",s);
-----------------------------------------------------------
3. 执行以下程序后的输出结果是____.
{
int a,b,c,d,i,j,k;
a=10;b=c=d=5;i=j=k=0;
for(;a>b;++b)
i++;
while(a>++c)
j++;
do
k++;
while(a>d++);
printf("i=%d,j=%d,k=%d\\n",i,j,k);
}
答案:C C A B B B A B D A
C
11
k++ k <= n
i=5,j=4,k=6
总结:查看程序时,
对循环语句要先标记循环体的范围,注意圆括号后是否有封号,在注意限制条件;
对于表达式,要先判断优先级,不能背硬性思维
以上是关于C语言错题集2:分支与循环的主要内容,如果未能解决你的问题,请参考以下文章