7.1 选择题
(1)定义一个结构体变量时,系统分配给它的内存大小是()。
(A)各成员所需内存量的总和 成员中占内存量最大者所需的容量
结构中第一个成员所需内存容量 结构中最后一个成员所需内存容量
在C程序中,使用结构体的目的是()。
(A)将一组相关的数据作为一个整体,以便程序使用。
(B)将一组相同数据类型的数据作为一个整体,以便程序使用。
(C)将一组数据作为一个整体,以便其中的成员共享存储空间。
(D)将一组数值一一列举出来,该类型变量的值只限于列举的数值范围内。
若有如下定义,则正确的赋值语句为()。
struct date2
{ long i;
char c;
}two;
struct date1
{ int cat;
struct date2 three;
}one;
(A)one.three.c='A'; (B)one.two.three.c='A';
(C)three.c='A'; (D)one.c='A';
以下对C语言共用体类型数据的描述中,不正确的是()。
(A)共用体变量占的内存大小等于最大的成员的容量
(B)共用体类型可以出现在结构体类型定义中
(C)共用体变量不能在定义时初始化
(D)同一共用体中各成员的首地址相同
下列程序段的输出结果为()。
struct date
{ int a;
char s[5];
}arg={27, "abcd"};
arg.a -= 5;
strcpy(arg.s, "ABCD");
printf("%d, %s\n", arg.a, arg.s);
(A)22, ABCD (B)27, abcd
(C)22, abcd (D)27, ABCD
以下程序段运行结果是()。
struct st_type
{ char name[10];
float score[3]; };
union u_type
{ int i;
unsigned char ch;
struct st_type student;
} t;
printf("%d\n", sizeof(t));
(A)2 (B) (C)3 (D)22
以下程序段的运行结果是()。
enum weekday { aa, bb=2, cc, dd, ee }week=ee;
printf("%d\n", week);
(A)4 (B)5 (C)ee (D)0
以下对枚举类型名的定义中正确的是()。
(A)enum a={sum, mon, tue}; (B)enum a {sum=9, mon=-1, tue};
(C)enum a={"sum", "mon", "tue"}; (D)enum a {"sum", "mon", "tue"};
下列关于 typedef 语句的描述,错误的是()。
(A)用typedef只是对原有的类型起个新名,并没有生成新的数据类型
(B)typedef可以用于变量的定义
(C)typedef定义类型名可嵌套定义
(D)利用typedef定义类型名可以增加程序的可读性
若 typedef char STRING[255]; STRING s; 则 s 是()。
(A)字符指针数组变量 (B)字符数组
(C)字符变量 (D)字符指针变量
填空题
以下程序段的输出结果是()。
union example
{ struct
{ int x, y;
} in;
int a;
int b;
}e;
e.a=1; e.b=2;
e.in.x = e.a * e.b;
e.in.