新思路计算机考试二级C上机复习题.doc

上传人:豆**** 文档编号:17617061 上传时间:2022-05-25 格式:DOC 页数:107 大小:723KB
返回 下载 相关 举报
新思路计算机考试二级C上机复习题.doc_第1页
第1页 / 共107页
新思路计算机考试二级C上机复习题.doc_第2页
第2页 / 共107页
点击查看更多>>
资源描述

《新思路计算机考试二级C上机复习题.doc》由会员分享,可在线阅读,更多相关《新思路计算机考试二级C上机复习题.doc(107页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流新思路计算机考试二级C上机复习题.精品文档.第一部分:填空专项1、给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每为学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #define N 5typedef structint num; char name10;

2、 char tel10;STYPE;void check();/*found*/int fun(_1_ *std)/*found*/ _2_ *fp; int i; if(fp=fopen(myfile5.dat,wb)=NULL) return(0); printf(nOutput data to file !n); for(i=0; iN; i+)/*found*/ fwrite(&stdi, sizeof(STYPE), 1, _3_); fclose(fp); return (1);main()STYPE s10= 1,aaaaa,111111,1,bbbbb, 222222,1,cc

3、ccc,333333,1,ddddd,444444,1,eeeee, 555555; int k; k=fun(s); if (k=1) printf(Succeed!); check(); else printf(Fail!);void check()FILE *fp; int i; STYPE s10; if(fp=fopen(myfile5.dat,rb)=NULL) printf(Fail !n); exit(0); printf(nRead file and output to screen :n); printf(n num name teln); for(i=0; iN; i+)

4、 fread(&si,sizeof(STYPE),1, fp); printf(%6d %s %sn,si.num, si.name,si.tel); fclose(fp);2、给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串的结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include

5、 #include void WriteText(FILE *);void ReadText(FILE *);main()FILE *fp; if(fp=fopen(myfile4.txt,w)=NULL) printf( open fail!n); exit(0); WriteText(fp); fclose(fp); if(fp=fopen(myfile4.txt,r)=NULL) printf( open fail!n); exit(0); ReadText(fp); fclose(fp);/*found*/void WriteText(FILE _1_)char str81; prin

6、tf(nEnter string with -1 to end :n); gets(str); while(strcmp(str,-1)!=0) /*found*/ fputs(_2_,fw); fputs(n,fw); gets(str);void ReadText(FILE *fr)char str81; printf(nRead file and output to screen :n); fgets(str,81,fr); while(!feof(fr) /*found*/ printf(%s,_3_); fgets(str,81,fr);3、给定程序中,函数fun的功能是:将自然数1

7、10以及他们的平方根写到名为myfile3.txt的文本文件中,然后在顺序读出显示在屏幕上。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include int fun(char *fname)FILE *fp; int i,n; float x; if(fp=fopen(fname, w)=NULL) return 0; for(i=1;i=10;i+)/*found*/ fprintf(_1_,%d %fn,i,sqrt(double)i); printf(n

8、Succeed!!n);/*found*/ _2_; printf(nThe data in file :n);/*found*/ if(fp=fopen(_3_,r)=NULL) return 0; fscanf(fp,%d%f,&n,&x); while(!feof(fp) printf(%d %fn,n,x); fscanf(fp,%d%f, &n,&x); fclose(fp); return 1;main()char fname=myfile3.txt; fun(fname);4、给定的程序功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中。复制成功时函数返回值为1,失

9、败时返回值为0.在复制过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include int fun(char *source, char *target)FILE *fs,*ft; char ch;/*found*/ if(fs=fopen(source, _1_)=NULL) return 0; if(ft=fopen(target, w)=NULL)

10、return 0; printf(nThe data in file :n); ch=fgetc(fs);/*found*/ while(!feof(_2_) putchar(ch);/*found*/ fputc(ch,_3_); ch=fgetc(fs); fclose(fs); fclose(ft); printf(nn); return 1;main()char sfname20 =myfile1,tfname20=myfile2; FILE *myf; int i; char c; myf=fopen(sfname,w); printf(nThe original data :n);

11、 for(i=1; i30; i+)c=A+rand()%25;fprintf(myf, %c,c); printf(%c,c); fclose(myf);printf(nn); if (fun(sfname, tfname) ) printf(Succeed!); else printf(Fail!);5、给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的B

12、LACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #define N 8typedef struct listint data; struct list *next; SLIST;void fun(SLIST *h, int x)SLIST *p, *q, *s; s=(SLIST *)malloc(sizeof(SLIST);/*found*/ s-data=_1_; q=h; p=h-next; while(p!=NULL & xp-data) /*found*/ q=_2_; p=p-next; s-next=p;/*found*/ q-next

13、=_3_;SLIST *creatlist(int *a)SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; idata=ai; p-next=q; p=q; p-next=0; return h;void outlist(SLIST *h)SLIST *p; p=h-next; if (p=NULL) printf(nThe list is NULL!n); else printf(nHead); do printf(-%d,p-data); p=p-next; while(p!=NULL); printf(-

14、Endn);main()SLIST *head; int x; int aN=11,12,15,18,19,22,25,29; head=creatlist(a); printf(nThe list before inserting:n); outlist(head); printf(nEnter a number : ); scanf(%d,&x); fun(head,x); printf(nThe list after inserting:n); outlist(head);6、给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾

15、部节点中的数据,并释放该节点,使链表缩短。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #define N 8typedef struct listint data; struct list *next; SLIST;void fun(SLIST *p)SLIST *t, *s; t=p-next; s=p; while(t-next != NULL) s=t;/*found*/ t=t-_1_;/*found*/ printf( %d ,_2_)

16、; s-next=NULL;/*found*/ free(_3_);SLIST *creatlist(int *a)SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; idata=ai; p-next=q; p=q; p-next=0; return h;void outlist(SLIST *h)SLIST *p; p=h-next; if (p=NULL) printf(nThe list is NULL!n); else printf(nHead); do printf(-%d,p-data); p=p-n

17、ext; while(p!=NULL); printf(-Endn);main()SLIST *head; int aN=11,12,15,18,19,22,25,29; head=creatlist(a); printf(nOutput from head:n); outlist(head); printf(nOutput from tail: n); while (head-next != NULL) fun(head); printf(nn); printf(nOutput from head again :n); outlist(head);7、给定程序中已建立一个带有头结点的单向链表

18、,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #define N 8typedef struct listint data; struct list *next; SLIST;void fun(SLIST *h)SLIST *p, *q; p=h-next; if (p!=NULL) q=p-next; while(q!=NULL)

19、if (p-data=q-data) p-next=q-next;/*found*/ free(_1_);/*found*/ q=p-_2_; else p=q;/*found*/ q=q-_3_;SLIST *creatlist(int *a)SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; idata=ai; p-next=q; p=q; p-next=0; return h;void outlist(SLIST *h)SLIST *p; p=h-next; if (p=NULL) printf(nThe

20、list is NULL!n); else printf(nHead); do printf(-%d,p-data); p=p-next; while(p!=NULL); printf(-Endn);main()SLIST *head; int aN=1,2,2,3,4,4,4,5; head=creatlist(a); printf(nThe list before deleting :n); outlist(head); fun(head); printf(nThe list after deleting :n); outlist(head);8、给定程序中,函数fun的功能是:在带有头结

21、点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该节点在链表中所处的顺序号;若不存在职位ch的点,函数返回0值。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #define N 8typedef struct listint data; struct list *next; SLIST;SLIST *creatlist(char *);void outlist(SLIST *);int fun(SLIST *h, char ch)S

22、LIST *p; int n=0; p=h-next;/*found*/ while(p!=_1_) n+;/*found*/ if (p-data=ch) return _2_; else p=p-next; return 0;main()SLIST *head; int k; char ch; char aN=m,p,g,a,w,x,r,d; head=creatlist(a); outlist(head); printf(Enter a letter:); scanf(%c,&ch);/*found*/ k=fun(_3_); if (k=0) printf(nNot found!n);

23、 else printf(The sequence number is : %dn,k);SLIST *creatlist(char *a)SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; idata=ai; p-next=q; p=q; p-next=0; return h;void outlist(SLIST *h)SLIST *p; p=h-next; if (p=NULL) printf(nThe list is NULL!n); else printf(nHead); do printf(-%c,p-

24、data); p=p-next; while(p!=NULL); printf(-Endn);9、给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #define N 8typedef struct listint data; struct list *next; SLIST;SLIST *creatlist(int *a);void outlist(

25、SLIST *);void fun(SLIST *h, int *n)SLIST *p;/*found*/ _1_=0; p=h-next; while(p) (*n)+;/*found*/ p=p-_2_;main()SLIST *head; int aN=12,87,45,32,91,16,20,48, num; head=creatlist(a); outlist(head);/*found*/ fun(_3_, &num); printf(nnumber=%dn,num);SLIST *creatlist(int a)SLIST *h,*p,*q; int i; h=p=(SLIST

26、*)malloc(sizeof(SLIST); for(i=0; idata=ai; p-next=q; p=q; p-next=0; return h;void outlist(SLIST *h)SLIST *p; p=h-next; if (p=NULL) printf(The list is NULL!n); else printf(nHead ); do printf(-%d,p-data); p=p-next; while(p!=NULL); printf(-Endn);10、给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域中值之和作为函数值返回。请在程序的下

27、划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #define N 8typedef struct listint data; struct list *next; SLIST;SLIST *creatlist(int *);void outlist(SLIST *);int fun(SLIST *h)SLIST *p; int s=0; p=h-next; while(p)/*found*/ s+= p-_1_;/*found*/ p=p-_2_; retur

28、n s;main()SLIST *head; int aN=12,87,45,32,91,16,20,48; head=creatlist(a); outlist(head);/*found*/ printf(nsum=%dn, fun(_3_);SLIST *creatlist(int a)SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; idata=ai; p-next=q; p=q; p-next=0; return h;void outlist(SLIST *h)SLIST *p; p=h-next;

29、if (p=NULL) printf(The list is NULL!n); else printf(nHead ); do printf(-%d, p-data); p=p-next; while(p!=NULL); printf(-Endn);11、人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号编号不存在,返回数据中的编号为空串。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得

30、增行或删行,也不得更改程序的结构!#include #include #define N 8typedef structchar num10; int year,month,day ;STU;/*found*/_1_ fun(STU *std, char *num)int i; STU a=,9999,99,99; for (i=0; iN; i+)/*found*/ if(strcmp(_2_,num)=0)/*found*/ return (_3_); return a;main()STU stdN= 111111,1984,2,15,222222, 1983,9,21,333333,19

31、84,9,1,444444,1983,7,15,555555,1984,9,28,666666,1983,11,15,777777,1983,6,22,888888,1984,8,19; STU p; char n10=666666; p=fun(std,n); if(p.num0=0) printf(nNot found !n); else printf(nSucceed !n ); printf(%s %d-%d-%dn,p.num,p.year, p.month,p.day);12、人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数f

32、un的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include #define N 8typedef structint num; int year,month,day ;STU;int fun(STU *std, STU *k, int year)int i,n=0; for (i=0; iN; i+)/*found*/ if(_1_=year)/*found*/

33、 kn+= _2_;/*found*/ return (_3_);main()STU stdN= 1,1984,2,15,2,1983,9,21,3, 1984,9,1,4,1983,7,15,5,1985,9,28,6,1982,11,15,7,1982,6,22,8,1984,8,19; STU kN; int i,n,year; printf(Enter a year : ); scanf(%d,&year); n=fun(std,k,year); if(n=0) printf(nNo person was born in %d n,year); else printf(nThese p

34、ersons were born in %d n,year); for(i=0; in; i+) printf(%d %d-%d-%dn,ki.num,ki.year, ki.month,ki.day);13、给定程序通过定义并付出值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include typedef structint num; char name9; f

35、loat score3;STU;void show(STU tt)int i; printf(%d %s : ,tt.num,tt.name); for(i=0; i3; i+) printf(%5.1f,tt.scorei); printf(n);/*found*/void modify(_1_ *ss,float a)int i; for(i=0; i_2_ *=a;main()STU std= 1,Zhanghua,76.5,78.0,82.0 ; float a; printf(nThe original number and name and scores :n); show(std

36、); printf(nInput a number : ); scanf(%f,&a);/*found*/ modify(_3_,a); printf(nA result of modifying :n); show(std);14、给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。请在程序的下划线处填入正确的内容并把下滑线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLACK1.C中。不得增行或删行,也不得更改程序的结构!#include typedef structint num; char name10;PERSON;/*found*/void fun(PERSON _1_)/*found*/ _2_ temp; if(std0.numstd1.num) temp=std0; std0=std1; std1=temp; if(std0.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com