参考答案:
(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中的元素的比较处理,其对应的语句如下:
for(i=0;i<m;i++)
{
if(A[i]<=B[0]) continue;
...
}
该语句的作用是将i的值增加到 A[i] >B[0]时为止,即 B[0]是正好小于 A[i]且最接近 A[i]的元素时i的值。
因此,空(2)处应填入 "k〉i" ,使得其所在的for语句能完成将大于或等于 B[0]的元素向后移动(A[k]= A[k-1]) ,接下来在空(3)处将元素 B[0]的值放入A[i],即空(3)处应填入 "B[0]"。
最后需要将备份在temp的数据插入数组B的适当位置。由于原来保存在B[0]中的值已插入A中,因此 B[0]目前是一个空闲单元,如果temp的值比B[1]、B[2]等元素都要大,则需要将B[1]、B[2]等元素的值依次前移,因此空(4)处应填入"temp > B[k] "。完成元素的移动后,将暂存于temp中的元素放入B的适当位置,即空(5)处应填入"temp" 。