非常好的C语言章节习题集带答案

第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 union con

{ 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

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4