内容正文:
编写说明:2027版吉林省高职分类(对口招生)考试电子与信息类《考纲百套卷》,依据《吉林省高职分类(对口招生)考试电子与信息类专业综合卷考试科目及纲要(2025版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共115份试卷,其中知识训练卷82份、专题训练卷19份、课程综合卷14份。
本试卷是第10卷,为知识训练卷,按《C语言程序设计》中“数组”范围和要求编写。具体内容为:1.理解数组和数组元素的定义。2.掌握一维数组的定义、初始化、数组元素的引用。3.掌握二维数组的定义、初始化、数组元素的引用。4.理解字符数组的定义、初始化、数组元素的引用、输入/输出。5.掌握常用字符串处理函数的使用方法。
吉林省高职分类(对口招生)考试
电子与信息类《考纲百套卷》
第10卷 C语言程序设计——数组
(考试时间:45分钟 满分:100分)
一、单项选择题(共20题,每题2分,共40分。)
1.正确定义一个有10个int型元素的数组a的语句是( )
A.int a[10];
B.int a(10);
C.int a{10};
D.int a[ ];
2.C语言中数组元素的下标从什么值开始?( )
A.任意值
B.0
C.1
D.-1
3.以下关于数组名的说法,正确的是( )
A.数组名是一个变量,可以重新赋值
B.数组名存储了数组第一个元素的值
C.数组名代表数组首地址,是一个常量
D.数组名可以用作左值
4.执行int a[5]={1,2}; 后,a[3]的值是( )
A.1
B.2
C.随机值
D.0
5.遍历数组a[10]所有元素最常用的循环是( )
A.for(i=0;i<10;i++)
B.while(a[i]!=0)
C.do{}while(i--)
D.goto循环
6.C语言中数组元素在内存中的存储方式是( )
A.分散存储
B.连续存储
C.随机存储
D.链表存储
7.执行int a[]={2,4,6,8}; 后,数组a的长度是( )
A.3
B.5
C.4
D.未确定
8.若有int a[10], i=3; 则a[i+1]引用的是( )
A.a[4]
B.a[3]
C.a[2]
D.a[5]
9.以下代码段的功能是( )
int s=0; for(i=0;i<10;i++) s+=a[i];
A.求数组a的平均值
B.求数组a的最大值
C.求数组a的元素个数
D.求数组a所有元素的和
10.若有int a[5]; 则a[0]的地址与什么相同?( )
A.&a[1]
B.a
C.a+1
D.*a
11.若有定义 int a[3]={1,2,3,4}; 则( )
A.a[3]的值为4
B.程序运行错误
C.编译时警告或错误
D.a的长度自动变为4
12.若int a[5]; 执行a[10]=100; 则( )
A.编译错误
B.程序必然崩溃
C.自动扩展数组
D.C不检查越界,可能破坏其他数据
13.int a[10]; 在内存中共占用多少字节?( )
A.10
B.20
C.80
D.40
14.有int a[12]; 则sizeof(a)/sizeof(a[0])的值是( )
A.4
B.12
C.48
D.3
15.有int a[8]; 合法的下标范围是( )
A.1~8
B.0~8
C.0~7
D.1~7
16.定义数组时,[]中的长度必须是( )
A.整型常量或常量表达式
B.可以是变量
C.可以是任意表达式
D.必须是宏定义
17.char str[10]; 定义的是一个( )
A.整型数组
B.浮点型数组
C.指针数组
D.字符数组
18.要逆序输出数组a[5]={1,2,3,4,5},正确写法是( )
A.for(i=0;i<5;i++) printf("%d",a[i]);
B.for(i=4;i>=0;i--) printf("%d",a[i]);
C.for(i=5;i>0;i--) printf("%d",a[i]);
D.while(i<5) printf("%d",a[i++]);
19.要将数组a所有元素初始化为0,最简单的是( )
A.int a[5]; 即可
B.int a[5]=0;
C.int a[5]={0};
D.用循环逐一赋值
20.找数组a[N]中最大值的正确思路是( )
A.设max=a[0],遍历比较更新max
B.设max=0,与a[i]依次比较
C.直接取a[N-1]
D.对所有元素排序取第一个
二、判断题(共10题,每题1分,共10分。)
1.二维数组在内存中按行优先方式连续存储。( )
2.C99标准禁止使用变量作为数组的长度。( )
3.用字符串形式初始化字符数组时,编译器会自动在末尾添加结束符。( )
4.char s[4]; s="ABC"; 是合法的数组整体赋值方式。( )
5.数组作为函数参数传递时,形参数组的大小声明可以省略。( )
6.int a[2][3]中,元素a[1][2]表示第1行第2列。( )
7.字符数组可以使用printf("%s", s)直接整体输出字符串内容。( )
8.数组定义后可以在程序运行中动态增加其长度。( )
9.用字符串初始化字符数组时,数组长度至少要比字符串中可见字符数多1。( )
10.一维数组和同元素个数的二维数组在内存中的总占用字节数不同。( )
三、填空题(共5题,每题2分,共10分。)
1.定义int a[2][3];则该二维数组共有____个元素。
2.char s[10]="Hello"; 中,s[5]中存储的是____。
3.在C语言中,二维数组的元素在内存中按____优先方式存储。
4.设有int a[5]; 则sizeof(a)的值为____字节(假设int占4字节)。
5.字符数组作为字符串处理时,其结束标志是一个值为____的字符。
四、读程序写结果题(共4题,每题5分,共20分。)
1.请阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int a[] = {2, 4, 6, 8};
int i = 0, s = 0;
while (i < 4)
s += a[i++];
printf("%d", s);
return 0;
}
2.请阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int a[2][3] = {{1,2,3},{4,5,6}};
printf("%d", a[0][2] + a[1][0]);
return 0;
}
3.请阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int a[] = {5, 8, 3, 9, 2};
int i, s = 0;
for (i = 0; i < 5; i++)
if (a[i] % 2 == 0)
s += a[i];
printf("%d", s);
return 0;
}
4.请阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
char s[] = "CProg";
printf("%c%c", s[0], s[3]);
return 0;
}
五、编程题(共2题,每题10分,共20分。)
1.编写一个C程序,从键盘输入6个整数存入数组,找出其中的最大值并输出。
2.编写一个C程序,统计数组int a[7]={2,7,4,9,1,6,3}中奇数和偶数的个数并输出。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版吉林省高职分类(对口招生)考试电子与信息类《考纲百套卷》,依据《吉林省高职分类(对口招生)考试电子与信息类专业综合卷考试科目及纲要(2025版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共115份试卷,其中知识训练卷82份、专题训练卷19份、课程综合卷14份。
本试卷是第10卷,为知识训练卷,按《C语言程序设计》中“数组”范围和要求编写。具体内容为:1.理解数组和数组元素的定义。2.掌握一维数组的定义、初始化、数组元素的引用。3.掌握二维数组的定义、初始化、数组元素的引用。4.理解字符数组的定义、初始化、数组元素的引用、输入/输出。5.掌握常用字符串处理函数的使用方法。
吉林省高职分类(对口招生)考试
电子与信息类《考纲百套卷》
第10卷 C语言程序设计——数组
(考试时间:45分钟 满分:100分)
一、单项选择题(共20题,每题2分,共40分。)
1.正确定义一个有10个int型元素的数组a的语句是( )
A.int a[10];
B.int a(10);
C.int a{10};
D.int a[ ];
【答案】A
【解析】数组定义格式:类型名 数组名[常量表达式]; 。int a[10]定义含10个int元素的数组,下标0~9。
2.C语言中数组元素的下标从什么值开始?( )
A.任意值
B.0
C.1
D.-1
【答案】B
【解析】C语言数组下标从0开始,因此int a[5]的有效下标为0~4。这是数组最基本的规定。
3.以下关于数组名的说法,正确的是( )
A.数组名是一个变量,可以重新赋值
B.数组名存储了数组第一个元素的值
C.数组名代表数组首地址,是一个常量
D.数组名可以用作左值
【答案】C
【解析】数组名代表数组在内存中的起始地址,是地址常量,不能对其赋值(如 a=xxx 非法)。
4.执行int a[5]={1,2}; 后,a[3]的值是( )
A.1
B.2
C.随机值
D.0
【答案】D
【解析】部分初始化时未指定值的元素自动初始化为0。a[0]=1,a[1]=2,a[2]=a[3]=a[4]=0。
5.遍历数组a[10]所有元素最常用的循环是( )
A.for(i=0;i<10;i++)
B.while(a[i]!=0)
C.do{}while(i--)
D.goto循环
【答案】A
【解析】for(i=0;i<10;i++)是遍历定长数组最标准的方式。i从0到9,每次用a[i]访问当前元素。
6.C语言中数组元素在内存中的存储方式是( )
A.分散存储
B.连续存储
C.随机存储
D.链表存储
【答案】B
【解析】数组元素在内存中占用连续空间,a[0]地址最低,元素依次排列。这使得通过下标快速访问成为可能。
7.执行int a[]={2,4,6,8}; 后,数组a的长度是( )
A.3
B.5
C.4
D.未确定
【答案】C
【解析】不指定长度时编译器根据初始化列表自动确定:{2,4,6,8}有4个元素,因此a的长度为4。
8.若有int a[10], i=3; 则a[i+1]引用的是( )
A.a[4]
B.a[3]
C.a[2]
D.a[5]
【答案】A
【解析】下标可以是整型表达式,i+1=4,a[i+1]即a[4]。这体现了数组下标的灵活性。
9.以下代码段的功能是( )
int s=0; for(i=0;i<10;i++) s+=a[i];
A.求数组a的平均值
B.求数组a的最大值
C.求数组a的元素个数
D.求数组a所有元素的和
【答案】D
【解析】循环将a[0]到a[9]依次累加到s中,因此s为数组元素之和。这是数组与循环结合的最基本应用。
10.若有int a[5]; 则a[0]的地址与什么相同?( )
A.&a[1]
B.a
C.a+1
D.*a
【答案】B
【解析】数组名a的值就是a[0]的地址。&a[0]==a。注意a+1指向a[1]的地址。
11.若有定义 int a[3]={1,2,3,4}; 则( )
A.a[3]的值为4
B.程序运行错误
C.编译时警告或错误
D.a的长度自动变为4
【答案】C
【解析】初始化列表元素个数不能超过数组长度。int a[3]={1,2,3,4}初始值4个>长度3,编译时会报错或警告。
12.若int a[5]; 执行a[10]=100; 则( )
A.编译错误
B.程序必然崩溃
C.自动扩展数组
D.C不检查越界,可能破坏其他数据
【答案】D
【解析】C语言不自动检查数组下标越界,a[10]超出a[5]范围,可能意外修改其他内存数据,导致不可预知错误。
13.int a[10]; 在内存中共占用多少字节?( )
A.10
B.20
C.80
D.40
【答案】D
【解析】int类型占4字节(通常),a[10]共10个元素,总占用=10×4=40字节。
14.有int a[12]; 则sizeof(a)/sizeof(a[0])的值是( )
A.4
B.12
C.48
D.3
【答案】B
【解析】sizeof(a)=12×4=48,sizeof(a[0])=4,48/4=12即为数组元素个数。
15.有int a[8]; 合法的下标范围是( )
A.1~8
B.0~8
C.0~7
D.1~7
【答案】C
【解析】int a[8]定义N=8个元素,有效下标范围是0~(N-1)=0~7。a[8]越界。
16.定义数组时,[]中的长度必须是( )
A.整型常量或常量表达式
B.可以是变量
C.可以是任意表达式
D.必须是宏定义
【答案】A
【解析】C89/C90标准要求数组长度必须是编译时确定的常量表达式。C99引入变长数组但传统教材以常量为准。
17.char str[10]; 定义的是一个( )
A.整型数组
B.浮点型数组
C.指针数组
D.字符数组
【答案】D
【解析】char str[10]定义含10个char型元素的字符数组。字符数组是数组在字符类型上的应用。
18.要逆序输出数组a[5]={1,2,3,4,5},正确写法是( )
A.for(i=0;i<5;i++) printf("%d",a[i]);
B.for(i=4;i>=0;i--) printf("%d",a[i]);
C.for(i=5;i>0;i--) printf("%d",a[i]);
D.while(i<5) printf("%d",a[i++]);
【答案】B
【解析】逆序即从最后一个元素a[4]开始,i从4递减到0输出。a[5]越界,不能为起点。
19.要将数组a所有元素初始化为0,最简单的是( )
A.int a[5]; 即可
B.int a[5]=0;
C.int a[5]={0};
D.用循环逐一赋值
【答案】C
【解析】int a[5]={0}将第一个元素显式初始化为0,其余自动初始化为0,实现全0。int a[5]不初始化则值随机。
20.找数组a[N]中最大值的正确思路是( )
A.设max=a[0],遍历比较更新max
B.设max=0,与a[i]依次比较
C.直接取a[N-1]
D.对所有元素排序取第一个
【答案】A
【解析】将max初始化为a[0],遍历i=1到N-1,若a[i]>max则更新max。初始化为0可能遗漏全负数情况。
二、判断题(共10题,每题1分,共10分。)
1.二维数组在内存中按行优先方式连续存储。( )
【答案】√
【解析】二维数组元素在内存中按行优先排列,如a[2][3]的存储顺序为a[0][0]→a[0][1]→a[0][2]→a[1][0]→...
2.C99标准禁止使用变量作为数组的长度。( )
【答案】×
【解析】C99引入了变长数组(VLA),允许使用变量作为数组长度,如 int n=5; int a[n]; 在C99中是合法的。
3.用字符串形式初始化字符数组时,编译器会自动在末尾添加结束符。( )
【答案】√
【解析】char s[]="ABC" 实际存储为'A','B','C','\0'共4字节,编译器自动追加结束符。
4.char s[4]; s="ABC"; 是合法的数组整体赋值方式。( )
【答案】×
【解析】数组名是地址常量,不能用作左值。赋值应逐个元素或使用strcpy函数,或初始化时 char s[4]="ABC";。
5.数组作为函数参数传递时,形参数组的大小声明可以省略。( )
【答案】√
【解析】函数参数中数组的写法如 int f(int a[], int n),第一维长度可省略,实际传递的是地址。
6.int a[2][3]中,元素a[1][2]表示第1行第2列。( )
【答案】×
【解析】下标从0开始,a[1][2]表示第2行(下标1)第3列(下标2)。第1行第2列应为a[0][1]。
7.字符数组可以使用printf("%s", s)直接整体输出字符串内容。( )
【答案】√
【解析】%s格式符可整体输出字符数组中的字符串,从首地址开始输出直到遇到结束符为止。
8.数组定义后可以在程序运行中动态增加其长度。( )
【答案】×
【解析】静态数组定义后长度固定不可变。需要动态扩容应使用动态内存分配malloc/realloc,但那是另一概念。
9.用字符串初始化字符数组时,数组长度至少要比字符串中可见字符数多1。( )
【答案】√
【解析】字符串以结束符结尾,额外占用1字节。如"ABC"有3个可见字符,至少需要char s[4]才能存储。
10.一维数组和同元素个数的二维数组在内存中的总占用字节数不同。( )
【答案】×
【解析】int a[6]与int b[2][3]同样存储6个int,总占用均为6×sizeof(int),占用字节相同。
三、填空题(共5题,每题2分,共10分。)
1.定义int a[2][3];则该二维数组共有____个元素。
【答案】6
【解析】2行×3列=6个元素。二维数组总元素数=行数×列数。
2.char s[10]="Hello"; 中,s[5]中存储的是____。
【答案】\0
【解析】"Hello"存储为H/e/l/l/o/\0,s[5]是第6个字符即字符串结束符\0。
3.在C语言中,二维数组的元素在内存中按____优先方式存储。
【答案】行
【解析】二维数组按行优先存储,即先存放第0行所有元素再存放第1行,以此类推。
4.设有int a[5]; 则sizeof(a)的值为____字节(假设int占4字节)。
【答案】20
【解析】5个int×4字节=20字节。sizeof获取整个数组的总占用空间。
5.字符数组作为字符串处理时,其结束标志是一个值为____的字符。
【答案】0
【解析】字符串以ASCII码值为0的字符'\0'结尾。注意'\0'的值就是0,与字符'0'(ASCII=48)不同。
四、读程序写结果题(共4题,每题5分,共20分。)
1.请阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int a[] = {2, 4, 6, 8};
int i = 0, s = 0;
while (i < 4)
s += a[i++];
printf("%d", s);
return 0;
}
【答案】20
【解析】用while循环:i=0时a[0]=2,s=2;i=1时a[1]=4,s=6;i=2时a[2]=6,s=12;i=3时a[3]=8,s=20。考查while遍历数组。
2.请阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int a[2][3] = {{1,2,3},{4,5,6}};
printf("%d", a[0][2] + a[1][0]);
return 0;
}
【答案】7
【解析】a[0][2]=3, a[1][0]=4, 3+4=7。考查二维数组元素的引用。
3.请阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
int a[] = {5, 8, 3, 9, 2};
int i, s = 0;
for (i = 0; i < 5; i++)
if (a[i] % 2 == 0)
s += a[i];
printf("%d", s);
return 0;
}
【答案】10
【解析】只累加偶数元素:a[1]=8, a[4]=2, s=8+2=10。考查遍历+条件筛选。
4.请阅读下列程序,写出运行结果。
#include <stdio.h>
int main()
{
char s[] = "CProg";
printf("%c%c", s[0], s[3]);
return 0;
}
【答案】Co
【解析】s[0]='C', s[3]='o', 输出"Co"。考查字符数组的访问。
五、编程题(共2题,每题10分,共20分。)
1.编写一个C程序,从键盘输入6个整数存入数组,找出其中的最大值并输出。
【答案】
#include <stdio.h>
int main()
{
int a[6], i, max;
printf("请输入6个整数:");
for (i = 0; i < 6; i++)
scanf("%d", &a[i]);
max = a[0];
for (i = 1; i < 6; i++)
if (a[i] > max)
max = a[i];
printf("最大值=%d
", max);
return 0;
}
【解析】先循环输入6个数到a[i],设max=a[0],再循环比较a[1]~a[5]更新最大值。考查数组输入与找最大值算法。
2.编写一个C程序,统计数组int a[7]={2,7,4,9,1,6,3}中奇数和偶数的个数并输出。
【答案】
#include <stdio.h>
int main()
{
int a[7] = {2, 7, 4, 9, 1, 6, 3};
int i, odd = 0, even = 0;
for (i = 0; i < 7; i++)
{
if (a[i] % 2 == 0)
even++;
else
odd++;
}
printf("奇数%d个,偶数%d个
", odd, even);
return 0;
}
【解析】遍历数组,用a[i]%2==0判断偶数++否则奇数++。7个数中奇数4个(7,9,1,3),偶数3个(2,4,6)。考查数组遍历与分类统计。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$