选择题   有以下结构体说明、变量定义和赋值语句:
      struct STD
      { char name[10];
      int age;
      char sex;
      } s[5], *ps;
      ps=&s[0];
      则以下scanf函数调用语句错误的是______。
 
【正确答案】 A
【答案解析】[考点] 预编译处理、动态分配、结构体、位运算和文件 要给结构体成员输入数据,在scanf语句中需要使用结构体成员的地址。scanf函数是C语言的标准输入函数,其作用是在终端设备上输入数据,而且要求输入项必须是某个存储地址。选项scanf('%s',s[0].name);中是引用结构体数组s的第0个元素,s[0]的name成员,name是包含10个元素的数组,数组名就表示数组的地址,也就代表s[0].name的地址,所以是正确的。选项scanf('%d',&s[0].age);显然也是正确的。选项scanf('%c',&(ps->sex));是先用指针变量引用结构体的成员sex后取它的地址,也是正确的。而选项scanf('%d',ps->age);用指针变量引用结构体的成员sex后没有再继续取其地址,所以是错误的。