注意:此页面搜索的是所有试题
国家开放大学数据结构复习题
int suml(int n)
{
int p=1,s=0;
for (int i=1; i<=n; i++) {
p*=i;
s+=p;
}
return s;
}

int sum2(int n)
{
int s=0;
for (int I=1; I<=n; I++) {
int p=1;
for (int j=1; j<=I; j++)
p*=j;
s+=p;
}
return s;
}

int fun (int n)
{
int I=1, s=1;
while (s<n)
s+=++I;
return I;
}

设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为( )。
A. n-i B. n-i-1 C. n-i+1 D. i

设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为( )。A. I B. n-i-1 C. n-i D. n-i+1
在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( )。
A. q->next=NULL B. p->next=q->next
C. p=q->next D. p->next=q

在一个单链表中p所指结点之后插入一个s所指的结点时,可执行( )。
A. p->next= s; s->next= p->next B. p->next=s->next;
C. s->next=p->next; p->next=s; D. p=s->next

非空的单向循环链表的尾结点满足( )(设头指针为head,指针p指向尾结点)。
A. p->next==head B. p==NULL
C. p== head D. p->next==NULL

链表不具有的特点是( )。
A. 不必事先估计存储空间
B. 可随机访问任一元素
C. 逻辑上相邻的元素在物理位置上不一定相邻
D. 插入删除不需要移动元素

带头结点的链表为空的判断条件是( )(设头指针为head)。
A. head->next==head
B. head ==NULL
C. head->next==NULL
D. head!=NULL

在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。则原顺序表的长度为( )。
A. 19 B. 21 C. 20 D. 25

有关线性表的正确说法是( )。
A. 线性表至少要求一个元素
B. 每个元素都有一个直接前驱和一个直接后继
C. 表中的元素必须按由小到大或由大到下排序
D. 除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继

向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动( )个元素。
A. 63.5 B. 7
C. 63 D. 8

一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的地址是( )。
A. 106 B. 98
C. 102 D. 100

在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,且p、q仍然分别指向新表中第一个结点和尾结点。可用的语句是p=p->next;和( )。
A. q->next=p B. p->next=q
C. q=p D. p=q->next