设有以下定义: 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类型在VC6.0中占4字节,所以demo就与成员d2所占字节数是相同的,选项A的说法正确。联合体的所有成员的首地址都是相同的,和联合体变量的地址一致。故选项B和C都是正确的。由于int类型数据和float类型数据在内存中的存放格式是不一样的,所以给d1赋99后,d2中不会得到99.0这个值。故选项D不正确,答案应该选择D。
更多“设有以下定义:union data{intd1;floatd2;} demo;则下面叙述中错误的是()。A.变量demo与成员d2所占 ”相关问题
  • 第1题:

    若有以下说明和定义 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是错误的。

  • 第2题:

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

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

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

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

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


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

  • 第3题:

    设有以下定义

    union data

    {int d1; float d2;}demo;

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

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

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

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

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


    正确答案:D

  • 第4题:

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

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

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

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

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


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

  • 第5题:

    若有以下说明和定义 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