更多“11、如下定义的结构类型变量 a 所占内存字节数是() union U { char st[4]; short i; long l; }; struct A { short c; union U u; } a;”相关问题
  • 第1题:

    变量a所占内存字节数是______。 union U { char st[4]; int i; long 1; }; struct A { int c; union U u; }a;

    A.4

    B.5

    C.6

    D.8


    正确答案:C
    解析:共用体变量在内存所占的长度是取各成员变量中最长的。共用体的长度为4,因此变量a在内存中的长度=1个整型长度+1个共用体长度=2+4=6。

  • 第2题:

    若有如下说明和定义struct test{ int ml; char m2; float m3; union uu {char ul[5]; int u2[2];} ua;} myaa;则sizeof(struct test)的值是A.12 B.16 C.14 D.9


    正确答案:A
    在本题中,首先定义了一个结构体。在该结构体中,定义了一个整型变量成员、一个字符型变量成员和一个浮点型变量成员,并在结构体中定义了一个联合体变量成员,联合体变量成员中又包含两个联合体成员数组。题目最后要求计算该结构体变量所占的存储空间。
    在C语言中,联合体变量中的所有成员共享存储空间,联合变量的长度等于各成员中最长的长度,因此,本题的联合体部分所占的长度为5,但是结构体与联合体不一样的是,结构体不能共享空间,一个结构体变量的总长度是各成员长度之和,因此,该结构体所需的存储空间为5+1+2+4=12。本题的正确答案选A。

  • 第3题:

    若有下面的说明和定义,则sizeof(struct aa)的值是______。 struct aa { int r1;double r2;float r3; union uu{char ul[5]long u2[2]}ua; }mya;

    A.30

    B.29

    C.24

    D.22


    正确答案:D
    解析:结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。

  • 第4题:

    变量a所占的内存字节数是 ______。

    A.4

    B.5

    C.6

    D.8 union U { char st[4]; int i; long l; }; Struct A{ int c; union U u; }a;


    正确答案:C
    解析:结构体变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变量u最大长度为4个字节,故选C。

  • 第5题:

    若有以下结构类型说明和变量定义,则变量a在内存中所占字节数是struct stud{ char num[6]; int s[4]; double ave;}a,*p;


    正确答案:22
    对于结构stud来说,char  num[6];占6个字节;int s[4];占2´4 = 8个字节;double ave;占8个字节;所以a占的字节数为6+8+8=22个字节。

  • 第6题:

    若有下面的说明和定义,则sizeof(struct aa)的值是 struct aa { int rl;double r2;float r3; union uu{char u1[5];long u2[2];}ua; } mya;

    A.30

    B.29

    C.24

    D.22


    正确答案:D
    解析:本题主要考查结构体变量和共用体变量所占存储空间大小的计算方法。结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。

  • 第7题:

    若有下面的说明和定义,则sizeof(struct aa)的值是( )。 struct aa { int r1; double r2; float r3; union uu{char u1[5];long u2[2];}ua; } mya;

    A.30

    B.29

    C.24

    D.22


    正确答案:D
    解析:structaa的字节数等于结构体中除共用体的成员所占存储单元之和+共用体的长度,所以计算结果为2+8+4+8=22。

  • 第8题:

    变量a所占的内存字节数是______。 union U { char st[4]; int i; long 1; }; struct A { int c; union U u; }a;

    A.4

    B.5

    C.6

    D.8


    正确答案:C
    解析:结构件变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变量u最大长度为4个字节,故选C。

  • 第9题:

    以下程序的输出结果是() includemain(){ union un{int i; long k; char c;};struct by

    以下程序的输出结果是( ) # include<stdio.h> main() { union un{int i; long k; char c; }; struct byte{ int a; long b; union un c; } r; printf("%d\n",sizeof(r)); }

    A.10

    B.13

    C.7

    D.8


    正确答案:A

  • 第10题:

    若有下面的说明和定义,则sizeof(struct aA) 的值是( ) struet aa { int r1;double r2 float r3; union uu{char u1[5]; long u2[2]; }ua; } mya;

    A.30

    B.29

    C.24

    D.22


    正确答案:D

  • 第11题:

    设有以下结构类型说明和变量定义,则变量a在内存所占字节数是().   struct stud { char num[8]; int s[4]; double ave; } a,*p; 


    正确答案:32

  • 第12题:

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

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

  • 第13题:

    下列程序的输出结果是()。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
    解析: 本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

  • 第14题:

    若有下面的说明和定义,则sizeof(struct aa) 的值是 struct aa { int rl;double r2;float r3; union uu {char ul [5];long u2[2]}ua; }mya;

    A.30

    B.29

    C.24

    D.22


    正确答案:D
    解析:结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。

  • 第15题:

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

    下列程序的输出结果是( )。 #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题:

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

    A.8

    B.14

    C.18

    D.10


    正确答案:A
    解析:结构体变量所占的存储空间是各个分量所占空间的总和。共用体变量中的所有成员占有同一个存储空间,其字节数与成员中占字节数最多的那个成员相等。m占2个字节,f占4个字节,因此结构体变量a所占的存储空间为6字节。k[6]占6个字节,d占8个字节。共用体变量b所占的存储空间与占存储空间最多的d所占存储空间的字节数相同。所以,A选项为所选。

  • 第17题:

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

  • 第18题:

    下面程序的输出结果是_______。 union un { int a[4]; long b; char c[6];} main() { union un u; printf("%d%d",sizeof(u),sizeof(uA) ); }

    A.82

    B.88

    C.188

    D.182


    正确答案:B
    解析:sizeof函数计算已知类型所占的字节数。共用体变量所占的内存长度等于最长的成员的长度。

  • 第19题:

    以下程序的输出结果是includemain(){ union un{ int i;long k;char c;};struct byte{i

    以下程序的输出结果是 #include<stdio.h> main() { union un{ int i; long k; char c;}; struct byte{ int a; long b; union un c;}r; printf("%d\n",sizeof(r));}

    A.10

    B.13

    C.7

    D.8


    正确答案:A
    解析:本题主要考查了结构体和共用体数据的存储形式。共用体的一个特点是所有数据成员共用一段存储单元,而结构体每个数据成员都单独占据一段存储单元。共用体所占存储单元的大小由长度最长的数据成员的长度决定。题中共用体变量c占据4个字节的长度,结构体r所占存储空间的大小为int(2个字节)+long(4个字节)+共用体c(4个字节)=10个字节,所以答案为A)。

  • 第20题:

    若有下面的说明和定义,则sizeof(structaA) 的值是_______。 struct aa { intrl;double r2;float r3; union uu{char u1[5];long u2[2]}ua; }mya;

    A.30

    B.29

    C.24

    D.22


    正确答案:D
    解析:结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构件变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。

  • 第21题:

    下列程序段的输出是( ) 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。

  • 第22题:

    若有下面的说明和定义: struct test { char m2; float m3; union uu{ char u1[5]; float u2; }ua; }MyStruct; 则sizeof(MyStruct)的值是( )。

    A.10

    B.11

    C.12

    D.9


    正确答案:A
    解析:C++中,联合体变量所占内存字节数与其成员中占字节数最多的那个成员相等。联合体中,浮点变量u2占4个字节,字符型数组u1占5个字节,所以联合体u1占5个字节。整个结构体所占字节数为10。

  • 第23题:

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


    正确答案:8

  • 第24题:

    填空题
    设有以下结构类型说明和变量定义,则变量a在内存所占字节数是().   struct stud { char num[8]; int s[4]; double ave; } a,*p;

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