单选题有以下定义:struct data{ int i;char c;double d; } x;以下叙述中错误的是(  )。A x的内存地址与x.i的内存地址相同B struct data是一个类型名C 初始化时,可以对x的所有成员同时赋初值D 成员i、c和d占用的是同一个存储空间

题目
单选题
有以下定义:struct data{ int i;char c;double d; } x;以下叙述中错误的是(  )。
A

x的内存地址与x.i的内存地址相同

B

struct data是一个类型名

C

初始化时,可以对x的所有成员同时赋初值

D

成员i、c和d占用的是同一个存储空间


相似考题
更多“单选题有以下定义:struct data{ int i;char c;double d; } x;以下叙述中错误的是(  )。A x的内存地址与x.i的内存地址相同B struct data是一个类型名C 初始化时,可以对x的所有成员同时赋初值D 成员i、c和d占用的是同一个存储空间”相关问题
  • 第1题:

    下列语句段中,正确的是( )。

    A.struct{int x;float y;int a[2];unsigned b[3];char name[10];};

    B.struct stu{unsigned a[3];unsigned b[4];}x;int*p=&x.a;

    C.struct stu{int a;float x[4];}y={1,1.0};float data=y.x;

    D.struct nd{int a,b;unsigned c[2]=5;};


    正确答案:A
    解析: 本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式:
    struct结构类型名称
    { 数据类型 成员名1;
    数据类型 成员名2;

    数据类型 成员名n;
    };
    struct为关键字,是结构的标识符;{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

  • 第2题:

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

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

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


    正确答案:A
    解析:给结构体数组赋初值时,要将其成员值依次放在一对花括号中。

  • 第3题:

    若有以下说明和定义union dt{ int a;char b;double c;} data; 以下叙述中错误的是

    A.data的每个成员起始地址都相同

    B.变量data所占内存字节数与成员c所占字节数相等

    C.程序段:data. a=5;printf(“%I'm”,data. C);输出结果为5.000000

    D.data可以作为函数的实参


    正确答案:C
    解析:本题考查的共用体的概念。共用体变量中的所有成员共享一段公共存储区,所以共用体变量所占内存字节数与其成员中占字节数最多的那个成员相等.本题定义的共用体中成员C所占的内存最多,因此选项B是正确的。由于共用体变量中的所有成员共享存储空间,因此变量中的所有成员的首地址相同,选项A是正确的。同结构体变量一样,共用体类型的变量可以作为实参进行传递,也可以传送共用体变量的地址,选项D也是正确的。在内存中,实数与整数的存放形式完全不一样,共用体的成员共用的是同一块内存,而不是同一个数值,因此选项C是错误的。

  • 第4题:

    设有以下语句: struct SS { int no; char name[10];}PERSON; 则下面叙述中错误的是 ( )

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

    B.struct SS是结构体类型

    C.PERSON是结构体类型名

    D.name是结构体成员名


    正确答案:C

  • 第5题:

    设有以下C语言说明语句:

    struct ex{int x;float y;char z;} example

    则下面的叙述中不正确的是(52)。

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

    B.x、y、z都是结构体成员名

    C.struet ex是结构体类型

    D.example是结构体类型名


    正确答案:D
    解析:在C语言环境中,结构体类型说明的一般形式:struct结构体名{类型名结构体成员名…}结构体变量名;其中,“struct”是结构体类型的关键字。对于本题而言,example是结构体变量名,而非结构体类型名。

  • 第6题:

    设有下列说明语句: strcut str {int x; float y; char z;}st; 则下列的叙述中不正确的是( )。

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

    B.st是结构体类型名

    C.x、y、x都是结构体成员名

    D.struct str是结构体类型名


    正确答案:B
    解析:本题主要考查结构类型的定义:struct是结构体类型的关键字:structstr是结构体类型名;x、y、z都是结构体成员名:st是结构变量名。

  • 第7题:

    设有以下说明语句: struct ex {int x;float y;char z; }example;在下面的叙述中,不正确的一条是______。

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

    B.example是结构体类型名

    C.x,y,2都是结构体成员名

    D.struct ex是结构体类型


    正确答案:B
    解析:example是结构体类型变量名,因此选项B的说法是不正确的。

  • 第8题:

    有以下定义: struct data { int i;char c;double d;}x; 以下叙述中错误的是( )。

    A.x的内存地址与x.i的内存地址相同

    B.struct data是一个类型名

    C.初始化时,可以对x的所有成员同时赋初值

    D.成员i、c和d占用的是同一个存储空间


    答案:D
    解析:变量i、c、d是结构体变量x中三个不同的成员,占用不同的存储空间。

  • 第9题:

    设有以下C语言说明语句:struct ex{int x;float y;char z;}example;则下面的叙述中不正确的是( )。

    A.struct是结构体类型的关键字
    B.x、y、z都是结构体成员名
    C.ex是结构体名
    D.example是结构体类型名

    答案:D
    解析:
    在C语言环境中,结构体类型说明的一般形式:struct结构体名{类型名结构体成员名…}结构体变量名;其中,“struct”是结构体类型的关键字。对于本题而言,example是结构体变量名,而非结构体类型名。

  • 第10题:

    有以下说明语句:struct Point{int x;int y;};则叙述正确的是()

    • A、正确的结构类型说明
    • B、正确的结构变量说明
    • C、错误的原因是结构中成员类型相同
    • D、无意义的说明

    正确答案:A

  • 第11题:

    单选题
    若有如下定义:  struct sk{      int a;  int b;  }data,*p=&data;  则对data中的成员x的正确引用的是()。
    A

    (*p).a

    B

    (*p).data.a

    C

    p->data.a

    D

    p.data.a


    正确答案: A
    解析: 暂无解析

  • 第12题:

    单选题
    有如下定义:struct st{ int a; float b;}x[10];FILE *fp;若文件已正确打开,且数组x的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是(  )。
    A

    for(i=0; i<10; i++) fwrite(x,sizeof(struct st), 1,fp);

    B

    fwrite(x,10*sizeof(struct st), 1,fp);

    C

    fwrite(x,sizeof(struct st), 10,fp);

    D

    for(i=0; i<10; i++) fwrite(&x[i],sizeof(struct st), 1,fp);


    正确答案: A
    解析:
    A项中,因为函数fwrite中第三个参数为1,即每次写入1个结构体数据,x是数组的首地址,因此,每次写入的数据都是数组的首个结构体元素,没有将整个数组写入文件中去。答案选择A选项。

  • 第13题:

    已知有结构体: struct sk { int a; float b; }data,*p; 若有p=&data,则对data的成员a的正确引用是( )。

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

    B.st是结构体类型名

    C.x、y、z都是结构体成员名

    D.struct str是结构体类型名


    正确答案:B
    解析: 本题主要考查结构类型的定义:struct是结构体类型的关键字;struct str是结构体类型名;x、 y、z都是结构体成员名;st是结构变量名。

  • 第14题:

    若某C语句如下: struct ex {int x;float y;char z;}example; 则以下叙述中不正确的是(29)。

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

    B.x,y,z都是结构体成员名

    C.stmct ex是结构体类型

    D.example是结构体类型名


    正确答案:D
    解析:在C语言环境中,结构体类型说明的一般形式:struct结构体名{类型名结构体成员名……}结构体变量名;其中,“struct”是结构体类型的关键字。对于本试题定义的语句“structex{intx;floaty;charz;}example;”,其中example是结构体变量名,而非结构体类型名。

  • 第15题:

    设有以下说明和定义:

    typedef union {long i; int k[5]; char c;} DATE;

    struct data { int cat; DATE cow; double dog;} too;

    DATE max;

    则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____


    正确答案:
    答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20
    data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.
    所以结果是 20 + 32 = 52.
    当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20

  • 第16题:

    若有以下说明和定义 union dt {int a;char b;double c;}data; 以下叙述中错误的是 ______。

    A.data的每个成员起始地址都相同

    B.变量data所占的内存字节数与成员c所占字节数相等

    C.程序段data.a=5;printf("%f\n",data.c);输出结果为5.000000

    D.data可以作为函数的实参


    正确答案:C
    解析:union是表示共用体的关键字,成员a,b,c共占用同一个内存空间,  data的每个成员起始地址都相同;共用体变量所占的内存长度等于最长的成员的长度,故变量data所占的内存字节数与成员c所占字节数相等:执行“data.a=5;printf("%f\n",data.c);”printf函数只是将内存中的数据以不同的类型输出,而不能将内存中的整型数据自动转换为等值的浮点数故C是错误的。

  • 第17题:

    对于下列定义,不正确的叙述是( )。 union data { int a; char b; double c; }x=y;

    A.变量x所占内存的长度等于成员c的长度

    B.变量x的地址和它的各成员地址都是相同的

    C.可以在定义时对x初始化

    D.不能对变量x赋值,故x=y非法


    正确答案:C
    解析: 本题主要考查的知识点是联合体的内存使用。联合体所占用的内存空间为最长的成员所占用的空间,各个成员分量全部是从低地址方向开始使用内存单元。不能在定义共用体变量时对它初始化。

  • 第18题:

    设有以下说明语句: struct ex { int x;floct y;char z;} example; 则下面的叙述中不正确的是 ( )

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

    B.example是结构体类型名

    C.x,y,z都是结构体成员名

    D.struct ex是结构体类型


    正确答案:B

  • 第19题:

    设有以下声明语句 street ex { int x;float y;char z;} example; 则下面的叙述中不正确的是 ______ 。

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

    B.example是结构体类型名

    C.x,y,z都是结构体成员名

    D.struct ex是结构体类型


    正确答案:B
    解析:example是结构体变量名。

  • 第20题:

    设有下列说明语句: Strcut Str {int x;float y;char z;}st; 则下列的叙述中不正确的是( )。

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

    B.st是结构体类型名

    C.x、y、z都是结构体成员名

    D.struct str是结构体类型名


    正确答案:B
    解析:本题主要考查结构类型的定义:struct是结构体类型的关键字;structstr是结构体类型名;x、y、z都是结构体成员名;st是结构变量名。

  • 第21题:

    若有如下定义:  struct sk{      int a;  int b;  }data,*p=&data;  则对data中的成员x的正确引用的是()。 

    • A、(*p).a
    • B、(*p).data.a
    • C、p->data.a
    • D、p.data.a

    正确答案:A

  • 第22题:

    单选题
    有以下程序:#include struct S{ int x,y;};main(){ struct S data[3] = {4,3,2,0,8,1}; int i; for(i=0;i<3;i++)  printf(%d%d;,data[i].x, data[i].y>>1); printf();}程序运行后的输出结果是(  )。
    A

    41;20;80;

    B

    41;22;64;

    C

    40;21;80;

    D

    43;20;81;


    正确答案: A
    解析:
    “>>”右移运算符,右移一位等价于除以2后取整。程序中定义结构体数组data并完成初始化,data[0].x=4,data[0].y=3,data[1].x=2,data[1].y=0,data[2].x=8,data[2].y=1。在for循环中,对3个结构体元素y值转换成2进制数后向右移一位,再对此时x,y值依次进行输出,答案选择A选项。

  • 第23题:

    单选题
    有以下说明语句:struct Point{int x;int y;};则叙述正确的是()
    A

    正确的结构类型说明

    B

    正确的结构变量说明

    C

    错误的原因是结构中成员类型相同

    D

    无意义的说明


    正确答案: B
    解析: 暂无解析