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

        }

A0         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:分支与循环的主要内容,如果未能解决你的问题,请参考以下文章

C语言错题集3:二级指针函数指针数组指针

C语言错题集1:运算符和表达式

ATM错题集

golang错题集

错题集

牛客网刷基础题错题集