D、简化程序设计
8. 设有如下定义: struct sk {int a; float b;} data,*p; 若要使p指向data中的a域,正确的赋值语句是(C)。 A、p=(struct sk*) data.a; B、*p=data.a; C、p=&data.a; D、p=&data,a;
9. 下列程序正确的运行结果为(C). #include
union u
{char *name; int age; int income; } s;
s.name=\s.age=28;
s.income=1000;
printf(\} A、8 B、28 C、1000 D、不确定
10.对于下述定义,不正确的叙述是(B).?65 union data {int i; char c; float f; }a,b;
A、变量a的地址和它的各成员地址都是相同的 B、可以在定义时对a初始化
C、变量a所占内存的长度等于成员f的长度 D、不能对变量a赋值,故a=b非法
11.若有以下结构体定义: struct example { int x; int y; } vl;
则(D)是正确的引用或定义. A、example.x=10;
B、struct v2;v2.x=10; C、example v2;v2.x=10;
D、struct example v2={10,3};
12.若有以下程序段,则使用错误的选项是( ). struct student {
int num; int age; };
struct student stu[3] ={{1001,20},{1002,19},{1004,20}}; main() {
struct student *p; p=stu; ? }
A、(*p).num B、(p++)->num C、p=&stu.age D、p++
二、判断题
1. 两个类型相同的结构体变量,可以互相赋值.T【10】 2. 共用体变量中起作用的成员是最后一次存放的成员.T 3. 一个共用体变量中可以同时存放其所有成员.F 4. typedef可以定义生成新的数据类型.F
5. 使几个不同的变量共占同一段内存的结构,称为\结构体\类型.N
6. 对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。T 7. 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。T 8. 共同体变量所占的内存长度等于最长的成员的长度。T
三、填空题
1. 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 _____。34 struct stud { char name[10]; float s[4]; double ave; } a,*p; 【10】
2. 设有以下结构类型说明和变量定义,则变量b在内存所占字节数是 _____。 21
struct stud { short int age; char num[3]; float s[2]; double ave; } b,*p; 3. 结构体是不同数据类型的数据集合,作为数据类型, 必须先说明结构体_____,再说明结构体变量. 类型
4. 设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是 _____。 20 union stud { short int num; char name[10]; float score[5]; double ave; } c;
5. 在内存所占字节数是 _____。 struct stud { char num[6]; float s[4]; double ave; } a,*p; 30 6、设有以下共用体类型说明和变量定义,则变量d在内存所占字节数是 _____。 union stud { short int num; char name[8];float score[3]; double ave; } d,stu[3]; 12 7. 设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是 _____。 union stud { char num[6]; float s[4]; double ave; } a,*p; 16
8. 结构体是不同数据类型的数据集合,作为数据类型, 必须先说明结构体_____,再说明结构体变量.类型
第11 章 文件
一、单选题
1. 定义my_file 为文件型指针变量,使用fopen只读方式打开一个已存在的二进制文件,以下正
确的调用形式为(C).
A、my_file=fopen(\B、my_file=fopen(\C、my_file=fopen(\D、my_file=fopen(\
2.有两个整型变量dog和cat,若要从磁盘文件把数据读到其中, 正确的形式是(B).
A、fscanf(dog ,2,1,fp);
B、fscanf(fp,\C、fscanf(dog ,cat,2,1,fp); D、fscanf(fp,\
3.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp)的值为(D)。 A、-1 B、1
C、一个非0值 D、0
4.若以\方式打开一个已存在的文件,则以下叙述正确的是(A)。
A、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B、以上各种说法皆不正确
C、文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 D、文件打开时,原有文件内容被删除,只可作写操作
二、判断题
1. C语言中,在打开文件时,必须说明文件的使用方式,\只能用于文件的写.F 2. 下面的定义和语句是合法的:file *fp;fp=fopen(\3. 用fopen(\打开的文件\可以进行修改。T
4. 在打开文件时,必须说明文件的使用方式,\表示以读/写方式打开一个二进制文件.T 5. C语言中,在打开文件时,必须说明文件的使用方式,\用于打开一个不存在的文件.F 6. C语言中,关闭一个文件就删除了这个文件.F
7. C语言中,打开一个文件就意味着产生了一个文件.F
8.在打开文件时,必须说明文件的使用方式,\表示以只读方式打开一个文件.
三、填空题
1. 调用 fopen 函数打开一文本文件,在\使用方式\这一项中, 为输入而打开需填入_____.r
2. 在C语言中,关闭文件即是文件指针不再指向该_____. 文件
3. 在C语言中,根据要处理的文件存储的编码形式,可以把文件分为ASCII文件和_____文件. 二进制
4. 若有fp=fopen(\打开文件语句,这个文件的数据是以_____的形式存放在内存中,该文件的使用方式为读/_____。文本(ASCII码) 写