设有以下定义 union data { int d1; float d2; }demo; 则下面叙述中错误的是A.变量demo与成员d2所占的内存字节数相同B.变量demo中各成员的地址相同C.变量demo和各成员的地址相同D.若给demo.d1赋99后,demo.d2中的值是99.0

题目

设有以下定义 union data { int d1; float d2; }demo; 则下面叙述中错误的是

A.变量demo与成员d2所占的内存字节数相同

B.变量demo中各成员的地址相同

C.变量demo和各成员的地址相同

D.若给demo.d1赋99后,demo.d2中的值是99.0


相似考题
参考答案和解析
正确答案:D
解析:联合体的所有成员共占同一段内存,所以联合体变量的长度与它的最长成员所占长度…致,本题中float所占内存字节数为4,而 int类型在TurboC 2.0中是占2字节、在VisualC++6.0中占4字节,所以int类型所占内存字节数不会超过float,那demo就与成员d2所占字节数是相同的,选项A的说法正确。联合体的所有成员的首地址都是相同的,和联合体变量的地址一致。故选项B和C都是正确的。由于int类型数据和float类型数据在内存中的存放格式是不一样的,所以给d1赋99后,d2中不会得到99.0这个值。故选项D不正确,答案应该选择D。
更多“设有以下定义 union data { int d1; float d2; }demo; 则下面叙述中错误的是A. ”相关问题
  • 第1题:

    设有以下定义: uniondata {intd1;floatd2;}demo; 则下面叙述中错误的是( )。

    A.变量demo与成员d2所占的内存字节数相同

    B.变量demo中各成员的地址相同

    C.变量demo和各成员的地址相同

    D.若给demo.D1赋99后,dem0.d2中的值是99.0


    正确答案:D
    共用体变量中的所有成员共享一段公共存储区,所有成员的首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。

  • 第2题:

    设有以下定义: struck sk { int a; float b; }data; int *p; 若要使p指向data中的a域,正确的赋值语句是( )。

    A.p=&a;

    B.p=data.a;

    C.p=&data.a;

    D.*p=data.a;


    正确答案:C
    解析:p定义为指针变量。选项A中对结构体分量a的引用错误,应为data.a。选项B中data.a是取分量的值,它是一个整型数据,而p的值应为地址,所以不能将data.a赋值给p。&为取地址符,取分量data.a的地址赋值给p,是正确的赋值语句。*是间接访问运算符,选项D中的浯句是将分量data.a的值赋值给p所指存储单元,*p相当于一个变量,而不能实现使p指向data中的a域。

  • 第3题:

    变量W_data定义如下:union data_node{float ff'int n;char ch;}W_data;则变量W_data所占的内存存储空间可表示为______。

    A.sizeof(int)
    B.sizeof(char)
    C.sizeof(float)
    D.sizeof(int)+sizeof(char)+sizeof(float)

    答案:C
    解析:
    本题考查C语言编程的基本知识。本题中变量W_data类型为联合。联合中所有数据项占有相同的内存空间。联合体所占的内存存储空间为所包含数据项所占的内存存储空间的最大值。

  • 第4题:

    设有以下定义 union data {int d1;float d2;}demo;则下面叙述中错误的是( )。

    A.变量demo与成员d2所占的内存字节数相同

    B.变量demo中各成员的地址相同

    C.变量demo和各成员的地址相同

    D.若给demo.d1赋99后,demo.d2中的值是99.0


    正确答案:D
    共用体变量中的所有成员共享一段公共存储区,所有成员的首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。

  • 第5题:

    设有以下定义

    union data

    {int d1; float d2;}demo;

    则下面叙述中错误的是( )。

    A. 变量demo与成员d2所占的内存字节数相同

    B. 变量demo中个成员的地址相同

    C. 变量demo和各成员的地址相同

    D. 若给demo.d1赋值99,demo.d2的值是99.0


    正确答案:D