第15练 5.1 一维数组的定义和使用 《编程语言基础——C语言》 (第5版) 一课一练 (湖南)

2026-06-25
| 2份
| 10页
| 3人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 作业-同步练
知识点 数组
使用场景 同步教学
学年 2026-2027
地区(省份) 湖南省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 107 KB
发布时间 2026-06-25
更新时间 2026-06-25
作者 xkw_068401954
品牌系列 上好课·一课一练
审核时间 2026-06-25
下载链接 https://m.zxxk.com/soft/58487492.html
价格 1.00储值(1储值=1元)
来源 学科网

内容正文:

【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《编程语言基础——C语言》(第5版)《一课一练》第15练,内容是5.1 一维数组的定义和使用。 《编程语言基础——C语言》(第5版)一课一练 第15练 5.1 一维数组的定义和使用 一、单选题 1. 以下一维数组定义中,合法的是( ) A. int a[10]; B. int a(10); C. int n=10; int a[n]; D. int a[10,5]; 2. 定义 int a[10]; 后,以下对数组元素的引用中,合法的是( ) A. a[10] = 5; B. a[-1] = 5; C. a[0] = 5; D. a[5.5] = 5; 3. 以下对一维数组初始化的描述中,正确的是( ) A. int a[5]={1,2,3,4,5,6}; 是将6个元素赋给长度为5的数组 B. int a[]; 不写长度是合法的定义方式 C. int a[5]={0*5}; 可使所有元素初始化为0 D. int a[5]={1,2,3}; 则a[3]和a[4]的值为0 4. 定义 int a[] = {1, 3, 5, 7, 9}; 则数组a的长度是( ) A. 4 B. 5 C. 10 D. 不确定 5. 有以下程序段: int i, a[5] = {2, 4, 6, 8, 10}; for (i = 1; i < 5; i++) a[i] = a[i-1] + a[i]; 执行后a[4]的值是( ) A. 10 B. 30 C. 20 D. 28 6. 关于数组在内存中的存储方式,正确的描述是( ) A. 数组元素在内存中连续存放,数组名表示首地址 B. 数组元素在内存中随机存放 C. 数组元素按字母顺序排列 D. 数组元素存放在不同的内存区域 7. 有以下程序段: int a[5] = {0}, i; for (i = 0; i < 5; i++) scanf("%d", &a[i]); 若输入: 10 20 30 40 50,则a[2]的值是( ) A. 10 B. 20 C. 30 D. 0 二、程序运行结果题 8. 以下程序的运行结果是【··】。 #include <stdio.h> main() { int i, a[8] = {1, 1}; for (i = 2; i < 8; i++) a[i] = a[i-1] + a[i-2]; for (i = 0; i < 8; i++) { if (i % 4 == 0 && i != 0) printf(" "); printf("%4d", a[i]); } } 三、程序填空题 9. 以下程序的功能是:输入10个整数存入一维数组,然后按逆序输出。请填空。 #include <stdio.h> main() { int i, a[10]; for (i = 0; i < 10; i++) scanf("%d", &a[i]); for (______【1】______) printf("%d ", a[i]); } 四、阅读程序改错题 10. 阅读以下程序,该程序的功能是找出数组中的最大值及其下标。程序中有1处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。 L1 #include <stdio.h> L2 main() L3 { L4 int i, max, index, a[6] = {23, 45, 12, 67, 34, 89}; L5 max = a[0]; L6 index = 0; L7 for (i = 0; i <= 6; i++) L8 if (a[i] > max) L9 { L10 max = a[i]; L11 index = i; L12 } L13 printf("max=%d, index=%d ", max, index); L14 } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《编程语言基础——C语言》(第5版)《一课一练》第15练,内容是5.1 一维数组的定义和使用。 《编程语言基础——C语言》(第5版)一课一练 第15练 5.1 一维数组的定义和使用 一、单选题 1. 以下一维数组定义中,合法的是( ) A. int a[10]; B. int a(10); C. int n=10; int a[n]; D. int a[10,5]; 【答案】A 【解析】一维数组的定义格式为:类型说明符 数组名[常量表达式]。选项B括号错误,选项C中n是变量不允许动态定义,选项D格式错误。 2. 定义 int a[10]; 后,以下对数组元素的引用中,合法的是( ) A. a[10] = 5; B. a[-1] = 5; C. a[0] = 5; D. a[5.5] = 5; 【答案】C 【解析】数组下标从0开始,a[10]的下标范围是0~9(共10个元素)。a[10]和a[-1]下标越界,a[5.5]下标类型错误。C语言不对下标做越界检查,但编程时应遵守范围。 3. 以下对一维数组初始化的描述中,正确的是( ) A. int a[5]={1,2,3,4,5,6}; 是将6个元素赋给长度为5的数组 B. int a[]; 不写长度是合法的定义方式 C. int a[5]={0*5}; 可使所有元素初始化为0 D. int a[5]={1,2,3}; 则a[3]和a[4]的值为0 【答案】D 【解析】部分初始化时,未被赋值的元素自动为0,所以a[3]=a[4]=0。选项A初值个数超过数组长度不合法;选项B不写长度也没有初值不合法;选项C写法错误。 4. 定义 int a[] = {1, 3, 5, 7, 9}; 则数组a的长度是( ) A. 4 B. 5 C. 10 D. 不确定 【答案】B 【解析】当给出全部元素的初始值时,数组长度可以省略,编译器会根据初值个数自动确定数组长度。这里有5个初值,所以数组长度为5。 5. 有以下程序段: int i, a[5] = {2, 4, 6, 8, 10}; for (i = 1; i < 5; i++) a[i] = a[i-1] + a[i]; 执行后a[4]的值是( ) A. 10 B. 30 C. 20 D. 28 【答案】B 【解析】初始:a[0]=2,a[1]=4,a[2]=6,a[3]=8,a[4]=10。i=1:a[1]=2+4=6;i=2:a[2]=6+6=12;i=3:a[3]=12+8=20;i=4:a[4]=20+10=30。 6. 关于数组在内存中的存储方式,正确的描述是( ) A. 数组元素在内存中连续存放,数组名表示首地址 B. 数组元素在内存中随机存放 C. 数组元素按字母顺序排列 D. 数组元素存放在不同的内存区域 【答案】A 【解析】定义数组时C语言分配足够的内存来存放所有元素,这些元素在内存中是连续存放的,数组名本身表示内存的首地址。 7. 有以下程序段: int a[5] = {0}, i; for (i = 0; i < 5; i++) scanf("%d", &a[i]); 若输入: 10 20 30 40 50,则a[2]的值是( ) A. 10 B. 20 C. 30 D. 0 【答案】C 【解析】循环依次为a[0]~a[4]读取输入值:a[0]=10,a[1]=20,a[2]=30,a[3]=40,a[4]=50。a[2]的值为30。 二、程序运行结果题 8. 以下程序的运行结果是【··】。 #include <stdio.h> main() { int i, a[8] = {1, 1}; for (i = 2; i < 8; i++) a[i] = a[i-1] + a[i-2]; for (i = 0; i < 8; i++) { if (i % 4 == 0 && i != 0) printf(" "); printf("%4d", a[i]); } } 【答案】 1 1 2 3 5 8 13 21 【解析】这是一个Fibonacci数列生成程序。a[0]=1,a[1]=1,然后a[2]=2,a[3]=3,a[4]=5,a[5]=8,a[6]=13,a[7]=21。每4个数换行,最终输出两行,每行4个数。 三、程序填空题 9. 以下程序的功能是:输入10个整数存入一维数组,然后按逆序输出。请填空。 #include <stdio.h> main() { int i, a[10]; for (i = 0; i < 10; i++) scanf("%d", &a[i]); for (______【1】______) printf("%d ", a[i]); } 【答案】【1】i = 9; i >= 0; i-- 【解析】逆序输出即从最后一个元素a[9]开始,依次向前到a[0]。循环初始i=9,条件i>=0,每次i--。 四、阅读程序改错题 10. 阅读以下程序,该程序的功能是找出数组中的最大值及其下标。程序中有1处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。 L1 #include <stdio.h> L2 main() L3 { L4 int i, max, index, a[6] = {23, 45, 12, 67, 34, 89}; L5 max = a[0]; L6 index = 0; L7 for (i = 0; i <= 6; i++) L8 if (a[i] > max) L9 { L10 max = a[i]; L11 index = i; L12 } L13 printf("max=%d, index=%d ", max, index); L14 } 【答案】【1】L7: for (i = 0; i <= 6; i++) → 修改为 for (i = 0; i < 6; i++)(数组a长度为6,有效下标范围0~5,i<=6导致访问a[6]越界) 【解析】数组a长度为6,有效下标范围是0~5。循环条件i<=6会使i取到6,访问a[6]导致越界。改为i<6即可修正。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第15练 5.1 一维数组的定义和使用 《编程语言基础——C语言》 (第5版) 一课一练 (湖南)
1
第15练 5.1 一维数组的定义和使用 《编程语言基础——C语言》 (第5版) 一课一练 (湖南)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。