(49)若有以下定义:
struct link
{ int data;
struct link *next;
}a,b,c,*p,*q;
且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是
A)a.next=c;c.next=b;
B)p.next=q;q.next=p.next;
C)p->next=&c;q->next=p->next;
D)(*p).next=q;(*q).next=&b;
【答案】D
【解析】在本题中指针p指向变量a,q指向变量c。要把c插入到变量a和变量b之间,就应该首先让变量a的指针域指向变量c,即(*p).next=q,然后让变量c的指针域指向变量b,即(*q).next=&b。
(50)设有以下说明语句
typedef struct
{ int n;
char ch[8];
} PER;
则下面叙述中正确的是
A)PER是结构体变量名
B)PER是结构体类型名
C)typedef struct是结构体类型
D)struct是结构体类型名
【答案】B
【解析】本题通过typedef在定义一个结构体类型的同时,把它自定义成类型名PER,故PER是结构体类型名。