第9卷 二维数组的定义、初始化及引用《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》

2026-06-12
| 2份
| 19页
| 4人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 5.2 二维数组的定义和使用
类型 题集-专项训练
知识点 数组
使用场景 中职复习
学年 2026-2027
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 184 KB
发布时间 2026-06-12
更新时间 2026-06-12
作者 xkw__007
品牌系列 学易金卷·考纲百套卷
审核时间 2026-06-12
下载链接 https://m.zxxk.com/soft/58312450.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第9卷,按《C语言程序设计》范围和要求编写。具体内容为: 理解二维数组的定义及初始化。 掌握二维数组元素的引用 山东省《软件与应用技术类考纲百套卷》 第9卷 《C语言程序设计》 二维数组的定义、初始化及引用 考点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共20小题,每题3分,共60分) 1.以下二维数组定义语句中,正确的是( ) A. int a [n][m]; B. int a (3,4); C. int a [3.0][4]; D. int a [3][4]; 2.以下二维数组初始化语句中,正确的是( ) A. int a [2][3]={1,2,3,4}; B. int a [2][3]={1,2,3,4,5,6,7}; C. int a [][]={1,2,3,4}; D. int a [2][3]={1,,3}; 3.若有定义int a[3][4]={{1,2},{3,4},{5,6}};,则数组元素a[1][2]的值是( ) A. 2 B. 3 C. 0 D. 6 4.在 C 语言中,二维数组名a代表的是( ) A. 数组全部元素的值 B. 数组第一个元素的值 C. 数组最后一行的首地址 D. 数组第一行的首地址 5.若有定义int a[2][3]={0};,则数组元素a[1][1]的值是( ) A. 0 B. 1 C. 2 D. 随机值 6.若有定义int a[][3]={1,2,3,4,5,6};,则数组 a 的行数是( ) A. 1 B. 2 C. 3 D. 不确定 7.若有定义int a[3][4];,以下数组元素引用中,错误的是( ) A. a [0][0]=1; B. a [2][3]=12; C. a [3][0]=13; D. a [1][2]=a [0][1]+a [2][3]; 8.执行以下程序段后,输出结果是( ) int a[2][2]={{1,2},{3,4}}; for(int i=0;i<2;i++) for(int j=0;j<2;j++) printf("%d",a[i][j]); A. 1234 B. 1324 C. 4321 D. 1243 9.以下二维数组定义语句中,错误的是( ) A. int n=2,m=3,a [n][m]; B. int a [2*3][4]; C. int a [5+5][10]; D. int a [10][10]; 10.若有定义int a[2][3]={{1},{2,3}};,以下说法正确的是( ) A. 数组 a 有 6 个元素,全部被初始化 B. 数组 a 的元素 a [0][1] 和 a [0][2] 的值为 0 C. 数组 a 的行数为 3 D. 数组元素 a [1][2] 的值为 3 11.若有定义int a[3][3];,执行语句a[1][2]=10;后,以下说法正确的是( ) A. 数组 a 的所有元素值都是 10 B. 数组 a 的第 1 行第 2 列元素值为 10 C. 数组 a 的第 2 行第 3 列元素值为 10 D. 数组 a 的行数变为 2 12.执行以下程序段后,sum 的值是( ) int a[2][2]={{1,2},{3,4}},sum=0; for(int i=0;i<2;i++) for(int j=0;j<2;j++) sum+=a[i][j]; A. 5 B. 7 C. 9 D. 10 13.以下字符二维数组定义语句中,正确的是( ) A. char str [2][5]={{'a','b'},{'c','d'}}; B. char str [2][5]={"abcde","fghij"}; C. char str [][]={"abc","def"}; D. char str [2][5]={"abcdef"}; 14.若有定义int a[2][3];,未对数组元素进行初始化,则以下说法正确的是( ) A. 所有元素值都是 0 B. 所有元素值都是随机值 C. 第一行元素值为 0,其他为随机值 D. 最后一列元素值为 0,其他为随机值 15.若有定义int a[2][2]={{1,2},{3,4}};,则表达式a[0][1]+a[1][0]的值是( ) A. 3 B. 4 C. 5 D. 6 16.执行以下程序段后,输出结果是( ) int a[2][3]={{1,2,3},{4,5,6}}; for(int j=0;j<3;j++) for(int i=0;i<2;i++) printf("%d",a[i][j]); A. 123456 B. 142536 C. 654321 D. 362514 17.以下二维数组初始化语句中,正确的是( ) A. int a [2][3]={{1,2,3},{4,5,6}}; B. int a [2][3]={1,2,3,4,5,6,7}; C. int a [][3]={}; D. int a [2][3.0]={1,2,3}; 18.若有定义int a[3][4]={{0}};,则数组中值为 0 的元素个数是( ) A. 1 B. 4 C. 12 D. 0 19.若有定义int a[2][2]={{1,3},{2,4}};,则以下表达式值为真的是( ) A. a [0][0]>a [0][1] B. a [1][0]==3 C. a [1][1]==4 D. a [0][1]<a [1][0] 20.执行以下程序段后,输出结果是( ) int a[2][3]={{1,2,3},{4,5,6}}; for(int i=0;i<2;i++) for(int j=0;j<3;j++) if(a[i][j]%2==0) printf("%d",a[i][j]); A. 135 B. 246 C. 123456 D. 654321 二、简答题(本大题共2小题,每题10分,共20分) 1.阅读以下 C 语言程序,程序运行后的结果为________ #include <stdio.h> int main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int i,j,max=a[0][0]; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(a[i][j]>max) max=a[i][j]; } } printf("max=%d ",max); return 0; } 2.阅读以下 C 语言程序,程序运行后的结果为________ #include <stdio.h> int main() { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) { b[j][i]=a[i][j]; } } for(i=0;i<3;i++) { for(j=0;j<2;j++) { printf("%d ",b[i][j]); } printf(" "); } return 0; } 三、案例分析题(本大题共1小题,每题10分,共10分) 1.以下程序的功能是:输入 3 行 3 列的整数矩阵,计算并输出主对角线元素的和(主对角线是行下标等于列下标元素)。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。 #include <stdio.h> int main() { int a[3][3],i,j,sum=0; printf("请输入3行3列矩阵: "); for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d",____1____); } } for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(____2____) { ____3____; } } } printf("主对角线元素的和为:%d ",____4____); return 0; } 四、综合应用题(本大题共1小题,每题10分,共10分) 1.编写一个C语言程序,要求输入 2 行 3 列的整数矩阵,计算并输出该矩阵所有元素的和。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第9卷,按《C语言程序设计》范围和要求编写。具体内容为: 理解二维数组的定义及初始化。 掌握二维数组元素的引用 山东省《软件与应用技术类考纲百套卷》 第9卷 《C语言程序设计》 二维数组的定义、初始化及引用 考点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共20小题,每题3分,共60分) 1.以下二维数组定义语句中,正确的是( ) A. int a [n][m]; B. int a (3,4); C. int a [3.0][4]; D. int a [3][4]; 【答案】D 【解析】二维数组定义格式为类型名 数组名[行常量表达式][列常量表达式];,长度必须是整型常量。 2.以下二维数组初始化语句中,正确的是( ) A. int a [2][3]={1,2,3,4}; B. int a [2][3]={1,2,3,4,5,6,7}; C. int a [][]={1,2,3,4}; D. int a [2][3]={1,,3}; 【答案】A 【解析】初始化元素个数不能超过数组总长度,B 错误;不能同时省略行和列长度,C 错误;不能连续出现逗号,D 错误;A 是部分初始化,未初始化元素自动赋值为 0。 3.若有定义int a[3][4]={{1,2},{3,4},{5,6}};,则数组元素a[1][2]的值是( ) A. 2 B. 3 C. 0 D. 6 【答案】C 【解析】二维数组下标从 0 开始,a [1] 对应第二行 {3,4,0,0},a [1][2] 是该行第三个元素,未显式初始化自动为 0。 4.在 C 语言中,二维数组名a代表的是( ) A. 数组全部元素的值 B. 数组第一个元素的值 C. 数组最后一行的首地址 D. 数组第一行的首地址 【答案】D 【解析】二维数组名是指向第一行的常量指针,代表整个二维数组的首地址,即第一行的首地址。 5.若有定义int a[2][3]={0};,则数组元素a[1][1]的值是( ) A. 0 B. 1 C. 2 D. 随机值 【答案】A 【解析】初始化列表中有一个元素 0,其余所有未显式初始化的元素都会自动赋值为 0。 6.若有定义int a[][3]={1,2,3,4,5,6};,则数组 a 的行数是( ) A. 1 B. 2 C. 3 D. 不确定 【答案】B 【解析】二维数组初始化时可以省略第一维长度,系统会根据元素总数和列数自动计算行数:6 个元素 ÷3 列 = 2 行。 7.若有定义int a[3][4];,以下数组元素引用中,错误的是( ) A. a [0][0]=1; B. a [2][3]=12; C. a [3][0]=13; D. a [1][2]=a [0][1]+a [2][3]; 【答案】C 【解析】二维数组行下标范围是 0 到行数 - 1,列下标范围是 0 到列数 - 1。a [3][0] 行下标越界,会导致运行错误。 8.执行以下程序段后,输出结果是( ) int a[2][2]={{1,2},{3,4}}; for(int i=0;i<2;i++) for(int j=0;j<2;j++) printf("%d",a[i][j]); A. 1234 B. 1324 C. 4321 D. 1243 【答案】A 【解析】按行优先遍历二维数组,依次输出 a [0][0]=1、a [0][1]=2、a [1][0]=3、a [1][1]=4。 9.以下二维数组定义语句中,错误的是( ) A. int n=2,m=3,a [n][m]; B. int a [2*3][4]; C. int a [5+5][10]; D. int a [10][10]; 【答案】A 【解析】二维数组的行和列长度都必须是编译时确定的常量表达式,不能用变量 n 和 m。 10.若有定义int a[2][3]={{1},{2,3}};,以下说法正确的是( ) A. 数组 a 有 6 个元素,全部被初始化 B. 数组 a 的元素 a [0][1] 和 a [0][2] 的值为 0 C. 数组 a 的行数为 3 D. 数组元素 a [1][2] 的值为 3 【答案】B 【解析】按行初始化时,第一行只初始化了第一个元素 1,其余两个元素自动为 0;第二行初始化了前两个元素 2、3,第三个元素自动为 0。 11.若有定义int a[3][3];,执行语句a[1][2]=10;后,以下说法正确的是( ) A. 数组 a 的所有元素值都是 10 B. 数组 a 的第 1 行第 2 列元素值为 10 C. 数组 a 的第 2 行第 3 列元素值为 10 D. 数组 a 的行数变为 2 【答案】C 【解析】a [1][2] 对应数组的第 2 行(行下标 1)第 3 列(列下标 2),赋值后该元素值为 10,其他元素不变。 12.执行以下程序段后,sum 的值是( ) int a[2][2]={{1,2},{3,4}},sum=0; for(int i=0;i<2;i++) for(int j=0;j<2;j++) sum+=a[i][j]; A. 5 B. 7 C. 9 D. 10 【答案】D 【解析】程序功能是计算二维数组所有元素的和,1+2+3+4=10。 13.以下字符二维数组定义语句中,正确的是( ) A. char str [2][5]={{'a','b'},{'c','d'}}; B. char str [2][5]={"abcde","fghij"}; C. char str [][]={"abc","def"}; D. char str [2][5]={"abcdef"}; 【答案】A 【解析】字符串 "abcde" 包含 6 个字符(含结束符 '\0'),B、D 数组长度不足;C 不能同时省略行和列长度。 14.若有定义int a[2][3];,未对数组元素进行初始化,则以下说法正确的是( ) A. 所有元素值都是 0 B. 所有元素值都是随机值 C. 第一行元素值为 0,其他为随机值 D. 最后一列元素值为 0,其他为随机值 【答案】B 【解析】局部二维数组未初始化时,所有元素值为随机的垃圾值;全局二维数组未初始化时元素值为 0。 15.若有定义int a[2][2]={{1,2},{3,4}};,则表达式a[0][1]+a[1][0]的值是( ) A. 3 B. 4 C. 5 D. 6 【答案】C 【解析】a [0][1]=2,a [1][0]=3,两者之和为 5。 16.执行以下程序段后,输出结果是( ) int a[2][3]={{1,2,3},{4,5,6}}; for(int j=0;j<3;j++) for(int i=0;i<2;i++) printf("%d",a[i][j]); A. 123456 B. 142536 C. 654321 D. 362514 【答案】B 【解析】按列优先遍历二维数组,依次输出第 1 列 1、4,第 2 列 2、5,第 3 列 3、6。 17.以下二维数组初始化语句中,正确的是( ) A. int a [2][3]={{1,2,3},{4,5,6}}; B. int a [2][3]={1,2,3,4,5,6,7}; C. int a [][3]={}; D. int a [2][3.0]={1,2,3}; 【答案】A 【解析】按行初始化,每行元素用花括号括起来,元素个数正好等于数组总长度,正确。B 元素过多;C 不能省略所有元素;D 列长度不能是浮点数。 18.若有定义int a[3][4]={{0}};,则数组中值为 0 的元素个数是( ) A. 1 B. 4 C. 12 D. 0 【答案】C 【解析】初始化第一行第一个元素为 0,该行其余 3 个元素自动为 0,第二、三行所有元素也自动为 0,共 12 个元素全为 0。 19.若有定义int a[2][2]={{1,3},{2,4}};,则以下表达式值为真的是( ) A. a [0][0]>a [0][1] B. a [1][0]==3 C. a [1][1]==4 D. a [0][1]<a [1][0] 【答案】C 【解析】a [1][1]=4,因此 a [1][1]==4 表达式值为 1(真)。 20.执行以下程序段后,输出结果是( ) int a[2][3]={{1,2,3},{4,5,6}}; for(int i=0;i<2;i++) for(int j=0;j<3;j++) if(a[i][j]%2==0) printf("%d",a[i][j]); A. 135 B. 246 C. 123456 D. 654321 【答案】B 【解析】程序功能是输出二维数组中的偶数元素,数组中的偶数是 2、4、6。 二、简答题(本大题共2小题,每题10分,共20分) 1.阅读以下 C 语言程序,程序运行后的结果为________ #include <stdio.h> int main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int i,j,max=a[0][0]; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(a[i][j]>max) max=a[i][j]; } } printf("max=%d ",max); return 0; } 【答案】max=9 2.阅读以下 C 语言程序,程序运行后的结果为________ #include <stdio.h> int main() { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) { b[j][i]=a[i][j]; } } for(i=0;i<3;i++) { for(j=0;j<2;j++) { printf("%d ",b[i][j]); } printf(" "); } return 0; } 【答案】 1 4 2 5 3 6 三、案例分析题(本大题共1小题,每题10分,共10分) 1.以下程序的功能是:输入 3 行 3 列的整数矩阵,计算并输出主对角线元素的和(主对角线是行下标等于列下标元素)。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。 #include <stdio.h> int main() { int a[3][3],i,j,sum=0; printf("请输入3行3列矩阵: "); for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d",____1____); } } for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(____2____) { ____3____; } } } printf("主对角线元素的和为:%d ",____4____); return 0; } 【答案】 1.&a[i][j] 2.i==j 3.sum+=a[i][j](或sum=sum+a[i][j]) 4.sum 四、综合应用题(本大题共1小题,每题10分,共10分) 1.编写一个C语言程序,要求输入 2 行 3 列的整数矩阵,计算并输出该矩阵所有元素的和。 【答案】 #include <stdio.h> int main() { int a[2][3],i,j,sum=0; printf("请输入2行3列矩阵: "); for(i=0;i<2;i++) { for(j=0;j<3;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<2;i++) { for(j=0;j<3;j++) { sum+=a[i][j]; } } printf("矩阵所有元素的和为:%d ",sum); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第9卷 二维数组的定义、初始化及引用《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
1
第9卷 二维数组的定义、初始化及引用《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
2
第9卷 二维数组的定义、初始化及引用《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。