新思路计算机考试二级C上机复习题.doc
《新思路计算机考试二级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)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新思路 计算机 考试 二级 上机 复习题
限制150内