第62卷 数组《算法与程序设计-C#》河北省(对口招生)《计算机类考纲百套卷》

2026-05-20
| 2份
| 18页
| 98人阅读
| 0人下载

内容正文:

编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第62卷为考点训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.数组的定义、初始化、引用、数组中数据对象的赋值与输出,数组排序;2.遍历数组元素的方法。 2027版河北省《计算机类考纲百套卷》 第62卷 《算法与程序设计-C#》 数组 知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、单项选择题(本大题共15小题,每题2分,共30分) 1.关于C#中数组的定义,以下( )是正确的。 A. 数组的长度可以在运行时改变 B. 数组是引用类型,存储在堆上 C. 数组的元素必须是值类型 D. 数组的索引从1开始 2.以下( )语句正确声明了一个整型数组。 A. int[] arr = new int[]; B. int arr[] = new int[5]; C. int[] arr = new int[5]; D. int arr = new int[5]; 3.关于数组的初始化,以下( )是错误的。 A. int[] arr = {1, 2, 3}; B. int[] arr = new int[3] {1, 2, 3}; C. int[] arr = new int[] {1, 2, 3}; D. int[] arr = new int[3]; arr = {1, 2, 3}; 4.关于多维数组,以下说法正确的是( ) A. 二维数组的声明方式为 int[,] arr = new int[3,4]; B. 交错数组(锯齿数组)的元素必须是相同长度的数组 C. 交错数组的声明方式为 int[][] arr = new int[3][4]; D. 多维数组的 Length 属性返回每一维的长度之和 5.以下代码的输出是( ) int[] arr = {5, 3, 8, 1, 9}; Array.Sort(arr); Console.WriteLine(arr[1]); A. 5 B. 3 C. 1 D. 8 6.以下代码的输出是( ) int[] arr1 = {1, 2, 3}; int[] arr2 = arr1; arr2[0] = 10; Console.WriteLine(arr1[0]); A. 1 B. 10 C. 编译错误 D. 运行时错误 7.以下选项中,正确声明了一个交错数组(锯齿数组)的是( ) A. int[][] arr = new int[3][]; B. int[,] arr = new int[3,4]; C. int[] arr = new int[3]; D. int[][] arr = new int[][3]; 8.关于 Array.Resize 方法,以下说法正确的是( ) A. 它修改原数组的长度 B. 它返回一个新数组,原数组不变 C. 它可能改变原数组的引用 D. 它只能增大数组,不能缩小 9.以下代码的输出是( ) int[] arr = {5, 2, 8, 1, 9}; Array.Sort(arr, 1, 3); Console.WriteLine(arr[2]); A. 5 B. 2 C. 8 D. 1 10.以下代码的输出是( ) string[] arr = new string[3]; arr[0] = "Hello"; arr[1] = "World"; Console.WriteLine(arr[2]); A. Hello B. World C. 空字符串 D. null 11.以下代码的输出是( ) int[] arr1 = {1, 2, 3}; int[] arr2 = new int[3]; Array.Copy(arr1, arr2, 2); Console.WriteLine(arr2[2]); A. 0 B. 1 C. 2 D. 3 12.关于数组的 GetUpperBound 方法,以下说法正确的是( ) A. 它返回数组指定维度的上限索引 B. 它返回数组指定维度的长度 C. 它返回数组的总长度 D. 它只适用于一维数组 13.关于数组的索引(下标),下列说法错误的是( ) A. 数组的索引是从 0 开始的 B. 长度为 n 的数组,最大索引是 n-1 C. 访问数组时,如果索引超出范围,会抛出 IndexOutOfRangeException 异常 D. 数组的索引可以是 double 类型,如 arr[1.5] 14.下列关于 foreach 循环遍历数组的描述,正确的是( ) A. foreach 循环可以在遍历过程中直接修改数组元素的值 B. foreach 循环可以获取当前元素的索引值 C. foreach 循环只能用于只读访问数组元素,语法更简洁 D. foreach 循环的执行效率比 for 循环低很多,不建议使用 15.关于交错数组(数组的数组),下列说法正确的是( ) A. 交错数组的每一行(内嵌数组)长度必须相同 B. 交错数组的声明方式是 int[,] C. 交错数组在内存中是连续存储的 D. 交错数组的每一行都是一个独立的一维数组,长度可以不同 二、判断题(本大题共10小题,每题2分,共20分) 16.在C#中,数组的长度一旦确定,就不能再改变。( ) 17.数组是引用类型,但数组的元素可以是值类型或引用类型。( ) 18. 使用 foreach 循环遍历数组时,可以修改数组元素的值。( ) 19.使用 Array.IndexOf 方法如果没有找到元素,会返回 -1。( ) 20.可以使用数组的 Length 属性作为 for 循环的终止条件,以防止索引越界。( ) 21.使用 foreach 遍历数组时,可以从数组的最后一个元素开始向前遍历。( ) 22.二维数组 int[,] arr = new int[3, 4]; 在内存中占用的空间是连续的。( ) 23.交错数组 int[][] jagged = new int[3][]; 创建后可以直接使用 jagged[0][0] = 1; 赋值。( ) 24.foreach遍历多维数组时,按照列优先的顺序访问所有元素。( ) 25.二维数组可以使用 arr.GetLength(0) 获取行数,arr.GetLength(1) 获取列数。( ) 3、 填空题(本大题共10个题,每题2分,共20分) 26.已知数组 int[] arr = new int[5]; 则 arr.Length 的值是________ 27.以下代码的输出是________。 int[] arr = new int[] {10, 20, 30, 40, 50}; Console.WriteLine(arr[2]); 28.在C#中,获取数组长度的属性是________。 29.创建包含5个整型元素的数组,并初始化为0,语句是:________。 30.创建数组并直接赋初始值 {1, 2, 3, 4, 5},省略new的写法是:____。 31.数组的索引从____开始,最大索引是____。 32.设有 int[] a = {1, 2, 3}; int[] b = a;,执行后a和b指向____(相同/不同)的数组对象。 33.Array.Sort()方法实现的是____(升序/降序)排序,且____(会/不会)修改原数组。 34.设有 int[,] arr = new int[3, 4];,arr.GetLength(0)返回____,arr.GetLength(1)返回____。 35.____方法可以在数组中查找指定元素并返回其第一次出现的索引。 四、程序读程题(本大题共3个题,每题10分,共30分) 36.执行下列C#代码后,程序的运行结果为_________ int[,] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; int product = 1; for (int i = 0; i < matrix.GetLength(0); i++) { for (int j = 0; j < matrix.GetLength(1); j++) { if (i == j) product *= matrix[i, j]; } } Console.WriteLine(product); 37. 执行下列C#代码后,程序的运行结果为_________ static void Main() { int[] arr = { 2, 5, 2, 8, 5, 9, 2, 8, 6, 5 }; int len = arr.Length; int[] unique = new int[len]; int[] countArr = new int[len]; int uniqueLen = 0; for (int i = 0; i < len; i++) { bool exist = false; for (int j = 0; j < uniqueLen; j++) { if (arr[i] == unique[j]) { countArr[j]++; exist = true; break; } } if (!exist) { unique[uniqueLen] = arr[i]; countArr[uniqueLen] = 1; uniqueLen++; } } for (int i = 0; i < uniqueLen; i++) { Console.WriteLine("元素{0}:{1}", unique[i], countArr[i]); } } 38. 执行下列C#代码后,程序的运行结果为_________. static void Main() { int[,] mat = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int n = mat.GetLength(0); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { int temp = mat[i, j]; mat[i, j] = mat[j, i]; mat[j, i] = temp; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write(mat[i, j] + " "); } Console.WriteLine(); } } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第62卷为考点训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.数组的定义、初始化、引用、数组中数据对象的赋值与输出,数组排序;2.遍历数组元素的方法。 2027版河北省《计算机类考纲百套卷》 第62卷 《算法与程序设计-C#》 数组 知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、单项选择题(本大题共15小题,每题2分,共30分) 1.关于C#中数组的定义,以下( )是正确的。 A. 数组的长度可以在运行时改变 B. 数组是引用类型,存储在堆上 C. 数组的元素必须是值类型 D. 数组的索引从1开始 【答案】B 【解析】数组是引用类型,在堆上分配内存。A错误,数组一旦创建,其长度是固定的。C错误,数组的元素可以是任何类型,包括引用类型。D错误,C#数组的索引从0开始。 2.以下( )语句正确声明了一个整型数组。 A. int[] arr = new int[]; B. int arr[] = new int[5]; C. int[] arr = new int[5]; D. int arr = new int[5]; 【答案】C 【解析】C#中数组声明的正确语法是:类型[] 数组名 = new 类型[长度]。 3.关于数组的初始化,以下( )是错误的。 A. int[] arr = {1, 2, 3}; B. int[] arr = new int[3] {1, 2, 3}; C. int[] arr = new int[] {1, 2, 3}; D. int[] arr = new int[3]; arr = {1, 2, 3}; 【答案】D 【解析】因为数组初始化后,不能使用简化形式重新赋值。 4.关于多维数组,以下说法正确的是( ) A. 二维数组的声明方式为 int[,] arr = new int[3,4]; B. 交错数组(锯齿数组)的元素必须是相同长度的数组 C. 交错数组的声明方式为 int[][] arr = new int[3][4]; D. 多维数组的 Length 属性返回每一维的长度之和 【答案】A 【解析】交错数组的元素是数组,但这些数组的长度可以不同。交错数组的声明应为 int[][] arr = new int[3][]; 然后分别为每个元素实例化数组。 5.以下代码的输出是( ) int[] arr = {5, 3, 8, 1, 9}; Array.Sort(arr); Console.WriteLine(arr[1]); A. 5 B. 3 C. 1 D. 8 【答案】B 【解析】Array.Sort 对数组进行升序排序,排序后为 {1,3,5,8,9},arr[1] 是第二个元素 3。 6.以下代码的输出是( ) int[] arr1 = {1, 2, 3}; int[] arr2 = arr1; arr2[0] = 10; Console.WriteLine(arr1[0]); A. 1 B. 10 C. 编译错误 D. 运行时错误 【答案】B 【解析】 数组是引用类型,arr2 = arr1 使得 arr2 和 arr1 指向同一个数组对象。修改 arr2[0] 即修改了该数组的第一个元素,所以 arr1[0] 也变为10。 7.以下选项中,正确声明了一个交错数组(锯齿数组)的是( ) A. int[][] arr = new int[3][]; B. int[,] arr = new int[3,4]; C. int[] arr = new int[3]; D. int[][] arr = new int[][3]; 【答案】A 【解析】交错数组的声明是 int[][] arr = new int[行数][]; 然后为每一行分配不同长度的数组。 8.关于 Array.Resize 方法,以下说法正确的是( ) A. 它修改原数组的长度 B. 它返回一个新数组,原数组不变 C. 它可能改变原数组的引用 D. 它只能增大数组,不能缩小 【答案】C 【解析】Array.Resize 方法实际上会创建一个新数组,并将原数组的元素复制到新数组,然后改变原数组的引用指向新数组。 9.以下代码的输出是( ) int[] arr = {5, 2, 8, 1, 9}; Array.Sort(arr, 1, 3); Console.WriteLine(arr[2]); A. 5 B. 2 C. 8 D. 1 【答案】B 【解析】Array.Sort(arr, 1, 3) 对数组从索引1开始连续3个元素排序。 10.以下代码的输出是( ) string[] arr = new string[3]; arr[0] = "Hello"; arr[1] = "World"; Console.WriteLine(arr[2]); A. Hello B. World C. 空字符串 D. null 【答案】D 【解析】字符串数组是引用类型数组,每个元素默认初始化为 null。 11.以下代码的输出是( ) int[] arr1 = {1, 2, 3}; int[] arr2 = new int[3]; Array.Copy(arr1, arr2, 2); Console.WriteLine(arr2[2]); A. 0 B. 1 C. 2 D. 3 【答案】A 【解析】Array.Copy 复制源数组的前2个元素到目标数组,所以 arr2 的前两个元素变为1,2,第三个元素没有复制,保持默认值0。 12.关于数组的 GetUpperBound 方法,以下说法正确的是( ) A. 它返回数组指定维度的上限索引 B. 它返回数组指定维度的长度 C. 它返回数组的总长度 D. 它只适用于一维数组 【答案】A 【解析】GetUpperBound 返回指定维度的最大索引(即上限),对于一维数组,返回值为 Length-1。 13.关于数组的索引(下标),下列说法错误的是( ) A. 数组的索引是从 0 开始的 B. 长度为 n 的数组,最大索引是 n-1 C. 访问数组时,如果索引超出范围,会抛出 IndexOutOfRangeException 异常 D. 数组的索引可以是 double 类型,如 arr[1.5] 【答案】D 【解析】数组的索引必须是整数类型(如 int),不能是浮点数。 14.下列关于 foreach 循环遍历数组的描述,正确的是( ) A. foreach 循环可以在遍历过程中直接修改数组元素的值 B. foreach 循环可以获取当前元素的索引值 C. foreach 循环只能用于只读访问数组元素,语法更简洁 D. foreach 循环的执行效率比 for 循环低很多,不建议使用 【答案】C 【解析】foreach 是只读遍历,循环变量(如 foreach(int x in arr) 中的 x)是迭代变量的副本,修改它不会影响原数组,且编译器禁止直接赋值。它也无法直接获取索引。 15.关于交错数组(数组的数组),下列说法正确的是( ) A. 交错数组的每一行(内嵌数组)长度必须相同 B. 交错数组的声明方式是 int[,] C. 交错数组在内存中是连续存储的 D. 交错数组的每一行都是一个独立的一维数组,长度可以不同 【答案】D 【解析】交错数组(int[][])本质是“数组的数组”。外层数组的每个元素存储的是内层数组的引用,因此内层数组的长度可以各不相同,且内存不连续。 二、判断题(本大题共10小题,每题2分,共20分) 16.在C#中,数组的长度一旦确定,就不能再改变。( ) 【答案】对 【解析】数组是固定长度的集合。 17.数组是引用类型,但数组的元素可以是值类型或引用类型。( ) 【答案】对 【解析】C# 中所有数组本身都是引用类型,存储在堆上。 18. 使用 foreach 循环遍历数组时,可以修改数组元素的值。( ) 【答案】错 【解析】foreach 遍历数组时,迭代变量是只读副本;不能在 foreach 里修改数组元素。 19.使用 Array.IndexOf 方法如果没有找到元素,会返回 -1。( ) 【答案】对 【解析】找到元素:返回对应索引,没找到元素:固定返回 -1 20.可以使用数组的 Length 属性作为 for 循环的终止条件,以防止索引越界。( ) 【答案】对 【解析】数组索引从 0 开始,最大合法索引是 Length - 1。 21.使用 foreach 遍历数组时,可以从数组的最后一个元素开始向前遍历。( ) 【答案】错 【解析】foreach 只能按照数组的自然顺序(从索引 0 到 Length-1)进行正向遍历,无法控制遍历方向或步长。 22.二维数组 int[,] arr = new int[3, 4]; 在内存中占用的空间是连续的。( ) 【答案】对 【解析】矩形数组(多维数组)在内存中是按行优先顺序连续排列的。 23.交错数组 int[][] jagged = new int[3][]; 创建后可以直接使用 jagged[0][0] = 1; 赋值。( ) 【答案】错 【解析】 创建交错数组 new int[3][] 只创建了外层数组(包含3个引用),每个子数组的默认值都是null。在使用子数组元素前,必须先为每个子数组分配内存。 24.foreach遍历多维数组时,按照列优先的顺序访问所有元素。( ) 【答案】错 【解析】 foreach遍历多维数组时,按照行优先的顺序访问元素。 25.二维数组可以使用 arr.GetLength(0) 获取行数,arr.GetLength(1) 获取列数。( ) 【答案】对 【解析】 GetLength(维度)方法返回指定维度的长度。对于二维数组,GetLength(0)返回第一维(行数),GetLength(1)返回第二维(列数)。 3、 填空题(本大题共10个题,每题2分,共20分) 26.已知数组 int[] arr = new int[5]; 则 arr.Length 的值是________ 【答案】5 【解析】数组的 Length 属性表示数组的元素个数,这里声明了长度为5的数组,所以为5。 27.以下代码的输出是________。 int[] arr = new int[] {10, 20, 30, 40, 50}; Console.WriteLine(arr[2]); 【答案】30 【解析】数组索引从0开始,arr[2]是第三个元素,即30。 28.在C#中,获取数组长度的属性是________。 【答案】Length 【解析】数组使用 .Length 属性获取总元素个数。 29.创建包含5个整型元素的数组,并初始化为0,语句是:________。 【答案】 int[] arr = new int[5]; 【解析】使用new关键字指定长度创建数组,会将所有元素初始化为默认值。int类型的默认值是0。 30.创建数组并直接赋初始值 {1, 2, 3, 4, 5},省略new的写法是:____。 【答案】int[] arr = {1, 2, 3, 4, 5}; 【解析】C#支持数组初始化简写形式,编译器会自动推断数组长度并创建数组对象。 31.数组的索引从____开始,最大索引是____。 【答案】 0;Length-1 【解析】数组索引从0开始不是1。对于长度为n的数组,最大有效索引是n-1(Length-1)。 32.设有 int[] a = {1, 2, 3}; int[] b = a;,执行后a和b指向____(相同/不同)的数组对象。 【答案】相同 【解析】数组赋值给另一个数组变量,只是复制了引用,两者指向同一对象。修改其中一个会影响另一个。 33.Array.Sort()方法实现的是____(升序/降序)排序,且____(会/不会)修改原数组。 【答案】升序;会 【解析】Array.Sort()默认升序排序,且直接修改原数组,不返回排序后的数组。 34.设有 int[,] arr = new int[3, 4];,arr.GetLength(0)返回____,arr.GetLength(1)返回____。 【答案】 3;4 【解析】 GetLength(维度)返回指定维度的长度。GetLength(0)是第一维(行数),GetLength(1)是第二维(列数)。 35.____方法可以在数组中查找指定元素并返回其第一次出现的索引。 【答案】Array.IndexOf 【解析】IndexOf()返回元素第一次出现的索引,找不到返回-1。LastIndexOf()返回最后一次出现的索引。 四、程序读程题(本大题共3个题,每题10分,共30分) 36.执行下列C#代码后,程序的运行结果为_________ int[,] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; int product = 1; for (int i = 0; i < matrix.GetLength(0); i++) { for (int j = 0; j < matrix.GetLength(1); j++) { if (i == j) product *= matrix[i, j]; } } Console.WriteLine(product); 【答案】45 【解析】二维数组,主对角线上的元素为matrix[0,0]=1, matrix[1,1]=5, matrix[2,2]=9,乘积为1 * 5 * 9=45。 37. 执行下列C#代码后,程序的运行结果为_________ static void Main() { int[] arr = { 2, 5, 2, 8, 5, 9, 2, 8, 6, 5 }; int len = arr.Length; int[] unique = new int[len]; int[] countArr = new int[len]; int uniqueLen = 0; for (int i = 0; i < len; i++) { bool exist = false; for (int j = 0; j < uniqueLen; j++) { if (arr[i] == unique[j]) { countArr[j]++; exist = true; break; } } if (!exist) { unique[uniqueLen] = arr[i]; countArr[uniqueLen] = 1; uniqueLen++; } } for (int i = 0; i < uniqueLen; i++) { Console.WriteLine("元素{0}:{1}", unique[i], countArr[i]); } } 【答案】 元素2:3 元素5:3 元素8:2 元素9:1 元素6:1 【解析】countArr[]:和 unique 下标一一对应,存对应元素出现次数。 38. 执行下列C#代码后,程序的运行结果为_________. static void Main() { int[,] mat = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int n = mat.GetLength(0); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { int temp = mat[i, j]; mat[i, j] = mat[j, i]; mat[j, i] = temp; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write(mat[i, j] + " "); } Console.WriteLine(); } } 【答案】 1 4 7 2 5 8 3 6 9 【解析】GetLength(0) → 行数,GetLength(1) → 列数,新建转置矩阵,行列互换。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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