学习笔记大纲
一、预习部分:数组基础
(一)核心知识点
- 数组的创建:掌握一维数组的声明方式,如int arr[5];(创建一个包含 5 个整数的数组)。重点在于理解数组长度需为常量,且在声明时确定。
- 数组的初始化:学会为数组赋值,例如int arr[] = {1, 2, 3};,可省略数组长度,编译器根据初始化值自动确定。
- 数组元素的访问:通过索引访问数组元素,索引从 0 开始,如arr[1]表示访问数组arr的第二个元素。
(二)重点考点
- 数组声明时长度的正确设定。
- 数组初始化的不同方式及适用场景。
- 数组元素索引的正确使用。
(三)难点易错点
- 数组索引越界问题,如访问arr[5](数组长度为 5 时,最大索引为 4)。
- 错误地将变量作为数组长度进行声明,例如int n = 5; int arr[n];(C++ 中这种写法在部分编译器不支持)。
(四)预习练习题
1. 填空题
(1) 声明一个包含 10 个浮点数的数组,正确写法是______。
(2) 初始化一个数组arr,包含元素 3、5、7,写法为______。
(3) 若int arr[] = {1, 2, 3, 4, 5},访问数组中第 4 个元素的表达式是______。
2. 选择题
(1) 以下数组声明正确的是( )
A. int arr;
B. int arr [ ];
C. int n = 10; int arr [n];
D. int arr [10];
(2) 若int arr[] = {1, 2, 3},则数组arr的长度为( )
A. 1
B. 2
C. 3
D. 不确定
(3) 访问数组int arr[5]的最后一个元素,正确的是( )
A. arr [5]
B. arr [4]
C. arr [6]
D. arr [-1]
3. 判断题
(1) 数组索引可以从 1 开始。( )
(2) 声明数组时,长度必须在编译时确定。( )
(3) 初始化数组时,必须指定数组长度。( )
4. 编程题
(1) 声明并初始化一个包含 5 个整数的数组,然后输出数组中的所有元素。
(2) 创建一个数组,存储 5 个学生的成绩,计算并输出这些成绩的平均值。
(3) 编写程序,交换数组中第一个元素和最后一个元素的值,并输出交换后的数组。
(4) 声明一个数组,接收用户输入的 10 个整数,找出其中的最大值并输出。
(5) 初始化一个数组,包含 10 个随机整数,统计数组中偶数的个数并输出。
(6) 编写程序,判断数组中是否存在某个特定的整数(用户输入),若存在则输出其索引,否则输出 - 1。
(7) 创建一个数组,存储一周 7 天的温度,找出温度最高的一天并输出是第几天。
(8) 声明一个数组,将数组中的元素逆序存储(例如原数组为 {1, 2, 3},逆序后为 {3, 2, 1}),并输出逆序后的数组。
(9) 初始化一个数组,包含 8 个字符,判断这些字符组成的字符串是否为回文串(正读和反读都一样),并输出判断结果。
(10) 编写程序,创建一个数组,接收用户输入的 8 个整数,将数组中所有奇数移到数组的前面,偶数移到数组的后面,并输出调整后的数组。
二、复习部分:循环与判断语句
(一)核心知识点
- 累加器公式:
- 初始化累加器变量,如int sum = 0;。
- 在循环中执行累加操作,如sum = sum + i;(i为循环变量)。
- 循环结束后,sum即为累加结果。
- 循环语句:
- for 循环:掌握其语法结构for (初始化表达式; 条件表达式; 更新表达式) { 循环体; },常用于已知循环次数的场景。重点是理解三个表达式的作用及执行顺序。
- while 循环:语法为while (条件表达式) { 循环体; },条件为真时执行循环体。
- 判断语句:
- if - else if - else:用于多条件判断,如判断奇数和偶数。
- switch - case:适用于多个固定值的判断,如根据输入数字判断是否上编程课。
(二)重点考点
- 累加器的正确使用及在循环中的位置。
- for 循环和 while 循环的条件判断与循环体执行逻辑。
- if - else if - else 和 switch - case 语句的适用场景及语法规则。
(三)难点易错点
- 循环条件设置不当导致死循环或循环次数错误。
- 在 switch - case 语句中忘记使用break,导致穿透执行。
- 累加器初始化位置错误,或在错误的循环中使用累加器。
(四)复习练习题
1. 填空题
(1) for 循环中,若要计算 1 到 100 的和,初始化表达式为int i = 1;,条件表达式为______,更新表达式为______。
(2) 在 if 语句中,判断一个数num为偶数的条件表达式是______。
(3) switch 语句中,每个 case 分支后通常需要添加______语句,以防止穿透执行。
2. 选择题
(1) 以下 for 循环的循环次数是( )
for (int i = 0; i < 10; i += 2) {
// 循环体
}
A. 5
B. 10
C. 20
D. 无限次
(2) 若要判断一个数是否在 1 到 100 之间,以下 if 语句正确的是( )
A. if (num > 1 && num < 100) {... }
B. if (num >= 1 || num <= 100) {... }
C. if (num >= 1 && num <= 100) {... }
D. if (num > 1 || num < 100) {... }
(3) 在 switch - case 语句中,若没有匹配的 case,执行( )
A. 第一个 case 分支
B. 最后一个 case 分支
C. default 分支(如果存在)
D. 不执行任何分支
3. 判断题
(1) while 循环中,只要条件表达式为真,循环体就会一直执行。( )
(2) 在 for 循环中,初始化表达式只能初始化一个变量。( )
(3) if - else if - else 语句中,最多只能有一个 else if 分支。( )
4. 编程题
(1) 使用 for 循环计算 1 到 200 中所有能被 3 整除的数的和。
(2) 输入一个整数,使用 while 循环输出 1 到该整数的所有偶数。
(3) 编写程序,使用 if - else if - else 语句判断一个年份是否为闰年(闰年的条件:能被 4 整除但不能被 100 整除,或者能被 400 整除)。
(4) 使用 switch - case 语句,根据用户输入的 1 - 7 的数字,输出对应的星期几(如输入 1,输出 “星期一”)。
(5) 计算 1 到 1000 中,能被 6 和 7 整除的数的和,并输出这些数字(用空格分开),最后输出数字的个数。
(6) 输入一个整数,判断它是正数、负数还是零,使用 if - else 语句实现,并输出判断结果。
(7) 使用 for 循环输出 1 到 100 之间所有能被 5 整除但不能被 3 整除的数。
(8) 编写程序,接收用户输入的 5 个整数,使用 switch - case 语句对这 5 个数进行排序(简单选择排序,通过多次比较和交换实现),并输出排序后的结果。
(9) 利用 while 循环,计算用户输入的一组数字(以 - 1 作为结束标志)的平均值,并输出结果。
(10) 编写程序,判断一个字符串(用户输入)中是否包含特定字符(用户输入),使用 for 循环遍历字符串,若包含则输出该字符在字符串中的位置,否则输出 “未找到”。