第八章 结构体与共用体
一、选择题:
1.下面正确的叙述的是( )。
A)结构一经定义,系统就给它分配了所需的内存单元
B)结构体变量和共用体变量所占内存长度是各成员所占内存长度之和 C)可以对结构类型和结构类型变量赋值、存取和运算
D)定义共用体变量后,不能引用共用体变量,只能引用共用体变量中的成员 2.结构体类型变量在程序执行期间( )。 A)所有成员驻留在内存中 B)只有一个成员驻留在内存中
C)部分成员驻留在内存中 D)没有成员驻留在内存中 3.设有以下定义 struct date { int cat; char c; int a[4]; long m; }mydate;
则在VC6.0中执行语句: printf(\的结果是( )。 A)25 B)28 C)18 D)8
4.在说明一个共用体变量时系统分配给它的存储空间是( A)该共用体中第一个成员所需存储空间 B)该共用体中最后一个成员所需存储空间
C)该共用体中占用最大存储空间的成员所需存储空间 D)该共用体中所有成员所需存储空间的总和
5.共用体类型变量在程序执行期间的某一时刻( )。 A)所有成员驻留在内存中 B)只有一个成员驻留在内存中
C)部分成员驻留在内存中 D)没有成员驻留在内存中
6.对于下面有关结构体的定义或引用,正确的是( )。struct student { int no; int score; }student1;
A)student.score=99; B)student LiMing; LiMing.score=99; C)stuct LiMing; LiMing.score=99; D)stuct student LiMing; LiMing.score=99;
) 8.若有以下说明和语句: struct teacher { int no; char *name; }xiang, *p=&xiang;
则以下引用方式不正确的是( )。
A)xiang.no B)(*p).no C)p->no D)xiang->no
二、填空题:
1.以下程序段的作用是统计链表中结点的个数,其中first为指向第1个结点的指针。 struct node { char data; struct node *next; } *p, *first; ...
int c=0; p=first;
while( 【1】 ) { 【2】 ; p= 【3】 ; }
3.以下程序用于在结构体数组中查找分数最高和最低的同学姓名和成绩。请在程序中的空白处填入一条语句或一个表达式。 #include
{ int max,min,i,j; static struct { char name[10]; int score; }stud[6]={\李明\张三\吴大\钟六\向杰\齐伟\ max=min=1; for (i=0;i<6;i++) if(stud[i].score>stud[max].score)__________【8】___________; else if(stud[i].score 三、答案:D A B C B D D 1、(p!=NULL、c++、p->next)3、(max=i、min=i、stud[max].name,stud[max].score、 stud[min].name,stud[min].score) 第九章 文件 1.以下可作为函数fopen( )中第1个参数的正确格式是( D ) A)\ B)\ C)“c:\\myfile\\1” D)\2.为写而打开文本my.dat的正确写法是( D )。 A)fopen(\B)fp=fopen(\ C)fopen(\D)fp=fopen(\3.若执行fopen函数时发生错误,则函数的返回值是( D )。 A)地址值 B)0 C)1 D)NULL