二级C语言机试题目.docx
《二级C语言机试题目.docx》由会员分享,可在线阅读,更多相关《二级C语言机试题目.docx(152页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、程序填空题1.给定程序的功能是调用ftin函数建立班级通讯录。通讯录 中记录每位学生的编号、姓名和电话号码。班级的人数和学生 的信息从键盘读入,每个人的信息作为个数据块写到名为 myfile5.dal的二进制文件中。请在程序的下划线处填入正确的内容并把下划线删除,使 程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。 不得增行或删行,也不得更改程序的结构!/include include #define N 5typedef struct int num;char namc10;char telIO;STYPE;void check。:int fun(I*std)/*f
2、oij nd* */2 *fp; int i;if( fp=fopen( myfi le5 .dat ,wb )=NU LL) retum(O);printf(nOutput data to file An);for(i=0; iN; i+)/* * *found* */ fwrite(&stdi, sizeof(STYPE), 1,3);fclose(fp);return (1);main()STYPEs10= l,aaaaa,.,llllll,h1 Jbbbbb”,“22222241 Jccccc,333333, (I .,ddddd,.444444, Leeeee,555555;int
3、k;k=fun(s);if(k=l) printf( Succeed!): check。; elseprintfCFail!);)void check() FILE *fp; int i;STYPE s101;if(fp=fopeiXmyfile5.daC,rb)=NULL) printf(NFailexit(O);printf(nRead file and output to screen :nH); printf(n num nameieln);for(i=0; iN; i+) fread(&si.sizeof(STYPE).l, fp);printf(M%6d %s %sn,si.num
4、, si.name.si.tel); ) fclose(fp);2.给定程序的功能是:从健盘输入若干行文本(每行不超过 80个字符),写到文件myfilM.lxi中,用“作为字符串输入结 束的标志。然后将文件的内容读出显示在屏常上。文件的读写 分别由自定义函数ReadText和WriteText实现。请在程序的下划线处填入正确的内容并把下划线删除,使 程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include#include#includevoid WriteText(FILE );void ReadText(FILE );
5、main() FILE *fp;if(fp=fopen( myfile4.txt,Mw)=NULX) printf( open fail!n);exit(O); Writelext(fp);(close(fp):if(fp=fopen(,myfile4.txl,r)=NULL) printfC open fail!nH);exit(O); ReadText(fp);fclose(fp):/*found* */void Writelext(FILE 1) char str81:printf(AnEnter string with -1 to end :nM);gets(str);while(sl
6、rcmp(sir,。1) !=0) fputs(_2_,fw); fpulsCVfw);gets(str);)void ReadText(FILE *fr) (char str81;printf(nRead file and output to screen :n);fgets(str,81,fr);while( !feof(fr) /*found* */_3_);fgets( sir,81.fr);3 .给定程序中,函数fun的功能是:将白然数110以及它 们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读 出显示在屏幕匕请在程序的下划线处填入正确的内容并把下划线删除,使 程
7、序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include #include int fun(char *fname) FILE *fp; int i,n; float x;if(fp=fopen(fname, w)=NULL) return 0;for(i=l ;i=10;i+)fpri ntf(I,%d %fn,i,sqrt(double)i);printf(AnSucceed! nM);/*found* */printf(nThe data in file :nM);if(fp=fopen(_3_,r,)=NULL)re
8、turn 0;fscanf(fp,M%d%r.&n,&x);while(!feof(fp) printf(%d %fnM,n,x);fscanf(fp,%d%f,&n,&x); fclose(fp);return 1;main() char fname=myfile3.lxt”;fun(fname);4 .给定程序的功能是:调用函数fun将指定源文件中的内容 复制到指定的目标文件中,复制成功时函数返回值为1,失败 时返回值为0。在复制的过程中,把复制的内容输出到终端屏 幕。主函数中源文件中名放在变量sfname中,目标文件名放 在变量tfname中。请在程序的下划线处填入正确的内容并把下划线删
9、除,使 程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include#includeint fun(char *source. char *target) FILEchar ch;/*found* */if(fs=fopen(source,I)=NULL)return 0:if(ft=fopen(target, w)=NULL)return 0;printf(nThe data in file :nM);ch=fgetc(fs);/*fou nd* */while(!feof(2) putchar( ch );/* * * *
10、found* */fputc(ch,3);ch=fgelc(fs);fclose(fs); fclose(ft);printfCAnXiT);return 1;main()( char sfnamet201 =myfilei .(fname20=myfile2;FILE *myf; int i; char c;myf=fopen(sfname.wM);printf(nThe original data :n);for(i=l; i30; i+) (A,+rancR)%25;fprin(f(myf,M%c,c); printf(%c.c);fclose(myf) :prinlf( nn);if
11、(fun(sfname. tfname) printf( Succeed !M); else printf(Faii!n);5 .给定程序中已建立一个带有头结点的单向链表,铢表中的 各结点按结点数据域中的数据递增有序链接。函数fun的功能 是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。请在程序的下划线处填入正确的内容并把卜划线删除,使)程序得出正确的结果。main()注意:源程序存放在考生文件夹下的BLANKLC中。 SLIST *head;int x;不得增行或删行,也不得更改程序的结构!int aN= 11,12,15,18,19,22,25,29;/
12、include head=creatlist(a);#include printf(nThe list before insert!ng:n); outltst(head);#deGne N 8printf(nEnter a number: ); scanf(%d.&x);typedef struct listfun(head.x);( in( data;printf(nThe list after insertingAn); outlist(head);struct list *next;) SUST;void fun( SLIST *h, ini x)6.给定程序中已建立一个带有头结点的单
13、向链表,在main函 SLIST *p. *q. *s;数中将多次调用fun函数,每调用一次fun函数,输出锌表尾s=( SLIST )malloc(sizeof(SLIST):部结点中的数据,并糅放该结点,使链表缩短。/*fou nd* */请在程序的下划线处填入正确的内容把下划线删除,使程s-da(a=1;序得出正确的结果。q=h:注意:源程序存放在考生文件夹下的BLANK1.C中。p=h-next;不得增行或删行,也不得更改程序的结构!while(p!=NULL & xp-data) #i nclude /*fou nd* */#include q=2;#define N 8p=p-ne
14、xt:typedef struct list( int data;s-next=p;struct list *nexl;/* * *found* */ SUST;q-next=3;)void fun( SLIST *p)SLIST *cieatlist(int *a)( SLIST *t, *s; SLIST *h,*p,*q;int i;t=p-next; s=p;h=p=( SLIST )malloc(sizeof(SLIST);while(t-next != NULL)for(i=0; idata=ai; p-next=q; p=q;l=t-_1_;p-nex(=O:/*found*/r
15、eturn h;printf( %d ,_2_);s-next=NULL:voidoullist(SLIST *h)/*found* */ SLIST *p;free(_3一);p=h-nexl;if(p=NULL) printfCAnThe list is NULLM);SLIST *creatlist(int *a)else SLIST *h,*p*q;int i; printfCAnHead);h=p=(SLIST *)malloc(sizeof(SLIST);do printf(,-%d,p-data);p=p-next;for(i=0; idata=a(i; p-next=q; p=
16、q;p-next=O;return h;void outlist(SLIST *h) SLIST *p;p=h-nexl;if(p=NULL) printf(nThe list is NULL!n);else primfCMHead);do printf(-%d,p-xlata); p=p-next;while(p!=NULL);prinlf(-Endn);main() SLIST *head:int a(N=next != NULL)fun(head);printf(nn,);printf(nOutput from head again :nM); outlist(head);7.给定程序中
17、已建立一个带有头结点的单向链表,链表中的 各结点按数据域递增有序链接。函数fun的功能是:删除链表 中数据域值相同的结点,使之只保留个.请在程序的卜划线处填入正确的内容并把卜.划线删除,使 程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。 不得增行或删行,也不得更改程序的结构!/include /include #define N 8typedef struct list( int data;struct list *nexl; SLIST:void fun( SLIST *h) SLIST *p. *q;p=h-next;if(p!=NULL) q=p-next:whi
18、le(q!=NULL) if (p-data=q-xlata) p-next=q-next;/*found*/ free(1一);q=p-_2_;else p=q:/*fou nd* */q=q-_3一;SLIST *creatlist(int *a)( SLIST *h,*p,*q; int i;h=p=(SLIST *)malloc(sizeof(SLlST);forfi=0; inext=O;return h;void outlist(SLIST *h)(SLIST *p;p=h-next;if(p=NULL) printf(nThe list is NULL!n);else print
19、f(MnHead);do prin(f( M-%d,p-data); p=p-next; ) while(p!=NULL);printfCEndXn);main()( SLIST *head; int aN= 1,2,2,3,4,4,45); head=creatlist(a);printf(nThe list before deleting :n); outlist(hcad):fun(head);printf(nThe list after deleting outlist(head);8.给定程序中,函数fun的功能是:在带有头结点的单向链 表中,查找数据域中值为ch的结点。找到后通过函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 试题
限制150内