详解三种循环结构
技术与开发
语言类型:C语言
上手难度:★★★★
考试类型:计算机二级
题目:设变量已正确定义,则以下能正确计算f=n!的程序段是[2005年9月C语言选择题第27题]

答案:D
解析:这是一道送分题,考察考生对for语句的理解。
A答案:f的值为0*1*2……*n=0;
B答案:计算的是f = (n-1)!,比题目的要求少循环了一次;
C答案:应该改为for(i=n;i>1;i--)
循环结构是历年考题的重中之重,也是C语言的难点之一,每年考生在此知识点上失分的不在少数,考生对循环结构的理解和掌握程度是能否顺利考试过关的关键,本文结合常见的考题形式对循环结构的难点进行剖析,希望考生能吃透循环结构,在此知识点上尽量少失分或不失分。
一、for语句循环
1.for语句一般形式中的各表达式都可省略,但分号间隔符不能少。需要注意省略表达式1之前要给循环变量赋初值。
2.如省去表达式2或表达式3则将造成无限循环, 这时应在循环体内设法结束循环。

图中for语句的表达式全部省去。由循环体中的语句实现循环变量的递减和循环条件的判断。当n值为0时,由break语句中止循环,转去执行for以后的程序。在此情况下,for语句已等效于while( 1)语句。如在循环体中没有相应的控制手段,则造成死循环。
二、while语句循环
1.while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环。
2.循环体如包括有一个以上的语句,则必须用{}括起来, 组成复合语句。
3.应注意循环条件的选择以避免死循环。
4.允许while语句的循环体又是while语句,从而形成双重循环。
三、do-while语句循环
1.do-while语句和while语句的区别在于do-while是先执行后判断,因此do-while至少要执行一次循环体。而while是先判断后执行,如果条件不满足,则一次循环体语句也不执行。while语句和do-while语句一般都可以相互改写。
2.在if语句和while语句中, 表达式后面都不能加分号, 而在 do-while语句的表达式后面则必须加分号。
3.do-while语句也可以组成多重循环,而且也可以和while语句相互嵌套。在do和while之间的循环体由多个语句组成时,也必须用{}括起来组成一个复合语句。
复习题
有以下程序
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);}
程序执行后的输出结果是。
读者反馈:
读者 小王:不久我就要参加C语言二级考试了,想咨询一下怎么复习效果好?
小编:复习的第一步是要先把教材吃透,然后再做一些历年的考试真题。根据经验,每年的考题中都会有一些重复或相似的考题。特别要把最近几年的几套考题摸透,知道哪些是最近强调的重点,做到有的放矢。最后,你还要针对自己的薄弱点做一些专项练习。