C语言题目一道~~~~~~

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:48:27
#include<stido.h>
??struct NODE{
??int num;
??struct NODE *next;
??};
??main( )
??{ struct NODE *p,*q,*r;
??int sum=0;
??p=(struct NODE *)malloc(sizeof(struct NODE));
??q=(struct NODE *)malloc(sizeof(struct NODE));
??r=(struct NODE *)malloc(sizeof(struct NODE));
??p->num=1;q->num=2;r->num=3;
??p->next=q;q->next=r;r->next=NULL;
??sum+=q->next->num;sum+=p->num;
??printf(“%d\n”,sum);
??}
?执行后的输出结果是( )。
??A) 3 B) 4 C) 5 D) 6

选什么?
请讲详细的哦~~~
拜托拜托啦·~~~
回复: jxhisok
我比你还晕啦~
如果我自己有能力写这样的 代码就好咯~
就不用问各位啦~~~~
我就是不明白怎么做啊~~~

我晕,这程序应该不是你自己写的吧.如果是你自己写的,你肯定知道答案.

sum+=q->next->num,因为q->next也就是r,所以q->next->num就是r->num.
因此这个时候的sum的值是3.
而p->num=1.所以执行了语句sum+=p->num之后sum的值是4.
所以选 B.

B) 4
sum+=q->next->num;/*q->next->num相当于r->num,3 sum=0+3=3*/
sum+=p->num;/*p->num 1 sum=3+1=4*/

B)4