有以下结构体说明、变量定义和赋值语句         struct STD         { char name[10];           int age;           char sex;         }s[5],*ps;        

admin2013-06-11  25

问题 有以下结构体说明、变量定义和赋值语句         struct STD         { char name[10];           int age;           char sex;         }s[5],*ps;         ps=&s[0];         则以下scanf函数调用语句中错误引用结构体变量成员的是______。

选项 A、scanf("%s",s[0].name);
B、scanf("%d",&s[0].age);       
C、scanf("%c",&(ps->sex));
D、scanf("%d",ps->age);

答案D

解析 要给结构体成员输入数据,在scanf语句中需要使用结构体成员的地址。函数scanf是C语言的标准输入函数,其作用是在终端设备上输入数据,而且要求输入项必须是某个存储地址。选项A中是引用结构体数组s的第0个元素s[0]的name成员,name是包含10个元素的数组,数组名就表示数组的地址,也就代表s[0].name的地址,所以选项A是正确的。选项B显然也是正确的,选项C是先用指针变量引用结构体的成员sex后取它的地址,也是正确的。选项D用指针变量引用结构体的成员sex后没有再继续取其地址,所以是错误的。
转载请注明原文地址:https://kaotiyun.com/show/E3Jp777K
0

最新回复(0)