第6章-结构体与共用体
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、判断题
1. 结构体的定义不为它分配具体的内存空间。
答案:T
2. C++语言结构体类型变量在程序执行期间,所有成员驻留在内存中。
答案:T
3. 一个共用体变量中可以同时存放其所有成员。
答案:F
4. 若有定义union dt{int a; char b; double c;}data;,变量data所占的内存字节数与成员c所占字节数相等。
答案:F
5. 用typedef可以增加新类型。
答案:F
6. 共用体类型数据中所有成员的首地址都是同一地址。
答案:T
7. 可以用已定义的共用体类型来定义数组或指针变量的类型。
答案:T
8. 共用体类型数据中的成员可以是结构体类型,但不可以是共用体类型。
答案:F
9. 可以对共用体变量直接赋值。
答案:F
二、选择题
1. 下面关于结构体概念的叙述中,正确的说法是()。
A. 相同类型数据的集合称为结构体
B. 不同类型数据的集合称为结构体
C. 数据的集合称为结构体
D. 整数的集合称为结构体
答案:C
2. 设有以下说明语句:
struct abc
{
int m;
float n;
}stype;
则下面错误的叙述是()。
A. struct是定义结构体类型的关键字
B. stype是结构体类型名
C. m和n都是结构体成员名
D. stype是结构体变量名
答案:B
3. 以下对枚举类型ee的定义中,正确的定义是()。
A. enum ee {A, B, C, D};
B. enum ee {'A', 'B', 'C', 'D' };
C. enum ee = {A, B, C, D};
D. enum ee = {'A', 'B', 'C', 'D' };
答案:A
4. 以下关于同类型结构体与同类型共用体赋值的叙述中,正确的说法是()。
A. 共用体变量之间可以直接赋值,结构体变量之间也可以直接赋值
B. 共用体变量之间可以直接赋值,结构体变量之间不可以直接赋值
C. 共用体变量之间不可以直接赋值,结构体变量之间可以直接赋值
D. 共用体变量之间不可以直接赋值,结构体变量之间也不可以直接赋值
答案:A
5. 设有如下定义:
struct data
{
int i;
union test
{
char ch;
double q;
}t;
double f;
}b;
若字符型变量占1个字节,整型变量占4个字节,双精度变量占8个字节,则结构体变量b占用内存的字节数是()。
A. 8
B. 9
C. 18
D. 20
答案:D
6. 以下关于数据类型int的别名定义中,正确的定义是()。
A. typedef int Integer;
B. typedef int = Integer;
C. typedef Integer int;
D. typedef Integer = int;
答案:A
7. 设有枚举类型定义:
enum color { red = 3, yellow, blue = 10, white, black };
则枚举常量black的序号值是()。
A. 4
B. 5
C. 7
D. 12
答案:D
8. 一个结构体变量所占的内存字节数是()。
A. 结构体中第一个成员所需的内存字节数
B. 结构体中最后一个成员所需的内存字节数
C. 结构体中占用内存最大的成员所需的字节数
D. 结构体中各成员所需的内存字节数之和
答案:D
9. 当定义一个共用体变量时系统分配给它的内存字节数是()。
A. 共用体中第一个成员所需的内存字节数
B. 共用体中最后一个成员所需的内存字节数
C. 共用体中占用内存最大的成员所需的字节数
D. 共用体中各成员所需的内存字节数之和
答案:C
10.以下关于结构体与共用体数据成员定义的叙述中,正确的说法是()。
A. 结构体类型定义中不能出现共用体类型的成员,共用体类型定义中也不能出现结构体
类型的成员
B. 结构体类型定义中不能出现共用体类型的成员,共用体类型定义可以出现结构体类型
的成员
C. 结构体类型定义中可以出现共用体类型的成员,共用体类型定义中不能出现结构体类
型的成员
D. 结构体类型定义中可以出现共用体类型的成员,共用体类型定义中也可以出现结构体
类型的成员
答案:D
11.在说明一个结构体变量时系统分配给它的存储空间是()。
A. 该结构体中第一个成员所需存储空间
B. 该结构体中最后一个成员所需存储空间
C. 该结构体中占用最大存储空间的成员所需存储空间
D. 该结构体中所有成员所需存储空间的总和
答案:D
12.若有以下说明和语句:
struct worker
{ int no; char ﹡name; }work, ﹡p=&work;
则以下引用方式不正确的是()。
A. work.No
B. (﹡p).no
C. p->no
D. work->no
答案:D
13.有如下定义:
struct date { int year, month, day; };
struct worklist { char name[20]; char sex;
struct date birthday; }person;
对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是()。
A. year=1958
B. birthday.year=1958
C. person.birthday.year=1958
D. person.year=1958
答案:C
14.以下对结构体类型变量的定义中不正确的是()。
A. #define STUDENT struct student
STUDENT
{ int num;
float age;
}std1;
B. struct student
{ int num;
float age;
}std1;
C. struct
{ int num;
float age;
}std1;
D. struct
{ int num;
float age;
} student;
struct student std1;
答案:D
15.设有以下说明语句
struct stu
{ int a; float b; }stutype;