某一维数组中依次存放了数据元素12,23,30,38,41,52,54,76,85,在用折半(二分)查找方法(向上取整)查找元素54时,所经历“比较”运算的数据元素依次为(62)。
A.41,52,54
B.41,76,54
C.41,76,52,54
D.41,30,76,54
A.41,52,54
B.41,76,54
C.41,76,52,54
D.41,30,76,54
A.62,88,95
B.62,95
C.55,88,95
D.55,95
(60)
A. 62, 88, 95
B. 62, 95
C. 55, 88, 95
D. 55, 95
(62)
A. 41, 52, 54
B. 41, 76, 54
C. 41, 76, 52, 54
D. 41, 30, 76, 54
A.10,16,12
B.10,12,16
C.5,8,6
D.5,6,8
试题四(共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函数】
void Adjustment(int A[],int B[],int m,int n)
{ /*数组A有m个元素,数组B有n个元素*/
inti,k,temp;
for(i=0;i<m;i++)
{
if(A[i]<=B[0]) continue,
temp= (1) ;/*将A中的最大元素备份至temp*/
/*从后往前依次考查A的元素,移动A的元素并将来自B的最小元素插入A中*/
for(k= m-1; (2) ;k--)
A[k]=A[k-1];
A[i]=(3) ;
/*将备份在temp的数据插入数组B的适当位置*/
for(k=1; (4) &&k<n;k++)
B[k_1]=B[k];
B[k-1]= (5) ;
}
}
设有如下定义: char*a[3]={"aa","bb","cc"}; 则以下说法正确的是______。
A.数组a的第二个元素的值是"bb"
B.输出"cc"使用语句printf("%s",a[2]);
C.数组a的3个元素分别存放的是含有两个字符的一维字符数组
D.数组a的3个元素中各自存放了字符'a'、'b'和'c'
A.[303]~a[605]
B.[304]~a[605]
C.[1]~a[302]
D.[1]~a[303]
A.冒泡排序是相邻元素进行比较
B.排序算法通常把数据保存在数组中
C.二分查找必须在有序序列中进行
D.选择排序是拿每轮的第一个数依次与后面的每个数进行比较
A.产生随机数时不使用Int函数
B.循环2的初值应为i= x
C.数组定义改为Dim a(11)As Integer
D.循环3的循环终值应改为9