第14卷 do……while循环 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计知识考点双析卷》

2025-10-29
| 2份
| 21页
| 100人阅读
| 1人下载

内容正文:

编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。 本专辑第14卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】: (七)do……while循环 湖南省普通高等学校对口招生考试 计算机应用类 《C语言程序设计》考点双析卷 第14卷 do……while循环 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题3分,共60分) 1.有以下程序 main() {     int a =3;     do{     printf("%d,", a-=2);         }     while(!(--a));     printf(" "); } 程序运行后的输出结果是(   ) A.1, B.1,-2, C.3,0, D.1,0 2.若 int型变量i和p已定义,执行以下语句后p的值不等于6!的是(   ) A.for(i=1,p= 1;i<= 6;i++)  p*=i; B.for(i=1;i<6;i++) {p*=i;} C.i=1;p= 1; while( i<=6) {p*=i; i++;} D.i= 1;p= 1; do {p*=i; i++;} while(i <= 6); 3.以下至少会执行一次循环体的循环结构是(   ) A.while B.for C.If…else D.do…while 4.以下关于 do - while 循环和 while 循环的说法,正确的是(   ) A.do - while 循环和 while 循环的执行流程完全相同 B.do - while 循环至少执行一次循环体,而 while 循环可能一次都不执行 C.while 循环的条件判断在循环体执行之后,do - while 循环的条件判断在循环体执行之前 D.do - while 循环不能嵌套使用,而 while 循环可以嵌套使用 5.以下代码的输出结果是(   ) int i = 0; do {     printf("%d ", i);     i++; } while (i < 3); A.0 1 2 B.0 1 2 3 C.1 2 3 D.编译错误 6.以下 do-while 循环中,循环体执行的次数是(   ) int i = 10; do {     i -= 3; } while (i > 0); A.2 次 B.3 次 C.4 次 D.5 次 7.以下 do-while 循环的执行次数是(   ) int i = 3; do {     i--; } while (i > 0); A.0 次 B.1 次 C.2 次 D.3 次 8.以下会无限循环下去的语句是(   ) A.for (int i = 0; i < 10; i--) B.while (0) C.for (int i = 10; i > 0; i--) D.do { } while (0); 9.以下哪个循环嵌套结构可以实现一个二维数组的全遍历?(   ) A.for循环 B.while循环 C.do-while循环 D.以上都可以 10.以下代码的输出结果是(   ) int i = 0; do {     if (i % 2 == 0) {         i++;         continue;     }     printf("%d ", i);     i++; } while (i < 5); A.1 3 B.0 2 4 C.1 3 5 D.无输出 11.以下代码的输出结果是(   ) int i = 0; do {     if (i == 3) {         continue;     }     printf("%d ", i);     i++; } while (i < 5); A.0 1 2 B.0 1 2 4 C.0 1 2 3 4 D.程序陷入死循环 12.以下代码中 do…while 循环的执行次数是(   ) int i = 5; do {     i++; } while (i < 5); A.0 次 B.1 次 C.5 次 D.无限次 13.以下代码的输出是(   ) int a = 10, b = 0; do {     a -= 2;     b++; } while (a > b); printf("%d,%d", a, b); A.6,3 B.4,4 C.2,4 D.8,2 14.以下代码段的输出结果是(   ) int x=3; do { printf("%d ", x-=2); } while (!(--x)); A.1 B.1 -2 C.3 0 D.死循环 15.以下代码的输出结果是(   ) int i = 5;   do {       printf("%d", i);       i--;   } while(i > 3); A.5 B.54 C.543 D.5432 16.执行下列程序段后,结果为(   )    int k=0;    do{ k++; }while(k++<=3); printf(“%d”,k); A.3 B.4 C.5 D.6 17.下列循环中,没有语法错误的是(   ) A.int i=1;        While(i<=10)          i++;        printf(“%d ”,i); B.int i=1;        while(i<=10)          i++;        printf(“%d ”,i); C.int i=1;       do {i++; } while(i<=10)        printf(“%d ”,i); D.int i;       for(i=1;i<=10)        {sum+=i;i++;}        printf(“%d ”,i); 18.下列关于循环语句的描述中,正确的是(   ) A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B.do-while循环由do开始,以while结束,在while(表达式)后面不能写分号 C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作 D.do-while循环中,根据情况可以省略while 19.若有以下语句,则执行后输出(   ) main() {int x=3; do {printf("%d",x-=2);} while(!(-x));getch();} A.1 B.1-2 C.30 D.语句是死循环 20.以下不是无限循环的语句是(   ) A.for(i=3;;i++) B.do{int i;i+=8;}while(y=1) C.while(8){sum=sum-9;} D.for(i=9;i>3;i-) 二、程序设计题(本大题共4小题,每题10分,共40分) 21.代码实现用户输入验证 要求: 输入一个年龄(1~150之间的整数),若输入非法(如负数或超范围),提示重新输入,直到合法为止。 使用 do-while 循环实现。 最终输出合法年龄。 22.代码实现题统计输入数字的位数 要求: 输入一个正整数 n。 使用 do-while 循环统计其位数(如输入 1234,输出 4)。 23.编写一个程序,使用 do - while 循环找出用户输入的一组整数中的最大值。 24.编写一个程序,使用 do - while 循环计算用户输入的一组整数的和,直到用户输入 0 为止。 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $ 编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。 本专辑第14卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】: (七)do……while循环 湖南省普通高等学校对口招生考试 计算机应用类 《C语言程序设计》考点双析卷 第14卷 do……while循环 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题3分,共60分) 1.有以下程序 main() {     int a =3;     do{     printf("%d,", a-=2);         }     while(!(--a));     printf(" "); } 程序运行后的输出结果是(   ) A.1, B.1,-2, C.3,0, D.1,0 【答案】B 【详解】变量a初始化为3。do...while循环开始,首先执行printf("%d,", a-=2);,这行代码做了两件事:首先a减去2,然后打印a的值(此时a的值变为1),并且执行a的递减操作(--a),这使得a的值变为0。while(!(--a)); 这部分是循环的条件。!(--a)首先对a进行递减操作,然后对结果取反。由于a已经变为0,--a变为-1,取反后变为真(非零值为真),循环继续。循环继续执行,a再次变为-2,打印-2,然后a递减到-3,此时while条件中的!(--a)变为假(因为--a变为-4,取反为0,即假),循环结束。最后,执行printf(" ");,输出换行符。 2.若 int型变量i和p已定义,执行以下语句后p的值不等于6!的是(   ) A.for(i=1,p= 1;i<= 6;i++)  p*=i; B.for(i=1;i<6;i++) {p*=i;} C.i=1;p= 1; while( i<=6) {p*=i; i++;} D.i= 1;p= 1; do {p*=i; i++;} while(i <= 6); 【答案】B 3.以下至少会执行一次循环体的循环结构是(   ) A.while B.for C.If…else D.do…while 【答案】D 4.以下关于 do - while 循环和 while 循环的说法,正确的是(   ) A.do - while 循环和 while 循环的执行流程完全相同 B.do - while 循环至少执行一次循环体,而 while 循环可能一次都不执行 C.while 循环的条件判断在循环体执行之后,do - while 循环的条件判断在循环体执行之前 D.do - while 循环不能嵌套使用,而 while 循环可以嵌套使用 【答案】B 5.以下代码的输出结果是(   ) int i = 0; do {     printf("%d ", i);     i++; } while (i < 3); A.0 1 2 B.0 1 2 3 C.1 2 3 D.编译错误 【答案】A 6.以下 do-while 循环中,循环体执行的次数是(   ) int i = 10; do {     i -= 3; } while (i > 0); A.2 次 B.3 次 C.4 次 D.5 次 【答案】C 【分析】本题考查了 do-while 循环的执行次数。do-while 循环的特点是先执行循环体,再判断条件。需要明确循环的初始条件和终止条件,从而计算出循环体的执行次数。 【详解】(1)i的初始值为10; (2)循环过程:第1次循环:i-=3;实际上为:i=i-3,i的值为7,while(i>0)成立;第2次循环:i-=3; i的值为4,while(i>0)成立;第3次循环:i-=3; i的值为1,while(i>0)成立;第4次循环:i-=3; i的值为-2,while(i>0)不成立;循环至此结束,共4次循环。 7.以下 do-while 循环的执行次数是(   ) int i = 3; do {     i--; } while (i > 0); A.0 次 B.1 次 C.2 次 D.3 次 【答案】D 【分析】do-while循环语句的特点是先执行循环体,再判断条件是否成立,该程序中,循环体内为i自减,当i=3、i=2、i=1时循环体共执行了三次, 【详解】do - while 先执行循环体再判断条件。初始 i = 3 ,第一次循环 i-- 后 i 为 2 ,条件 i > 0 成立;第二次循环 i-- 后 i 为 1 ,条件仍成立;第三次循环 i-- 后 i 为 0 ,条件不成立,循环结束。所以循环体共执行 3 次。 【点睛】 8.以下会无限循环下去的语句是(   ) A.for (int i = 0; i < 10; i--) B.while (0) C.for (int i = 10; i > 0; i--) D.do { } while (0); 【答案】A 9.以下哪个循环嵌套结构可以实现一个二维数组的全遍历?(   ) A.for循环 B.while循环 C.do-while循环 D.以上都可以 【答案】D 【详解】所有的循环结构都可以用来嵌套,以实现对二维数组的全遍历。 10.以下代码的输出结果是(   ) int i = 0; do {     if (i % 2 == 0) {         i++;         continue;     }     printf("%d ", i);     i++; } while (i < 5); A.1 3 B.0 2 4 C.1 3 5 D.无输出 【答案】A 11.以下代码的输出结果是(   ) int i = 0; do {     if (i == 3) {         continue;     }     printf("%d ", i);     i++; } while (i < 5); A.0 1 2 B.0 1 2 4 C.0 1 2 3 4 D.程序陷入死循环 【答案】D 12.以下代码中 do…while 循环的执行次数是(   ) int i = 5; do {     i++; } while (i < 5); A.0 次 B.1 次 C.5 次 D.无限次 【答案】B 13.以下代码的输出是(   ) int a = 10, b = 0; do {     a -= 2;     b++; } while (a > b); printf("%d,%d", a, b); A.6,3 B.4,4 C.2,4 D.8,2 【答案】C 【详解】这段代码使用了do-while循环,执行步骤如下:  ‌ 初始值‌:a=10,b=0。 ‌ 循环过程‌(每次循环先执行后判断条件): 第1次‌:a=10-2=8,b=0+1=1→判断8>1(成立,继续)。 ‌ 第2次‌:a=8-2=6,b=1+1=2→判断6>2(成立,继续)。 第3次‌:a=6-2=4,b=2+1=3→判断4>3(成立,继续)。 第4次‌:a=4-2=2,b=3+1=4→判断2>4(不成立,退出循环)。 最终输出‌:printf打印a和b的值,即2,4 14.以下代码段的输出结果是(   ) int x=3; do { printf("%d ", x-=2); } while (!(--x)); A.1 B.1 -2 C.3 0 D.死循环 【答案】B 【详解】第一次循环迭代:x-=2后,x=3-2=1,此时打印输出1。 循环后检查条件while(!(--x)),x先减去1,即x=1-1=0,表达式值为0。因此!(--x)=!0。在C语言中,0表示假,!0为真,因此条件成立,循环继续,此时输出1,x值为0. 第二次循环迭代:x-=2后,x=0-2=-2,此时打印输出-2。 循环后检查条件while(!(--x)),x先减去1,即x=-2-1=-3,表达式值为-3。因此!(--x)=!(-3)。在C语言中,非零值表示真,!(-3)为假,因此条件不成立,循环终止。 因此输出为1 -2,选B 15.以下代码的输出结果是(   ) int i = 5;   do {       printf("%d", i);       i--;   } while(i > 3); A.5 B.54 C.543 D.5432 【答案】B 16.执行下列程序段后,结果为(   )    int k=0;    do{ k++; }while(k++<=3); printf(“%d”,k); A.3 B.4 C.5 D.6 【答案】D 【详解】最后一轮循环,当K=5,判断条件不成立时,后置加还会加1.故选D。 17.下列循环中,没有语法错误的是(   ) A.int i=1;        While(i<=10)          i++;        printf(“%d ”,i); B.int i=1;        while(i<=10)          i++;        printf(“%d ”,i); C.int i=1;       do {i++; } while(i<=10)        printf(“%d ”,i); D.int i;       for(i=1;i<=10)        {sum+=i;i++;}        printf(“%d ”,i); 【答案】B 【详解】A选项中,while关键字大写;B选项中,do-while的while后面没有分号;D选项中,for括号中有三个表达式,可以空着,但必须写分号。故选B。 18.下列关于循环语句的描述中,正确的是(   ) A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B.do-while循环由do开始,以while结束,在while(表达式)后面不能写分号 C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作 D.do-while循环中,根据情况可以省略while 【答案】C 19.若有以下语句,则执行后输出(   ) main() {int x=3; do {printf("%d",x-=2);} while(!(-x));getch();} A.1 B.1-2 C.30 D.语句是死循环 【答案】A 20.以下不是无限循环的语句是(   ) A.for(i=3;;i++) B.do{int i;i+=8;}while(y=1) C.while(8){sum=sum-9;} D.for(i=9;i>3;i-) 【答案】D 二、程序设计题(本大题共4小题,每题10分,共40分) 21.代码实现用户输入验证 要求: 输入一个年龄(1~150之间的整数),若输入非法(如负数或超范围),提示重新输入,直到合法为止。 使用 do-while 循环实现。 最终输出合法年龄。 【答案】#include <stdio.h> int main() {       int age;       do {           printf("请输入年龄(1~150):");           scanf("%d", &age);           if (age < 1 || age > 150) {               printf("输入错误,请重新输入! ");           }       } while (age < 1 || age > 150);       printf("合法年龄:%d", age);       return 0;   } 22.代码实现题统计输入数字的位数 要求: 输入一个正整数 n。 使用 do-while 循环统计其位数(如输入 1234,输出 4)。 【答案】#include <stdio.h> int main() {       int n, count = 0;       scanf("%d", &n);       do {           n /= 10;           count++;       } while (n != 0);       printf("位数:%d", count);       return 0;   } 23.编写一个程序,使用 do - while 循环找出用户输入的一组整数中的最大值。 【答案】#include <stdio.h> int main() {     int num, max;     int first = 1;     do {         printf("请输入一个整数(输入 0 结束): ");         scanf("%d", &num);         if (first) {             max = num;             first = 0;         } else if (num != 0 && num > max) {             max = num;         }     } while (num != 0);     if (!first) {         printf("输入的整数中的最大值为: %d ", max);     } else {         printf("没有输入有效整数。 ");     }     return 0; } 24.编写一个程序,使用 do - while 循环计算用户输入的一组整数的和,直到用户输入 0 为止。 【答案】#include <stdio.h> int main() {     int num, sum = 0;     do {         printf("请输入一个整数(输入 0 结束): ");         scanf("%d", &num);         sum += num;     } while (num != 0);     printf("输入的整数的和为: %d ", sum);     return 0; } 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $

资源预览图

第14卷 do……while循环 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计知识考点双析卷》
1
第14卷 do……while循环 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计知识考点双析卷》
2
第14卷 do……while循环 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计知识考点双析卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。