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

2025-10-29
| 2份
| 22页
| 178人阅读
| 1人下载

内容正文:

编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。 本专辑第12卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】: (六)while循环 湖南省普通高等学校对口招生考试 计算机应用类 《C语言程序设计》考点双析卷 第12卷 while循环 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题3分,共60分) 1.下面程序的运行后输出结果是(   ) #include<stdio.h> #include<conio.h> main( ) {int n=10; while(n>6){n--; printf("%d",n); }getch(); } A.987 B.876 C.8765 D.9876 2.下面程序段的运行结果是(    ) a=1;b=2;c=2; while(a<b<c) {t=a;a=b;b=t;c- -;} printf("%d,%d,%d",a,b,c); A.2,1,0 B.1,2,1 C.2,1,1 D.1,2,0 3.设有以下程序段,则(   ) int x=0,s=0; while(!x=0)  s+=++x; printf(“%d”,s); A.运行程序段后输出0 B.运行程序段后输出1 C.程序段无限次执行 D.程序段中的控制表达式非法 4.有以下程序 #include<stdio.h> main() { int k=4; while(--k); printf("%d ", k); } 程序运行后的输出结果是(   ) A.0 B.1 C.-1 D.7 5.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是(   ) A.(E>0||E<0) B.(!E==0) C.(E!=0) D.(E==9) 6.以下程序的循环次数是(   ) main() {   int  i=0;   while(i<10)   {     if(i<1)   continue;     if(i==5)  break;     i++;   } } A.死循环,不能确定次数 B.6 C.4 D.1 7.以下代码的输出结果是(   ) #include <stdio.h> int main() {     int i = 0;     while (i < 5) {         i++;         if (i == 3) break;         printf("%d ", i);     }     return 0; } A.1 2 3 4 5 B.1 2 4 5 C.1 2 D.3 8.以下代码段的输出结果是(   ) int i = 5; while (i--) {     printf("%d ", i); } A.4 3 2 1 0 B.5 4 3 2 1 C.5 4 3 2 1 0 D.4 3 2 1 9.以下代码段的输出结果是(   ) int i = 0; while (1) {     if (i == 3) {         break;     }     printf("%d ", i);     i++; } A.0 1 2 B.0 1 2 3 C.无限循环 D.无输出 10.以下嵌套 while 循环中,内层循环体执行的总次数是(   ) int i = 0, j; while (i < 3) {     j = 0;     while (j < 2) {         // 内层循环体         j++;     }     i++; } A.2 次 B.3 次 C.5 次 D.6 次 11.下面哪种循环语句不需要指定循环条件?(   ) A.for循环 B.while循环 C.do-while循环 D.都需要指定循环条件 12.下面哪种循环语句可以无限循环? (   ) A.for循环 B.while循环 C.do-while循环 D.都可以无限循环 13.下面哪个循环语句适合在已知循环次数的情况下使用?(   ) A.while循环 B.for循环 C.do-while循环 D.return语句 14.下面哪个循环语句适合在循环次数未知的情况下使用?(   ) A.while循环 B.for循环 C.do-while循环 D.exit 15.下面哪个循环语句可以使用多个循环变量? (   ) A.while循环 B.for循环 C.do-while循环 D.goto语句 16.以下 while 循环用于输入一个正整数,直到输入的数大于 100 为止,横线处应填的代码是(   ) int num; scanf("%d", &num); while (______) {     scanf("%d", &num); } A.num > 100 B.num < 100 C.num >= 100 D.num <= 100 17.以下嵌套 while 循环用于输出一个直角三角形,横线处应填的代码是(   ) int i = 1, j; while (i <= 5) {     j = 1;     while (j <= ______) {         printf("*");         j++;     }     printf(" ");     i++; } A.i B.5 - i C.5 D.i + 1 18.以下代码的输出结果是(   ) int i = 0; while (i < 5) {     if (i == 1) {         i = 3;         continue;     }     printf("%d ", i);     i++; } A.无输出 B.0 C.0 3 D.0 3 4 19.以下代码的输出结果是(   ) int i = 0; while (i < 5) {     if (i == 3) {         continue;     }     printf("%d ", i);     i++; } A.0 1 2 B.程序陷入死循环 C.0 1 2 4 D.0 1 2 3 4 20.以下代码实现了从 1 到 10 的整数求和,其中空白处应填入(   ) int sum = 0; int i = 1; while (______) {     sum += i;     i++; } A.i < 10 B.i <= 10 C.i > 0 D.i >= 1 二、程序设计题(本大题共4小题,每题10分,共40分) 21.输入一行字符,输出其中字母的个数。 提示:n=0;                 //计算器n置0 ch=getchar();        //输入第1个字符 while(ch!=' ') {if(ch为英文字母)     n++;              //计算器n加1     ch=getchar();     //输入下一个字符 } 22.代码实现计算两个正整数的最大公约数 要求: 输入两个正整数 a 和 b。 使用 while 循环和辗转相除法(欧几里得算法)计算它们的最大公约数。 输出结果。 23.一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是? #include "math.h"  #include "stdio.h"  main() { long int i,x,y; while(1){ /*******space*******/ /*******space*******/ i++; } 24.定义一个函数用于判断某个数是否是回文数,若是则输出是,若不是则输出不是。 #include<stdio.h> int hw(int n){      /*******space*******/      /*******space*******/ } main(){     int n;     scanf("%d",&n);     if(hw(n)){         printf("是回文数"); }else{ printf("不是回文数") } } 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $ 编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。 本专辑第12卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】: (六)while循环 湖南省普通高等学校对口招生考试 计算机应用类 《C语言程序设计》考点双析卷 第12卷 while循环 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题3分,共60分) 1.下面程序的运行后输出结果是(   ) #include<stdio.h> #include<conio.h> main( ) {int n=10; while(n>6){n--; printf("%d",n); }getch(); } A.987 B.876 C.8765 D.9876 【答案】D 2.下面程序段的运行结果是(    ) a=1;b=2;c=2; while(a<b<c) {t=a;a=b;b=t;c- -;} printf("%d,%d,%d",a,b,c); A.2,1,0 B.1,2,1 C.2,1,1 D.1,2,0 【答案】D 3.设有以下程序段,则(   ) int x=0,s=0; while(!x=0)  s+=++x; printf(“%d”,s); A.运行程序段后输出0 B.运行程序段后输出1 C.程序段无限次执行 D.程序段中的控制表达式非法 【答案】B 4.有以下程序 #include<stdio.h> main() { int k=4; while(--k); printf("%d ", k); } 程序运行后的输出结果是(   ) A.0 B.1 C.-1 D.7 【答案】A 【详解】while 循环使用了 --k 作为条件,这意味着每次循环迭代前,变量 k 的值都会减少 1。循环会一直执行,直到 k 的值变为 0,因为 0 在 C 语言中被视为假(false),这会导致循环终止。在 while 循环中,有一个分号 ;,这实际上是一个空语句。它表示循环体内不做任何操作,循环仅仅是为了递减 k 的值直到它变为 0。 5.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是(   ) A.(E>0||E<0) B.(!E==0) C.(E!=0) D.(E==9) 【答案】D 【详解】(E > 0 || E < 0) 等价于 E 非零,因为只要 E 不为零,这个表达式就为真。 (!E == 0) 等价于 E 非零,因为逻辑非操作 ! 会反转 E 的真假值,然后与 0 比较。 (E != 0) 直接检查 E 是否非零,与 E 非零等价。(E == 9) 仅当 E 恰好等于 9 时为真,这与 E 非零的广泛情况不等价。 6.以下程序的循环次数是(   ) main() {   int  i=0;   while(i<10)   {     if(i<1)   continue;     if(i==5)  break;     i++;   } } A.死循环,不能确定次数 B.6 C.4 D.1 【答案】A 【详解】初始时 i = 0,进入循环。i < 1 成立,执行 continue,不执行 i++,直接进入下一次迭代。i 仍然是0,再次进入循环,继续执行 continue。这个状态会一直持续,因为 i 永远不会增加,导致一个无限循环。 7.以下代码的输出结果是(   ) #include <stdio.h> int main() {     int i = 0;     while (i < 5) {         i++;         if (i == 3) break;         printf("%d ", i);     }     return 0; } A.1 2 3 4 5 B.1 2 4 5 C.1 2 D.3 【答案】C 8.以下代码段的输出结果是(   ) int i = 5; while (i--) {     printf("%d ", i); } A.4 3 2 1 0 B.5 4 3 2 1 C.5 4 3 2 1 0 D.4 3 2 1 【答案】A 9.以下代码段的输出结果是(   ) int i = 0; while (1) {     if (i == 3) {         break;     }     printf("%d ", i);     i++; } A.0 1 2 B.0 1 2 3 C.无限循环 D.无输出 【答案】A 10.以下嵌套 while 循环中,内层循环体执行的总次数是(   ) int i = 0, j; while (i < 3) {     j = 0;     while (j < 2) {         // 内层循环体         j++;     }     i++; } A.2 次 B.3 次 C.5 次 D.6 次 【答案】D 11.下面哪种循环语句不需要指定循环条件?(   ) A.for循环 B.while循环 C.do-while循环 D.都需要指定循环条件 【答案】C 【详解】do-while循环不需要指定循环条件,至少执行一次循环体。 12.下面哪种循环语句可以无限循环? (   ) A.for循环 B.while循环 C.do-while循环 D.都可以无限循环 【答案】D 【详解】所有循环语句都可以用于无限循环,只需要循环条件永远为真。 13.下面哪个循环语句适合在已知循环次数的情况下使用?(   ) A.while循环 B.for循环 C.do-while循环 D.return语句 【答案】B 【详解】for循环可以在循环开始前就确定循环次数,适合在已知循环次数的情况下使用。 14.下面哪个循环语句适合在循环次数未知的情况下使用?(   ) A.while循环 B.for循环 C.do-while循环 D.exit 【答案】A 【详解】while循环适合在循环次数未知的情况下使用,通过判断条件来决定是否继续循环。 15.下面哪个循环语句可以使用多个循环变量? (   ) A.while循环 B.for循环 C.do-while循环 D.goto语句 【答案】B 【详解】for循环可以使用多个循环变量,通过逗号分隔。 16.以下 while 循环用于输入一个正整数,直到输入的数大于 100 为止,横线处应填的代码是(   ) int num; scanf("%d", &num); while (______) {     scanf("%d", &num); } A.num > 100 B.num < 100 C.num >= 100 D.num <= 100 【答案】D 17.以下嵌套 while 循环用于输出一个直角三角形,横线处应填的代码是(   ) int i = 1, j; while (i <= 5) {     j = 1;     while (j <= ______) {         printf("*");         j++;     }     printf(" ");     i++; } A.i B.5 - i C.5 D.i + 1 【答案】A 18.以下代码的输出结果是(   ) int i = 0; while (i < 5) {     if (i == 1) {         i = 3;         continue;     }     printf("%d ", i);     i++; } A.无输出 B.0 C.0 3 D.0 3 4 【答案】D 19.以下代码的输出结果是(   ) int i = 0; while (i < 5) {     if (i == 3) {         continue;     }     printf("%d ", i);     i++; } A.0 1 2 B.程序陷入死循环 C.0 1 2 4 D.0 1 2 3 4 【答案】B 20.以下代码实现了从 1 到 10 的整数求和,其中空白处应填入(   ) int sum = 0; int i = 1; while (______) {     sum += i;     i++; } A.i < 10 B.i <= 10 C.i > 0 D.i >= 1 【答案】B 二、程序设计题(本大题共4小题,每题10分,共40分) 21.输入一行字符,输出其中字母的个数。 提示:n=0;                 //计算器n置0 ch=getchar();        //输入第1个字符 while(ch!=' ') {if(ch为英文字母)     n++;              //计算器n加1     ch=getchar();     //输入下一个字符 } 【答案】#include <stdio.h> main() {     int n = 0;     char ch;     ch = getchar();     while (ch != ' ') {         if (ch >= 'a' && ch <= 'z'||ch >= 'A' && ch <= 'Z')             n++;         ch = getchar();     }     printf("%d", n); } 22.代码实现计算两个正整数的最大公约数 要求: 输入两个正整数 a 和 b。 使用 while 循环和辗转相除法(欧几里得算法)计算它们的最大公约数。 输出结果。 【答案】#include <stdio.h> int main() {       int a, b, temp;       scanf("%d %d", &a, &b);       while (b != 0) {           temp = b;           b = a % b;           a = temp;       }       printf("最大公约数:%d", a);       return 0;   } 23.一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是? #include "math.h"  #include "stdio.h"  main() { long int i,x,y; while(1){ /*******space*******/ /*******space*******/ i++; } 【答案】x=sqrt(i+100); y=sqrt(i+168);           if(x*x==i+100 && y*y==i+168){ printf(“该数是%d”,i); break; } 【详解】完全平方数是开方后是一个整数,那么这个数叫完全平方数,此题是利用在C语言中整型变量接收小数时会强制舍弃掉小数部分,那么利用这一点可以从i=1开始进行穷举,让每一个+100和+168的数字进行开方,开方后如果为整数,那么再进行平方后一定会等于原来开放的数,否则不等,一旦相等跳出循环即可。 24.定义一个函数用于判断某个数是否是回文数,若是则输出是,若不是则输出不是。 #include<stdio.h> int hw(int n){      /*******space*******/      /*******space*******/ } main(){     int n;     scanf("%d",&n);     if(hw(n)){         printf("是回文数"); }else{ printf("不是回文数") } } 【答案】int temp,t=0;      temp=n;      while(temp!=0){          t=t*10+temp%10;          temp=temp/10;      }      if(t==n) return 1; else return 0; 【详解】将自定义函数里的形参进行数位分离并进行反序,若反序后的数字依然等于原数,则该数位回文数。 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $

资源预览图

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