专题六 数组(课件)-《编程语言基础—C语言》(高教版第五版)高考备考讲练测(山东省)

2024-07-29
| 30页
| 178人阅读
| 2人下载
精品

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 5.1 一维数组的定义和使用,5.2 二维数组的定义和使用,5.3 字符数组的定义和使用
类型 课件
知识点 数组
使用场景 中职复习-二轮专题
学年 2024-2025
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 PPTX
文件大小 35.82 MB
发布时间 2024-07-29
更新时间 2024-07-29
作者 xkw__007
品牌系列 上好课·一轮讲练测
审核时间 2024-07-29
下载链接 https://m.zxxk.com/soft/46571555.html
价格 5.00储值(1储值=1元)
来源 学科网

内容正文:

专题六 数组 编程语言基础—C语言 专题复习讲练测 1 理解一维数组的定义及初始化。 掌握一维数组元素的引用。 理解二维数组的定义及初始化。 掌握二维数组元素的引用。 掌握字符数组的定义及引用。 一 考纲要求  二 知识点梳理 一:一维数组 C语言中的一维数组是一种基本的数据结构,它允许存储相同类型的多个元素。 在C语言中,一维数组的定义格式如下: 其中type是数据类型,arrayName是数组的名称,数组名的命名遵循与变量名相同的规则。arraySize是数组的大小,即数组可以存储的元素数量。 初始化数组 静态初始化:在定义数组时直接赋值。 动态初始化:在定义数组后,通过循环或单个赋值来初始化。 二 知识点梳理 一:一维数组 当一维数组只给部分元素赋值时,未显式赋值的元素将被初始化为该类型的默认值。对于基本数据类型(如int、char、float等),这个默认值通常是0。 使用索引来访问数组的元素,索引从0开始。 初始化一个数组,使得所有元素都具有相同的值。 对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组的长度。 二 知识点梳理 一:一维数组 数组在内存中是连续存储的,这意味着数组的元素在内存中是紧密排列的。数组有上限和下限,访问数组时不能超出这个范围。尝试访问数组之外的元素将导致未定义行为。  注意事项: ① 数组大小必须是常量:在C语言中,数组的大小必须是常量和符号常量。 ② 数组不要越界:访问数组元素时,索引值必须在0到数组大小减一的范围内。 ③ 初始化:没有初始化数组,那么数组的元素将包含垃圾值。 ④ 使用正确的数据类型:数组可以存储任何类型的数据,确保数组的数据类型与存储的元素类型一致。 二 知识点梳理 二:二维数组 C语言中的二维数组可以看作是数组的数组,即每个元素本身也是一个数组。这使得二维数组非常适合于表示矩阵或表格数据。 其中type是数据类型,arrayName是数组的名称,rowSize是行数,columnSize是列数。 二维数组的元素通过两个索引访问,第一个索引表示行,第二个索引表示列。其中,索引可以是整数表达式。在使用数组元素时,应注意下标值应在已定义的数组大小的范围内。 二 知识点梳理 二:二维数组 静态初始化:在声明时直接初始化,适用于已知所有元素值的情况。 arr 是一个3行4列的二维数组,每个元素都被显式初始化。 也可以将所有的数据写在一个花括弧内,按数组排序的顺序对各元素赋初值。 二维数组的列数已知,但行数未知时,可以只初始化数组的列。例如,如果数组的列数是4: 二 知识点梳理 二:二维数组 arr[0] 完全初始化,arr[1][2] 和 arr[1][3] 将自动初始化为0。arr[2] 将完全初始化为0,因为它没有任何显式的初始化值。 二维数组的行数,但列数未知时,可以初始化数组的行,但只给部分列赋值: 如果对全部的元素赋初值,则定义数组时对第一维的长度可以省略,第二维的长度不能省略。 二 知识点梳理 三:字符数组 C语言中的字符数组是一种特殊的数组,其元素类型为char。字符数组在C语言中有着广泛的应用,特别是在处理字符串时。 字符数组的每个元素可以通过其索引来引用。索引从0开始。例如,对于以下声明的字符数组: 引用第一个字符('H')如下: 可以通过索引来修改数组中的元素: 二 知识点梳理 三:字符数组 输入字符数组: 使用 scanf 函数 scanf 可以用来读取格式化的输入,但不适合直接读取字符串,因为它会在遇到空格、制表符或换行符时停止读取。 gets函数 gets函数用于从标准输入(通常是键盘)读取一行文本,直到遇到换行符 。它将读取的字符串存储在指定的字符数组中,并且不包括换行符。 二 知识点梳理 三:字符数组 输出字符数组 使用 printf 函数:使用%s格式化输出字符串。 使用 puts 函数:puts 会输出字符串,并且在末尾自动添加换行符。 使用循环逐个字符输出:如果你需要对字符串进行特殊处理,比如转换为大写或小写,可以逐个字符输出。 二 知识点梳理 三:字符数组 字符串处理函数: C语言中的字符串处理函数提供了丰富的功能,用于执行各种字符串操作,如复制、连接、比较、搜索等。 复制字符串 - strcpy 二 知识点梳理 三:字符数组 连接字符串 - strcat 二 知识点梳理 三:字符数组 获取字符串长度 - strlen strlen返回字符串的长度,不包括结尾的空字符'\0'。 二 知识点梳理 三:字符数组 比较字符串 - strcmp strcmp返回0如果两个字符串相等,负数如果str1小于str2,正数如果str1大于str2。 三 真题练讲 1.(2019职教高考题)以下程序运行后,键盘输入4回车,结果是( ) #include <stdio.h> int main() { int a[] = {1, 3, 5, 7, 2, 4, 6, 8}, i, start; scanf("%d", &start); for (i = 0; i < 3; i++) printf("%d", a[(start + i) % 3]); return 0; } A.131 B.264 C.351 D.486 三 真题练讲 【答案】C 【解析】start变量的值将被设置为4。接下来,循环将执行三次: 第一次循环:i = 0,(start + i) % 3的结果是4 % 3,即1。数组a中索引为1的元素是3。 第二次循环:i = 1,(start + i) % 3的结果是(4 + 1) % 3,即5。数组a中索引为5的元素是7。 第三次循环:i = 2,(start + i) % 3的结果是(4 + 2) % 3,即0。数组a中索引为0的元素是1。 因此,程序将依次打印出3、7和1。 三 真题练讲 2.(2020职教高考题)执行以下语句后,a[2]的值为( ) int a[10] = {12, 23, 5, 20, 3, 6, 18}; a[2] += a[3] + a[1] + a[4] * a[7] - a[5]; A.37 B.42 C.96 D.101 【答案】B 【解析】a[2] = a[2]+a[3]+a[1]+a[4]*a[7]-a[5]=5+20+23+3*0-6=42 三 真题练讲 3.(2020年职教高考题)下列定义二维数组的语句中,正确的是( ) 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 【解析】变量不能用作定义数组的大小;数组名的命名规则和标识符的命名规则相同,即开头不能是数字。二维数组可以省略一维数组的长度,但不能省略二维数组的长度。 B.switch(x+y) { case 11:w=y-x,break; case 10:w=x+y;break; default:w=x*y;) } 三 真题练讲 4.(2019年职教高考题)以下程序段的运行结果是( ) #include <stdio.h> int main() { int a[][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}; int i = 0, j = 0, s = 0; while (i++ < 4) { if (i == 2 || i == 4) continue; j = 0; do { s += a[i][j]; j++; } while (j < 4); } printf("%d", s); } A.100 B.84 C.68 D.36 B.switch(x+y) { case 11:w=y-x,break; case 10:w=x+y;break; default:w=x*y;) } 三 真题练讲 【答案】B 【解析】当i等于1时,累加的元素是a[1][0]到a[1][3],即5, 6, 7, 8。 当i等于3时,累加的元素是a[3][0]到a[3][3],即13, 14, 15, 16。 所以,程序的输出将是s=(5+6+7+8)+(13+14+15+16)=26+58=84。 三 真题练讲 5.(2020年职教高考题)请编写程序,将11位评委给出的选手成绩存至一维数组,计算并输出选手的最终成绩(保留两位小数)。选手的最终成绩为去掉一个最高分和一个最低分的平均成绩。 三 真题练讲 【答案】#include <stdio.h> int main() { float scores[11]; // 存储11位评委给出的成绩 float sum = 0.0f; // 存储总分 float minScore = 100.0f; // 初始最低分为一个较大的数 float maxScore = 0.0f; // 初始最高分为0 int i; // 输入11位评委的成绩 printf("请输入11位评委的成绩: "); for (i = 0; i < 11; i++) { scanf("%f", &scores[i]); if (scores[i] < minScore) minScore = scores[i]; // 更新最低分 if (scores[i] > maxScore) maxScore = scores[i]; // 更新最高分 } // 去掉最高分和最低分后的总分 for (i = 0; i < 11; i++) { sum += (scores[i] == minScore || scores[i] == maxScore) ? 0 : scores[i]; } // 计算平均分 float average = (sum - minScore - maxScore) / 9; // 输出最终成绩,保留两位小数 printf("选手的最终成绩为:%.2f ", average); return 0; } 四 限时练习 1.关于数组描述错误的是( ) A.数组的下标是从0开始的 B.数组在内存中是连续存放的 C.数组名表示首元素的地址 D.随着数组下标的由小到大,地址由高到低 【答案】D 【解析】C语言规定,数组的下标是从0开始的。数组的空间是一段连续的内存空间。数组名表示首元素的地址。 四 限时练习 2.以下对一维数组a进行正确初始化错误的是( ) A.int arr[10] = {1,2,3,4,5,6}; B.int arr[] = {1,2,3,4,5,6}; C.int arr[] = (1,2,3,4,5,6); D.int arr[10] = {0}; 【答案】C 【解析】A选项:数组arr被显式地声明为有10个元素,并且前6个元素被初始化为1到6,剩余的元素将默认初始化为0。B选项:数组arr的大小可以根据初始化列表中的元素数量来自动确定,这里它将有6个元素。C选项:在C或C++中,数组初始化必须使用花括号{}而不是圆括号()。D选项:数组arr被显式地声明为有10个元素,并且所有元素都被初始化为0。 四 限时练习 3.若定义int a[2][3]={1,2,3,4,5,6};则值为4的数组元素是( ) A.a[0][0] B.a[1][0] C.a[1][1] D.a[2][1] 【答案】B 【解析】二维数组的初始化是按行进行的。给定的初始化int a[2][3] = {1, 2, 3, 4, 5, 6};意味着: 第一行(索引0)包含元素a[0][0]到a[0][2],分别初始化为1, 2, 3。 第二行(索引1)包含元素a[1][0]到a[1][2],分别初始化为4, 5, 6。 四 限时练习 4.以下对二维数组a进行正确初始化的是( ) A.int a[2][3]={ {1,2},{3,4},{5,6} }; B.int a[ ][3]={1,2,3,4,5,6 }; C.int a[2][ ]={1,2,3,4,5,6}; D.int a[2][ ]={ { 1,2},{3,4}}; 【答案】B 【解析】A选项:超过二维数组a所定义的行数。C、D选项:二维数组当中省略第二维的大小,但必须指定第一维的大小。 四 限时练习 5.该程序的输出结果为___________。 #include <stdio.h> int main() { char str[] = "hello bit"; printf("%d,%d ", sizeof(str), strlen(str)); return 0; } 【答案】10,9 C语言中的数组是一种基本数据结构,用于存储固定数量的相同类型的元素。 声明:使用类型和数组名来声明,例如 int arr[10]; 声明了一个可以存储10个整数的数组。 初始化:静态初始化:int arr[] = {1, 2, 3}; 自动填充剩余元素为0。动态初始化:在声明后使用循环或赋值语句填充数组。 访问:通过索引访问数组元素,索引从0开始,例如 arr[0] 访问第一个元素。 大小:数组的大小在声明时确定,并且在运行时不能改变。 多维数组:可以声明多维数组,例如 int matrix[3][4]; 表示3行4列的二维数组。 指针与数组:数组名可以作为指向数组首元素的指针使用,例如 int *p = arr;。 字符串:在C语言中,字符串通常以字符数组的形式存在,并以空字符('\0')结尾。 数组越界:访问数组的非法索引(超出声明的大小)可能导致未定义行为。 五 内容小结 感谢观看 $$

资源预览图

专题六 数组(课件)-《编程语言基础—C语言》(高教版第五版)高考备考讲练测(山东省)
1
专题六 数组(课件)-《编程语言基础—C语言》(高教版第五版)高考备考讲练测(山东省)
2
专题六 数组(课件)-《编程语言基础—C语言》(高教版第五版)高考备考讲练测(山东省)
3
专题六 数组(课件)-《编程语言基础—C语言》(高教版第五版)高考备考讲练测(山东省)
4
专题六 数组(课件)-《编程语言基础—C语言》(高教版第五版)高考备考讲练测(山东省)
5
专题六 数组(课件)-《编程语言基础—C语言》(高教版第五版)高考备考讲练测(山东省)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。