有以下程序 #include <stdio.h> struct link{ int data; struct link* next; }; main() { struc

admin2021-04-28  56

问题 有以下程序
#include <stdio.h>
struct  link{
              int  data;
              struct  link* next;
            };
main()
{  struct  link  *h,a ,b;
   h=&a; a.data=10; a.next=&b; b.data=20;
           ┋
}
程序运行时不能输出10,20的语句是

选项 A、printf("%d,%d \n",h->data,a.next.data);
B、printf("%d,%d \n",a.data,(*a.next).data);
C、printf("%d,%d \n",h->data,(*a.next).data);
D、printf("%d,%d \n",a.data,a.next->data);

答案A

解析 可用以下3种形式来引用结构体变量中的成员:结构体变量名.成员名;指针变量名->成员名;(*指针变量名).成员名。主函数定义了两个结构体变量a,b其成员data 分别为10和20,且a成员指针指向b。A选项中a.next为指针,其引用格式为a.next->data与(*a.next).data,A选项错误,故选择A选项。B选项a.data=10,(*a.next).data=20,能正确输出10,20;C选项h->data=10,(*a.next).data=20,能正确输出10,20;D选项a.data=10,a.next->data=20,能正确输出10,20。
转载请注明原文地址:https://jikaoti.com/ti/3Dz0FFFM
0

最新回复(0)