目录: 标题| 题干| 答案| 搜索| 相关
问题

设有如下说明typedef struct{ int n; char c; d


设有如下说明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}};

  • ASTD tt[2]={{1,’A’,62},{2,’B’,75}};
  • BSTD tt[2]={1,"A",62,2,"B",75};
  • Cstruct tt[2]={{1,’A’},{2,’B’}};
  • Dstruct tt[2]={{1,"A",62.5},{2,"B",75.0}};
参考答案
参考解析:

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

分类:其他