专题6:for循环、循环的嵌套(练习)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)

2025-10-09
| 2份
| 23页
| 187人阅读
| 1人下载

内容正文:

专题6:for循环、循环的嵌套 一、单项选择题(在每小题列出的四个备选答案中,只有一个是正确选项。) 1.以下for循环的执行过程描述正确的是( ) A. 先执行循环体,再判断条件 B. 先初始化,再判断条件,若满足则执行循环体,最后更新 C. 先判断条件,若满足则执行循环体,再更新 D. 以上都不对 2.在for(int i=0; i<5; i++);中,循环体执行次数为( ) A. 4次 B. 5次 C. 0次 D. 编译错误 3.有for(int i=1, sum=0; i<=3; sum+=i, i++);,执行后sum的值是( ) A. 6 B. 5 C. 3 D. 0 4.多重循环中,break语句只能终止( ) A. 外层循环 B. 内层循环 C. 所有循环 D. 不确定 5.以下代码的输出是( ) for(int i=0; i<3; i++) { if(i==1) continue; printf("%d",i); } A. 012 B. 02 C. 12 D. 无输出 6.有for(int i=0,j=0; i<2 && j<3; i++,j++),循环体执行次数是( ) A. 2次 B. 3次 C. 5次 D. 6次 7.代码for(int i=1; i<=5; i++),i的最终值是( ) A. 5 B. 6 C. 4 D. 不确定 8.代码for(int i=0; i<5; i++) {if(i==3) break; printf("%d",i);}的输出是( ) A. 01234 B. 012 C. 0123 D. 0124 9.有for(int i=0; i<2; i++) {for(int j=0; j<2; j++) printf("%d%d ",i,j);},输出是( ) A. 00 01 10 11 B. 00 11 C. 01 10 D. 00 01 10.代码for(int a=0,b=0; a<3; a++,b=a) printf("%d ",b);的输出是( ) A. 0 1 2 B. 0 0 0 C. 0 1 3 D. 1 2 3 11.以下for循环的执行过程描述错误的是( ) A. 初始化只执行一次 B. 条件判断为真时执行循环体 C. 更新表达式在循环体之后执行 D. 循环体至少执行一次 12.有for(int i=5; i>0; i-=2),循环体执行次数是( ) A. 2次 B. 3次 C. 4次 D. 5次 二、阅读程序,写出运行结果。 13.下列程序的运行结果是:____________ #include <stdio.h> int main() { for(int i=1; i<=3; i++) { for(int j=1; j<=i; j++) { printf("*"); } printf(" "); } return 0; } 14.下列程序的运行结果是:____________ #include <stdio.h> int main() { int sum = 0; for(int i=1; i<=5; i++) { if(i%2==0) continue; sum += i; } printf("%d", sum); return 0; } 15.下列程序的运行结果是:____________ #include <stdio.h> int main() { int i, j; for(i=0; i<2; i++) { for(j=0; j<3; j++) { if(j==1) break; printf("%d%d ", i, j); } } return 0; } 16.下列程序的运行结果是:____________ #include <stdio.h> int main() { int n = 5; for(; n>0; n--) { if(n==3) continue; printf("%d ", n); } return 0; } 17.下列程序的运行结果是:____________ #include <stdio.h> int main() { int a=1, b=2; for(; a<=b; a++, b--) { printf("%d%d ", a, b); } return 0; } 18.下列程序的运行结果是:____________ #include <stdio.h> int main() { int i=0; for(; i<5; ) { printf("%d ", i); i++; } return 0; } 19.下列程序的运行结果是:____________ #include <stdio.h> int main() { int sum = 0; for(int i=1; i<=10; i++) { sum += i; if(sum>20) break; } printf("%d", sum); return 0; } 20.下列程序的运行结果是:____________ #include <stdio.h> int main() { for(int i=0; i<3; i++) { switch(i) { case 0: printf("A"); case 1: printf("B"); break; case 2: printf("C"); } } return 0; } 21.下列程序的运行结果是:____________ #include <stdio.h> int main() { int x=3; for(; x>0; x--) { for(int y=0; y<x; y++) { printf("*"); } printf(" "); } return 0; } 三、程序填空题。 22.以下程序实现“求1到n的乘积(阶乘)”,请填空。 #include <stdio.h> int main() { int n, i, fact = 1; scanf("%d", &n); for(__(1)__; __(2)__; __(3)__) { fact *= i; } printf("%d! = %d", n, fact); return 0; } 23.以下程序实现“输出99乘法表”,请填空。 #include <stdio.h> int main() { for(int i=1; __(1)__; i++) { for(int j=1; __(2)__; j++) { printf("%d×%d=%d ", i, j, i*j); } printf(" "); } return 0; } 24.以下程序实现“找出100到200之间的所有完数(完数:因子和等于自身,如6=1+2+3)”,请填空。 #include <stdio.h> int main() { for(int i=100; __(1)__; i++) { int sum = 0; for(int j=1; __(2)__; j++) { if(i%j == 0) { sum += j; } } if(__(3)__) { printf("%d ", i); } } return 0; } 25.以下程序实现“输入一个整数,判断是否为素数”,请填空。 #include <stdio.h> #include <math.h> int main() { int num, isPrime = 1; scanf("%d", &num); for(int i=2; __(1)__; i++) { if(__(2)__) { isPrime = 0; __(3)__; } } if(isPrime && num>1) { printf("是素数"); } else { printf("不是素数"); } return 0; } 26.以下程序实现“输出菱形图案(由*组成,行数为5)”,请填空。 #include <stdio.h> int main() { for(int i=1; i<=3; i++) { for(int j=1; j<=3-i; j++) { printf(" "); } for(int k=1; __(1)__; k++) { printf("*"); } printf(" "); } for(int i=2; __(2)__; i++) { for(int j=1; j<=i; j++) { printf(" "); } for(int k=1; __(3)__; k++) { printf("*"); } printf(" "); } return 0; } 27.以下程序实现“计算1到n中所有奇数的和”,请填空。 #include <stdio.h> int main() { int n, sum = 0; scanf("%d", &n); for(int i=1; __(1)__; __(2)__) { sum += i; } printf("奇数和:%d", sum); return 0; } 28.以下程序实现“输出1到100中能被3或5整除的数”,请填空。 #include <stdio.h> int main() { for(int i=1; __(1)__; i++) { if(__(2)__ || __(3)__) { printf("%d ", i); } } return 0; } 四、程序改错题。 29.以下程序实现“求1到10的和,当和大于25时提前终止循环”,存在错误,请指出错误行并改正。 L1 #include <stdio.h> L2 int main() { L3 int sum = 0; L4 for(int i=1; i<=10; i++) { L5 sum += i; L6 if(sum>25) continue; L7 } L8 printf("sum = %d", sum); L9 return 0; L10 } 30.以下程序实现“输出九九乘法表下半部分(i从5到9)”,存在2处错误,请指出错误行并改正。 L1 #include <stdio.h> L2 int main() { L3 for(int i=5; i<=9; i++); L4 for(int j=5; j<=i; j++) { L5 printf("%d×%d=%d ", i, j, i*j); L6 printf(" "); L7 } L8 return 0; L9 } 学科网(北京)股份有限公司 $ 专题6:for循环、循环的嵌套 一、单项选择题(在每小题列出的四个备选答案中,只有一个是正确选项。) 1.以下for循环的执行过程描述正确的是( ) A. 先执行循环体,再判断条件 B. 先初始化,再判断条件,若满足则执行循环体,最后更新 C. 先判断条件,若满足则执行循环体,再更新 D. 以上都不对 【答案】B 2.在for(int i=0; i<5; i++);中,循环体执行次数为( ) A. 4次 B. 5次 C. 0次 D. 编译错误 【答案】B 3.有for(int i=1, sum=0; i<=3; sum+=i, i++);,执行后sum的值是( ) A. 6 B. 5 C. 3 D. 0 【答案】A 4.多重循环中,break语句只能终止( ) A. 外层循环 B. 内层循环 C. 所有循环 D. 不确定 【答案】B 5.以下代码的输出是( ) for(int i=0; i<3; i++) { if(i==1) continue; printf("%d",i); } A. 012 B. 02 C. 12 D. 无输出 【答案】B 6.有for(int i=0,j=0; i<2 && j<3; i++,j++),循环体执行次数是( ) A. 2次 B. 3次 C. 5次 D. 6次 【答案】A 7.代码for(int i=1; i<=5; i++),i的最终值是( ) A. 5 B. 6 C. 4 D. 不确定 【答案】B 8.代码for(int i=0; i<5; i++) {if(i==3) break; printf("%d",i);}的输出是( ) A. 01234 B. 012 C. 0123 D. 0124 【答案】B 9.有for(int i=0; i<2; i++) {for(int j=0; j<2; j++) printf("%d%d ",i,j);},输出是( ) A. 00 01 10 11 B. 00 11 C. 01 10 D. 00 01 【答案】A 10.代码for(int a=0,b=0; a<3; a++,b=a) printf("%d ",b);的输出是( ) A. 0 1 2 B. 0 0 0 C. 0 1 3 D. 1 2 3 【答案】A 11.以下for循环的执行过程描述错误的是( ) A. 初始化只执行一次 B. 条件判断为真时执行循环体 C. 更新表达式在循环体之后执行 D. 循环体至少执行一次 【答案】D 12.有for(int i=5; i>0; i-=2),循环体执行次数是( ) A. 2次 B. 3次 C. 4次 D. 5次 【答案】B 二、阅读程序,写出运行结果。 13.下列程序的运行结果是:____________ #include <stdio.h> int main() { for(int i=1; i<=3; i++) { for(int j=1; j<=i; j++) { printf("*"); } printf(" "); } return 0; } 【答案】 * ** *** 14.下列程序的运行结果是:____________ #include <stdio.h> int main() { int sum = 0; for(int i=1; i<=5; i++) { if(i%2==0) continue; sum += i; } printf("%d", sum); return 0; } 【答案】9 15.下列程序的运行结果是:____________ #include <stdio.h> int main() { int i, j; for(i=0; i<2; i++) { for(j=0; j<3; j++) { if(j==1) break; printf("%d%d ", i, j); } } return 0; } 【答案】00 10 16.下列程序的运行结果是:____________ #include <stdio.h> int main() { int n = 5; for(; n>0; n--) { if(n==3) continue; printf("%d ", n); } return 0; } 【答案】5 4 2 1 17.下列程序的运行结果是:____________ #include <stdio.h> int main() { int a=1, b=2; for(; a<=b; a++, b--) { printf("%d%d ", a, b); } return 0; } 【答案】12 18.下列程序的运行结果是:____________ #include <stdio.h> int main() { int i=0; for(; i<5; ) { printf("%d ", i); i++; } return 0; } 【答案】0 1 2 3 4 19.下列程序的运行结果是:____________ #include <stdio.h> int main() { int sum = 0; for(int i=1; i<=10; i++) { sum += i; if(sum>20) break; } printf("%d", sum); return 0; } 【答案】21 20.下列程序的运行结果是:____________ #include <stdio.h> int main() { for(int i=0; i<3; i++) { switch(i) { case 0: printf("A"); case 1: printf("B"); break; case 2: printf("C"); } } return 0; } 【答案】ABBC 21.下列程序的运行结果是:____________ #include <stdio.h> int main() { int x=3; for(; x>0; x--) { for(int y=0; y<x; y++) { printf("*"); } printf(" "); } return 0; } 【答案】 *** ** * 三、程序填空题。 22.以下程序实现“求1到n的乘积(阶乘)”,请填空。 #include <stdio.h> int main() { int n, i, fact = 1; scanf("%d", &n); for(__(1)__; __(2)__; __(3)__) { fact *= i; } printf("%d! = %d", n, fact); return 0; } 【答案】(1)i=1;(2)i<=n;(3)i++ 23.以下程序实现“输出99乘法表”,请填空。 #include <stdio.h> int main() { for(int i=1; __(1)__; i++) { for(int j=1; __(2)__; j++) { printf("%d×%d=%d ", i, j, i*j); } printf(" "); } return 0; } 【答案】(1)i<=9;(2)j<=i 24.以下程序实现“找出100到200之间的所有完数(完数:因子和等于自身,如6=1+2+3)”,请填空。 #include <stdio.h> int main() { for(int i=100; __(1)__; i++) { int sum = 0; for(int j=1; __(2)__; j++) { if(i%j == 0) { sum += j; } } if(__(3)__) { printf("%d ", i); } } return 0; } 【答案】(1)i<=200;(2)j<i;(3)sum == i 25.以下程序实现“输入一个整数,判断是否为素数”,请填空。 #include <stdio.h> #include <math.h> int main() { int num, isPrime = 1; scanf("%d", &num); for(int i=2; __(1)__; i++) { if(__(2)__) { isPrime = 0; __(3)__; } } if(isPrime && num>1) { printf("是素数"); } else { printf("不是素数"); } return 0; } 【答案】(1)i<=sqrt(num);(2)num%i==0;(3)break 26.以下程序实现“输出菱形图案(由*组成,行数为5)”,请填空。 #include <stdio.h> int main() { for(int i=1; i<=3; i++) { for(int j=1; j<=3-i; j++) { printf(" "); } for(int k=1; __(1)__; k++) { printf("*"); } printf(" "); } for(int i=2; __(2)__; i++) { for(int j=1; j<=i; j++) { printf(" "); } for(int k=1; __(3)__; k++) { printf("*"); } printf(" "); } return 0; } 【答案】(1)k<=2*i-1;(2)i>=1;(3)k<=5-2*i 27.以下程序实现“计算1到n中所有奇数的和”,请填空。 #include <stdio.h> int main() { int n, sum = 0; scanf("%d", &n); for(int i=1; __(1)__; __(2)__) { sum += i; } printf("奇数和:%d", sum); return 0; } 【答案】(1)i<=n;(2)i += 2 28.以下程序实现“输出1到100中能被3或5整除的数”,请填空。 #include <stdio.h> int main() { for(int i=1; __(1)__; i++) { if(__(2)__ || __(3)__) { printf("%d ", i); } } return 0; } 【答案】(1)i<=100;(2)i%3==0;(3)i%5==0 四、程序改错题。 29.以下程序实现“求1到10的和,当和大于25时提前终止循环”,存在错误,请指出错误行并改正。 L1 #include <stdio.h> L2 int main() { L3 int sum = 0; L4 for(int i=1; i<=10; i++) { L5 sum += i; L6 if(sum>25) continue; L7 } L8 printf("sum = %d", sum); L9 return 0; L10 } 【答案】L6 if(sum>25) break; 30.以下程序实现“输出九九乘法表下半部分(i从5到9)”,存在2处错误,请指出错误行并改正。 L1 #include <stdio.h> L2 int main() { L3 for(int i=5; i<=9; i++); L4 for(int j=5; j<=i; j++) { L5 printf("%d×%d=%d ", i, j, i*j); L6 printf(" "); L7 } L8 return 0; L9 } 【答案】L3 for(int i=5; i<=9; i++){ L4 for(int j=1; j<=i; j++) { 学科网(北京)股份有限公司 $

资源预览图

专题6:for循环、循环的嵌套(练习)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
1
专题6:for循环、循环的嵌套(练习)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
2
专题6:for循环、循环的嵌套(练习)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。