问题 问答题

假设学生成绩按学号增序存储在带头结点的单链表中,类型定义如下:
typedef struct Node
int id; /*学号*/
int score; /*成绩*/
srruct Node*next;
LNode,*LinkList;
阅读算法f31,并回答问题:
(1)设结点结构为

,成绩链表A和B如图所示,画出执行算法f31(A,B)后A所指的链表;


(2)简述算法f31的功能。
void f31(LinkList A,LinkList B)
LinkList p,q;
p=A—>next;
q=B—>next;
while(p&&q)
if(p—>id p=p—>next;
else if(p—>id>q—>id)
q=q—>next;
else
if(p—>score<60)
if(q—>score<60)
p—>score=q—>score;
else p—>score=60;
p=p—>next;
q=q—>next;



答案

参考答案:对于表A中成绩低于60的学生,如果在表B中也有成绩记录,则将表A中的成绩修改为其在表B中的成绩;但若其在表B中的成绩高于60分,则只改为60分。

单项选择题 共用题干题
单项选择题