内容正文:
5.6节:break语句和continue语句
一、单项选择题
1.下列关于 break 语句的描述,正确的是( )
A. break 语句只能用于循环体内部
B. break 语句可以强制终止当前所在的整个循环
C. 执行 break 语句后,会直接结束程序运行
D. break 语句仅能用于 for 循环中
2.在 while 循环体内执行 break 语句后,程序将()
A. 重新判断 while 循环条件 B. 立即退出当前 while 循环
C. 跳过本次循环,执行下一次循环 D. 自动进入死循环
3.关于 for 循环中 continue 的执行逻辑,说法正确的是()
A. 执行 continue 后,直接执行循环体第一条语句
B. 执行 continue 后,会执行 for 的表达式 3,再判断循环条件
C. 执行 continue 后,直接退出 for 循环
D. 执行 continue 后,不再执行任何循环相关代码
4.设有循环for(int m=1;m<=10;m++),若在循环内写if(m==6) continue;,则下列说法正确的是()
A. m=6 时循环直接结束 B. m=6 时本次循环后续代码不执行
C. m 永远无法自增 D. 循环只会执行 6 次
5.执行以下代码后,变量i的值是()
int i = 0;
while (i < 10) {
if (i == 5) break;
i++; }
A. 4 B. 5 C. 6 D. 10
6.以下代码段的输出结果是()
int i = 0;
do { if (i % 2 == 0) {
i++;
continue; }
printf("%d", i);
i++; } while (i < 5);
A. 13 B. 1234 C. 135 D. 无输出
7.执行以下代码,输出的数字个数是()
for (int i = 0; i < 10; i++) {
if (i == 3) continue;
if (i == 7) break;
printf("%d", i); }
A. 3 B. 6 C. 7 D. 10
8.以下代码的输出结果是()
int i = 10;
while (i > 0) {
i--;
if (i == 5) break;
if (i % 2 == 1) continue;
printf("%d", i); }
A. 86 B. 864 C. 1086 D. 10864
9.执行以下代码,输出结果是()
#include <stdio.h>
int main() {
int count = 0,i;
for (i = 0; i < 5; i++) {
count++;
if (i == 2) break;
count++;}
printf("%d",count); }
A. 2 B. 3 C. 4 D. 5
10.以下代码的输出是()
int n = 5;
while (n--) {
if (n < 2) break;
printf("%d", n);}
A. 43 B. 543 C. 432 D. 5432
二、填空题。
1.C 语言中,______语句的作用是强制终止当前单层循环。
2.在循环结构内,______语句可以跳过本次循环剩余代码,直接进入下一次循环。
3.执行以下代码,输出结果是___________。
int i = 0;
for (; i < 5; i++) {
do {
if (i == 2) break;
printf("%d", i);
break; } while (1);
}
4.以下代码的循环体执行了___________次。
int i = 0;
while (1) {
i++;
if (i > 5) break;
if (i % 2 == 0) continue;
printf("%d", i);}
5.以下代码输出结果是___________。
for (int i = 5; i > 0; i--) {
if (i == 3) continue;
printf("%d", i);
if (i == 1) break;}
6.执行以下代码,k的值是___________。
int k = 0,i,j;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++) {
if (j == 1) break;
k++;}
7.以下代码输出结果是___________。
int x = 10;
while (x > 5) {
x--;
if (x == 7) continue;
printf("%d", x);
if (x == 6) break;}
8.以下代码段中,循环将执行___________次。
int i = 0;
while (i < 3) {
printf("%d", i);
i++;
continue;
printf("X"); }
9.以下代码输出结果是___________。
int i;
for (i = 1; i <= 5; i++) {
if (i % 2 == 0) {
printf("E");
continue; }
if (i == 3) break;
printf("O");}
10.执行以下代码,s的值是___________。
int s = 0;
for (int i = 1; i <= 5; i++) {
if (i == 3) continue;
s += i;
if (i == 4) break; }
三、阅读程序题。
1.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{int i;
for (i = 0; i < 10; i++) {
if (i % 3 == 0) continue;
printf("%d", i); }
}
2.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int i = 0;
while (++i < 5) {
if (i == 2) continue;
printf("%d", i);
}
}
3.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int x = 5;
do {
printf("%d", x);
x--;
if (x == 2) break;
x--;
} while (x > 0);
printf("%d", x); }
4.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int i,j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 5; j++) {
if (j == 3) break;
if (j == 1) continue;
printf("%d", j); }
printf("-"); }
}
5.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int x = 1;
while (x < 20) {
x *= 2;
if (x == 16) break;
if (x % 3 == 0) continue;
x += 2; }
printf("%d", x);
}
6.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{int x = 0, y = 0;
for (; x < 10; x++) {
if (x % 2 == 0) {
y += x;
continue; }
if (y > 5) break;
y -= x; }
printf("x=%d,y=%d", x, y); }
7.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{int a = 1, b = 1;
while (a < 100) {
a = a * 2 + 1;
if (a > 50) break;
b++;
if (b == 3) {
a = a + 10;
continue; }
a = a + b;}
printf("a=%d,b=%d", a, b);
}
8.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{int i, j, k = 0;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 3; j++) {
if (i + j == 4) {
k++;
break; }
k += 2; }
if (i == 2) break;}
printf("%d", k);
}
9.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int i, j, k;
int found = 0;
for (i = 2; i < 5 && !found; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
found = 1;
break; }
}
if (!found) printf("%d", i); }
}
10.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int i = 1, j;
while (i <= 3) {
j = 1;
while (j <= 3) {
if (i == 2 && j == 2) {
j++;
continue; }
if (i == 3 && j == 1)
break;
printf("%d%d ", i, j);
j++; }
i++; }
}
四、程序填空题(根据题意,将空缺的语句补上)
1.功能:输出 1~10 中除 5 以外的所有数字
#include <stdio.h>
main(){
int i;
for(i=1;i<=10;i++){
if(i==5) ______;
printf("%d ",i); }
}
2.功能:找到第一个大于 15 的数字并终止循环
#include <stdio.h>
main(){
int n = 10;
while(n<=20){
if(n>15) ______;
n++; }
}
3.功能:do-while 循环中,跳过数值 7 的打印
#include <stdio.h>
main(){
int m = 1;
do{
if(m==7) ______;
printf("%d",m);
m++;
}while(m<=9);
}
4.功能:过滤所有奇数,仅输出偶数
#include <stdio.h>
main(){
int a;
for(a=2;a<=12;a++){
if(___________) continue;
printf("%d ",a);
}
}
5.功能:跳过 3 和 8,完成范围内数字输出
#include <stdio.h>
main(){
int k;
for(k=1;k<=10;k++){
if(_____________) continue;
printf("%d",k);
}
}
五、编程题。
1. 编写程序:循环输出 1~18,满足两个规则:①数字为 5 的倍数跳过输出 ②数字大于 15 立即退出循环。
2.编写程序:持续输入正整数,使用循环语句,遇到偶数跳过处理,遇到数字 0 结束程序。
3.计算 1 开始的连续整数和,利用 break,当累加和大于 80 时停止循环并输出总和。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
5.6节:break语句和continue语句
一、单项选择题
1.下列关于 break 语句的描述,正确的是( )
A. break 语句只能用于循环体内部
B. break 语句可以强制终止当前所在的整个循环
C. 执行 break 语句后,会直接结束程序运行
D. break 语句仅能用于 for 循环中
【答案】B
【解析】break 可用于循环与 switch,终止当前整体循环;不会结束整个程序,适用所有基础循环。
2.在 while 循环体内执行 break 语句后,程序将( )
A. 重新判断 while 循环条件 B. 立即退出当前 while 循环
C. 跳过本次循环,执行下一次循环 D. 自动进入死循环
【答案】B
【解析】break 直接跳出当前单层循环,不再执行循环条件判断。
3.关于 for 循环中 continue 的执行逻辑,说法正确的是( )
A. 执行 continue 后,直接执行循环体第一条语句
B. 执行 continue 后,会执行 for 的表达式 3,再判断循环条件
C. 执行 continue 后,直接退出 for 循环
D. 执行 continue 后,不再执行任何循环相关代码
【答案】B
【解析】for 循环中 continue 会跳转至表达式 3 执行,再进行下一轮条件判断。
4.设有循环for(int m=1;m<=10;m++),若在循环内写if(m==6) continue;,则下列说法正确的是( )
A. m=6 时循环直接结束 B. m=6 时本次循环后续代码不执行
C. m 永远无法自增 D. 循环只会执行 6 次
【答案】B
【解析】m=6 触发 continue,跳过本次循环剩余语句,m 正常完成自增。
5.执行以下代码后,变量i的值是( )
int i = 0;
while (i < 10) {
if (i == 5) break;
i++; }
A. 4 B. 5 C. 6 D. 10
【答案】B
【解析】当 i 自增到 5 时,break 立即跳出。注意 i++ 是在 if 判断之后执行的,当 i 为 4 时进入循环体,执行 i++ 变为 5,然后 if 判断为真,跳出。
6.以下代码段的输出结果是( )
int i = 0;
do { if (i % 2 == 0) {
i++;
continue; }
printf("%d", i);
i++; } while (i < 5);
A. 13 B. 1234 C. 135 D. 无输出
【答案】A
【解析】continue 跳过偶数。i=0(偶)-> i=1;i=1(奇)-> 输出1,i=2;i=2(偶)-> i=3;i=3(奇)-> 输出3,i=4;i=4(偶)-> i=5,循环结束。输出13。
7.执行以下代码,输出的数字个数是( )
for (int i = 0; i < 10; i++) {
if (i == 3) continue;
if (i == 7) break;
printf("%d", i); }
A. 3 B. 6 C. 7 D. 10
【答案】B
【解析】 输出 0,1,2(跳过3),4,5,6。当 i=7 时,break 跳出,所以输出了6个数字。
8.以下代码的输出结果是( )
int i = 10;
while (i > 0) {
i--;
if (i == 5) break;
if (i % 2 == 1) continue;
printf("%d", i); }
A. 86 B. 864 C. 1086 D. 10864
【答案】A
【解析】i初始10,先减为9。9是奇数,continue;8是偶数,输出8;7是奇数,continue;6是偶数,输出6;5时 break。输出86。
9.执行以下代码,输出结果是( )
#include <stdio.h>
int main() {
int count = 0,i;
for (i = 0; i < 5; i++) {
count++;
if (i == 2) break;
count++;}
printf("%d",count); }
A. 2 B. 3 C. 4 D. 5
【答案】D
10.以下代码的输出是( )
int n = 5;
while (n--) {
if (n < 2) break;
printf("%d", n);}
A. 43 B. 543 C. 432 D. 5432
【答案】A
【解析】n-- 是后置。第一次判断时 n=5,执行后 n=4,输出4;第二次 n=4,执行后 n=3,输出3;第三次 n=3,执行后 n=2,不小于2,继续;第四次 n=2,执行后 n=1,此时 n<2 成立,break。所以输出43。
二、填空题。
1.C 语言中,______语句的作用是强制终止当前单层循环。
【答案】break
【解析】break 为循环终止语句,直接跳出当前循环结构。
2.在循环结构内,______语句可以跳过本次循环剩余代码,直接进入下一次循环。
【答案】continue
【解析】continue 专属作用:结束本次循环,开启下一轮判断。
3.执行以下代码,输出结果是___________。
int i = 0;
for (; i < 5; i++) {
do {
if (i == 2) break;
printf("%d", i);
break; } while (1);
}
【答案】0134
【解析】 i=0: 输出0;i=1: 输出1;i=2: 不输出,直接跳出do;i=3: 输出3;i=4: 输出4。所以输出0134。
4.以下代码的循环体执行了___________次。
int i = 0;
while (1) {
i++;
if (i > 5) break;
if (i % 2 == 0) continue;
printf("%d", i);}
【答案】6
【解析】while(1) 是死循环,靠 break 退出。i从1到6:i=1(执行), 2(执行), 3(执行), 4(执行), 5(执行), 6(执行if>i>5 break)。共执行6次循环体。
5.以下代码输出结果是___________。
for (int i = 5; i > 0; i--) {
if (i == 3) continue;
printf("%d", i);
if (i == 1) break;}
【答案】5421
【解析】i=5: 输出5;i=4: 输出4;i=3: 跳过;i=2: 输出2;i=1: 输出1,然后break。所以是5421。
6.执行以下代码,k的值是___________。
int k = 0,i,j;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++) {
if (j == 1) break;
k++;}
【答案】3
【解析】外层i=0: j=0 -> k=1; j=1 -> break (内层结束);i=1: j=0 -> k=2; j=1 -> break;i=2: j=0 -> k=3; j=1 -> break。共3次。
7.以下代码输出结果是___________。
int x = 10;
while (x > 5) {
x--;
if (x == 7) continue;
printf("%d", x);
if (x == 6) break;}
【答案】986
【解析】 x初始10。第一次:x=9,输出9;第二次:x=8,输出8;第三次:x=7,continue(跳过输出和break);第四次:x=6,输出6,然后break。所以输出986。
8.以下代码段中,循环将执行___________次。
int i = 0;
while (i < 3) {
printf("%d", i);
i++;
continue;
printf("X"); }
【答案】3
【解析】continue 跳过了后面的 printf("X"),但 i++ 已经执行,所以循环正常结束,执行3次。
9.以下代码输出结果是___________。
int i;
for (i = 1; i <= 5; i++) {
if (i % 2 == 0) {
printf("E");
continue; }
if (i == 3) break;
printf("O");}
【答案】 OE
【解析】 i=1: 奇数,不是3,输出O;i=2: 偶数,输出E,continue;i=3: 奇数,是3,break。所以输出OE。
10.执行以下代码,s的值是___________。
int s = 0;
for (int i = 1; i <= 5; i++) {
if (i == 3) continue;
s += i;
if (i == 4) break; }
【答案】7
【解析】i=1: s=1;i=2: s=3;i=3: 跳过;i=4: s=3+4=7,然后break。所以s=7。
三、阅读程序题。
1.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{int i;
for (i = 0; i < 10; i++) {
if (i % 3 == 0) continue;
printf("%d", i); }
}
【答案】124578
2.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int i = 0;
while (++i < 5) {
if (i == 2) continue;
printf("%d", i);
}
}
【答案】134
3.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int x = 5;
do {
printf("%d", x);
x--;
if (x == 2) break;
x--;
} while (x > 0);
printf("%d", x); }
【答案】532
4.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int i,j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 5; j++) {
if (j == 3) break;
if (j == 1) continue;
printf("%d", j); }
printf("-"); }
}
【答案】02-02-02-
5.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int x = 1;
while (x < 20) {
x *= 2;
if (x == 16) break;
if (x % 3 == 0) continue;
x += 2; }
printf("%d", x);
}
【答案】22
6.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{int x = 0, y = 0;
for (; x < 10; x++) {
if (x % 2 == 0) {
y += x;
continue; }
if (y > 5) break;
y -= x; }
printf("x=%d,y=%d", x, y); }
【答案】x=10,y=-5
7.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{int a = 1, b = 1;
while (a < 100) {
a = a * 2 + 1;
if (a > 50) break;
b++;
if (b == 3) {
a = a + 10;
continue; }
a = a + b;}
printf("a=%d,b=%d", a, b);
}
【答案】a=95,b=4
8.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{int i, j, k = 0;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 3; j++) {
if (i + j == 4) {
k++;
break; }
k += 2; }
if (i == 2) break;}
printf("%d", k);
}
【答案】8
9.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int i, j, k;
int found = 0;
for (i = 2; i < 5 && !found; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
found = 1;
break; }
}
if (!found) printf("%d", i); }
}
【答案】23
10.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int i = 1, j;
while (i <= 3) {
j = 1;
while (j <= 3) {
if (i == 2 && j == 2) {
j++;
continue; }
if (i == 3 && j == 1)
break;
printf("%d%d ", i, j);
j++; }
i++; }
}
【答案】11 12 13 21 23
四、程序填空题(根据题意,将空缺的语句补上)
1.功能:输出 1~10 中除 5 以外的所有数字
#include <stdio.h>
main(){
int i;
for(i=1;i<=10;i++){
if(i==5) ______;
printf("%d ",i); }
}
【答案】continue
2.功能:找到第一个大于 15 的数字并终止循环
#include <stdio.h>
main(){
int n = 10;
while(n<=20){
if(n>15) ______;
n++; }
}
【答案】break
3.功能:do-while 循环中,跳过数值 7 的打印
#include <stdio.h>
main(){
int m = 1;
do{
if(m==7) ______;
printf("%d",m);
m++;
}while(m<=9);
}
【答案】continue
4.功能:过滤所有奇数,仅输出偶数
#include <stdio.h>
main(){
int a;
for(a=2;a<=12;a++){
if(___________) continue;
printf("%d ",a);
}
}
【答案】a%2!=0
5.功能:跳过 3 和 8,完成范围内数字输出
#include <stdio.h>
main(){
int k;
for(k=1;k<=10;k++){
if(_____________) continue;
printf("%d",k);
}
}
【答案】k==3||k==8
五、编程题。
1. 编写程序:循环输出 1~18,满足两个规则:①数字为 5 的倍数跳过输出 ②数字大于 15 立即退出循环。
【参考代码】
#include <stdio.h>
main(){
int t;
for(t=1;t<=18;t++){
if(t>15){
break;
}
if(t%5==0){
continue;
}
printf("%d ",t);
}
}
2.编写程序:持续输入正整数,使用循环语句,遇到偶数跳过处理,遇到数字 0 结束程序。
【参考代码】
#include <stdio.h>
main(){
int data;
while(1){
scanf("%d",&data);
if(data==0){
break;
}
if(data%2==0){
continue;
}
printf("奇数:%d
",data);
}
}
3.计算 1 开始的连续整数和,利用 break,当累加和大于 80 时停止循环并输出总和。
【参考代码】
#include <stdio.h>
main()
{ int i, sum;
i = 1;
sum = 0;
while (1)
{ sum = sum + i;
if (sum > 80)
break;
i++; }
printf("累加和 = %d", sum);
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$