7月5号和6号复习和预习(C++)
基础知识点讲解
- 数组基本概念:数组是存储相同类型数据的集合,有固定长度,通过下标访问元素(下标从 0 开始)。
- 复习部分
- 数组创建与初始化:可声明时直接初始化,如
int a[]={1,2,3}
;也可指定长度后赋值,如int a[3]; a[0]=1
。 - 元素访问:通过
数组名[下标]
,如a[1]
访问第二个元素。 - 遍历数组:用 for 循环,循环变量作为下标遍历所有元素。
- 数组操作:包括找最大 / 最小值、交换元素、累加求和、求平均值等。
- 数组创建与初始化:可声明时直接初始化,如
- 预习部分(二维数组):本质是 “数组的数组”,声明形式如
int a[2][3]
,表示 2 行 3 列,通过a[i][j]
访问第 i 行第 j 列元素。
知识点总结
- 复习部分
- 数组创建与初始化的两种方式及注意事项(长度固定)。
- 元素访问的下标规则(从 0 开始,避免越界)。
- 遍历数组的 for 循环应用。
- 常见操作:找最值、交换元素、求和、求平均值。
- 预习部分:二维数组的声明、元素访问方式。
重点难点考点
- 重点:数组元素访问的下标规则、遍历数组的方法、基本操作的实现。
- 难点:数组下标越界问题、遍历过程中对元素的复杂操作(如交换、找最值)。
- 考点:数组初始化的正确写法、遍历数组的代码实现、基本操作(求和、求最值等)的编程题。
练习题
填空题
- 数组
int a[5]={1,2,3}
中,未初始化的元素值为(0)。 - 访问数组
int b[]={5,6,7}
的最后一个元素,表达式为(b [2])。 - 遍历长度为 5 的数组
c
,for 循环的循环变量 i 的范围应从(0)到(4)。 - 交换数组
d[]={3,4}
中两个元素后,数组变为({4,3})。 - 二维数组
int e[2][2]={{1,2},{3,4}}
中,e[1][0]
的值是(3)。
选择题
- 以下数组初始化正确的是(C)
A.int a[]
B.int a[3]={1,2,3,4}
C.int a[]={1,2}
D.int a[2]={1}
(第二个元素未初始化,虽允许但不完整,C 更正确) - 数组
int f[]={9,8,7,6}
的长度为(B)
A. 3 B. 4 C. 5 D. 不确定 - 要访问数组
g[5]
的第三个元素,正确的是(B)
A.g[3]
B.g[2]
C.g[1]
D.g[0]
- 以下不能实现数组
h[]={2,5}
元素交换的是(A)
A.h[0]=h[1]; h[1]=h[0]
B.int t=h[0]; h[0]=h[1]; h[1]=t
- 二维数组
int i[3][2]
的元素总数是(A)
A. 6 B. 5 C. 4 D. 3
判断题
- 数组的下标可以是负数。(×)
- 数组声明后,长度可以改变。(×)
- 遍历数组时,循环变量的最大值可以等于数组长度。(×)
- 求数组元素的和时,初始累加器应设为 0。(√)
- 二维数组的行下标和列下标都从 0 开始。(√)
编程题
- 创建数组
int a[]={2,4,6,8,10}
,输出所有元素。 - 数组
int b[]={5,3,9,1}
,找出最大值并输出。 - 交换数组
int c[]={7,8}
中两个元素后输出数组。 - 计算数组
int d[]={60,70,80}
的平均值并输出。 - 声明二维数组
int e[2][2]={{1,2},{3,4}}
,输出所有元素。
题解
填空题
- 解析:局部数组未初始化的元素默认值为 0。
- 解析:数组长度为 3,最后一个元素下标为 2。
- 解析:数组下标从 0 开始,长度 5 的数组下标为 0-4。
- 解析:交换后第一个元素变 4,第二个变 3。
- 解析:二维数组
e[1][0]
表示第二行第一个元素,即 3。
选择题
- 解析:A 未初始化且无长度;B 初始化元素数超过长度;D 正确但不完整,C 正确。
- 解析:数组元素有 4 个,长度为 4。
- 解析:第三个元素下标为 2。
- 解析:A 会导致两个元素值相同,无法完成交换;B 用临时变量正确。
- 解析:3 行 2 列,元素总数 3×2=6。
判断题
- 解析:下标不能为负数,否则越界。
- 解析:数组长度一旦确定不可改变。
- 解析:最大下标为长度 - 1,循环变量超过则越界。
- 解析:累加器初始为 0,才能正确累加元素和。
- 解析:二维数组下标从 0 开始,与一维数组一致。
编程题
- 代码:
c
#include <stdio.h>
int main() {int a[]={2,4,6,8,10};for(int i=0;i<5;i++){printf("%d ",a[i]);}return 0;
}
输出:2 4 6 8 10
2. 代码:
c
#include <stdio.h>
int main() {int b[]={5,3,9,1},max=b[0];for(int i=1;i<4;i++){if(b[i]>max) max=b[i];}printf("%d",max);return 0;
}
输出:9
3. 代码:
c
#include <stdio.h>
int main() {int c[]={7,8},t=c[0];c[0]=c[1];c[1]=t;printf("%d %d",c[0],c[1]);return 0;
}
输出:8 7
4. 代码:
c
#include <stdio.h>
int main() {int d[]={60,70,80},sum=0;for(int i=0;i<3;i++){sum+=d[i];}printf("%.1f",sum/3.0);return 0;
}
输出:70.0
5. 代码:
c
#include <stdio.h>
int main() {int e[2][2]={{1,2},{3,4}};for(int i=0;i<2;i++){for(int j=0;j<2;j++){printf("%d ",e[i][j]);}printf("\n");}return 0;
}
输出:1 2
3 4