1 第八章 结构体与联合体 选择题 1、若程序中有以下的说明和定义: struct abc { int x;char y; } 花括号后少了分号。 struct abc s1,s2; 则会发生的情况是______。 A) 编译时错 B) 程序将顺序编译、连接、执行 C) 能顺序通过编译、连接、但不能执行 D) 能顺序通过编译、但连接出错 2、有以下程序段 struct st { int x; int *y;}*pt; int a[]={1,2};b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c; 以下选项中表达式的值为 11 的是 A) *pt->y B) pt->x C) ++pt->x D) (pt++)->x 3、有以下说明和定义语句 struct student { int age; char num[8];}; struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}}; struct student *p=stu; 以下选项中引用结构体变量成员的表达式错误的是______。 A) (p++)->num B) p->num C) (*p).num D) stu[3].age 4、设有如下枚举类型定义 enum language {Basic=3,Assembly=6,Ada=100,COBOL,Fortran}; 枚举量 Fortran 的值为______。 A) 4 B) 7 C) 102 D) 103 5、以下叙述中错误的是_________。 A)可以通过 typedef 增加新的类型 B)可以用 typedef 将已存在的类型用一个新的名字来代表 C)用 typedef 定义新的类型名后,原有类型名仍有效 D)用 typedef 可以为各种类型起别名,但不能为变量起别名 6、有以下程序段 typedef struct NODE { int num; struct NODE *next; } OLD; 以下叙述中正确的是 A)以上的说明形式非法 B) NODE 是一个结构体类型 C) OLD 是一个结构体类型 D) OLD 是一个结构体变量 7、以下选项中不能正确把 cl 定义成结构体变量的是______。 1.typedef struct {int red; int green; int blue; } COLOR; 2 COLOR cl; 2.struct color cl { int red; int green; int blue; }; 3.struct color { int red; int green; int blue; }cl; 4.struct {int red; int green; int blue; }c1; A) 1 B) 2 C) 3 D) 4 8、设有以下语句 typedef struct S { int g; char h;} T; 则下面叙述中正确的是______。 A)可用 S 定义结构体变量 B)可以用 T 定义结构体变量 C) S 是 struct 类型的变量 D) T 是 struct S 类型的变量 9、设有如下说明 typedef struct ST {long a;int b;char c[2]...