内容发布更新时间 : 2024/12/23 4:43:08星期一 下面是文章的全部内容请认真阅读。
第7章 结构体
二、习题
(一)、是非题
1.结构体变量所占用空间是全部成员占用空间之和。 A.对 B.错
2.共用体可以作为结构体的成员,但结构体不能作为共用体的成员。 A.对 B.错
3.结构体中各个成员的数据类型必须是相同的。 A.对 B.错 4.有以下定义的结构体: typedef struct student
{ int num; char name[10]; int age; } stu1; 则,struct student 是结构体变量名。 A.对 B.错
5.枚举类型中,枚举值是常量,不能再在程序中对其赋值。 A.对 B.错
6.typedef的作用是给数据类型取一个别名。 A.对 B.错
7.如果两个结构体变量有相同的类型,则可以把其中一个结构体变量的值整体赋值给另一个结构体变量。 A.对 B.错
8.一个共用体变量可以有多个数据成员,这些数据成员共享同一个存储空间,但如果空间不够用可以临时由系统分配。 A.对 B.错
9.结构体变量可以整体赋值,但不能整体比较。 A.对 B.错
10.在定义了枚举变量后,系统才为该变量分配内存空间。 A.对 B.错 (二)、选择题
1.在定义一个共用体变量时,系统分配给它的内存是______。 A.各成员所需内存之和 B.第一个成员所需内存 C.成员中占用内存最大者 D.任意一个成员所需内存 2.以下结构体的定义语句中,正确的是______。
A.struct student {int num; char name[10];int age;};stu;
B.struct {int num; char name[10];int age;}student; struct student stu; C.struct student {int num; char name[10];int age;}stu;
D.struct student {int num; char name[10]; int age;}; student stu;
49
3.如有定义的枚举类型:
enum week_day{Wed=3,Thu,Fri,Sat,Sun,Mon,Tue}everyday; 则,Mon的值为______。
A.1 B. 2 C. 8 D. 5 4.有如下定义的结构体类型: struct data
{ int year; int month; int day; }workday; 对其中成员month的正确引用方式是______。
A.data.month B.data.year.month C.month D.workday.month 5.已知对学生记录的描述为: struct student { int num;
char name[20],sex;
struct{ int year,month,day; }birthday; };
struct student stu;
设变量stu中的“生日”是“1995年11月12日”,对“birthday”正确赋值的程序是______。
A.year=1995;month=11;day=12;
B.stu.year=1995;stu.month=11;stu.day=12;
C.birthday.year=1995;birthday.month=11;birthday.day=12;
D.stu.birthday.year=1995;stu.birthday.month=11;stu.birthday.day=12; 6.下列关于枚举类型的描述不正确的是______。 A.可以在定义枚举类型时对枚举元素进行初始化 B.在赋值时,不可以将一个整数赋值给枚举变量 C.枚举变量不可以进行关系运算
D.枚举变量只能取对应枚举类型的枚举元素表中的元素值 7.有如下的说明: union test
{ int a; char c; }test1;
则在VC环境下sizeof(union test) 的结果是______。
A.4 B.2 C.5 D.3 8.以下程序的运行结果是______。 #include
{ struct {int x,y,z;}m; int i; }num; main()
{ num.m.x=4;num.m.y=5;num.m.z=6;num.i=0; printf(\
50