niusouti.com

有以下结构体说明,变量定义和赋值语句: struct STD {char name[10]; int age; char ***; }s[5],*ps; ps=&s[0]; 则以下scanf函数调用语句中错误的结构体变量成员是( )。A.scanf("%s",s[0].name);B.scanf("%d",&s[0].age);C.scanf("%c",&(ps->***));D.scanf("%d",ps->age);

题目

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

A.scanf("%s",s[0].name);

B.scanf("%d",&s[0].age);

C.scanf("%c",&(ps->***));

D.scanf("%d",ps->age);


相似考题
更多“有以下结构体说明,变量定义和赋值语句:struct STD{char name[10];int age;char ***;}s[5],*ps;ps ”相关问题
  • 第1题:

    有以下结构体说明、变量定义和赋值语句 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);


    A ps一>age不是地址,不能用于scanf函数中。所以选择A)。

  • 第2题:

    【单选题】若有如下定义: char s[20],*ps=s; 则,以下赋值语句正确的是________。(第7章 指针程序设计)

    A.s=ps+s;

    B.ps=20;

    C.s[5]=ps[9];

    D.ps=s[0];


    分析:此题涉及的知识点是字符数组与指针的应用,对每个选项逐个分析如下:(1) 数组名代表数组的首地址,s=ps+s;对数组名赋值是不允许的。(2) ps=ps+20;将会使数组的使用超界,导致产生不能预料的错误。(3) s[5]=ps[9];等价于s[5]=s[9];,实现对数组元素s[5]的赋值。(4) ps=s[0];试图将一个整数值赋值给指针变量,这是不允许的。所以答案为选项 C。

  • 第3题:

    若有如下定义: char s[20],*ps=s; 则以下赋值语句正确的是()。

    A.s=ps+s;

    B.ps=ps+20;

    C.s[5]=ps[9];

    D.ps=s[0];


    ps=ps+20;

  • 第4题:

    若有如下定义: char s[20],*ps=s; 则以下赋值语句正确的是()

    A.s=ps+s;

    B.ps=ps+20;

    C.s[5]=ps[9];

    D.ps=s[0];


    ps=ps+20;

  • 第5题:

    有以下结构体说明、变量定义和赋值语句 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);


    A 本题考查typedef的使用方法,typedef对已存在的类型使用一个新的名字,选项A中ABC为新的类型别名,定义正确。