更多“下面程序的输出是()typedefunion{longx;inty;charz;}MYTYPE;MYTYPEthem;main(){printf("%d\n",sizeof(them));}。 ”相关问题
  • 第1题:

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

    A.32

    B.16

    C.8

    D.24


    正确答案:C
    解析:共用体所占存储空间的大小是所有成员所占存储单元的和;共用体变量所占存储单元的大小是所有成员中占据存储空间最大的成员所占存储空间的大小。本题中字符数组成员z占8个字节的长度,长度最长,所以共用体变量them用sizeof计算长度为8。

  • 第2题:

    下面程序的输出是_______。 typedefunion { longx[2]; int y[4]; char z[8]; }MYTYPE; MYTYPEthem; main() { printf("%d\n",sizeof(them));}

    A.32

    B.16

    C.8

    D.24


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

  • 第3题:

    【填空题】以下程序输出的结果是 。 typedef union{long x[2];int y[4];char z[8];}MYTYPE; MYTYPE them; void main() { printf(“%dn”,sizeof(them)); }


    float bool

  • 第4题:

    有如下程序段#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。

  • 第5题:

    下列程序段的输出是( ) typedef union{ long x[2]; short y[4][5]; char z[10]; }TYPE1; TYPE1 u1; printf("%d\n", sizeof(u1));

    A.8

    B.10

    C.40

    D.58


    正确答案:C
    程序的开始用“typedef"定义了用户自定义数据类型符“TYPE1”,这个用户自定义的数据类型符对应的是一个共用型。然后使用"TYPE1",定义了共用型变量u1,本段程序的输出就是这个共用型变量所占用的字书数。共用型变量占用的字节数就是其成员中占用字节数最多的成员占用的字节数。分析这个共用型的成员有3个:第1个成员是长整型数组,占用字节数为4*2=8;第2个成员是短整型数组,占用字节数为2*4*5=40;第3个成员是字符型数组,占用的字节数为1*10=10。其中占用字节数最多的成员是第2个成员,其占用的字节数等于40。所以本题答案应选C。