内容正文:
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第7卷,按知识模块1 C语言程序设计知识,4.数组的五点范围要求编写。其五点要求是:
(1)理解一维数组的定义及初始化。
(2)掌握一维数组元素的引用。
(3)理解二维数组的定义及初始化。
(4)掌握二维数组元素的引用。
(5)了解字符数组的定义及引用。
2026版山东省《软件与应用技术考纲百套卷》 第7卷
知识模块1 C语言程序设计知识
4.数组 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 以下错误的数组定义形式是( )
A.int a[10];
B.int a[3+2];
C.int a[3*3];
D.int a[3.2];
【答案】D
2. 在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )
A. 整型常量
B. 整型表达式
C. 整型常量或整型常量表达式
D. 任何类型的表达式
【答案】C
3. 以下正确的数组定义形式是( )
A.int n;scanf(“%d”,&n);int a[n];
B.int a[1…10];
C.int a[3.2];
D.#define N 10 int a[N];
【答案】D
4. 以上对一堆整型数据a进行正确初始化的语句是( )
A.int a[10]=(0,0,0,0,0);
B.int a[10]={};
C.int a[]={};
D.int a[10]={10*1};
【答案】D
5. 以下程序段的输出结果是( )。
main(){
int i,a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]);}
A.258
B.741
C.852
D.369
【答案】C
6. 若有说明int a[5][4],则对数组元素正确引用的是( )
A.a[3+1][2*2];
B.a(2+1)(0);
C.a[2+2,3];
D.a[2*2][3];
【答案】D
7. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )
#include<stdio.h>
main() {
int a[10],i=0;
while(i<10)
scanf("%d", );
}
A. `a+(i++)`
B. `&a[i]`
C. `a+i`
D. `&a[10]`
【答案】A
8. 下列二维数组初始化语句中,正确的是( )
A.int a[][3]={8,0,7,0,3,1,2,5};
B.int a[][]={{9,3,1},{8,4,2},{3,5,7}};
C.flota a[2][3]={{1,2},{3,4},{5,6}};
D.float a[3][]={{1,2,3},{4,5,6},{7,8,9}};
【答案】A
9. 以下程序的输出结果是( )
main() {
int i, a[10];
for(i=9;i>=0;i--)
a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A. 258
B. 741
C. 852
D. 369
【答案】C
10.以下程序段的输出结果是( )
int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,s=0;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
s+=a[i][j];
printf("%d
",s);
A.11
B.12
C.13
D.14
【答案】A
11.C语言中的一维数组初始化必须满足的条件是:( )
A. 初始化值的个数不能超过数组的大小
B. 初始化值的个数必须与数组的大小相同
C. 初始化值的个数可以少于或等于数组的大小
D. 不需要满足任何条件,初始化个数没有限制
【答案】C
12.数组int a[2][2]={0,1,2,3}中数组如果a[0][0]是第一个元素则第二个元素是( )
A.a[0][0] B.a[0][1] C.a[1][0] D.a[1][1]
【答案】B
13.对于以下定义正确的叙述为( )
char x[]="abcdefg";
char y[]={'a','b','c','d','e','f','g'};
A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
【答案】C
14.对于字符数组的初始化,以下哪个选项是错误的?( )
A.char str[] = "Hello";
B.char str[6] = "Hello";
C.char str[10] = {'H', 'e', 'l', 'l', 'o', '\0'};
D.char str[]; str = "Hello";
【答案】D
15.对于一个二维数组 matrix[3][4],以下选项中哪一个表示访问第3行第2列的元素?( )
A. matrix[2][1]
B. matrix[3][4]
C. matrix[4][2]
D. matrix[3][2]
【答案】A
16. 设有以下变量定义:char str[20],i;当输入“zhang空格hong回车”时,能输入“zhang hong”的程序段是( )
A.scanf(“%s”,str);
B.for(i=0,str[i]=getchar();str[i]!='
';)
str[i++]=getchar();
C.gets(str);
D.for(i=0,str[i]=getchar();str[i]!='\0';i++)
str[i]=scanf("%c",str[i]);
【答案】C
17. 以下程序运行后,输出结果是( )
main() {
int a[4][4]={{1,3,5},{2,4,6}, {3,5,7}};
printf("%d%d%d%d
",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A. 0650
B. 1470
C. 5430
D. 输出值不定
【答案】A
18. 以下程序运行后,输出结果是( )
main() {
int aa[4][4]={{1,2,3,4},{5,6,7,8}, {3,9,10,2},{4,2,9,6}};
int i,s=0;
for(i=0;i<4;i++) s+=aa[i][1];
printf("%d
",s);
}
A. 11
B. 19
C. 13
D. 20
【答案】B
19. 有以下程序
main() {
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf("%d
",s);
}
该程序的输出结果是( )
A. 18
B. 19
C. 20
D. 21
【答案】A
20. 下列定义二维数组的语句中,正确的是( )
A. `int N=5,f[N][N]`
B. `float 2ab[3][4]`
C. `int m[][2]={1,2,3,4};`
D. `int a[2][]={{1,2},{3,4}}`
【答案】C
二、简答题(本大题共5小题,每题6分,共30分)
1. 请简述一维数组的定义。
【答案】一维数组是指数组中元素的排列像一条直线一样,它是数组的一种基本形式,其中的元素可以通过一个索引来访问。
2. 如何初始化一个一维数组?
【答案】一维数组可以在声明时初始化,例如 `int arr[5] = {1, 2, 3, 4, 5};`。如果初始化时未指定全部元素的值,未指定的元素将被自动初始化为0。
3. 请给出引用一维数组元素的语法。
【答案】一维数组元素的引用通过数组名和索引来实现,语法为 `arrayName[index]`,其中 `arrayName` 是数组名,`index` 是元素的索引值。
4. 什么是二维数组?
【答案】二维数组可以看作是一维数组的数组,它由多个一维数组组成,每个一维数组长度相同,排列成一个表格状的结构。
5. 字符串处理函数有几种?
【答案】(1)求串长函数strlen(s) (2)串复制函数strcpy(s1,s2) (3)串联接函数strcat(s1,s2) (4)串比较函数strcmp(s1,s2)
三、编程题(本大题共1小题,共10分)
1.编写一个程序,输入一个字符串,将字符串出现的所有大写英文字母循环右移5位,即:
A->F B->G C->H ... Y->D Z->E
提示:将字母字符循环右移5位,可使用如下方法:
ch=ch+5;
If(ch>’Z’) ch=ch-26;
【答案】
#include <stdio.h>
main() {
char s[20];
int i;
gets(s);
for (i = 0; s[i] != '\0'; i++)
if (s[i] >= 'A' && s[i] <= 'Z') {
s[i] += 5;
if (s[i] > 'Z')
s[i] -= 26;
}
puts(s);
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第7卷,按知识模块1 C语言程序设计知识,4.数组的五点范围要求编写。其五点要求是:
(1)理解一维数组的定义及初始化。
(2)掌握一维数组元素的引用。
(3)理解二维数组的定义及初始化。
(4)掌握二维数组元素的引用。
(5)了解字符数组的定义及引用。
2026版山东省《软件与应用技术考纲百套卷》 第7卷
知识模块1 C语言程序设计知识
4.数组 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 以下错误的数组定义形式是( )
A.int a[10];
B.int a[3+2];
C.int a[3*3];
D.int a[3.2];
2. 在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )
A. 整型常量
B. 整型表达式
C. 整型常量或整型常量表达式
D. 任何类型的表达式
3. 以下正确的数组定义形式是( )
A.int n;scanf(“%d”,&n);int a[n];
B.int a[1…10];
C.int a[3.2];
D.#define N 10 int a[N];
4. 以上对一堆整型数据a进行正确初始化的语句是( )
A.int a[10]=(0,0,0,0,0);
B.int a[10]={};
C.int a[]={};
D.int a[10]={10*1};
5. 以下程序段的输出结果是( )。
main(){
int i,a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]);}
A.258
B.741
C.852
D.369
6. 若有说明int a[5][4],则对数组元素正确引用的是( )
A.a[3+1][2*2];
B.a(2+1)(0);
C.a[2+2,3];
D.a[2*2][3];
7. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )
#include<stdio.h>
main() {
int a[10],i=0;
while(i<10)
scanf("%d", );
}
A. `a+(i++)`
B. `&a[i]`
C. `a+i`
D. `&a[10]`
8. 下列二维数组初始化语句中,正确的是( )
A.int a[][3]={8,0,7,0,3,1,2,5};
B.int a[][]={{9,3,1},{8,4,2},{3,5,7}};
C.flota a[2][3]={{1,2},{3,4},{5,6}};
D.float a[3][]={{1,2,3},{4,5,6},{7,8,9}};
9. 以下程序的输出结果是( )
main() {
int i, a[10];
for(i=9;i>=0;i--)
a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A. 258
B. 741
C. 852
D. 369
10.以下程序段的输出结果是( )
int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,s=0;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
s+=a[i][j];
printf("%d
",s);
A.11
B.12
C.13
D.14
11.C语言中的一维数组初始化必须满足的条件是:( )
A. 初始化值的个数不能超过数组的大小
B. 初始化值的个数必须与数组的大小相同
C. 初始化值的个数可以少于或等于数组的大小
D. 不需要满足任何条件,初始化个数没有限制
12.数组int a[2][2]={0,1,2,3}中数组如果a[0][0]是第一个元素则第二个元素是( )
A.a[0][0] B.a[0][1] C.a[1][0] D.a[1][1]
13.对于以下定义正确的叙述为( )
char x[]="abcdefg";
char y[]={'a','b','c','d','e','f','g'};
A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
14.对于字符数组的初始化,以下哪个选项是错误的?( )
A.char str[] = "Hello";
B.char str[6] = "Hello";
C.char str[10] = {'H', 'e', 'l', 'l', 'o', '\0'};
D.char str[]; str = "Hello";
15.对于一个二维数组 matrix[3][4],以下选项中哪一个表示访问第3行第2列的元素?( )
A. matrix[2][1]
B. matrix[3][4]
C. matrix[4][2]
D. matrix[3][2]
16. 设有以下变量定义:char str[20],i;当输入“zhang空格hong回车”时,能输入“zhang hong”的程序段是( )
A.scanf(“%s”,str);
B.for(i=0,str[i]=getchar();str[i]!='
';)
str[i++]=getchar();
C.gets(str);
D.for(i=0,str[i]=getchar();str[i]!='\0';i++)
str[i]=scanf("%c",str[i]);
17. 以下程序运行后,输出结果是( )
main() {
int a[4][4]={{1,3,5},{2,4,6}, {3,5,7}};
printf("%d%d%d%d
",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A. 0650
B. 1470
C. 5430
D. 输出值不定
18. 以下程序运行后,输出结果是( )
main() {
int aa[4][4]={{1,2,3,4},{5,6,7,8}, {3,9,10,2},{4,2,9,6}};
int i,s=0;
for(i=0;i<4;i++) s+=aa[i][1];
printf("%d
",s);
}
A. 11
B. 19
C. 13
D. 20
19. 有以下程序
main() {
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf("%d
",s);
}
该程序的输出结果是( )
A. 18
B. 19
C. 20
D. 21
20. 下列定义二维数组的语句中,正确的是( )
A. `int N=5,f[N][N]`
B. `float 2ab[3][4]`
C. `int m[][2]={1,2,3,4};`
D. `int a[2][]={{1,2},{3,4}}`
二、简答题(本大题共5小题,每题6分,共30分)
1. 请简述一维数组的定义。
2. 如何初始化一个一维数组?
3. 请给出引用一维数组元素的语法。
4. 什么是二维数组?
5. 字符串处理函数有几种?
三、编程题(本大题共1小题,共10分)
1.编写一个程序,输入一个字符串,将字符串出现的所有大写英文字母循环右移5位,即:
A->F B->G C->H ... Y->D Z->E
提示:将字母字符循环右移5位,可使用如下方法:
ch=ch+5;
If(ch>’Z’) ch=ch-26;
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$