第11卷 数组 《C语言程序设计》吉林省对口招生《电子与信息类考纲百套卷》

2026-07-16
| 2份
| 26页
| 9人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 数组
使用场景 中职复习
学年 2027-2028
地区(省份) 吉林省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 174 KB
发布时间 2026-07-16
更新时间 2026-07-16
作者 xy06893
品牌系列 学易金卷·考纲百套卷
审核时间 2026-07-16
下载链接 https://m.zxxk.com/soft/58824336.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:2027版吉林省高职分类(对口招生)考试电子与信息类《考纲百套卷》,依据《吉林省高职分类(对口招生)考试电子与信息类专业综合卷考试科目及纲要(2025版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共115份试卷,其中知识训练卷82份、专题训练卷19份、课程综合卷14份。 本试卷是第11卷,为知识训练卷,按《C语言程序设计》中“数组”范围和要求编写。具体内容为:1.理解数组和数组元素的定义。2.掌握一维数组的定义、初始化、数组元素的引用。3.掌握二维数组的定义、初始化、数组元素的引用。4.理解字符数组的定义、初始化、数组元素的引用、输入/输出。5.掌握常用字符串处理函数的使用方法。 吉林省高职分类(对口招生)考试 电子与信息类《考纲百套卷》 第11卷 C语言程序设计——数组 (考试时间:45分钟 满分:100分) 一、单项选择题(共20题,每题2分,共40分。) 1.正确定义一个2行3列的int型二维数组a的语句是( ) A.int a[2][3]; B.int a[3][2]; C.int a(2,3); D.int a[2,3]; 【答案】A 【解析】二维数组定义格式:类型 数组名[行数][列数]; 。int a[2][3]定义2行3列共6个元素的数组。 2.int a[2][3]={{1,2,3},{4,5,6}}; 中a[1][1]的值是( ) A.1 B.5 C.6 D.4 【答案】B 【解析】a[1][1]是第2行第2列的元素。第2行为{4,5,6},第2列为5,因此a[1][1]=5。 3.以下关于字符数组和字符串的说法,正确的是( ) A.字符数组就是字符串 B.字符数组不能存储字符串 C.字符串是以'\0'结尾的字符数组 D.字符数组不需要'\0' 【答案】C 【解析】字符串是特殊的字符数组,以'\0'作为结束标志。字符数组可以不是字符串(不包含'\0')。 4.int a[3][4]; 该二维数组共有多少行多少列?( ) A.3行3列 B.4行4列 C.4行3列 D.3行4列 【答案】D 【解析】定义中第一个[]内为行数3,第二个[]内为列数4,因此是3行4列共12个元素。 5.用scanf("%s", s)输入字符串时,输入遇到什么会结束?( ) A.空格或回车 B.仅回车 C.分号 D.感叹号 【答案】A 【解析】scanf的%s格式遇到空格、Tab、回车等空白字符会停止读取,因此不能输入含空格的字符串。 6.要遍历3行4列的二维数组a所有元素,常用( ) A.单层for循环 B.双层for循环嵌套 C.三层for循环 D.while(1)循环 【答案】B 【解析】二维数组需要用两层循环:外层控制行i=0~2,内层控制列j=0~3,用a[i][j]访问每个元素。 7.char s[]="ABC"; 该字符串的存储长度为多少字节?( ) A.3 B.2 C.4 D.1 【答案】C 【解析】"ABC"含3个字符+1个结束符'\0',共占4字节。字符串长度总是可见字符数+1。 8.冒泡排序算法的核心操作为( ) A.查找最大值 B.计算总和 C.二分搜索 D.相邻元素比较并交换 【答案】D 【解析】冒泡排序通过反复比较相邻元素并交换,每轮将最大(或最小)元素"冒泡"到正确位置。 9.int a[2][3]={1,2,3}; 中a[1][2]的值是( ) A.0 B.3 C.2 D.不确定 【答案】A 【解析】二维数组按行优先初始化:{1,2,3}赋给a[0][0]/[0][1]/[0][2],剩余3个元素自动为0。a[1][2]=0。 10.要逐个输出字符数组s中的每个字符,常用的循环终止条件是( ) A.i<10 B.s[i]!='\0' C.i>=0 D.s[i]=='\0' 【答案】B 【解析】遍历字符串用while(s[i]!='\0')或for(i=0;s[i]!='\0';i++),遇到结束符停止。 11.int a[2][3]在内存中的存储顺序是( ) A.a[0][0]→a[1][0]→a[0][1]→...(列优先) B.随机顺序 C.a[0][0]→a[0][1]→a[0][2]→a[1][0]→...(行优先) D.a[1][2]→a[1][1]→...(逆序) 【答案】C 【解析】C语言二维数组按行优先存储:先依次存放第0行所有列,再存放第1行所有列,以此类推。 12.在C语言中比较两个字符串是否相等,应使用( ) A.==运算符 B.=运算符 C.直接变量名比较 D.strcmp函数 【答案】D 【解析】字符串不能用==直接比较(比较的是地址),应用strcmp函数。==比较两个字符数组名会得到地址比较而非内容比较。 13.选择排序每一轮的操作是( ) A.找到未排序部分的最小元素放到已排序末尾 B.相邻元素两两比较交换 C.随机交换元素 D.按列排序 【答案】A 【解析】选择排序每轮从未排序部分选出最小(最大)元素,与未排序部分的第一个元素交换位置。 14.int a[][3]={1,2,3,4,5,6}; 该数组有几行?( ) A.1行 B.2行 C.3行 D.不确定 【答案】B 【解析】省略行数时由初始值个数和列数推算:6个元素÷3列=2行。列数不能省略,行数可推算。 15.gets()函数读取字符串时,遇到什么停止?( ) A.空格 B.Tab键 C.回车(换行) D.逗号 【答案】C 【解析】gets()可以读取含空格的字符串,遇到回车换行停止,并在末尾自动添加'\0'。但gets有缓冲区溢出风险。 16.int a[3][4]; 合法的最后一个元素是( ) A.a[3][4] B.a[3][3] C.a[4][2] D.a[2][3] 【答案】D 【解析】3行4列,行下标0~2,列下标0~3,最后一个元素是a[2][3]。a[3][4]越界,a[3][3]和a[4][2]均越界。 17.交换数组元素a[i]和a[j]的正确方式是( ) A.借助临时变量交换 B.直接a[i]=a[j]; a[j]=a[i]; C.a[i]+a[j]赋值 D.无法交换 【答案】A 【解析】正确交换需要临时变量:t=a[i]; a[i]=a[j]; a[j]=t; 。直接赋值会丢失原值。 18.字符'\0'的ASCII码值是( ) A.48 B.0 C.65 D.32 【答案】B 【解析】'\0'是空字符,ASCII码值为0。它与字符'0'不同,'0'的ASCII码值为48。 19.3×3矩阵中,主对角线上的元素下标满足( ) A.i>j B.i<j C.i==j D.i+j==2 【答案】C 【解析】主对角线元素的行下标等于列下标,即a[0][0],a[1][1],a[2][2],满足i==j。副对角线满足i+j==N-1。 20.冒泡排序是稳定的排序算法,稳定是指( ) A.排序速度快 B.占用内存少 C.不会出错 D.相等元素的相对顺序不变 【答案】D 【解析】稳定性指排序前后相等元素的相对先后顺序保持不变。冒泡排序和插入排序是稳定的,选择排序不稳定。 二、判断题(共10题,每题1分,共10分。) 1.二维数组在定义时,行数和列数都必须使用常量表达式指定。( ) 【答案】√ 【解析】传统C中二维数组的行列数均需为常量表达式。C99引入变长数组后可省略行数,但列数仍需常量。 2.字符数组char s[10]; 定义后可以直接用s="Hello"; 赋值。( ) 【答案】× 【解析】数组名是地址常量,不能用赋值语句整体赋值。应使用strcpy(s,"Hello")或在定义时初始化。 3.二维数组可以看作是一维数组的数组,即每个元素本身又是一个一维数组。( ) 【答案】√ 【解析】int a[3][4]可理解为3个一维数组,每个含4个int元素。a[i]即第i行的首地址。 4.字符串"ABC"和字符数组{'A','B','C'}在内存中占用完全相同的字节数。( ) 【答案】× 【解析】"ABC"含'\0'占4字节,{'A','B','C'}无'\0'占3字节。只有显式或隐式添加'\0'才是字符串。 5.冒泡排序每一轮中都必须比较恰好n-1对相邻元素。( ) 【答案】× 【解析】第i轮只需比较n-i对元素(因为末尾i-1个已排好),且可提前终止。比较次数逐轮递减,不是每轮都n-1次。 6.gets()函数读取字符串时不会检查缓冲区大小,可能导致溢出。( ) 【答案】√ 【解析】gets不检查目标数组长度,输入超长字符串会越界写入,是安全隐患。C11标准已移除gets,建议用fgets替代。 7.选择排序每一轮都要进行多次元素交换。( ) 【答案】× 【解析】选择排序每轮最多交换一次(将找到的最小元素与未排序首位交换),而冒泡排序每轮可能交换多次。这是两者的重要区别。 8.int a[2][3]; 中sizeof(a)的值为2×3×sizeof(int)。( ) 【答案】√ 【解析】sizeof(a)获取整个二维数组的总字节数,等于行数×列数×sizeof(元素类型)。 9.字符串处理函数strlen(s)返回的值包括结尾的'\0'。( ) 【答案】× 【解析】strlen返回字符串中字符的个数,不包括结尾的'\0'。例如strlen("ABC")返回3而非4。 10.C语言中可以对字符数组使用%s直接进行输入和输出。( ) 【答案】√ 【解析】scanf("%s",s)和printf("%s",s)可以方便地进行字符串的输入和输出,是最基本的字符串I/O方式。 三、填空题(共5题,每题2分,共10分。) 1.C语言中定义二维数组时,需要同时指定____数和列数。 【答案】行 【解析】定义格式为 类型 数组名[行数][列数]; 。两个维度都必须指定(除非有初始化列表可省略行数)。 2.strlen("China")的返回值是____。 【答案】5 【解析】strlen计算字符串中字符个数(不含结束符)。"China"有C/h/i/n/a共5个字符,返回5。 3.交换数组元素a[i]和a[j]的值时,通常需要一个____变量暂存其中一个元素的值。 【答案】临时 【解析】经典交换三步:t=a[i]; a[i]=a[j]; a[j]=t; 。t即为临时变量,用于保存原值防止丢失。 4.对字符数组可使用____格式符一次性输出其中存储的字符串。 【答案】%s 【解析】printf("%s",s)从s的首地址开始逐个输出字符,直到遇到结束符为止。输入对应scanf("%s",s)。 5.C语言中数组的下标必须是____类型的数据。 【答案】整型 【解析】数组下标必须是整型或可转换为整型的表达式,如a[3]、a[i]、a[i+1]。浮点型下标不合法(如a[2.5])。 四、读程序写结果题(共4题,每题5分,共20分。) 1.请阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int a[] = {3, 8, 1, 6, 4}; int i, s = 0; for (i = 0; i < 5; i++) if (a[i] > 5) s += a[i]; printf("%d", s); return 0; } 【答案】14 【解析】筛选大于5的元素:a[1]=8、a[3]=6,s=8+6=14。考查一维数组条件筛选与累加。 2.请阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int a[] = {10, 20, 30, 40}; printf("%d", a[3] + a[0]); return 0; } 【答案】50 【解析】a[3]=40, a[0]=10, 40+10=50。考查数组首尾元素的直接引用。 3.请阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; int i, d = 0; for (i = 0; i < 3; i++) d += a[i][i]; printf("%d", d); return 0; } 【答案】15 【解析】a[i][i]取主对角线元素:a[0][0]=1,a[1][1]=5,a[2][2]=9,和=15。考查二维数组对角线操作。 4.请阅读下列程序,写出运行结果。 #include <stdio.h> int main() { char s[20] = "C Language"; printf("%c", s[2]); return 0; } 【答案】L 【解析】s[0]='C',s[1]=' ',s[2]='L'。考查字符数组按索引访问单个字符。 五、编程题(共2题,每题10分,共20分。) 1.编写一个C程序,计算3×3二维数组中每一行元素的和并输出。数组初始化为{{1,2,3},{4,5,6},{7,8,9}}。 【答案】 #include <stdio.h> int main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; int i, j, rowSum; for (i = 0; i < 3; i++) { rowSum = 0; for (j = 0; j < 3; j++) rowSum += a[i][j]; printf("第%d行和=%d ", i + 1, rowSum); } return 0; } 【解析】外层循环逐行遍历,内层循环求每行的和。第1行1+2+3=6,第2行4+5+6=15,第3行7+8+9=24。考查二维数组行求和。 2.编写一个C程序,从键盘输入一个字符串(不超过50个字符),统计其中大写字母、小写字母和数字字符的个数并输出。 【答案】 #include <stdio.h> int main() { char s[51]; int i, upper = 0, lower = 0, digit = 0; printf("请输入字符串:"); fgets(s, sizeof(s), stdin); for (i = 0; s[i] != '\0' && s[i] != ' '; i++) { if (s[i] >= 'A' && s[i] <= 'Z') upper++; else if (s[i] >= 'a' && s[i] <= 'z') lower++; else if (s[i] >= '0' && s[i] <= '9') digit++; } printf("大写字母:%d个 ", upper); printf("小写字母:%d个 ", lower); printf("数字字符:%d个 ", digit); return 0; } 【解析】fgets(s,sizeof(s),stdin)从标准输入读取一行(含换行符),限制长度防溢出,是gets的安全替代。遍历时跳过换行符' '。考查字符串安全输入与字符分类统计。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:2027版吉林省高职分类(对口招生)考试电子与信息类《考纲百套卷》,依据《吉林省高职分类(对口招生)考试电子与信息类专业综合卷考试科目及纲要(2025版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共115份试卷,其中知识训练卷82份、专题训练卷19份、课程综合卷14份。 本试卷是第11卷,为知识训练卷,按《C语言程序设计》中“数组”范围和要求编写。具体内容为:1.理解数组和数组元素的定义。2.掌握一维数组的定义、初始化、数组元素的引用。3.掌握二维数组的定义、初始化、数组元素的引用。4.理解字符数组的定义、初始化、数组元素的引用、输入/输出。5.掌握常用字符串处理函数的使用方法。 吉林省高职分类(对口招生)考试 电子与信息类《考纲百套卷》 第11卷 C语言程序设计——数组 (考试时间:45分钟 满分:100分) 一、单项选择题(共20题,每题2分,共40分。) 1.正确定义一个2行3列的int型二维数组a的语句是( ) A.int a[2][3]; B.int a[3][2]; C.int a(2,3); D.int a[2,3]; 2.int a[2][3]={{1,2,3},{4,5,6}}; 中a[1][1]的值是( ) A.1 B.5 C.6 D.4 3.以下关于字符数组和字符串的说法,正确的是( ) A.字符数组就是字符串 B.字符数组不能存储字符串 C.字符串是以'\0'结尾的字符数组 D.字符数组不需要'\0' 4.int a[3][4]; 该二维数组共有多少行多少列?( ) A.3行3列 B.4行4列 C.4行3列 D.3行4列 5.用scanf("%s", s)输入字符串时,输入遇到什么会结束?( ) A.空格或回车 B.仅回车 C.分号 D.感叹号 6.要遍历3行4列的二维数组a所有元素,常用( ) A.单层for循环 B.双层for循环嵌套 C.三层for循环 D.while(1)循环 7.char s[]="ABC"; 该字符串的存储长度为多少字节?( ) A.3 B.2 C.4 D.1 8.冒泡排序算法的核心操作为( ) A.查找最大值 B.计算总和 C.二分搜索 D.相邻元素比较并交换 9.int a[2][3]={1,2,3}; 中a[1][2]的值是( ) A.0 B.3 C.2 D.不确定 10.要逐个输出字符数组s中的每个字符,常用的循环终止条件是( ) A.i<10 B.s[i]!='\0' C.i>=0 D.s[i]=='\0' 11.int a[2][3]在内存中的存储顺序是( ) A.a[0][0]→a[1][0]→a[0][1]→...(列优先) B.随机顺序 C.a[0][0]→a[0][1]→a[0][2]→a[1][0]→...(行优先) D.a[1][2]→a[1][1]→...(逆序) 12.在C语言中比较两个字符串是否相等,应使用( ) A.==运算符 B.=运算符 C.直接变量名比较 D.strcmp函数 13.选择排序每一轮的操作是( ) A.找到未排序部分的最小元素放到已排序末尾 B.相邻元素两两比较交换 C.随机交换元素 D.按列排序 14.int a[][3]={1,2,3,4,5,6}; 该数组有几行?( ) A.1行 B.2行 C.3行 D.不确定 15.gets()函数读取字符串时,遇到什么停止?( ) A.空格 B.Tab键 C.回车(换行) D.逗号 16.int a[3][4]; 合法的最后一个元素是( ) A.a[3][4] B.a[3][3] C.a[4][2] D.a[2][3] 17.交换数组元素a[i]和a[j]的正确方式是( ) A.借助临时变量交换 B.直接a[i]=a[j]; a[j]=a[i]; C.a[i]+a[j]赋值 D.无法交换 18.字符'\0'的ASCII码值是( ) A.48 B.0 C.65 D.32 19.3×3矩阵中,主对角线上的元素下标满足( ) A.i>j B.i<j C.i==j D.i+j==2 20.冒泡排序是稳定的排序算法,稳定是指( ) A.排序速度快 B.占用内存少 C.不会出错 D.相等元素的相对顺序不变 二、判断题(共10题,每题1分,共10分。) 1.二维数组在定义时,行数和列数都必须使用常量表达式指定。( ) 2.字符数组char s[10]; 定义后可以直接用s="Hello"; 赋值。( ) 3.二维数组可以看作是一维数组的数组,即每个元素本身又是一个一维数组。( ) 4.字符串"ABC"和字符数组{'A','B','C'}在内存中占用完全相同的字节数。( ) 5.冒泡排序每一轮中都必须比较恰好n-1对相邻元素。( ) 6.gets()函数读取字符串时不会检查缓冲区大小,可能导致溢出。( ) 7.选择排序每一轮都要进行多次元素交换。( ) 8.int a[2][3]; 中sizeof(a)的值为2×3×sizeof(int)。( ) 9.字符串处理函数strlen(s)返回的值包括结尾的'\0'。( ) 10.C语言中可以对字符数组使用%s直接进行输入和输出。( ) 三、填空题(共5题,每题2分,共10分。) 1.C语言中定义二维数组时,需要同时指定____数和列数。 2.strlen("China")的返回值是____。 3.交换数组元素a[i]和a[j]的值时,通常需要一个____变量暂存其中一个元素的值。 4.对字符数组可使用____格式符一次性输出其中存储的字符串。 5.C语言中数组的下标必须是____类型的数据。 四、读程序写结果题(共4题,每题5分,共20分。) 1.请阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int a[] = {3, 8, 1, 6, 4}; int i, s = 0; for (i = 0; i < 5; i++) if (a[i] > 5) s += a[i]; printf("%d", s); return 0; } 2.请阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int a[] = {10, 20, 30, 40}; printf("%d", a[3] + a[0]); return 0; } 3.请阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; int i, d = 0; for (i = 0; i < 3; i++) d += a[i][i]; printf("%d", d); return 0; } 4.请阅读下列程序,写出运行结果。 #include <stdio.h> int main() { char s[20] = "C Language"; printf("%c", s[2]); return 0; } 五、编程题(共2题,每题10分,共20分。) 1.编写一个C程序,计算3×3二维数组中每一行元素的和并输出。数组初始化为{{1,2,3},{4,5,6},{7,8,9}}。 2.编写一个C程序,从键盘输入一个字符串(不超过50个字符),统计其中大写字母、小写字母和数字字符的个数并输出。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第11卷 数组 《C语言程序设计》吉林省对口招生《电子与信息类考纲百套卷》
1
第11卷 数组 《C语言程序设计》吉林省对口招生《电子与信息类考纲百套卷》
2
第11卷 数组 《C语言程序设计》吉林省对口招生《电子与信息类考纲百套卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。