1、一、选择题(共 30 分,每小题 2 分) 题目 1 题干 假定有 “struct BOOKchar title40; float price; struct BOOK book;”,则不正确的语句为( )。 选择一项: a. struct BOOK *x=malloc(book); b. struct BOOK x=“C+ Programming“,27.0; c. struct BOOK *x=malloc(sizeof(struct BOOK); d. struct BOOK *x= 题目 2 题干 假定有 “struct BOOKchar title40; float price; b
2、ook;”,则正确的语句为( )。 选择一项: a. struct BOOK x= b. struct BOOK *x= c. struct BOOK x=calloc(BOOK); d. struct BOOK *x=BOOK; 题目 3 题干 在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是( )。 选择一项: a. 句点 b. 冒号 c. 分号 d. 逗号 题目 4 题干 假定一个结构类型的定义为 “struct Aint a,b; double c;”,则该类型的长度为( )。 选择一项: a. 8 b. 10 c. 12 d. 16 题目 5 题干 假定一个结构类型的定义为
3、 “struct Dint a; D* next;”,则该类型的长度为( )。 选择一项: a. 4 b. 8 c. 12 d. 16 题目 6 题干 假定要访问一个结构指针变量 x 中的数据成员 a,则表示方法为( )。 选择一项: a. x.a b. x-a c. x(a) d. xa 题目 7 题干 与结构成员访问表达式 x.name 等价的表达式为( )。 选择一项: a. x-name b. ;”,则 next 数据成员的类型为( )。 选择一项: a. struct AA b. struct AA* c. AA d. int 题目 9 题干 假定一个链表的表头指针为 f,结点中包含
4、有 data 和 next 域,则向该链表的表头揑入一个地址为 p 的结点时,应执行的操作为( )。 选择一项: a. p-next=f b. p-next=f 和 f=p c. f=p-next d. f-next=p 和 f=p 题目 10 题干 标准输入设备键盘的文件流标识符是( )。 选择一项: a. stdin b. stdout c. stderr d. stdio 题目 11 题干 表示文件结束符的符号常量为( )。 选择一项: a. eof b. Eof c. EOF d. feof 题目 12 题干 C 语言中打开一个数据文件的系统函数为( )。 选择一项: a. fgetc
5、() b. fputc() c. fclose() d. fopen() 题目 13 题干 从一个数据文件中读入以换行符结束的一行字符串的系统函数为( )。 选择一项: a. gets() b. fgets() c. getc() d. fgetc() 题目 14 题干 向一个二进制文件中写入信息的函数 fw rite()带有的参数个数为( )。 选择一项: a. 1 b. 2 c. 3 d. 4 题目 15 题干 在 C 语言中,为只写操作打开一个文本文件的方式为( )。 选择一项: a. “a“ b. “r+“ c. “r“ d. “w“ 信息文本 二、判断题(共 40 分,每小题 2 分
6、。叙述正确则回答 “是 ”,否则回答 “否 ”) 题目 16 题干 在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。 选择一项: 对 错 题目 17 题干 在结构类型的定义中,允许出现结构类型不完整的超前定义。 选择一项: 对 错 题目 18 题干 定义结构类型的变量时,不能够同时进行初始化。 选择一项: 对 错 题目 19 题干 使用一个结构类型时,必须一起使用关键字 struct 和类型标识符。 选择一项: 对 错 题目 20 题干 假定一个结构类型的定义为 “struct Aint a,b; A* c;”,则该类型的长度为 12。 选择一项: 对 错 题目 21 题干 假定一
7、个结构类型的定义为 “struct Bint a5; char* b;”,则该类型的长度为 20。 选择一项: 对 错 题目 22 题干 执行 calloc(n,8)函数调用时,将动态分配得到 8*n 个字节的存储空间。 选择一项: 对 错 题目 23 题干 执行 malloc(sizeof(struct BB)函数调用时,得到的动态存储空间能够保存具有 struct BB 结构类型的一个对象。 选择一项: 对 错 题目 24 题干 假定要访问一个结构对象 x 中的由 a 指针成员所指向的对象,则表示方法为 x.a。 选择一项: 对 错 题目 25 题干 假定要访问一个结构指针 p 所指对象中
8、的 b 指针成员所指的对象,则表示方法为 p-b。 选择一项: 对 错 题目 26 题干 与结构成员访问表达式 (*fp).score 等价的表达式是 fp-score。 选择一项: 对 错 题目 27 题干 在 C 语言中,对二进制文件的所有不同打开方式共有 6 种。 选择一项: 对 错 题目 28 题干 C 语言中的标准输入和输出设备文件都属于字符文件。 选择一项: 对 错 题目 29 题干 在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。 选择一项: 对 错 题目 30 题干 在数据文件打开方式字符串中,字符 r、 w 和 a 具有确定的含义,分别代表读、写和追加方式
9、。 选择一项: 对 错 题目 31 题干 一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。 选择一项: 对 错 题目 32 题干 C 语言系统中提供一个用来描述文件属性的类型标识符为 FILE。 选择一项: 对 错 题目 33 题干 每次只能向文本文件中写入一个字符,不能一次写入一个字符串。 选择一项: 对 错 题目 34 题干 对二进制文件进行读和写操作将使用相同的系统函数。 选择一项: 对 错 题目 35 题干 在 C 语言中,系统函数 fseek()用来移动数据文件中的文件位置指针。 选择一项: 对 错 信息文本 三、写出下列每个程序运行后的输出结果(共 15 分,每
10、小题 5 分) 题目 36 题干 #include struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; void main() struct Worker x=“w anghua“,52,4300; struct Worker y, *p; y=x; p= printf(“%s %d %6.2fn“,x.name,y.age,p-pay); wanghua 52 4300 题目 37 题干 #include #include struct Worker char name15; /姓名 int age; /年龄 float
11、pay; /工资 ; void main() struct Worker x; char *t=“liouting“; int d=38; float f=3493; strcpy(x.name,t); x.age=d; x.pay=f; printf(“%s %d %6.0fn“,x.name,x.age,x.pay); liouting 39 2493 题目 38 题干 #include struct Worker char name15; int age; float pay; int Less(struct Worker r1, struct Worker r2) if(r1.agenext; return c;