以下程序运行后的输出结果是 。 #include <stdlib.h> #include <stdio.h> struct NODE { int num;struct NODE *next;}; void main() { struct NODE *p,*q,*r; p=(strcut NODE *)malloc(sizeof(struct NODE)); q=(strcut NODE *)malloc(sizeof(struct NODE)); r=(strcut NODE *)malloc(sizeof(struct NODE)); p->num=10;q->num=20;r->num=30; p->next=q;q->next=r; printf("%d\n",p->num+q->next->num); } A 10 B 20 C 30 D 40
时间: 2023-12-06 20:44:11 浏览: 210
选项D 40 是正确答案。
程序定义了一个结构体NODE,包含一个int型变量num和一个指向NODE类型的指针next。在主函数中,使用malloc函数动态分配了3个NODE类型的空间,并分别将其地址赋给了指针变量p、q和r。接着,通过指针变量p和q分别给它们的num成员变量赋值10和20,并将指针变量p的next成员变量指向了指针变量q,将指针变量q的next成员变量指向了指针变量r。最后,使用printf函数输出表达式p->num+q->next->num的值,即10+20=30。