问答题 试题四(共15分) 阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 [说明] 已知两个整数数组A和B中分别存放了长度为m和n的两个非递减有序序列,函数Adjustment(A,B,m,n)的功能是合并两个非递减序列,并将序列的前m个整数存入A中,其余元素依序存入B中。 例如: 合并过程如下:从数组A的第一个元素开始处理。用数组B的最小元素B[0]与数组A的当前元素比较,若A的元素较小,则继续考查A的下一个元素;否则,先将A的最大元素暂存入temp,然后移动A中的元素挪出空闲单元并将B[0]插入数组A,最后将暂存在temp中的数据插入数组B的适当位置(保持B的有序性)。如此重复,直到A中所有元素都不大于B中所有元素为止。 [C函数]
【正确答案】 (1)A[m-1],或*(A+m-1),或其等价表示 (2)k>i,或其等价表示 (3)B[0],或*B (4)temp>B[k],或temp>*(B+k),或其等价表示 (5)temp
【答案解析】 本题考查C程序设计基本技术。 题目中涉及的考点主要有一维数组及程序的运算逻辑,分析代码时首先要明确各个变量所起的作用,并按照语句组分析各段代码的功能,从而完成空缺处的代码。 根据题目中的说明和注释,此题的代码逻辑较为清楚。显然,A的最大元素总是其最后一个元素,因此,空(1)处应填入“A[m-1]”。 空(2)所在语句从后往前移动A的元素,然后将来自B的最小元素插入A数组的适当位置,显然需要通过比较B[0]与A中的元素来查找插入位置。 对于B[0]与A中的元素的比较处理,其对应的语句如下: