一、单项选择题(第1~40小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项最符合试题要求)
1、已知头指针h指向一个带头结点的非空单循环链表,结点结构为:
data | next |
其中next是指向直接后继结点的指针,p是尾指针,q是临时指针。现要删除该链表的第一个元素,正确的语句序列是( )。
A.h->next=h->next->next;q=h->next;free(q);
B.q=h->next;h->next=h->next->next;free(q);
C.q=h->next;h->next=q->next;if(p!=q)p=h;free(q);
D.q=h->next;h->next=q->next;if(p==q)p=h;free(q);
【答案】D
【考点】本题考查单循环链表的删除操作。
【解析】该单循环链表带头结点,因此要删除的元素在头结点之后的元素。首先看A选项,h->next=h->next->next;此时q=h->next;q指向的是第一个元素的next元素,free(q);操作删除的不是第一个元素,因此A选项错误。在B选项中,没有考虑仅有一个元素的情况。若只有一个元素,删除后尾指针应当指向头结点,因此B选项错误。在C选项中,if条件语句错误。D选项能正确删除第一个元素且考虑了仅有一个元素的情况,故本题选D。
2、已知初始为空的队列Q的一端仅能进行入队操作,另外一端既能进行入队操作又能进行出队操作。若Q的入队序列是1,2,3,4,5,则不能得到的出队序列是( )。
A.5,4,3,1,2
B.5,3,1,2,4
C.4,2,1,3,5
D.4,1,3,2,5
【答案】D
【考点】本题考查队列的基本操作。
3、已知二维数组A按行优先方法存储,每个元素占用1个存储单元。若元素A[0][0]的存储地址是100,A[3][3]的存储地址是220,则元素A[5][5]的存储地址是( )。
A.295
B.300
C.301
D.306
【答案】B
【考点】本题考查二维数组的存储。
【解析】注意本题是按行优先存储,并且元素存储的首地址为A[0][0]。设将数组有J列,则A[3][3]之前存储了第0行全部元素,共J个;第1行的元素,共J个;第2行全部的元素,共J个;第3行的三个元素A[3][0]、A[3][1]、A[3][2],因此add(A[3][3])=100+3*J+3=220。解得,J=39。add(A[5][5])=100+5*J+5=300。故本题选B。
相关推荐:
课程名称 | 有效期 | 课程价格 | 课程服务 |
2025考研英语考前100天听写自习室 | 2024-12-29 | 9.9 | 具体咨询希赛网老师 |
2025届考研英语冲刺点睛班 | 购买后365天有效 | 4000 | 具体咨询希赛网老师 |
2025届考研英语阶段突破班 | 购买后365天有效 | 5700 | 具体咨询希赛网老师 |
2025届考研英语基础进阶班 | 购买后365天有效 | 12250 | 具体咨询希赛网老师 |