中程下午答案

西门龟 2003-10-13 02:43:27
我的下午考试答案是:
一:
H
L
ENG(I)
CN(I)


二:
s+strlen(s)
*p==char
ptr=tree->left
ptr=tree->right
ptr

三:
v=v->next //不用前驱,因为只找相同不相同
v==base
v->no<p->no
base=v
v->next=p

四:
k!=0
(n-k+i)%n
j
a[t]
i=(i+1)%n

五:
p->next=*top
*top=(*top)->next
t->next=p
p->next=q->next
*tail=p
...全文
38 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuibobo 2003-10-16
  • 打赏
  • 举报
回复
我的答案如下
一:
H
L
ENG(I+1) //这道或者可以写ENG(L)
CN(I+1)
(2) //估计错了!

二:
s+strlen(s)+1 //真他妈的画蛇填足,还加个1 ×
*p==ch
ptr=tree->left
ptr=tree->right
ptr

三:
u=v;v=v->next //忘加前趁了,不过我相信加了前趁才是正确的
v==base
v->no<p->no
base=v
v->next=p

四:
k!=0
(j+k)%2n //好像错了
j
a[t]
i++ //理论上不是这个答案

五:
p->next=*top
*top=p->next
t->next=p
p->next=q->next
*tail=p
西门龟 2003-10-16
  • 打赏
  • 举报
回复
有这样赋值的吗?谁见过这样的赋值语句?
char *s="hello";
char *p;
p=for (p=s;*p!='\0';p++);
不对
西门龟 2003-10-16
  • 打赏
  • 举报
回复
p=for (p=s;*p!='\0';p++);
这样编译通不过
wwwwjjjj 2003-10-16
  • 打赏
  • 举报
回复
to:西门庆
经过for循环后
p肯定是指向'\0'的那个地址的即指向字符串尾字符后面的那个地址
西门龟 2003-10-16
  • 打赏
  • 举报
回复
任任:
指向字符串末尾,是应该指向最后一个字符还是指向'\0'?
'\0'应该是系统加上的,不应该算末尾吧?
rmdic 2003-10-15
  • 打赏
  • 举报
回复
下午的那么简单,
大家都过了,不用跟了,
西门龟 2003-10-15
  • 打赏
  • 举报
回复
顺便说一下for (p=s;p;p++)
p是要指向最后一个字符,这样的话p就指向'\0'了。
应该是for (p=s;*(p+1);p++)
西门龟 2003-10-15
  • 打赏
  • 举报
回复
夜兄:不好意思,是出链表。
夜光寒 2003-10-15
  • 打赏
  • 举报
回复
西兄:找到相同结点就出队?不是出队吧,出队是指队列,只能从第一个元素上删除。在链表中可是删除。当然要删除!看看我的上一条。
夜光寒 2003-10-15
  • 打赏
  • 举报
回复
我下午考的还可以,估计只错了3个空左右。上面林兄说的对,第二题第一空我的错了,我写成p=s+strlen(s),这个看似正确的答案,我从一开始就认为它是错的。
  u=v,v=v->next//必须要从头赋值,因为从文件中读出来的信息你并不知道是比第一个结点大还是小,虽然已有的链表已经从大到小排过序了。
  第三道题,我在考试的头天晚上才做的一道1993年下午第8题原题,后来又对了答案,这道题我的答案是全对。15分。
  这道题的算法是:从文件中读入工号和工数,先在已排序的链表中从第一个结点开始查找,如果有相同的工号,则把工数相加,并同时把这个结点从原来有序的结点中删除,因为工数已经发生变化,得重新把这个结点插入到原链表中进行排序。如果没有相同工号,则产生一个新的结点,插入链表中。最后输出时,(这部分试卷没有写出,但1993年的题上有)先按工数排序,工数相同的按工号排序输出,这部分从v->no<p—>no也可以看出。
西门龟 2003-10-15
  • 打赏
  • 举报
回复
他找到相同结点时就进行了出队操作。
(n+t-k)%n错了,没有考虑k>n的情况,如果k>n那么结果将是一个负数。
i有可能超过n,因为当n=1,k=8时,你看看是什么情况。
wwwwjjjj 2003-10-15
  • 打赏
  • 举报
回复
西门庆,关于这题、你觉得你说的不正确。
/*顺便说一下for (p=s;p;p++)
p是要指向最后一个字符,这样的话p就指向'\0'了。
应该是for (p=s;*(p+1);p++)*/
我觉得p=for(p=s;p;p++);是正确的.
1、经过for循环后;p的确是指向'\0',即在p中存放'\0'的地址.然后再将这个地址赋给p,这时p的地址值仍然'\0'的地址.
2、在接下来的while(--p!=s)先让p-1,也就指向了'\0'前的那个字符.依次循环.
夜光寒 2003-10-15
  • 打赏
  • 举报
回复
u=v,v=v->next//这里只是要找有没有相同的工号,如果没找到,后面的循环又从头比较数量大小,u又被从头赋值。
===============
从头开始赋值,当然!如果没有u记录v的头一个结点,那么相同的结点如果在第二个以后呢?你如何知道v的上一个结点是多少?又如何把找到的这个相同的结点删除?所以,这里v是必须要的。
mingking 2003-10-15
  • 打赏
  • 举报
回复
第一步:
最后一个空:
我填的是:
第四步;对吗?
夜光寒 2003-10-15
  • 打赏
  • 举报
回复
这位sisi兄台,ptr如果到了叶结点就成了NULL,不然就是当前指针,所以一点都没有想简单,不然你可否给个答案?
leonhartlx 2003-10-15
  • 打赏
  • 举报
回复
第二题p要指向结束标致 用strlen求出个数值给指针有什么用?
第三题排序树最后一空
题目上说 找到返回当前指针 找不到返回NULL
楼上的几个都只返回一个结果 是不是想的太简单了
Lonerlin 2003-10-14
  • 打赏
  • 举报
回复
我的也是(n+t-k)%n我想了很久,也验证过了,没错.
西门龟 2003-10-14
  • 打赏
  • 举报
回复
t的值只是在循环结束时和j不同,但如果i变为2时,t没有初始化,而j=i
wwwwjjjj 2003-10-13
  • 打赏
  • 举报
回复
第四题最后一个空
i++会大于n吗?不可能的!
所以不应该去求余n才对
cenfan 2003-10-13
  • 打赏
  • 举报
回复
(n+t-k)%n//这里应该是t,
加载更多回复(18)

2,958

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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