《C语言程序设计A形成性考核作业四.docx》由会员分享,可在线阅读,更多相关《C语言程序设计A形成性考核作业四.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计A形成性考核作业四一、选择题1假定有“struct BOOKchar title40;float price;struct BOOK *book;”,则不正确的语句为( )。Astruct BOOK *x=malloc(book); Bstruct BOOK x=“C+ Programming”,27.0;Cstruct BOOK *x=malloc(sizeof(BOOK); Dstruct BOOK *x=&book;2 假定有“struct BOOKchar title40;float price; book;”,则正确的语句为( )。Astruct BOOK x=&boo
2、k; Bstruct BOOK *x=&book;Cstruct BOOK x=calloc(BOOK); Dstruct BOOK *x=BOOK;3表示文件结束的符号常量为( )。Aeof BEof CEOF Dfeof4C语言中系统函数fopen()是( )一个数据文件的函数。A读取 B写入 C关闭 D打开5从一个数据文件中读入以换行符结束的一行字符串的函数为( )。Agets() Bfgets() Cgetc() Dfgetc()6向一个二进制文件写入信息的函数fwrite()带有( )参数。A1 B2 C3 D4二、填空题1假定一个结构类型的定义为“struct Aint a,b;A
3、*c;”,则该类型的大小为_字节。2假定一个结构类型的定义为“struct Bint a5,char *b;”,则该类型的大小为_字节。3假定一个结构类型的定义为“struct Dint a;unionint b;double c;struct D* d2;”,则该类型的大小为_字节。4假定要动态分配一个类型为struct Worker的具有n个元素的数组,并由r指向这个动态数组,则使用语句的表达式为struct Worker* r=_。5假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为_。6假定要访问一个结构指针p所指向对象中的b指针成员所指的对象,则表示方法为_7与结构成员访
4、问表达式(*fp).score等价的表达式是_。三、写出下列每个程序运行后的输出结果1. #includestruct Workerchar name15; /姓名int age; /年龄float pay; /工资void main()struct Worker x=wanghua,52,23.50;struct Worker y,*p;y=x;p=&x;printf(%s %d %6.2fn,y.name,y.age,y.pay);printf(%s %d %6.2fn,p-name,p-age,p-pay);输出结果为:2. #include#includestruct Workerch
5、ar name15; /姓名int age; /年龄float pay; /工资;void main()struct Worker x;char *t=louting;int d=38;float f=493;strcpy(x.name,t);x.age=d;x.pay=f;x.age+;x.pay*=2;printf(%s %d %6.2fn,x.name,x.age,x.pay); 输出结果为:3. #include#includestruct Workerchar name15; /姓名int age; /年龄float pay; /工资;int Less(struct Worker r
6、1,struct Worker r2)if(r1.ager2.age)return 1;else return 0;void main()struct Worker a4=abc,25,420,def,58,638,ghi,49,560,jkl,36,375; struct Worker x=a0;int i;for(i=1;i4;i+)if(Less(x,ai)x=ai;printf(%s %d %6.2fn,x.name,x.age,x.pay); 输出结果为:四、写出下列每个函数的功能1.void QA(struct Worker a,int n)int i;for(i=0;in;i+)
7、scanf(%s %d %f,&ai.name,ai.age,ai.pay);假定结构struct Worker的定义如下:#include#include#includestruct Workerchar name15; /姓名int age; /年龄float pay; /工资;函数功能为:2. struct StrNode *QB(int n)StrNode * f,*p;if(n=0)return NULL;f=(StrNode*)malloc(sizeof(struct StrNode);scanf(%s,f-name);p=f;while(-n)p=p-next=(StrNode*
8、)malloc(sizeof(struct StrNode); scanf(%s,p-name);p-next=NULL;return f;假定结构struct StrNode的定义如下:struct StrNodechar name5;struct StrNode *next; 函数功能为:3. struct IntNode* FindMax(struct IntNode *f)struct IntNode *p=f;if(!f)return NULL;f=f-next;while(f)if(f-data data)p=f;f=f-next;return p;假定结构struct StrNo
9、de的定义如下:struct IntNodeint data;struct IntNode * next; 函数功能为:4. int Count(struct IntNode *f)int c=0;while(f)c+;f=f-next;return c;假定结构struct StrNode的定义如下:struct IntNodeint data;struct IntNode * next; 函数功能为:5. struct IntNode* Input(int n)struct IntNode *f,*p;f=(IntNode*)malloc(sizeof(struct IntNode); i
10、f(n=0)return NULL;f-next=NULL;printf(从键盘输入 %d 个整数:,n); while(n-)scanf(%d,&(f-data);p=f;f=(IntNode*)malloc(sizeof(struct IntNode); f-next=p;return f-next;假定结构struct StrNode的定义如下:struct IntNodeint data;struct IntNode * next; 函数功能为:6. #include#include#includevoid JA(char* fname)FILE* fout=fopen(fname,w);char a20;printf();while(1)scanf(%s,a);if(strcmp(a,end)=0)break;fputs(a,fout);fputc(n,fout);fclose(fout);void main()char *p=d:xxkxuxk1.txt;JA(p); 函数功能为: