问题 单项选择题

在我国北方,降水少、雨季短、河流水量小、且降水更集中于夏季,一年内河流水位变化比较大;而南方降水多、雨季长、河流水量大,且降水的季节变化比较小,一年内河流水位变化也比较小。 这段话直接支持了这样一种观点,即( )

A.由于南方降水多,雨季长,因此更容易发生水灾

B.受降水的影响,我国南方的气候比北方更温暖些

C.一个地区一年内河流水量的变化,不但与降水量有关,还与雨季的长短、降雨季节的变化等有直接的关系

D.南、北方应根据河流水位变化的不同规律,因地制宜,兴修水利

答案

参考答案:C

解析: 可用排除法,显然只有C项正确。

填空题
问答题

阅读下列函数说明,将应填入 (n) 处的字句写在答卷纸的对应栏内。
【函数1说明】
函数compare(SqList A,SqList B)的功能是:设A=(al,…,am)和B=(b1,…,bn)均为顺序表,“比较”两个顺序表A和B的大小。设A’和B’分别为A和B中除去最大共同前缀后的子表(例如,A=(y,X,X,Z,X,Z),B=(y,x,x,z,y,x,x,2),则两者中最大的共同前缀为(y,x,x,2),在两表中除去最大共同前缀后的子表分别为A’=(X,Z)和B’=(y,x,x,2))。若A’=B’=空表,则 A=B:若A’=空表,而B’≠空表,或者两者均不为空表,且A’的首元小于B,的首元,则A<B;否则A>B。
提示:算法的基本思想为:若相等,则j+1,之后继续比较后继元素:否则即可得山比较结果。显然,j的初值应为0,循环的条件是j不超出其中任何一个表的范围。若在循环内不能得出比较结果,则循环结束时有3种可能出现的情况需要区分。
【函数1】
int compare(SqList A,SqList B)

//若A<B,则返回-1;若A=B,则返回o:若A>B,则返回1
j=0;
while(j< (1) &&j<B.1ength)
if( A.elem[j] < B.elem[j] ) return(-1);
else if( A.elem[j] > B.elem[j] ) return(i);
else (2)
ff (A.length == B.length) return (0);
else fi(A.length < B.length ) return(-1);
else return(1);
//compare
//函数1的时间复杂度是 (3)
【函数2说明】
函数 exchange_L( SLink &L, int m )的功能是:用尽可能少的辅助空间将单链表中前 m个结点和后 n 个结点的互换。即将单链表(a1,a2,...,am,b1,b2,...,bn) 改变成 (b1,b2,...,bn,a1,a2,…,am)。
【函数2】
void exchange_L( SLink &L, int m )

if( (4) && L->next) // 链表不空且 m!=0

p = L->next; k = 1;
while( k< m && p ) // 查找am所在结点

p = (5) ; ++k;

if( (6) &&p->next)//n!=0 时才需要修改指针

ha = L->next; // 以指针ha记a1 结点的位置
L->next = p->next; // 将b1结点链接在头结点之后
p->next = NULL; // 设am的后继为空
q: (7) ; // 令q 指向b1结点
while(q->next)q= (8) ; // 查的bn结点
q->next = (9) ; // 将a1 结点链接到bn 结点之后



//函数2的时间复杂度是 (10)