设有一共用体变量定义如下: union data { long w; float x; int y; char z;}; union data beta; 执行下列语句后,正确的共用体变量beta的值是( )。 beta.w=123456; beta.y=888; beta.x=3.1416; beta.z='x';A.123456B.888C.3.1416D.'X'

题目

设有一共用体变量定义如下: union data { long w; float x; int y; char z;}; union data beta; 执行下列语句后,正确的共用体变量beta的值是( )。 beta.w=123456; beta.y=888; beta.x=3.1416; beta.z='x';

A.123456

B.888

C.3.1416

D.'X'


相似考题
更多“设有一共用体变量定义如下:union data{ long w;float x;int y;char z;};union data beta;执行下 ”相关问题
  • 第1题:

    ● 已知有变量 data1 定义如下:

    union data

    { int i;

    char ch;

    float f;

    } data1;

    则变量 data1 所占的内存存储空间可表示为 (57) 。

    (57)

    A. sizeof(int)

    B. sizeof(char)

    C. sizeof(float)

    D. sizeof(int)+sizeof(char)+sizeof(float)


    正确答案:C


  • 第2题:

    ●在某嵌入式系统中,采用PowerPC处理器,若定义了如下的数据类型变量X,则X所占用的内存字节数是(52).

    union data{

    int i;

    char ch;

    double f;

    } X;

    (52) A.8

    B.3

    c.16

    D.24


    正确答案:A

  • 第3题:

    有语句定义共用体类型变量: union { int i; char ch; float f; } a,bc; 上面定义的共用体变量a、b、c各占( )字节。

    A.4

    B.2

    C.7

    D.1


    正确答案:A

  • 第4题:

    下列程序的输出结果是()。 include main() {stmct st {int y,x,z; }; union {long i; i

    下列程序的输出结果是( )。

    #include<stdio.h>

    main()

    { stmct st

    { int y,x,z;

    };

    union

    { long i;

    int j;

    char k;

    }un;

    printf("%d,%d\n",sizeof(stmct st),sizeof(un));

    }

    A.6,2

    B.6,4

    C.8,4

    D.8,6


    正确答案:B
    解析:本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

  • 第5题:

    设有以下说明和定义:includeVoid main() {typedef union{long i; int k[5]; char

    设有以下说明和定义:#include<iostream. h>Void main() {typedef union{long i; int k[5]; char c;}DATE;struct date{iNt cat; DATE cow; double. dog;}too;DATE max;则下列语句的执行结果是( )。cout<<(sizeof(struct date)+sizeof(max))<<end1;}

    A.26

    B.52

    C.18

    D.8


    正确答案:B

  • 第6题:

    有如下程序段#include "stdio.h"typedef union{ long x[2]; int y[4]; char z[8];}atx;typedef struct aa { long x[2]; int y[4]; char z[8];} stx;main(){ printf("union=%d,struct aa=%d\n",sizeof(atx),sizeof(stx));}则程序执行后输出的结果是A.union=8,struct aa=8 B.union=8,struct aa=24C.union=24,struct aa=8 D.union=24,struct aa=24


    正确答案:B
    本题主要考查结构体和联合体所占的存储空间。
    在本题程序中,首先定义了一个联合体,联合体中具有三个成员,它们的类型分别为长整型、整型和字符型。按照C语言的规定,这三种类型的变量所占的存储空间分别为4个字节、2个字节和1个字节。但由于定义的成员都是数组,长整型数组的大小为2,那么需要的总空间为8个字节;整型数组的大小为4,那么需要的总空间为8个字节;字符数组的大小为8,需要的总空间也为8个字节,因此,可以看出三个成员需要的存储空间一样,都为8。根据联合体变量中的所有成员共享存储空间,联合变量的长度等于各成员中最长的长度的特点,我们可知,系统只需为该联合体变量准备8个字节存储空间即可。
    然后,定义了一个结构体,结构体中的成员类型及数组大小与联合体完全一致,即三个成员所需的空间都为8个字节。但是结构体与联合体不一样的是,结构体不能共享空间,一个结构体变量的总长度是各成员长度之和。因此,该结构体所需的存储空间为24个字节。
    综上所述,我们可以知道程序中的联合体和结构体所需要的存储空间分别为8个字节和24个字节。因此,用sizeof运算符计算这两者的存储空间,输出的结果应该为union=8,struct aa=24,本题正确答案选B。

  • 第7题:

    设有以下变量定义,并已赋确定的值: char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为( )。

    A.char

    B.int

    C.float

    D.double


    正确答案:D
    解析:本题考核表达式计算时数据类型的转换。C++中,参加运算的各个数据类型都转换成数据类型最长的数据类型,然后计算,表达式值的类型也就是数据长度最长的数据类型,在char、int、float、double中,double型的数据最长,所以表达式所求得的数据类型为double。

  • 第8题:

    若有如下定义: union aa {int n; char c[9]; float x;}a,b,c; 则下列叙述中不正确的是( )

    A.union aa是定义的共用体类型

    B.a,b,c是定义的共用体类型名

    C.n、c[9]和x是共用体的成员名

    D.a,b,c是定义的共用体变量名


    正确答案:B

  • 第9题:

    变量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类型为联合。联合中所有数据项占有相同的内存空间。联合体所占的内存存储空间为所包含数据项所占的内存存储空间的最大值。

  • 第10题:

    假设有函数模板定义如下:template< typename T >Max(T a,T b,T&c){c=a+b;}下列选项正确的是()

    • A、)int x,y;char z;Max(x,y,z);
    • B、)double x,y,z;Max(x,y,z);
    • C、)int x,y;float z;Max(x,y,z);
    • D、)float x;double y,z;Max(x,y,z);

    正确答案:B

  • 第11题:

    定义共用体格式下确的是()

    • A、struct共用体名{成员列表}变量列表;
    • B、Union共用体名{成员列表}变量列表;
    • C、union共用体名{成员列表}变量列表;
    • D、union共用体名{成员列表}

    正确答案:C

  • 第12题:

    填空题
    下面语句定义了共用体(联合体)变量a,则a占用()个字节。union data { short int i ;char c ; double d;}a;

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

  • 第13题:

    设有如下的变量定义:

    double x=4.700000;float y=2.5f;int z=7;

    则执行表达式“y+z%3* (int) (x+y)%2/4”后的值是【 】。


    正确答案:5
    5 解析:根据算术运算的优先级规则,应先执行z%3* (int) (x+y)%2/4之后,再用其值与 y作加法运算。z%3*(int) (x+y)%2/4的执行顺序为先计算z%3,得值为1,再计算x+y并取整,其值为7,用z%3的值1.与(int) (x+y)的值7相乘得7,再计算7%2得值为1,再计算1/4,由于两个整数相除,其结果为商的整数部分,所以1/4的值为0。最后执行y+0,其结果为2.5。

  • 第14题:

    下面程序的输出是______。 typedef union { long x[2]; int y[4]; char z[8]; }MYTYPE; MYTYPE them; mare() { printf("%d\n",sizeof(them));}

    A.32

    B.16

    C.8

    D.24


    正确答案:C
    解析:sizeof(x)是一个标准C函数,它的返回值是x型的数据结构占用的内存字节数。题目中定义了一个共用体,共用体变量在内存中所占的长度等于最长的成员的长度。

  • 第15题:

    下列程序的输出结果是()。includemain(){struct st{int y,x,z;};union{long i; int j;

    下列程序的输出结果是( )。 #include<stdio.h> main() { struct st { int y,x,z; }; union { long i; int j; char k; }un; printf("%d,%d\n",sizeof(struct st),sizeof(un)); }

    A.6,2

    B.6,4

    C.8,4

    D.8,6


    正确答案:B
    解析: 本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

  • 第16题:

    设有以下说明和定义:

    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

  • 第17题:

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

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

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

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

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


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

  • 第18题:

    设有以下说明和定义:includeVoid main() {typedef union{long i; int k[5]; char

    设有以下说明和定义: #include<iostream. h> Void main() { typedef union { long i; int k[5]; char c; } DATE; struct date {int cat; DATE cow; double dog; }too; DATE max; cout<<(sizeof(struct date)+sizeof(max))<<end1;}

    A.26

    B.52

    C.18

    D.8


    正确答案:B

  • 第19题:

    在下列定义中的共用体所占内存字节数是( ) Union {char k[6]; struct {int m; float f;}a; double d;}b;

    A.8

    B.14

    C.18

    D.10


    正确答案:A

  • 第20题:

    在16位IBM-PC上使用C语言,如定义下列共用体类型变量: union data { int i; char ch; float f; }a,b,c; 则共用体变量a,b,c占用内存的字节数为( )。

    A.1

    B.2

    C.4

    D.6


    正确答案:C
    解析:共用体变量中的所有成员占有同一个存储空间,其字节数与成员中占字节数最多的那个成员相等。char占1个字节, int占2个字节,float占4个字节,因此本题中的共用体变量a,b,c占用内存的字节数为4。

  • 第21题:

    若有说明:char w; int x; float y; double z; 则表达式w*x+y-z的值的数据类型是()。

    • A、double
    • B、char
    • C、int
    • D、float

    正确答案:A

  • 第22题:

    设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为().

    • A、float
    • B、char
    • C、int
    • D、double

    正确答案:D

  • 第23题:

    下面语句定义了共用体(联合体)变量a,则a占用()个字节。union data { short int i ;char c ; double d;}a;


    正确答案:8