设有以下定义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


相似考题
更多“设有以下定义union data{ int d1; float d2; }demo;则下面叙述中错误的是A) 变量 demo 与成 ”相关问题
  • 第1题:

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

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

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

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

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


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

  • 第2题:

    设有如下程序: include using namespace std; class A { public:int i;display(){co

    设有如下程序: #include <iostream> using namespace std; class A { public: int i; display() { cout<<"class A\n"; } }; class B { public: int i; display() { cout<<"class B\n"; } }; class C : public A, public B { int j; public: int i; show ( ) { j = i * i; display(); } }; int main() { C demo; demo.show(); return O; } 则主程序运行时将( )。

    A.因为变量i的重复定义而报错

    B.因为对象demo间接调用display()函数时产生二义性而报错

    C.因为类定义的语法错误而不能运行

    D.没有语法错误,能够正常输出结果


    正确答案:B
    解析:本题主要考察C++中多继承的工作方式和二义性的解决办法。在C++中,允许一个派生类从多个基类派生,这种继承方式称为多继承。多继承的定义格式如下:class派生类名>:继承方式>基类名1>,继承方式2>基类名2>,…{派生类类体>};但是,如果一个派生类的两个或多个基类中有某个同名成员,在派生类中对这个成员的访问就可能出现二义性;同时,如果一个派生类是由两个或多个基类派生出来的,而这几个基类又有一个共同的基类,对该基类进行访问时,也可能会出现二义性。本题程序中,类C是由类A和类B多继承得到的派生类,但其自身函数show()中调用了display()函数,而这个函数是同时出现在类C的两个基类中的,因此程序会出现二义性,编译器将无法确定调用哪一个display()函数来执行操作,因此报错。解决二义性的通常办法是通过作用域运算符“::”进行限定。

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