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

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

内容正文:

编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。 本专辑第16卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】: (八)for循环、循环的嵌套 湖南省普通高等学校对口招生考试 计算机应用类 《C语言程序设计》考点双析卷 第16卷 for循环、循环的嵌套 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题3分,共60分) 1.下列程序的运行结果为(   ) main() {int x=2,i=1; for(;i<=3;i++) {x=x*2+(i^(i-1));} printf("%d",x);getch();} A.24 B.25 C.26 D.27 【答案】D 2.以下循环的执行次数是(   ) for(x=0,y=0;(y=123)&&(x<4);x++); A.3次 B.4次 C.无限次 D.次数不定 【答案】B 3.以下程序for循环的次数为(   ) for(i=0,x=0;!x&&i<=5;i++) A.4 B.5 C.6 D.无限次 【答案】C 4.计算1到n整数和的算法最佳时间复杂度为(   ) A.O(n) B.O(1) C.O(n²) D.O(log n) 【答案】B 【详解】公式 S=n(n+1)/2 可直接计算,时间固定。 5.有如下程序段,则输出结果是(   ) char str[]=” abcdefgh”; int i;     for(i=0;str[i]!=’\0’;i++)      if(i++%3==0)        printf("%2c",toupper(str[i]));} A.A D B.a d C.B H D.b h 【答案】C 【详解】注意if条件中i++为后置加,条件成立后i的值加1,toupper将小写字符变为大写字符。故选C 6.若有以下定义,则下列输出结果是(   ) int i,j,bb[3 ][4 ]={{1,2,3}{,4,5,6},{7,8,9}}; for(i=0;i<4;i++)       printf(“%d”,bb[1][i]); A.1234 B.4560 C.2580 D.1230 【答案】B 【详解】输出中bb[1][i],输出数组第1行的全部元素,没有初始化的默认为0。故选B 7.for(i=0;i<11;i++);结束后 ,i的值是(   ) A.9 B.10 C.11 D.12 【答案】C 8.以下程序的运行结果是(   ) #include <stdio.h> int main() { int s = 0, k = 2; for (; k < 6; k++)   s += k; printf("%d", s); } A.12 B.13 C.14 D.15 【答案】C 9.以下程序运行后的输出是(   ) main() {     int sum = 1, k = 3;     for (; k < 8; k++)     sum += k;     printf("%d", sum); } A.24 B.25 C.26 D.27 【答案】C 10.for(i=0;i<10;i++);结束后 ,i的值是(   ) A.9 B.10 C.11 D.12 【答案】B 11.若 i,j 已定义为 int 类型,则以下程序段中内循环的总的执行次数是(   ) main() { for (i = 5; i < 8; i++) for (j = 0; j < 4; j++) {...} } A.12 B.10 C.24 D.8 【答案】A 【详解】“for (i = 5; i < 8; i++)”的执行次数为3次,“for (j = 0; j < 4; j++)”的执行次数为4次。因此,总的执行次数为3*4=12次。 12.下面有关for循环的正确描述是(   ) A.for是先执行循环体,后判断表达式 B.for循环只能用于循环次数已经确定的情况 C.for循环不可以用break语句跳出循环体 D.for循环括号中的表达式可以省略一个或多个,但不能省略分号 【答案】D 【详解】for先判断表达式,符合条件执行循环。for循环一般用于循环次数已经确定的情况。for循环可以用break语句跳出循环体。 13.下面的代码段输出的结果是什么?(   ) for(int i = 0; i < 5; i++){     if(i == 3){         continue;     }     printf("%d ", i); } A.0 1 2 3 4 B.0 1 2 4 C.0 1 2 3 4 5 D.0 1 2 3 4 5 6 【答案】B 【详解】当i等于3时,遇到continue语句,跳过本次循环,继续下一次循环。 14.以下代码的输出的结果为(   ) int main() { int sum = 0; int i = 0, j = 0; for (j = 0; j < 10; j++) { if (j % 3) continue; sum++; } printf("sum = %d", sum); return 0; } A.sum = 1 B.sum = 2 C.sum = 3 D.sum = 4 【答案】D 【详解】执行“for (j = 0; j < 10; j++) ”,j = 0,0%3的值为0,不执行continue语句,执行“sum++”。执行“j++”,j的值此时为1,1 % 3的值为1,符合条件,执行continue语句,直接开始下一轮循环。同理,循环至j < 10条件不成立。因此sum的值为4。 15.以下程序段运行后,当输入数据的形式为4↙,该程序的输出结果为(   ) int a[] = {1, 3, 5, 7, 2, 4, 6, 8}, i, start;     scanf("%d", &start);     for (i = 0; i < 3; i++)     printf("%d", a[(start - i) / 2]); A.522 B.511 C.555 D.533 【答案】D 【详解】带参数的宏“SUM(x) 5*x+3”代入相应的参数 i+ j整体代入(不要先进行计算),代入后,5 * 2 + 3 + 3,根据运算符的优先级计算可得值为16。 16.执行语句 for(i=1; i<=4;i++);后,变量i的值是(   ) A.3 B.4 C.5 D.不确定 【答案】C 17.若i是int型变量,以下循环体执行的次数为(   ) for (i = 2; i > 3; i++) printf("%d ", i--); A.0 B.1 C.2 D.无限次 【答案】A 【详解】执行“i = 2”,i的值初始化为2。2 > 3条件不成立,因此,循环一次也不执行。 18.以下程序的运行结果是(   ) #include <stdio.h> #include<conio.h"> main() {int i; for(i=0; i<3; i++) switch(i) {  case 1: printf("%d", i);   case 2: printf("%d", i); default : printf("%d", i);} getch();} A.012 B.0111 C.01112 D.011122 【答案】D 19.有以下程序段,若k为int型变量且 0≤k<4, 则对字符串的不正确引用是(   ) char str[4][10]={"first","second","third","fourth"}, * strp[4]; int n;for ( n=0;n<4;n++)  strp[n]=str[n]; A.strp B.*strp C.str[k] D.strp[k] 【答案】A 20.以下代码的输出结果是(   ) int i;   for(i = 3; i > 0; i--) {       if(i == 2) break;       printf("%d", i);   } A.321 B.32 C.21 D.3 【答案】D 二、程序设计题(本大题共4小题,每题10分,共40分) 21.函数fun的功能是:用选择法对数组中的n个元素进行升序排列    #include<stdio.h>    #define N 20    void fun(int a[],int n)    {         int i,j,t,p;         for(j=0;j<n-1;j++)         {               /*******space*******/               /*******space*******/         } } void main() {         int a[N]={9,6,8,3,-1},i, m = 5;         fun(a,m);         printf("【排序后的数据:】") ;         for(i=0;i<m;i++)            printf("%d ",a[i]);        printf(" "); } 【答案】p=j;               for(i=j;i<n;i++){                   if(a[i]<a[p]) p=i;               }               t=a[p];               a[p]=a[j]; a[j]=t; 22.代码实现输入一个 3×3 矩阵,输出其转置矩阵。 输入示例: 1 2 3   4 5 6   7 8 9   输出示例: 1 4 7   2 5 8   3 6 9 【答案】#include <stdio.h> int main() {     int matrix[3][3];          // 输入矩阵     for (int i = 0; i < 3; i++) {         for (int j = 0; j < 3; j++) {             scanf("%d", &matrix[i][j]);         }     }          // 转置矩阵     int transposed[3][3];     for (int i = 0; i < 3; i++) {         for (int j = 0; j < 3; j++) {             transposed[i][j] = matrix[j][i];         }     }          // 输出转置后的矩阵     for (int i = 0; i < 3; i++) {         for (int j = 0; j < 3; j++) {             printf("%d ", transposed[i][j]);         }         printf(" ");     }          return 0; } 23.输出1000以内各位数之和为40的数字,并输出其和。   #include<stdio.h>   main(){ /*******space*******/ /*******space*******/ } 【答案】int i,temp,sum; for(i=1;i<1000;i++) { sum=0; temp=i; while(temp!=0){ sum=sum+temp%10;               temp=temp/10; } if(sum==40) printf(“%d”,i); } 【详解】for循环取出满足范围内的数字,sum=0必须再循环内初始化,以防上一次的求和结果影响下一次,并且使用临时变量temp接收i的值进行数位分离就和,数位分离会使被分离的数变为0,所以不能直接对循环变量i进行数位分离,最后判断和是否等于40输出即可。 24.求出-10 到 30 之内能被 7 或 11 整除,但不能同时被 7 或 11 整除的所有整数。   #include <conio.h> #include <stdio.h> main() { /*******space*******/ /*******space*******/ } 【答案】int i; for(i=-10;i<30;i++) { for(!(i%7==0 && i%11==0)) { printf(“%d”,i); } } 【详解】使用for循环取出指定区间内的数字,然后重点是理解能被 7 或 11 整除,但不能同时被 7 或 11 整除的所有整数,能同时被7和11整除的对立面就是满足条件的数,然后利用for循环挑出输出即可。 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $ 编写说明: 湖南省普通高等学校对口招生考试-计算机应用类《C语言程序设计》考点双析卷专辑,依据省教育厅《湖南省普通高等学校对口招生考试基本要求和考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建 “讲练结合”的学习闭环,特别适用于湖南省普通高等学校对口招生考试第一轮高考复习教学。 本专辑第16卷精准对标湖南省考纲,考试内容及范围【C语言程序设计知识】: (八)for循环、循环的嵌套 湖南省普通高等学校对口招生考试 计算机应用类 《C语言程序设计》考点双析卷 第16卷 for循环、循环的嵌套 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共20小题,每题3分,共60分) 1.下列程序的运行结果为(   ) main() {int x=2,i=1; for(;i<=3;i++) {x=x*2+(i^(i-1));} printf("%d",x);getch();} A.24 B.25 C.26 D.27 2.以下循环的执行次数是(   ) for(x=0,y=0;(y=123)&&(x<4);x++); A.3次 B.4次 C.无限次 D.次数不定 3.以下程序for循环的次数为(   ) for(i=0,x=0;!x&&i<=5;i++) A.4 B.5 C.6 D.无限次 4.计算1到n整数和的算法最佳时间复杂度为(   ) A.O(n) B.O(1) C.O(n²) D.O(log n) 5.有如下程序段,则输出结果是(   ) char str[]=” abcdefgh”; int i;     for(i=0;str[i]!=’\0’;i++)      if(i++%3==0)        printf("%2c",toupper(str[i]));} A.A D B.a d C.B H D.b h 6.若有以下定义,则下列输出结果是(   ) int i,j,bb[3 ][4 ]={{1,2,3}{,4,5,6},{7,8,9}}; for(i=0;i<4;i++)       printf(“%d”,bb[1][i]); A.1234 B.4560 C.2580 D.1230 7.for(i=0;i<11;i++);结束后 ,i的值是(   ) A.9 B.10 C.11 D.12 8.以下程序的运行结果是(   ) #include <stdio.h> int main() { int s = 0, k = 2; for (; k < 6; k++)   s += k; printf("%d", s); } A.12 B.13 C.14 D.15 9.以下程序运行后的输出是(   ) main() {     int sum = 1, k = 3;     for (; k < 8; k++)     sum += k;     printf("%d", sum); } A.24 B.25 C.26 D.27 10.for(i=0;i<10;i++);结束后 ,i的值是(   ) A.9 B.10 C.11 D.12 11.若 i,j 已定义为 int 类型,则以下程序段中内循环的总的执行次数是(   ) main() { for (i = 5; i < 8; i++) for (j = 0; j < 4; j++) {...} } A.12 B.10 C.24 D.8 12.下面有关for循环的正确描述是(   ) A.for是先执行循环体,后判断表达式 B.for循环只能用于循环次数已经确定的情况 C.for循环不可以用break语句跳出循环体 D.for循环括号中的表达式可以省略一个或多个,但不能省略分号 13.下面的代码段输出的结果是什么?(   ) for(int i = 0; i < 5; i++){     if(i == 3){         continue;     }     printf("%d ", i); } A.0 1 2 3 4 B.0 1 2 4 C.0 1 2 3 4 5 D.0 1 2 3 4 5 6 14.以下代码的输出的结果为(   ) int main() { int sum = 0; int i = 0, j = 0; for (j = 0; j < 10; j++) { if (j % 3) continue; sum++; } printf("sum = %d", sum); return 0; } A.sum = 1 B.sum = 2 C.sum = 3 D.sum = 4 15.以下程序段运行后,当输入数据的形式为4↙,该程序的输出结果为(   ) int a[] = {1, 3, 5, 7, 2, 4, 6, 8}, i, start;     scanf("%d", &start);     for (i = 0; i < 3; i++)     printf("%d", a[(start - i) / 2]); A.522 B.511 C.555 D.533 16.执行语句 for(i=1; i<=4;i++);后,变量i的值是(   ) A.3 B.4 C.5 D.不确定 17.若i是int型变量,以下循环体执行的次数为(   ) for (i = 2; i > 3; i++) printf("%d ", i--); A.0 B.1 C.2 D.无限次 18.以下程序的运行结果是(   ) #include <stdio.h> #include<conio.h"> main() {int i; for(i=0; i<3; i++) switch(i) {  case 1: printf("%d", i);   case 2: printf("%d", i); default : printf("%d", i);} getch();} A.012 B.0111 C.01112 D.011122 19.有以下程序段,若k为int型变量且 0≤k<4, 则对字符串的不正确引用是(   ) char str[4][10]={"first","second","third","fourth"}, * strp[4]; int n;for ( n=0;n<4;n++)  strp[n]=str[n]; A.strp B.*strp C.str[k] D.strp[k] 20.以下代码的输出结果是(   ) int i;   for(i = 3; i > 0; i--) {       if(i == 2) break;       printf("%d", i);   } A.321 B.32 C.21 D.3 二、程序设计题(本大题共4小题,每题10分,共40分) 21.函数fun的功能是:用选择法对数组中的n个元素进行升序排列    #include<stdio.h>    #define N 20    void fun(int a[],int n)    {         int i,j,t,p;         for(j=0;j<n-1;j++)         {               /*******space*******/               /*******space*******/         } } void main() {         int a[N]={9,6,8,3,-1},i, m = 5;         fun(a,m);         printf("【排序后的数据:】") ;         for(i=0;i<m;i++)            printf("%d ",a[i]);        printf(" "); } 22.代码实现输入一个 3×3 矩阵,输出其转置矩阵。 输入示例: 1 2 3   4 5 6   7 8 9   输出示例: 1 4 7   2 5 8   3 6 9 23.输出1000以内各位数之和为40的数字,并输出其和。   #include<stdio.h>   main(){ /*******space*******/ /*******space*******/ } 24.求出-10 到 30 之内能被 7 或 11 整除,但不能同时被 7 或 11 整除的所有整数。   #include <conio.h> #include <stdio.h> main() { /*******space*******/ /*******space*******/ } 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $

资源预览图

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