计算机二级

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

题目

若有下面的说明和定义,则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

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有下面说明和定义:struct test{ int m1;char m2;float m3;union uu(char u1[5];int u2[2];)ua;}myaa; 则sizeof(struct test)的值是( )。A)20 B)16C)14 D)9


正确答案:A
sizeof求在存储单元中所占字节数。

第2题:

以下对结构体类型变量的定义中,不正确的是______。

A.typedef struct aa { int n; float m; }AA; AA td1;

B.#define AA struct aa AA {int n; float m; }td1;

C.struct {int n; float m; }aa; srtuct aa td1:

D.struct {int n; float m; }tdl;


正确答案:C
解析:选项A是先定义一个结构体类型,然后再定义结构体变量。选项B是通过宏替换来定义结构变量的。选项D则是直接定义结构变量。

第3题:

若有以下说明和定义语句,则变量w在内存中所占的字节数是 【19】 。

union aa {float x; float y; char c[6]; };

struct st{ union aa v; float w[5]; double ave; } w;


正确答案:
34

第4题:

以下对结构体类型变量的定义中,不正确的是( )

A.typedef struct aa { int n; float m; }AA; AA tdl;

B.#define AA struct aa AA{ int n; float m; }tdl;

C.struct { int n; float m; }aa; struct aa tdl;

D.struct { int n; float m, }tdl;


正确答案:C

第5题:

若有下面的说明和定义,则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个字节。

第6题:

若有下面的说明和定义

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

第7题:

设有以下说明和定义:

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

第8题:

以下对结构体类型变量的定义中,不正确的是

A.typedef struct aa

{ int n;

float m;

}AA;

AA tdl;

B.#define AA struct aa

AA{ int n;

float m;

} tdl;

C.struct

{ int n;

float m;

} aa;

struct aa tdl;

D.struct

{ int n;

float m;

} tdl;


正确答案:C

第9题:

若有下面的说明和定义,则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个字节。

第10题:

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

A.12

B.16

C.14

D.9


正确答案:A
解析:结构体所占用的存储空间是其所有成员占用的存储空间之和,而共用体所占用的存储空间是成员中占用存储空间最大者的空间,共用体类型uu是结构体的成员,它所占的内存长度为最大成员的长度,即字符型数组u1的长度,即1×5=5。每个整型数据占用2个字节,每个字符型数据占用一个字节,单精度型数据占4个字节,myaa为结构体变量,它所占的存储空间为各个成员所占存储空间的之和,即2+1+4+5=12。

更多相关问题