【C语言】循环结构知识点、经典题型汇总(部分)

1.以下程序的输出结果是(  )。

main()
{
    int n=4;
    while (n--)
    printf("%d",--n);
}

A.20               B.31             C.321               D.210

答案:A;4--(3) ;--3(2);输出一个2;2--(1);--1(0);输出一个0;此时while为假。

2. 执行以下程序后输出的结果是(   )。

main()
{
	int y = 10;
	do
	{
	    y--;
	}
	while ( --y );
	printf( "%d\n", y-- );
}

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

答案:D

3. 下面程序输出结果是:

main()
{
	char *s='12134211';
	int k,v1=0,v2=0,v3=0,v4=0;
	for (k=0;s[k];k++)
	switch(s[k]) 0,1,2,1,3,4,2,1,1
	{
		default:v4++;
		case 1:v1++;
		case 2:v2++;
		case 3:v3++;
	}
	printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}

A.v1=4,v2=2,v3=1,v4=1                    B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1                    D.v1=8,v2=8,v3=8,v4=8

答案:D

  4. 程序运行结果是:

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.i=9,sum=9      C.i=2,sum=1          D.运行出现错误

答案:D;while后面没有加{ }默认只执行之后的一句 i一直没有变化,死循环

5.有以下语句:

i=1;

for(;i<=100;i++) sum+=i;

与以上语句序列不等价的有(   )。

A. for(i=1; ;i++) {sum+=i;if(i==100)break;}

B. for(i=1;i<=100;){sum+=i;i++;}

C. i=1;for(;i<=100;)sum+=i;

D. i=1;for(; ;){sum+=i;if(i==100)break;i++;}

答案:C

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

main()
{
    int x,y,z;
    x=0;y=z=-1;
    x+=-z---y;
    printf("x=%d\n",x);
}

A.x=4           B.x=0            C.x=2               D.x=3

答案:C;

7. 有以下程序段,其中n为整型变量,执行后输出结果是:(      

n=20 ;     

while(n--) ; 

printf(“%d”,n) ;

  a) 2        b)  10       c)  -1        d)   0

答案:C

8. 有以下程序:

main()

{  
    int y=10;    
    do   
    { 
        y--; 
    }while(--y);
    printf(“%d\n”,y--);

}

程序的输出结果是:(

a)  1        b)  -1       c)  8        d)   0

答案:D

9. 要求使以下程序段输出10个整数,请填空。

for(i=0;i<=___;printf(“%d\n”,i+=2));

答案:18;

10. 下面程序的输出结果是_____

main()
{ 
    int i,sum;
    for(i=1;i<6;i++) 
    sum+=i;      
    printf(“%d”,sum);

}

答案:无定值;

11. 下面程序的输出结果是_____

main()     
{
    int i,j=0,a=0;      
    for(i=0;i<5;i++)        
    do
    { 
        if(j%3)  
        break; 
        a++; 
        j++;

    }while(j<10);      
    printf(“%d,%d\n”,j,a);

}

答案:1,1

发布了11 篇原创文章 · 获赞 13 · 访问量 1801

猜你喜欢

转载自blog.csdn.net/qq_42603841/article/details/105124023