文章教程

全国计算机等级考试二级C语言6.5break语句和continue语句

8/22/2020 10:24:52 PM 人评论 次浏览

6.5 break语句和continue语句

考点5 break语句

真考链接

考点5难度适中,属于重点掌握知识点,运用范围只限于switch语句。考核概率为60%。

在break后面加上分号就可以构成break语句。

在介绍选择结构时,我们已经知道 break 语句可以使程序流程跳出switch结构,继续执行switch语句之外的语句。实际上,break语句还可以用于从循环体内跳出,即提前结束循环。

说明:

(1)break语句只能出现在循环体内及switch语句内,不能用于其他语句。

(2)当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环,当然也不再去进行条件判断。

真题精选

【例1】在以下程序中,判断i>j共执行了(  )次

#include <stdio.h>

main()

{ int i=0,j=10,k=2,s=0;

for(;;)

{ i+ =k;

if(i>j)

{ printf("% d",s);

break;

s+ =i;

A.4 B.7 C.5 D.6

【答案】D

【解析】本例涉及 break语句,重在循环次数的判定。本例的循环由于无外出口,只能借助break语句终止。鉴于题目要求说明判断i>j的执行次数,只需考查经过i+=k运算如何累计i的值(每次累计i的值,都会累计判别i>j一次),i值分别是i=2、4、6、8、10、12,当i的值为12时判断i>j为真,程序输出s的值并结束,共循环6次。

【例2】下列给定程序中函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。

例如,若high的值为100,则函数的值为732。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include <conio.h>

#include <stdio.h>

#include <math.h>

int fun(int high)

{ int sum=0,n=0,j,yes;

/**********found**********/

while((high> =2)&&(n<10)

{ yes=1;

for(j=2;j< =high/2;j++)

if(high% j==0)

{ /**********found**********/

yes=0;break

if(yes)

{ sum+ =high;

n++;

high--;

return sum;

main()

{ printf("% d",fun(100));}

【答案】(1)while((high>=2)&&(n<10))

(2)yes=0;break;

【解析】本题考查:C语言程序的语法格式

第一处while循环条件丢掉一个括号,第二处是很简单的程序语法错误,没有加分号。

考点6 continue语句

真考链接

考点6难度适中,是应重点掌握的知识点。在不同的循环体语句中使用,其作用方式不同。选择题中考核概率为30%。在操作题中的考核概率为10%。

与break语句一样,在continue后加上分号就构成continue语句。

其作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而转去重新判定循环条件是否成立,从而确定下一次循环是否继续执行。

与break语句不同,执行continue语句并没有使整个循环终止。在while和do…while循环中,continue语句使得流程直接跳到循环控制的条件判断部分,然后决定循环是否继续执行。在for循环中,遇到continue后,跳过循环体中余下的语句,而去求解for语句中的“表达式3”的值,然后再次对“表达式2”的条件进行判断,最后根据“表达式2”的值来决定for循环是否继续执行。continue不管是作为何种语句中的成分,都按上述功能执行。

continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行;而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

常见问题

continue语句只能出现在循环语句的循环体中。当出现在不同循环语句中时,continue分别是如何起作用的呢?

若执行while或do…while语句中的continue语句,则跳过循环体中continue语句后面的语句,直接转去判别下次循环控制条件;若continue语句出现在for语句中,则执行continue语句就是跳过循环体中continue语句后面的语句,转而执行for语句的表达式3。

真题精选

【例1】以下程序的输出结果是( )

#include <stdio.h>

main()

{ int i;

for(i=1;i< =5;i++)

{ if(i% 2)putchar('< ');

else continue;

putchar('> ');

putchar('#');

A.<><><>#    B.><><><#    C.<><>#    D.><><#

【答案】A

【解析】本例考查continue语句的基本使用方法。在程序中,当i%2为真时,执行输出语句,否则执行continue语句,即开始i++运算,进入下一次循环,即当i是偶数时(i%2为0)无任何输出。

【例2】以下程序的输出结果是(  )

#include <stdio.h>

main()

{ int y=10;

for(;y>0;y--)

if(y% 3==0)

{ printf("% d",--y);

continue;

A.741    B.852    C.963    D.8754321

【答案】B

【解析】for循环的循环控制变量y的初值是10,每循环一次y减1,因此y的值由10变化到1。for循环中只包含了一条if语句,if子句是一个复合语句。if后的表达式y%3==0表示只有y的值能被3整除时,其后的子句才执行。已知y由10变化到1,当y的值分别为9、6、3 时才会执行if子句中的printf语句,进行输出。输出的值应是8、5、2。continue语句的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句。就本题而言,在if语句之后,不再有余下尚未执行的语句,因此就接着判断是否执行下一次循环。由此可见,在本题中,continue是虚设的,不起任何作用。

教程类别