设有以下定义 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
共用体变量中的所有成员共享一段公共存储区,所有成员的首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。
更多“设有以下定义 union data {int d1;float d2;)demo; 则下面叙述中错误的是( )。A.变量demo与成员d2 ”相关问题
  • 第1题:

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

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

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

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

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


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

  • 第2题:

    设有定义语句“double d1,d2;”,则表达式“d1=1,d2=d1+5/2”的值是( )

    A.1

    B.3

    C.3.0

    D.3.5


    正确答案:C
    C语言规定,逗号表达式的计算是自左向右进行的,表达式的值等于右边表达式的值,因此,本题的答案应为表达式"d2=d1+5/2"的值。该表达式是赋值表达式,所以其值是赋予变量d2的值,也就是表达式"d1+5/2"的结果。计算时,需要先算"5/2",结果为整数2,再和double型的d1相加,结果是实数3.0。所以本题答案应选C

  • 第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