文档介绍:4 数组
一、选择填空
答案:D。
分析:本题的关键是要弄清以下两点。
(1) C 语言允许对 main()函数中说明的数组赋初值,且当花括号内提供的初值个数少于
数组元素个数时,系统自动用 0 值补足。程序中第 3 行是正确的。
(2) 根据 C 语言规定,数组元素下标的下限应从 0 值开始,按照本程序对一维数组 a
的定义,数组有 a[0],a[1]和 a[2] 3 个元素,因此程序的第 6 行和第 7 行均是正确的。由此可
知,所给程序是正确的。
答案: C
分析:程序中定义的数组 a 是一个实型数组,第 5 行中给数组 a 输入数据时,用的是 d
格式,因此是错误的。
在 C 程序中,如果定义的变量是实型,而输入是按整型格式输入的,则得不到正确的
输入值;如果定义的变量是整型,输入是按实型格式输入的,则会得到如下出错信息:
scanf: floating point formats not linked
Abnormal program termination
答案:D
分析:整型数组只能按数组元素的形式输入,不能用数组名进行输入。
答案: D
分析:程序第 6 行中,当 i=3 时有:a[0]=a[0]+a[3];这时 a[3]是越界使用数组,程序运
行结果将会出现错误。
答案: B
分析:二维数组 a 的第 i-1 行共有 i*m 个元素,第 i 行第 j 列的元素有 i*m+j+1 个,因
此 a[i][j]前的元素个数有 i*m+j 个。
答案: B
分析:插入排序的基本思想是把 n 个数据元素分为两部分:已排序子表和未排序子表。
每次从未排序子表中取出表头元素按排序关系插入到已排序子表中,当未排序子表为空时,
排序完成。
答案: (1) B (2) B
分析:插入元素的基本思想是:首先找到插入位置,然后从最后一个元素开始,将最
后一个元素到插入位置上的元素依次向后移动一个位置。外层 for 循环控制字符串 s,只
要没有到串尾,循环就要继续;while 循环用于确定插入位置;内层 for 循环用于进行字符
元素的移动。
通常,插入算法应包含 4 个主要步骤。
(1) 确定插入位置。
(2) 把从最后一个元素到插入位置的每一个元素依次向后移动一个位置,即把 a[n] 中的
值放到 a[n+1] 中。
(3) 在确定的插入位置上放入待插入的值。
(4) 元素的个数增 1。
答案: (1) A (2) D (3) A
1
分析:略
答案: (1) A
分析:略
二、填空题
答案:(1) i+1 (2) --i 或 i--或 i=i-1 (3) ++i (4) n
分析:根据题意,有序数列放在数组 a 中,要将 x 的值插入其中。本程序中利用
while 循环完成插入的(1)、(2)步骤,变量 i 用来依次指向 a 数组中的每一个元素,最后
用来确定插入位置。在进入 while 循环之前,变量 i 被赋 n 值,即 i 是 a 数组中最后一个元
素的下标值,由此可确定 i 将从