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

2025-10-29
| 2份
| 31页
| 116人阅读
| 1人下载

内容正文:

编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。 本专辑第15卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】: (八)for循环、循环的嵌套 湖南省普通高等学校对口招生考试 计算机应用类 《C语言程序设计》考点双析卷 第15卷 for循环、循环的嵌套 老师讲解卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题3分,共60分) 1.下面程序的输出结果是 (    ) int k,j,s; for(k=2;k<6;k++,k++) { s=1; for(j=k;j<6;j++) s+=j;} printf("%d ",s); A.1 B.9 C.11 D.10 【答案】D 【详解】第一次外循环:k = 2内循环:j 从2累加到5,s 的值变为 1 + 2 + 3 + 4 + 5 = 15 第二次外循环:k = 4(注意,由于 k++ 实际上只执行一次,所以这里 k 应该是3,但由于 k++, k++ 的写法,这里 k 实际上会增加两次,变为4) 内循环:j 从4累加到5,s 的值变为 1 + 4 + 5 = 10 第三次外循环:k = 6(k 再次增加两次,变为6,但由于循环条件 k < 6,循环结束) 由于内循环每次开始时 s 都被重置为1,所以只有最后一次内循环的结果是有效的,即 s = 10。 2.以下代码段的输出结果是(   ) for (int i = 0; i < 3; i++) {     for (int j = 0; j < 2; j++) {         printf("*");     }     printf(" "); } A.** ** ** B.*** *** C.** *** D.* * * 【答案】A 3.以下代码的输出结果是(   ) for (int i = 0; i < 2; i++) {     for (int j = 0; j < 2; j++) {         printf("%d %d ", i, j);     } } A.0 0 0 1 1 0 1 1 B.0 0 1 0 0 1 1 1 C.0 0 0 1 D.0 0 1 1 【答案】A 4.以下代码段的输出结果是(   ) c for (int i = 1; i <= 5; i++) {     for (int j = 5; j >= i; j--) {         printf(" ");     }     for (int k = 1; k <= i; k++) {         printf("*");     }     printf(" "); } A.*    **   *** **** ***** B.***** ****   ***    **     * C.* ** *** **** ***** D.***** **** *** ** * 【答案】A 【分析】该代码段通过嵌套循环来实现多重循环 【详解】外层循环(i从1到5)来控制行数,共5行。 第一个内层循环(j从5递减到i)来打印空格,实现右对齐效果 第二个内层循环‌(k从1到i)打印星号,数量与行号i相等 每行结束时打印换行符 因此输出结果是一个右对齐的金字塔型的星号图案。 【点睛】本题考查的是for循环及多种循环的知识。 5.下面的代码段输出的结果是什么?(   ) for(int i = 0; i < 3; i++){     for(int j = 0; j < 3; j++){         if(i + j == 2){             continue;         }         printf("%d %d ", i, j);     } } A.0 0 0 1 1 0 1 2 2 1 2 2 B.0 0 0 1 1 0 1 2 2 2 2 2 C.0 0 0 1 1 0 1 2 2 1 1 2 D.0 0 0 1 1 0 1 2 2 1 2 1 【答案】A 【详解】当i+j等于2时,遇到continue语句,跳过本次循环,继续下一次循环。所以当i+j等于2时,不会输出i和j的值。 6.下面的代码段输出的结果是什么?(   ) for(int i = 0; i < 3; i++){     for(int j = 0; j < 3; j++){         if(i == j){             break;         }         printf("%d %d ", i, j);     } } A.1 0 2 0 2 0 B.1 0 2 0 1 1 C.1 0 2 0 2 1 D.1 0 2 0 2 2 【答案】C 【详解】当i等于j时,遇到break语句,终止内层循环,外层循环仍然会继续执行。 7.以下代码的输出结果是(   ) for (int i = 1; i <= 3; i++) {     for (int j = 1; j <= 3; j++) {         if (i + j > 4) {             break;         }         printf("%d %d ", i, j);     } } A.1 1 1 2 1 3 2 1 2 2 3 1 B.1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 C.1 1 1 2 1 3 2 1 2 2 D.1 1 1 2 2 1 【答案】A 8.下面的代码段输出的结果是(   ) for(int i = 0; i < 3; i++){     for(int j = 0; j < 3; j++){         if(i == 1 && j == 1){             break;         }         printf("%d %d ", i, j);     } } A.0 0 0 1 0 2 1 0 1 1 2 0 2 1 2 2 B.0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 C.0 0 0 1 0 2 1  02 0 2 1 2 2 D.0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 【答案】C 【详解】当i等于1且j等于1时,遇到break语句,终止内层循环,外层循环仍然会继续执行。 9.for语句中的表达式可以部分或全部省略,但两个 不可省略,但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。(   ) A.! B., C.; D.: 【答案】C 10.下列for循环语句正确的是(   ) A.for(i=1;i<10;i++) B.for(i=1;i<=10;i++) C.for(i=10;i>=1;i--) D.以上选项均正确 【答案】D 11.下列选项中,有关for循环的描述中正确的一项是(   ) A.for循环只能用于循环次数已经确定的情况 B.for循环先执行循环体语句,后判断表达式 C.在for循环中,不能使用break语句跳出循环体 D.for循环的循环体语句中,可以包含多条语句,但必须使用花括号括起来 【答案】D 【分析】for循环不仅限于循环次数确定的情况,也可用于次数未知的循环(如通过条件表达式控制) ;for循环的执行顺序是‌先判断表达式‌,再决定是否执行循环体,而非先执行后判断 ;在for循环中,可以使用break语句提前跳出循环。 12.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b)    printf ( “ ------------”) ;的正确说法是(   ) A.循环体只执行一次 B.死循环 C.循环体一次也不执行 D.输出----------- 【答案】C 13.下列程序段的功能是(   ) int main() {int i; for (i = 2; i <= 100; i += 2) printf("%d ", i);} A.输出1至100之间的所有奇数 B.输出1至100之间的所有偶数 C.输出1至100之间的所有数 D.程序中有语法错误 【答案】B 14.下列程序的运行结果是(   ) main() {int i,sum; for(i=1;i<5;i++) sum+=i; printf(“%d”,sum);} A.15 B.14 C.0 D.不确定 【答案】D 15.下列有关for循环说法正确的是(   ) A.在for循环中循环体至少执行一次。 B.在for循环语句中省略表达式1,表达式3则相当于while语句。 C.在for循环语句中省略表达式2,则循环条件总是为假。 D.for语句中表达式1,表达式2,表达式3均可省略,分号也不要写。 【答案】B 【详解】A选项中,在for循环中表达式2一开始为假,循环体一次也不执行。C选项中,在for循环语句中省略表达式2,则循环条件总是为真。D选项中,for语句中表达式1,表达式2,表达式3均可省略,但分号要写。 16.在for循环中,判断循环是否终止的时候是(   ) A.在测试循环条件时进行判断 B.任何地方,只要条件不满足就终止 C.循环执行过程中判断 D.以上均不正确 【答案】A 【详解】for循环中在表达式2进行循环条件判断。故选A。 17.下列循环程序段中,不是死循环的是(   ) A.int j=0;       while(j<=0);j++; B.int k;       for(k=5;  ;k--); C.int i=16,s=0;       while(s<=20)   s=i%15+1; D.int z=9; for(;z;) –z; 【答案】D 【详解】A选项中,while后有分号,循环控制变量z的值在循环体中没有被改变,一直为真,是死循环。B选项中,for循环表达式2没有书写,一直为真,是死循环。C选项中,s一直被重新赋值,一直小于20,是死循环。故选D。 18.执行以下程序的输出结果是(   ) main() {int a[3]={1},i; for(i=0;i<2;i++) printf("%d",a[i]);getch();} A.01 B.001 C.10 D.100 【答案】C 19.执行以下程序的输出结果是(   ) int fun() {static int x=1; x*=2; return x;} main() { int i,s=1; for(i=1;i<=3;i++)  s*=fun(); printf("%d ",s);getch();} A.0 B.10 C.30 D.64 【答案】D 20.下列选项中不是无限循环的语句是(   ) A.for(y=0,x=1;x>++y;x=i++) i=x; B.for(;;x++=i); C.while(1){x++;} D.for(i=10;;i--) sum+i; 【答案】A 二、程序设计题(本大题共4小题,每题10分,共40分) 21.要求使用指针实现输出一个整型数组中的最大值。    #include<stdio.h>    main(){        int i,a[10];        int *p=a;        /*******space*******/   /*******space*******/        } 【答案】for(i=0;i<10;i++){            scanf("%d",p+i);        }        max=*p;        for(i=1;i<10;i++){            if(max<*(p+i)){    max=*(p+i);           }        } return max; 【详解】数组的取值方式是数组名[索引值],若指针p指向数组第一个元素,即p=数组名,指针的取值方式是*(p+i),在数组中找最大值的方法不变,即取值改成指针方式即可。 22.题目:编写一个函数,实现从用户处接收一个字符串,然后交换字符串中所有相邻的字符,要求使用指针实现。 #include <stdio.h> #include <string.h> void swap(char *str); int main() {         char str[100];         printf("【Enter a string:】 ");         fgets(str, sizeof(str), stdin);         str[strcspn(str, " ")] = 0;         swap(str);         printf("【Modified string: 】%s ", str);         return 0; } void swap(char *str) {         int len = strlen(str); /*******space*******/ /*******space*******/ } 【答案】int i; char temp; for(i=0;i<len-1;i+=2){     temp=*(str+i);     *(str+i)=*(str+i+1);     *(str+i+1)=temp;    } 【详解】数组中每两个相邻字符的交换,实际上就是a[j]和a[j+1]的交换,索引值j从0开始每次跳2个即可。 23.函数fun的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。 例如,输入1、2、3、4,程序运行后输出以下方阵: 4 1 2 3 3 4 1 2 2 3 4 1 1 2 3 4 #include  <stdio.h> #define M 4 void fun(int *a) {       int I,j,k,m;       printf("【Enter 4 number: 】");       for(I=0;I<M;I++)           scanf("%d",&a[I]);       printf(" 【The result :】 "); /*******space*******/      /*******space*******/ } void main() { int a[M];       fun(a); } 【答案】for(I=M;I>0;I--)       { k=a[M-1];             for(j=M-1;j>0;j--) a[j]=a[j-1];             a[0]=k;             for(m=0;m<M;m++)  printf("%d ",a[m]);             printf(" "); } 24.请编写函数sum,其功能是:用While循环语句求1到n之间(包括n)能被7整除的所有整数之和,并将结果返回给主函数(n值由主函数传入) #include <stdio.h> long sum(int n) {          /*******space*******/          /*******space*******/ } void main() {          int x;          long f;          scanf("%d",&x);          f=sum(x);          printf("%ld ",f); } 【答案】long sum=0;          int i;          for(i=1;i<=n;i++){              if(i%7==0){                  sum=sum+i;              }          } return sum; 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $ 编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。 本专辑第15卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】: (八)for循环、循环的嵌套 湖南省普通高等学校对口招生考试 计算机应用类 《C语言程序设计》考点双析卷 第15卷 for循环、循环的嵌套 老师讲解卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题3分,共60分) 1.下面程序的输出结果是 (    ) int k,j,s; for(k=2;k<6;k++,k++) { s=1; for(j=k;j<6;j++) s+=j;} printf("%d ",s); A.1 B.9 C.11 D.10 2.以下代码段的输出结果是(   ) for (int i = 0; i < 3; i++) {     for (int j = 0; j < 2; j++) {         printf("*");     }     printf(" "); } A.** ** ** B.*** *** C.** *** D.* * * 3.以下代码的输出结果是(   ) for (int i = 0; i < 2; i++) {     for (int j = 0; j < 2; j++) {         printf("%d %d ", i, j);     } } A.0 0 0 1 1 0 1 1 B.0 0 1 0 0 1 1 1 C.0 0 0 1 D.0 0 1 1 4.以下代码段的输出结果是(   ) c for (int i = 1; i <= 5; i++) {     for (int j = 5; j >= i; j--) {         printf(" ");     }     for (int k = 1; k <= i; k++) {         printf("*");     }     printf(" "); } A.*    **   *** **** ***** B.***** ****   ***    **     * C.* ** *** **** ***** D.***** **** *** ** * 5.下面的代码段输出的结果是什么?(   ) for(int i = 0; i < 3; i++){     for(int j = 0; j < 3; j++){         if(i + j == 2){             continue;         }         printf("%d %d ", i, j);     } } A.0 0 0 1 1 0 1 2 2 1 2 2 B.0 0 0 1 1 0 1 2 2 2 2 2 C.0 0 0 1 1 0 1 2 2 1 1 2 D.0 0 0 1 1 0 1 2 2 1 2 1 6.下面的代码段输出的结果是什么?(   ) for(int i = 0; i < 3; i++){     for(int j = 0; j < 3; j++){         if(i == j){             break;         }         printf("%d %d ", i, j);     } } A.1 0 2 0 2 0 B.1 0 2 0 1 1 C.1 0 2 0 2 1 D.1 0 2 0 2 2 7.以下代码的输出结果是(   ) for (int i = 1; i <= 3; i++) {     for (int j = 1; j <= 3; j++) {         if (i + j > 4) {             break;         }         printf("%d %d ", i, j);     } } A.1 1 1 2 1 3 2 1 2 2 3 1 B.1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 C.1 1 1 2 1 3 2 1 2 2 D.1 1 1 2 2 1 8.下面的代码段输出的结果是(   ) for(int i = 0; i < 3; i++){     for(int j = 0; j < 3; j++){         if(i == 1 && j == 1){             break;         }         printf("%d %d ", i, j);     } } A.0 0 0 1 0 2 1 0 1 1 2 0 2 1 2 2 B.0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 C.0 0 0 1 0 2 1  02 0 2 1 2 2 D.0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 9.for语句中的表达式可以部分或全部省略,但两个 不可省略,但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。(   ) A.! B., C.; D.: 10.下列for循环语句正确的是(   ) A.for(i=1;i<10;i++) B.for(i=1;i<=10;i++) C.for(i=10;i>=1;i--) D.以上选项均正确 11.下列选项中,有关for循环的描述中正确的一项是(   ) A.for循环只能用于循环次数已经确定的情况 B.for循环先执行循环体语句,后判断表达式 C.在for循环中,不能使用break语句跳出循环体 D.for循环的循环体语句中,可以包含多条语句,但必须使用花括号括起来 12.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b)    printf ( “ ------------”) ;的正确说法是(   ) A.循环体只执行一次 B.死循环 C.循环体一次也不执行 D.输出----------- 13.下列程序段的功能是(   ) int main() {int i; for (i = 2; i <= 100; i += 2) printf("%d ", i);} A.输出1至100之间的所有奇数 B.输出1至100之间的所有偶数 C.输出1至100之间的所有数 D.程序中有语法错误 14.下列程序的运行结果是(   ) main() {int i,sum; for(i=1;i<5;i++) sum+=i; printf(“%d”,sum);} A.15 B.14 C.0 D.不确定 15.下列有关for循环说法正确的是(   ) A.在for循环中循环体至少执行一次。 B.在for循环语句中省略表达式1,表达式3则相当于while语句。 C.在for循环语句中省略表达式2,则循环条件总是为假。 D.for语句中表达式1,表达式2,表达式3均可省略,分号也不要写。 16.在for循环中,判断循环是否终止的时候是(   ) A.在测试循环条件时进行判断 B.任何地方,只要条件不满足就终止 C.循环执行过程中判断 D.以上均不正确 17.下列循环程序段中,不是死循环的是(   ) A.int j=0;       while(j<=0);j++; B.int k;       for(k=5;  ;k--); C.int i=16,s=0;       while(s<=20)   s=i%15+1; D.int z=9; for(;z;) –z; 18.执行以下程序的输出结果是(   ) main() {int a[3]={1},i; for(i=0;i<2;i++) printf("%d",a[i]);getch();} A.01 B.001 C.10 D.100 19.执行以下程序的输出结果是(   ) int fun() {static int x=1; x*=2; return x;} main() { int i,s=1; for(i=1;i<=3;i++)  s*=fun(); printf("%d ",s);getch();} A.0 B.10 C.30 D.64 20.下列选项中不是无限循环的语句是(   ) A.for(y=0,x=1;x>++y;x=i++) i=x; B.for(;;x++=i); C.while(1){x++;} D.for(i=10;;i--) sum+i; 二、程序设计题(本大题共4小题,每题10分,共40分) 21.要求使用指针实现输出一个整型数组中的最大值。    #include<stdio.h>    main(){        int i,a[10];        int *p=a;        /*******space*******/   /*******space*******/        } 22.题目:编写一个函数,实现从用户处接收一个字符串,然后交换字符串中所有相邻的字符,要求使用指针实现。 #include <stdio.h> #include <string.h> void swap(char *str); int main() {         char str[100];         printf("【Enter a string:】 ");         fgets(str, sizeof(str), stdin);         str[strcspn(str, " ")] = 0;         swap(str);         printf("【Modified string: 】%s ", str);         return 0; } void swap(char *str) {         int len = strlen(str); /*******space*******/ /*******space*******/ } 23.函数fun的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。 例如,输入1、2、3、4,程序运行后输出以下方阵: 4 1 2 3 3 4 1 2 2 3 4 1 1 2 3 4 #include  <stdio.h> #define M 4 void fun(int *a) {       int I,j,k,m;       printf("【Enter 4 number: 】");       for(I=0;I<M;I++)           scanf("%d",&a[I]);       printf(" 【The result :】 "); /*******space*******/      /*******space*******/ } void main() { int a[M];       fun(a); } 24.请编写函数sum,其功能是:用While循环语句求1到n之间(包括n)能被7整除的所有整数之和,并将结果返回给主函数(n值由主函数传入) #include <stdio.h> long sum(int n) {          /*******space*******/          /*******space*******/ } void main() {          int x;          long f;          scanf("%d",&x);          f=sum(x);          printf("%ld ",f); } 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $

资源预览图

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