C语言结构体与联合体操作练习题及答案.docxVIP

  • 8
  • 0
  • 约3.71千字
  • 约 11页
  • 2025-09-01 发布于福建
  • 举报

C语言结构体与联合体操作练习题及答案.docx

第PAGE页共NUMPAGES页

C语言结构体与联合体操作练习题及答案

一、单选题(每题2分,共10题)

题目

1.以下关于结构体的描述,错误的是?

A.结构体可以嵌套定义

B.结构体变量可以在定义时直接赋值

C.结构体的大小是成员大小的总和

D.结构体可以使用typedef重新命名

2.以下关于联合体的描述,正确的是?

A.联合体的所有成员共享同一块内存

B.联合体的成员类型必须相同

C.联合体的大小是最大成员的大小

D.联合体变量可以在定义时直接赋值任意成员

3.定义如下结构体:

c

structPoint{

intx;

inty;

};

要创建一个结构体变量p并初始化为(1,2),以下写法正确的是?

A.structPointp={1,2};

B.structPointp=(1,2);

C.structPointp={x:1,y:2};

D.structPointp={1,{2}};

4.定义如下联合体:

c

unionData{

inti;

floatf;

charstr[20];

};

若要获取unionData变量d中存储的整数部分,以下操作正确的是?

A.printf(%d\n,d.i);

B.printf(%d\n,*(int*)d);

C.d.i=*(int*)d;

D.printf(%d\n,d.f);

5.以下代码段中,关于结构体嵌套的写法,错误的是?

c

structBook{

chartitle[50];

structAuthor{

charname[50];

intage;

}author;

};

A.可以通过Book.b.author访问作者姓名

B.structAuthor是Book的嵌套类型

C.Book结构体的大小包含Author的大小

D.Author结构体可以独立使用

答案

1.C

2.A

3.A

4.B

5.D

二、填空题(每题3分,共5题)

题目

1.定义结构体`Student`包含学号(int)、姓名(char[20])和成绩(float),请写出完整的定义。

2.定义联合体`Color`包含红色(int)、绿色(int)和蓝色(int),请写出完整的定义。

3.若有结构体`Person`,如何通过指针访问名为`name`的成员(假设name是char类型数组)?

4.写出代码,创建一个结构体数组`students[3]`,包含三个`Student`结构体元素,并为每个元素赋初值。

5.定义一个结构体`Box`,包含一个`unionData`(来自上一题的定义)和一个`intcount`成员。

答案

1.`structStudent{intid;charname[20];floatscore;};`

2.`unionColor{intred;intgreen;intblue;};`

3.`(*pperson)-name`或`pperson-name`

4.

c

structStudent{intid;charname[20];floatscore;};

structStudentstudents[3]={

{1,Alice,90.5},

{2,Bob,85.0},

{3,Charlie,92.0}

};

5.`structBox{unionDatadata;intcount;};`

三、简答题(每题5分,共4题)

题目

1.解释结构体和联合体的主要区别,并说明各自的适用场景。

2.当结构体成员包含指针时,如何正确初始化和释放结构体变量?

3.编写代码,定义结构体`Car`包含品牌(char[20])、型号(char[20])和年份(int),然后创建一个`Car`结构体变量并初始化。

4.编写代码,定义联合体`Number`包含整数(int)和浮点数(float),然后创建一个`Number`联合体变量,先赋值整数,再赋值浮点数,最后打印两个值。

答案

1.结构体和联合体的主要区别:

-结构体:每个成员都有独立的内存空间,总大小是各成员大小的总和。

-联合体:所有成员共享同一块内存,总大小等于最大成员的大小。

适用场景:

-结构体:适用于需要存储多种不同类型数据的场景,如记录信息。

-联合体:适用于需要在同一内存位置存储不同类型数据的场景,如数据解析。

2.初始化:

c

structNode{

int*data;

};

structNoden={malloc(sizeof(i

文档评论(0)

1亿VIP精品文档

相关文档