}std;
C. struct D. struct {char name; {char name; int num; int num; }std; }student;
struct student stu;
9.d设有以下定义,则不正确的引用是______。
struct student {int age; int num; }*p;
A. ( p++)->num struct student {int num; char name[10]; }stu,*p;
A. p=&stu.num; B. *p=stu.num; C. p=(struct student *)&(stu.num); D. p=(struct student *)stu.num; 11.d设有以下定义,则不正确的引用是______。
struct student {int age; char sex; char name[10]; }stu[5],*p; p=stu;
A. scanf(\ B. scanf(\ C. scanf(\ #include
{ short int i[2]; long k; char c[4]; } t, *s = &t; s->i[0] = 0x39; s->i[1] = 0x38; printf (\ A. 390038
B. 380039
C. 3938 D. 3839
13.c以下对C语言中共用体类型数据的正确叙述是______。
A. 一旦外定义了一个共用体变量,即可引用该变量或该变量中的任意成员。 B. 一个共用体变量中可以同时存放其所有成员。 C. 一个共用体变量中不能同时存放其所有成员。
D. 共用体类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在共用体类型定义中。 14.a C语言中结构体类型变量在程序执行期间______。
A. 所有成员一直驻留在内存中 B. 只有一个成员驻留在内存中 C. 部分成员驻留在内存中 D. 没有成员驻留在内存中 15.d选择一种格式填入,使下面程序段中指针p指向一个整型变量。
int *p;
p=_______maclloc(sizeof(int));
A. int B. int * C. (* int) D. (int *)
16.a设有以下说明 union { int i; char c; float a; }test; 则sizeof(test)的值是______。 A. 4
B. 5 C. 6 D. 7
C. 97
D. 1
17.c已知:union u{ int i; char ch; }temp;现在执行\,temp.i的值为______。 A. 266 B. 256
D. scanf(\
12.b阅读程序,选择正确的输出结果______。
B. p++ C. (*p).num
D. p=&student.age
10.c设有以下定义,p指向num域的是______。
18.c以下程序的输出结果是______。
typedef union {long a[2]; int b[4]; char c[8];}UN; UN u; main()
{printf(\
A. 32 B. 16 C. 8 D. 24 19.a以下程序输出为______。
#include \ mai()
{struct birthday {int year,month,day; }birth;
printf(\} A. 6
B. 8 C. 10
D. 12
20.b下面对枚举类型名的正确定义是______。
A. enum a={one,two,three}; 二 多项
1.abd 有以下定义:
struct student { int num; float score; }stu;
则下面叙述正确的是______。
A.struct是结构体类型的关键字 B.struct stu是用户定义的结构体类型 C.stu是用户定义的结构体类型名 D.num和score是结构体成员名 三 判断
1. 共用体类型变量的地址及其中所有成员的起始地址都不相同。F 2. 共用体类型变量必须在不同时间内维持相同类型的成员值。F 3. C语言中可以用typedef为类型定义新的类型名。T 4. 可以用指向结构体的指针作为函数参数。T 5. 同数组一样,可以对链表中的结点进行随机存取。F 6. 链表在内存中可以是不连续存放的。T
7. C语言中可以用typedef同#define一样,都是在预编译时处理的。F 8. 枚举型变量只能取枚举类型定义中的某个枚举值,不能是其它值。T 9. 链表是动态地进行存储分配的一种结构。T 10. 链表中各结点的联系是通过指针来实现的。T
11. 结构体类型变量中各成员名不能与程序中的其他变量同名。F 12. 结构体类型变量中的成员不能是结构体类型。F 13. 共用体也称为联合。T
14. 可以把结构体类型变量作为整体进行输入、输出。F 15. 在C编译系统中,枚举元素不能被赋值。T
16. 在C语言中,可以定义不同类型的数据共享同一段内存区域,这种形式的数据构造类型称为结构体。F 17. 结构体类型变量中各成员共用一段内存。F 18. C语言中可以用typedef来定义变量。F
19. 共用体类型变量在定义时进行的初始化,只能根据第一个成员的类型来进行。 20在C编译系统中,将枚举元素作为常量来处理。T 21. 结构体类型变量可以在定义时赋初值。T
B. enum a {one=9,two=-1,three};
D. enum a {\
C. enum a={\
22. 共用体类型变量可以在不同时间内维持不同类型的成员值。T 23. 共用体中的所有成员是以同一个地址开始存放。T 四 填空
1. 下面程序的输出结果是__51,60,21______。 struct stu { int x,*y; }*p;
int d[4]={10,20,30,40};
struct stu a[4]={50,&d[0],60, &d[1],70, &d[2] ,80,&d[3]}; main() { p=a;
printf(\ printf(\printf(\}
2. 设有以下定义: union {int i; char c; flaot f; }u;
则共用体变量u在内存中占的字节数是___4_____。 3. 以下程序的运行结果是___2,3_____。 union un { int a; int b; };
union un s[4]; union un *p; main() { int n=1,i; for(i=0;i<4;i++)
{s[i].a=n; s[i].b=s[i].a+1; n=n+2; } p=&s[0]; printf(\printf(\}
4. 以下程序段定义一个结构体,使有两个域data和next,其中data存放整形数据,next为指向下一个结点的指针。 struct object{int data;
____struct object *next___________ }node;
5. 已知有如下定义: struct student { int num; char name[10]; char sex; int age; float score; char address[50]; }stu;
则系统为stu分配的内存单元为__69____。
6. 在程序的横线上填入适当的内容使程序能输出结构体变量stu所占内存字节数。 struct student {double num; char name[20]; }; main()
{ struct student stu;
printf(\sizeof(stu)________); }