《C语言程序设计形考任务4 .doc》由会员分享,可在线阅读,更多相关《C语言程序设计形考任务4 .doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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=&book; 正确答案是:struct BOOK *x=malloc(book);题目2假定有“struct BOOKchar titl
2、e40; float price; book;”,则正确的语句为( )。选择一项:a. struct BOOK x= &book; b. struct BOOK *x=&book; c. struct BOOK x=calloc(BOOK); d. struct BOOK *x=BOOK; 正确答案是:struct BOOK *x=&book;题目3在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是( )。选择一项:a. 句点 b. 冒号 c. 分号 d. 逗号 正确答案是:分号题目4假定一个结构类型的定义为 “struct Aint a,b; double c;”,则该类型的长度为(
3、 )。选择一项:a. 8 b. 10 c. 12 d. 16 正确答案是:16题目5假定一个结构类型的定义为 “struct Dint a; D* next;”,则该类型的长度为( )。选择一项:a. 4 b. 8 c. 12 d. 16 正确答案是:8题目6假定要访问一个结构指针变量x中的数据成员a,则表示方法为( )。选择一项:a. x.a b. x-a c. x(a) d. xa 正确答案是:x-a题目7与结构成员访问表达式x.name等价的表达式为( )。选择一项:a. x-name b. &x-name c. (&x)-name d. (*x)-name 正确答案是:(&x)-nam
4、e题目8假定一个链表中结点的结构类型为“struct AAint data, struct AA *next;”,则next数据成员的类型为( )。选择一项:a. struct AA b. struct AA* c. AA d. int 正确答案是:struct AA*题目9假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为( )。选择一项:a. p-next=f b. p-next=f和f=p c. f=p-next d. f-next=p和f=p 正确答案是:p-next=f和f=p题目10标准输入设备键盘的文件流标识符是
5、( )。选择一项:a. stdin b. stdout c. stderr d. stdio 正确答案是:stdin题目11表示文件结束符的符号常量为( )。选择一项:a. eof b. Eof c. EOF d. feof 正确答案是:EOF题目12C语言中打开一个数据文件的系统函数为( )。选择一项:a. fgetc() b. fputc() c. fclose() d. fopen() 正确答案是:fopen()题目13从一个数据文件中读入以换行符结束的一行字符串的系统函数为( )。选择一项:a. gets() b. fgets() c. getc() d. fgetc() 正确答案是:
6、fgets()题目14向一个二进制文件中写入信息的函数fwrite()带有的参数个数为( )。选择一项:a. 1 b. 2 c. 3 d. 4 正确答案是:4题目15在C语言中,为只写操作打开一个文本文件的方式为( )。选择一项:a. a b. r+ c. r d. w 正确答案是:w二、判断题(共40分,每小题2分。叙述正确则回答“是”,否则回答“否”)题目16在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。选择一项:对 错 正确的答案是“错”。题目17在结构类型的定义中,允许出现结构类型不完整的超前定义。选择一项:对 错 正确的答案是“对”。题目18定义结构类型的变量时,不能够
7、同时进行初始化。选择一项:对 错 正确的答案是“错”。题目19使用一个结构类型时,必须一起使用关键字struct和类型标识符。选择一项:对 错 正确的答案是“对”。题目20假定一个结构类型的定义为 “struct Aint a,b; A* c;”,则该类型的长度为12。选择一项:对 错 正确的答案是“对”。题目21假定一个结构类型的定义为 “struct Bint a5; char* b;”,则该类型的长度为20。选择一项:对 错 正确的答案是“错”。题目22执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。选择一项:对 错 正确的答案是“对”。题目23执行mallo
8、c(sizeof(struct BB)函数调用时,得到的动态存储空间能够保存具有struct BB结构类型的一个对象。选择一项:对 错 正确的答案是“对”。题目24假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。选择一项:对 错 正确的答案是“错”。题目25假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p-b。选择一项:对 错 正确的答案是“错”。题目26与结构成员访问表达式(*fp).score等价的表达式是fp-score。选择一项:对 错 正确的答案是“对”。题目27在C语言中,对二进制文件的所有不同打开方式共有6种。选择一项:对 错 正
9、确的答案是“对”。题目28C语言中的标准输入和输出设备文件都属于字符文件。选择一项:对 错 正确的答案是“对”。题目29在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。选择一项:对 错 正确的答案是“错”。题目30在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。选择一项:对 错 正确的答案是“对”。题目31一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。选择一项:对 错 正确的答案是“对”。题目32C语言系统中提供一个用来描述文件属性的类型标识符为FILE。选择一项:对 错 正确的答案是“对”。题目33每次只能向文本文
10、件中写入一个字符,不能一次写入一个字符串。选择一项:对 错 正确的答案是“错”。题目34对二进制文件进行读和写操作将使用相同的系统函数。选择一项:对 错 正确的答案是“错”。题目35在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。选择一项:对 错 正确的答案是“对”。三、写出下列每个程序运行后的输出结果(共15分,每小题5分)题目36#include struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; void main() struct Worker x=wanghua,52,4300; struct
11、Worker y, *p; y=x; p=&x; printf(%s %d %6.2fn,x.name,y.age,p-pay); wanghua 52 4300题目37#include #include struct Worker char name15; /姓名 int age; /年龄 float 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.
12、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.ager2.age) return 1; else return 0; void main() struct Worker a4=abc,25,2420,def,58,4638, ghi,49,4260,jkl,36,3750; struct Worker x=a0; int i; for(i=1; i4; i+) if
13、(Less(x,ai) x=ai; printf(%s %d %6.0fn,x.name,x.age,x.pay); def 58 4638四、写出下列每个函数的功能(共15分,每小题5分)题目39void QA(struct Worker a, int n) int i; for(i=1; inext; return c; 假定struct IntNode的类型定义为: struct IntNode int data; IntNode* next;统计出以表头指针为f的链表中结点的个数。题目41void xw1(char* fname) FILE* fout=fopen(fname,w); char a20; printf(每个字符串长度小于20,字符串end作为结束标志n); while(1) scanf(%s,a); if(strcmp(a,end)=0) break; fputs(a,fout); fputc(n,fout); fclose(fout); 把从键盘上输入的若干个字符串保存到由fname参数所指定的文本文件中。
限制150内