C语言很简单的题 有么高手帮下忙 我是很苦逼的人

第五季思念 2012-11-16 09:20:19
引用
一. 单项选择题(20分)
( )1. 在一个长度为n的线性表中顺序查找值为x的元素时,查找时的平均查找长度(即x同元素的平均比较次数,假定查找每个元素的概率都相等)为 。
a、n b、n/2 c、(n+1)/2 d、(n-1)/2

( )2. 若某链表中最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用________存储方式最节省运算时间(假设链表仅设有一个head指针)。
a. 单链表 b. 双链表
c. 单循环链表 d. 带头结点的双循环链表

( )3. 设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是_______。
a. A,B,C,D b. D,C,B,A c. A,C,D,B d. D,A,B,C

( )4. 若线性表最常用的操作是存取第i个元素及其直接前驱的值,则采用_____存储方式节省时间。
a.顺序表 b.双链表 c.单循环链表 d.单链表

( )5. 在具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是______。
a.O(1) b.O(n2) c.O(nlogn) d.O(n)

( )6. 若指针L指向一带头结点的循环单链表的头结点,该表为空表的条件是_______为真值;
a. !( L -> link ); b. L == (L -> link) -> link;
c. L -> link; d. L == L -> link;

( )7. 用数组A[0..N-1]存放一个循环队列,一元素出队时,其队头指针front的修改方法是________:
a. front = (front + 1) mod N; b. front = (front - 2)mod N;
c. front = front + 1; d. front = front – 2;

( )8. 广义表((f),(f))的表尾是 。
a. f b. (f) c. ((f)) d. ()

( )9. 串是一________。
a. 不少于一个字母的序列 b. 任意个字母的序列
c. 不少于一个字符的序列 d. 有限个字符的序列

( )10. 链表不具有的特点是_______。
a.可随机访问任一元素 b. 插入删除不需要移动元素
c. 不必事先估计存储空间 d. 所需空问与线性表长度成正比

二. 填空作图题(共58分):
1. 假设数组A含有n个元素,函数Random(n)需花费常数时间,sort(A,n)需花费nlog2n步,那么,下面程序段的时间复杂度T(n)=_________________。
sum=0;
for(int i=0; i<n*n; i++)
sum++;
for (i=0; i<n; i++){
for(j=0; j<n; j++)
A[i]=Random(n);
sort(A, n);
}

运算符栈
2. 如果采用一运算数栈和一运算符栈来计算由键盘输入的中缀表达式1+((2+3)*4+5)*9/(5-(6+7)*8)#的值,这里运算数栈用来存放计算过程中使用或产生的运算数,运算符栈用来存放尚未用于计算的运算符,那么按照算法,请将当运算数栈第一次在栈顶出现13时各栈中存放的数据情况填入下表。另外,请写出该中缀表达式对应的后缀表达式: .

运算数栈

3. 画出稀疏矩阵A的三元组表和十字链表。


4. 已知广义表为((), ‘a’, (2,(‘c’,5,8)));试画出该广义表的存储表示。
a 0 1 2 3 4 5 6 7 8
data 60 56 42 38 12 74 25 20
link 4 3 7 -1 2 8 -1 1 6

5. 在下面数组a中链接存储着一个线性表,其表头“指针”为head==0,可利用空间表第一个元素的“指针”av==5:

a 0 1 2 3 4 5 6 7 8
data 88 56 42 38 78 74 66 20
link 4
现在依次进行如下操作:1) 在元素56前插入元素78;2)删除元素60;3)删除25;4)在元素56后插入66;5)在元素66前插入88。请问,在进行上面操作后,av== ,并将此时数组a的内容填入下表:

三. 程序填空(22分)
1. 下面是某种线性表类的定义和实现(仅给出了部分操作)。函数DE()是用来判断线性表是否对称(即线性表 满足 , )。试在程序的每一划线部分填入一条语句或表达式, 完成函数DE()。
typedef struct Node {
int data;
struct Node *next, *prev;
}Node, * List;

void InitList (List &L) //初始化线性表L
{
L = (List) malloc(sizeof(Node));
L->next = L; L->prev = L;
}
void DestroyList(List &L) //销毁线性表L
{
Node *p, *q ; q = L->prev;
while(___①_________________){ p = q; q = q->prev; free(p);}
free(L);
}
bool DE(List &L) //判断线性表L对称否
{
Node *p, *q;
② ______________ ;
q = L ->prev;
while(p->data == q->data) {
if (p==q || ③ ________________ ) return TRUE;
else { ④ ________ ; ⑤ _____________ ; }
}
return FALSE;
}
2. 下面是仅给出了部分操作某线性表类的定义和实现。试在程序的每一划线部分填入一条语句或表达式,完成相应的操作。
typedef node {
int elem;
struct node *next;
}node,*LinkListPtr;

typedef struct {
LinkListPtr head,tail;
LinkListPtr curr;
} LinkList;

void InitLinkList(LinkList &L) //初始化线性表
{
L.head = (node *)malloc(sizeof(node));
if(L.head == NULL){cout<<"Insufficient memory available\n" ;exit(0);};
L.tail = L.head; L.curr = L.head;
}
void insert(LinkList &L,int & item) //在表L的当前位置处插入元素item
{
if(L.curr == NULL){cout<<"Current position is not a legal position\n";exit(0); };
node * newnode = (node *)malloc(sizeof(node));
if(newnode == NULL){cout<<"Insufficient memory available\n" ;exit(0);};
newnode->elem=item;
⑥___ ;
⑦ ;
if (L.tail == L.curr) L.tail = L.curr->next;
}

void setFirst(LinkList &L) //将表的当前位置定位于第1个元素
{
⑧ ;
}

int currValue(LinkList &L) //将表的当前位置的元素值返回
{
if(!isInList(L))
{
cout<<"Current position is not a legal position\n";exit(0);
}
return ⑨ ;
}

bool isEmpty(LinkList &L) //判断线性表是否为空
{
⑩ ;
}

bool isInList(LinkList &L) //判断curr是否在表中
{
return (L.curr != NULL) && (L.curr->next != NULL) && (!isEmpty(L));
}

bool find(LinkList &L ,const int & eval) //从表的当前位置开始查找元素eval
{
while (isInList(L))
if ( ⑾ ) return TRUE;
else L.curr = L.curr->next;
return FALSE;
}

有么高手帮下忙60分足矣
...全文
652 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
第五季思念 2012-11-21
  • 打赏
  • 举报
回复
谢谢各位 我已经工作了 但是不是做C语言方面的 所以才出此下册 这只不过是自考的题
delong45 2012-11-20
  • 打赏
  • 举报
回复
好好学吧,毕业了工作了,我现在无比后悔啊,大学那么多时间都浪费了,悲哀
Q850297396 2012-11-20
  • 打赏
  • 举报
回复
竟然吧试卷的题目抄上来啊?好深奥哦~~我刚刚大一哈~~
Zoelov 2012-11-19
  • 打赏
  • 举报
回复
我做的选择题答案:1-5:c a d a d 6-10:d a * c a;第8题广义表,不懂
Zoelov 2012-11-19
  • 打赏
  • 举报
回复
这是要闹哪样啊,这么多题,我很好奇,你是敲上来的,还是copy上来的?
搬砖随想录 2012-11-19
  • 打赏
  • 举报
回复
ForestDB 2012-11-19
  • 打赏
  • 举报
回复
社会不会在乎你的苦逼。
nadleeh 2012-11-19
  • 打赏
  • 举报
回复
数据结构
李少1991 2012-11-18
  • 打赏
  • 举报
回复
数据结构的内容
Imgnation 2012-11-18
  • 打赏
  • 举报
回复
这么多题。。。。
NowWang 2012-11-18
  • 打赏
  • 举报
回复
引用 16 楼 heywanglei 的回复:
我觉得楼主很幸运 一点都不苦逼 估计楼主是大二计算机专业(我非计算机专业 不太懂) 哥现在都大四了才正式开始学编程 时间真的太少了 楼主应该好好珍惜 我真是希望能回到大一大二 早早开始学习编程 唉。。 ps:在这里也拜个师 哪位前辈给指点指点如何才能快速进入软件行业 不求学多好多深 只要先找到工作 以后在工作中再深入学习 我的专业是机械也找到了对口的专业 但……
编译未通过 堪误一下 是“对口的工作“ 三拜
NowWang 2012-11-18
  • 打赏
  • 举报
回复
我觉得楼主很幸运 一点都不苦逼 估计楼主是大二计算机专业(我非计算机专业 不太懂) 哥现在都大四了才正式开始学编程 时间真的太少了 楼主应该好好珍惜 我真是希望能回到大一大二 早早开始学习编程 唉。。 ps:在这里也拜个师 哪位前辈给指点指点如何才能快速进入软件行业 不求学多好多深 只要先找到工作 以后在工作中再深入学习 我的专业是机械也找到了对口的专业 但是真心想搞编程啊 再拜
firendlys 2012-11-18
  • 打赏
  • 举报
回复
这题目的量也太大了些,懒得做......还是自己一个题目一个题目百度吧......
NowWang 2012-11-18
  • 打赏
  • 举报
回复
100分明显不够用啊 100美刀可以凑合
第五季思念 2012-11-18
  • 打赏
  • 举报
回复
引用 10 楼 xiaoqin515515 的回复:
数据结构考试???
是的 数据结构(C语言版)
第五季思念 2012-11-18
  • 打赏
  • 举报
回复
引用 4 楼 JiMoKuangXiangQu 的回复:
数据结构考试题?
对是大学数据结构的题
dhdahai 2012-11-17
  • 打赏
  • 举报
回复
慧钦 2012-11-17
  • 打赏
  • 举报
回复
数据结构考试???
Binzo 2012-11-17
  • 打赏
  • 举报
回复
楼主倒是挺实在。
Primitive_forest 2012-11-17
  • 打赏
  • 举报
回复
少壮不努力,老大徒伤悲。为何不自己做呢?
加载更多回复(6)

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧