内容正文:
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第8卷,按知识模块1 C语言程序设计知识,4.数组的五点范围要求编写。其五点要求是:
(1)理解一维数组的定义及初始化。
(2)掌握一维数组元素的引用。
(3)理解二维数组的定义及初始化。
(4)掌握二维数组元素的引用。
(5)了解字符数组的定义及引用。
2026版山东省《软件与应用技术考纲百套卷》 第8卷
知识模块1 C语言程序设计知识
4.数组 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 以下对一维数组a进行不正确初始化的是( )
A.int a[10]=(0,0,0,0,0);
B.int a[10]={};
C.int a[]={0};
D.int a[10]={10*2};
2. 执行下面的程序段后,变量k中的值是( )
int k=3,s[2];
s[0]=k,k=s[1]*10;
A.不确定
B. 33
C. 30
D. 0
3.下列关于数组的描述正确的是( )
A.数组的大小是固定的,但可以有不同类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固定的,所有数据元素的类型必须相同
D.数组的大小是可变的,可以有不同类型的数组元素
4.关于二维数组的定义,以下哪个选项描述正确?( )
A. 二维数组的行数和列数必须是相同的
B. 二维数组的行数和列数可以不同
C. 二维数组的行数和列数必须是整数
D. 二维数组的行数和列数必须是常量
5.在C语言中,以下对二维数组的引用说法正确的是:( )
A. 引用二维数组元素时只需提供一个下标
B. 引用二维数组元素时需要提供两个下标
C. 引用二维数组元素时需要提供三个下标
D. 引用二维数组元素时需要使用指针
6. 已知short int类型变量占用两个字节,若有定义:short int x[10]={0,2,4};,则数组x在内存中所占字节数是( )
A. 3
B. 6
C. 10
D. 20
7.有如下说明:int a[10]={0,1,2,3,4,5,6,7,8,9};则数值不为9的表达式是( )
A. a[10-1]
B.a[8]
C. a[9]-0
D. a[9]-a[0]
8. 假定一个 `int` 型变量占用两个字节,若有定义:`int x[2][5];` 则 数 组 `x` 在内存中所占字节数是( )
A. 3
B. 6
C. 10
D. 20
9. 下列描述中不正确的是( )
A. 字符型数组中可以存放字符串
B. 可以对字符串进行整体输入、输出
C. 可以对整型数组进行整体输入、输出
D. 不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值
10. 定义如下变量和数组:
Int i;
Int x[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,};
则下面语句的输出结果是
for(i=0;i<4;i++) prinft(“%3d”,x[i][3-i]);
A.1 5 9 13
B.1 6 11 16
C.4 7 10 13
D.4 8 12 16
11. 以下程序的输出结果正确的是( )
main() {
char a[3][4];
strcpy(a[0],"you");
strcpy(a[1],"me");
a[0][3]='&';
printf("%s",a);
}
A. you&me
B. you
C. me
D. &
12. 写出一些程序的执行结果( )
#include<stdio.h>
main(){
int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf(“%d”,x[i][i]);
printf(“
”);
}
A.1,5,9,
B.1,4,7,
C.3,5,7,
D.3,6,9,
13. 设有定义:`char a[10]="ABCD";` 则 `a[4]` 的值是( )
A. "ABCD"
B. 'D'
C. '\0'
D. 不确定
14. 有以下程序,
main() {
char a[20],b[20],c[20];
scanf("%s%s",a,b);
gets(c);
printf("%s%s%s",a,b,c);
}
程序运行时,从第一列开始输入,`this is a dog!` 回车则输出的结果是( )
A. thisisadog!
B. thisis a
C. thisisa dog!
D. thisis a dog!
15. 语句 `strcat(strcpy(strl,str2),str3);` 的功能是( )
A. 将字符串 `strl` 复制到字符串 `str2` 中后 再连接到字符串 `str3` 之后。
B. 将字符串 `strl` 连接到字符串 `str2` 中后 再复制到字符串 `str3` 之后。
C. 将字符串 `str2` 复制到字符串 `strl` 后再 将字符串 `str3` 连接到字符串 `strl` 之后。
D. 将字符串 `str2` 连接到字符串 `strl` 后再 将字符串 `strl` 复制到字符串 `str3` 中。
16. 若int b[2][3]={0};则下面正确的描述是( )
A. 数组b中每个元素均可得到初值0
B.此说明语句不正确
C.只有元素b[0][0]可得到初值0
D.数组b中各元素都可得到初值,但其值不确定
17. 若定义一个名为 `s` 且初值为 `"123"` 的字符数组,则下列定义错误的是 ( )
A. `char s[]={1,2,3,\0};`
B. `char s[]={"123"};`
C. `char s[]={"123
"};`
D. `char s[4]={1,2,3};`
18. 若有定义:`char a[10];` 则能给数组 `a` 输入字符串 `"This is a book"` 的语句是 ( )
A. `gets(a)`
B. `scanf("%s",a);`
C. `gets(a[0]);`
D. `scanf("%s",&a);`
19. 语句 `printf("%d",strlen("abs
o12\1\""))` 的输出结果是 ( )
A. 11
B. 10
C. 9
D. 8
20. 下列哪个选项是正确的数组初始化方法?( )
A. `int a[5] = {1, 2, 3, 4, 5};`
B. `int a[5] = {1, 2, 3, 4, 5, 6};`
C. `int a[5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};`
D. `int a[5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};`
二、简答题(本大题共5小题,每题6分,共30分)
1. 请给出引用二维数组元素的语法。
2. 字符数组的定义是什么?
3. 如何初始化一个字符数组?
4. 字符串处理函数中,串比较函数怎么表示?如何比较?
5. 如何确保字符数组能够存储整个字符串?
三、编程题(本大题共1小题,共10分)
1.编写一个程序,将两个字符串连接起来,不要使用stract()函数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第8卷,按知识模块1 C语言程序设计知识,4.数组的五点范围要求编写。其五点要求是:
(1)理解一维数组的定义及初始化。
(2)掌握一维数组元素的引用。
(3)理解二维数组的定义及初始化。
(4)掌握二维数组元素的引用。
(5)了解字符数组的定义及引用。
2026版山东省《软件与应用技术考纲百套卷》 第8卷
知识模块1 C语言程序设计知识
4.数组 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 以下对一维数组a进行不正确初始化的是( )
A.int a[10]=(0,0,0,0,0);
B.int a[10]={};
C.int a[]={0};
D.int a[10]={10*2};
【答案】A
2. 执行下面的程序段后,变量k中的值是( )
int k=3,s[2];
s[0]=k,k=s[1]*10;
A.不确定
B. 33
C. 30
D. 0
【答案】A
3.下列关于数组的描述正确的是( )
A.数组的大小是固定的,但可以有不同类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固定的,所有数据元素的类型必须相同
D.数组的大小是可变的,可以有不同类型的数组元素
【答案】C
4.关于二维数组的定义,以下哪个选项描述正确?( )
A. 二维数组的行数和列数必须是相同的
B. 二维数组的行数和列数可以不同
C. 二维数组的行数和列数必须是整数
D. 二维数组的行数和列数必须是常量
【答案】B
5.在C语言中,以下对二维数组的引用说法正确的是:( )
A. 引用二维数组元素时只需提供一个下标
B. 引用二维数组元素时需要提供两个下标
C. 引用二维数组元素时需要提供三个下标
D. 引用二维数组元素时需要使用指针
【答案】B
6. 已知short int类型变量占用两个字节,若有定义:short int x[10]={0,2,4};,则数组x在内存中所占字节数是( )
A. 3
B. 6
C. 10
D. 20
【答案】D
7.有如下说明:int a[10]={0,1,2,3,4,5,6,7,8,9};则数值不为9的表达式是( )
A. a[10-1]
B.a[8]
C. a[9]-0
D. a[9]-a[0]
【答案】B
8. 假定一个 `int` 型变量占用两个字节,若有定义:`int x[2][5];` 则 数 组 `x` 在内存中所占字节数是( )
A. 3
B. 6
C. 10
D. 20
【答案】D
9. 下列描述中不正确的是( )
A. 字符型数组中可以存放字符串
B. 可以对字符串进行整体输入、输出
C. 可以对整型数组进行整体输入、输出
D. 不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值
【答案】C
10. 定义如下变量和数组:
Int i;
Int x[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,};
则下面语句的输出结果是
for(i=0;i<4;i++) prinft(“%3d”,x[i][3-i]);
A.1 5 9 13
B.1 6 11 16
C.4 7 10 13
D.4 8 12 16
【答案】C
11. 以下程序的输出结果正确的是( )
main() {
char a[3][4];
strcpy(a[0],"you");
strcpy(a[1],"me");
a[0][3]='&';
printf("%s",a);
}
A. you&me
B. you
C. me
D. &
【答案】A
12. 写出一些程序的执行结果( )
#include<stdio.h>
main(){
int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf(“%d”,x[i][i]);
printf(“
”);
}
A.1,5,9,
B.1,4,7,
C.3,5,7,
D.3,6,9,
【答案】A
13. 设有定义:`char a[10]="ABCD";` 则 `a[4]` 的值是( )
A. "ABCD"
B. 'D'
C. '\0'
D. 不确定
【答案】C
14. 有以下程序,
main() {
char a[20],b[20],c[20];
scanf("%s%s",a,b);
gets(c);
printf("%s%s%s",a,b,c);
}
程序运行时,从第一列开始输入,`this is a dog!` 回车则输出的结果是( )
A. thisisadog!
B. thisis a
C. thisisa dog!
D. thisis a dog!
【答案】D
15. 语句 `strcat(strcpy(strl,str2),str3);` 的功能是( )
A. 将字符串 `strl` 复制到字符串 `str2` 中后 再连接到字符串 `str3` 之后。
B. 将字符串 `strl` 连接到字符串 `str2` 中后 再复制到字符串 `str3` 之后。
C. 将字符串 `str2` 复制到字符串 `strl` 后再 将字符串 `str3` 连接到字符串 `strl` 之后。
D. 将字符串 `str2` 连接到字符串 `strl` 后再 将字符串 `strl` 复制到字符串 `str3` 中。
【答案】C
16. 若int b[2][3]={0};则下面正确的描述是( )
A. 数组b中每个元素均可得到初值0
B.此说明语句不正确
C.只有元素b[0][0]可得到初值0
D.数组b中各元素都可得到初值,但其值不确定
【答案】A
17. 若定义一个名为 `s` 且初值为 `"123"` 的字符数组,则下列定义错误的是 ( )
A. `char s[]={1,2,3,\0};`
B. `char s[]={"123"};`
C. `char s[]={"123
"};`
D. `char s[4]={1,2,3};`
【答案】C
18. 若有定义:`char a[10];` 则能给数组 `a` 输入字符串 `"This is a book"` 的语句是 ( )
A. `gets(a)`
B. `scanf("%s",a);`
C. `gets(a[0]);`
D. `scanf("%s",&a);`
【答案】A
19. 语句 `printf("%d",strlen("abs
o12\1\""))` 的输出结果是 ( )
A. 11
B. 10
C. 9
D. 8
【答案】C
20. 下列哪个选项是正确的数组初始化方法?( )
A. `int a[5] = {1, 2, 3, 4, 5};`
B. `int a[5] = {1, 2, 3, 4, 5, 6};`
C. `int a[5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};`
D. `int a[5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};`
【答案】A
二、简答题(本大题共5小题,每题6分,共30分)
1. 请给出引用二维数组元素的语法。
【答案】二维数组元素的引用通过数组名和两个索引来实现,语法为 `arrayName[row][column]`,其中 `arrayName` 是数组名,`row` 和 `column` 分别是元素的行索引和列索引。
2. 字符数组的定义是什么?
【答案】字符数组是一种特殊的数组,用于存储多个字符。它的每个元素都是一个字符,可以用一维数组的语法来定义和初始化。
3. 如何初始化一个字符数组?
【答案】字符数组可以通过指定字符列表来初始化,例如 `char str[] = "Hello";`。在C语言中,字符串会自动以`\0`(空字符)结尾。
4. 字符串处理函数中,串比较函数怎么表示?如何比较?
【答案】strcmp(s1,s2);
如果s1>s2,函数值为正数;如果s1<s2,函数值为负数;如果s1=s2,函数值为0。
5. 如何确保字符数组能够存储整个字符串?
【答案】为了确保字符数组能够存储整个字符串,数组的大小应该比字符串中的字符数多1,以容纳字符串结束标志`\0`。例如,如果字符串长度为5,字符数组应该至少有6个元素。
三、编程题(本大题共1小题,共10分)
1.编写一个程序,将两个字符串连接起来,不要使用stract()函数。
【答案】
#include <stdio.h>
main() {
int i, j;
char str1[20];
char str2[20];
gets(str1);
gets(str2);
for (i = 0; str1[i] != '\0'; i++); // 找到第一个字符串的末尾
for (j = 0; str2[j] != '\0'; i++, j++) {
str1[i] = str2[j]; // 将第二个字符串复制到第一个字符串的末尾
}
printf("连接后的字符串: %s
", str1);
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$