设有如下说明typedef struct{ int n; char c; double x;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是A.STD tt[2]={{1,’A’,62},{2,’B’,75}}; B.STD tt[2]={1,"A",62,2,"B",75};C.struct tt[2]={{1,’A’},{2,’B’}}; D.struct tt[2]={{1,"A",62.5},{2,"B",75.0}};

题目

设有如下说明typedef struct{ int n; char c; double x;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是A.STD tt[2]={{1,’A’,62},{2,’B’,75}}; B.STD tt[2]={1,"A",62,2,"B",75};C.struct tt[2]={{1,’A’},{2,’B’}}; D.struct tt[2]={{1,"A",62.5},{2,"B",75.0}};


相似考题
参考答案和解析
正确答案:C
本题主要考查关键字typedef的作用和结构体的初始化。C语言不仅提供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说,允许由用户为已存在的数据类型名定义一个“别名”。类型定义符typedef即可用来完成此功能。说明新类型名的语句一般形式为:
         typedef   类型名   标识符;
这里的“类型名”必须是在此语句之前已有定义的类型标识符,可以是任何基本类型、结构或联合类型符号。
在本题中,通过题目中程序的定义可以知道,STD为该结构体的类型,而不是结构体变量,因此,STD tt[2]的声明是正确的。
由于结构体的第三个成员变量为双精度型,而在选项A中,输入与其对应的值是整型,数据类型不匹配,因此不正确。
由于结构体的第二个成员变量为字符型,而在选项B和选项D中,用双引号引起,表示字符串,而不是单个字符,因此不正确。
在选项C中,虽然缺少一个元素,但系统提供了一个默认的值0。因此,这个赋值语句是正确的。
更多“设有如下说明typedef struct{ int n; char c; double x;}STD;则以下选项中,能正确定义结构体 ”相关问题
  • 第1题:

    设有如下说明: typedef struct {int n; char c; double x;) STD; 则以下选项中,能正确定义结构体数组并赋初值的语句是( )。

    A.STD tt[2]={{1,'A',62},{2,'B',75}};

    B.STD tt[2]={1,"A",62},2,"B",75};

    C.stmc tt[2]={{1,'A'),{2,'B'}};

    D.struc tt[2]={{1,"A",62.5),{2,"B",75.0}};


    正确答案:A
    解析:本题定义了一个结构体类型并自定义类型名为STD,用户自定义类型后,就可以利用它进行变量与数组的定义。定义的方法,与C语言中其他类型的定义完全一样,定义结构型数组并赋初值时,每个元素用一对{和}括起来,字符型元素用,括起来,选项A、B、C、D中只有选项A符合条件。所以,A选项为所选。

  • 第2题:

    设有以下说明语句,则下面的叙述正确的是()。 struct abc { int m; float n; }stype;

    A.struct是结构体类型的关键字

    B.abc是用户定义的结构体名

    C.m和n都是结构体成员

    D.stype是用户定义的结构体变量名

    E.struct abc 是结构体类型名


    stype 是用户定义的结构体类型名

  • 第3题:

    设有以下说明语句,则下面的叙述不正确的是()。 struct abc { int m; float n; } stype;

    A.struct是结构体类型的关键字

    B.stype是用户定义的结构体类型名

    C.m和n都是结构体成员名

    D.stype是用户定义的结构体变量名


    B

  • 第4题:

    设有如下说明 typedef struct {int n;char c;double x;}STD; 则以下选项中,能正确定义结构体数组并赋初值的语句是

    A.STD tt[2]={{l,'A',62},{2,'B',75}};

    B.STD tt[2]={1,"A",62,2,"B",75};

    C.streetn[2]={{1,'A'},{2,'B'}};

    D.struct tt[2]={{1,"A",62.5},{2,"B",75.0}};


    正确答案:A
    解析:本题定义了一个结构体类型并自定义类型名为STD,用户自定义类型后,就可以利用它进行变量与数组的定义。定义的方法,与C语言中其他类型的定义完全—样,定义结构型数组并赋初值时,每个元素用一对“{”和“}“括起来,字符型元素用”'”括起来。

  • 第5题:

    以下对结构体类型变量的定义中不正确的是()。

    A.struct{ int num; float age; }student; struct student std1;

    B.#define STUDENT struct student STUDENT{ int num; float age; }std1;

    C.int num; float age; }std1;

    D.struct{ int num; float age; }std1;


    struct { int num; float age; } student; struct student std1;