考试题库-二级C语言题库.docx

上传人:无*** 文档编号:87073887 上传时间:2023-04-16 格式:DOCX 页数:156 大小:825.13KB
返回 下载 相关 举报
考试题库-二级C语言题库.docx_第1页
第1页 / 共156页
考试题库-二级C语言题库.docx_第2页
第2页 / 共156页
点击查看更多>>
资源描述

《考试题库-二级C语言题库.docx》由会员分享,可在线阅读,更多相关《考试题库-二级C语言题库.docx(156页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第i套题一、程序填空题给定程序的功熊是调用fun函数建立秤级通讯录。通讯录中记录每位差生的编号、姓名和电话窗码。班级的人数和孝生的信息从键盘读入,每不入的信息作为一个数解夬写更名为myfile5. dat的一进新女柞单。请在程序的带划线处填入正确的内容并犯下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件隽下的BLANK1.C中。不容增旺或删行,也不建更改程序的结构!#include #include #define typedef int iN 5structnum;char name10;char tel10;STYPE;void check();/* found *I int

2、fun(_STYPE _*std)FILE*fp;intif(fp=fopen(myfile5.dat7,wb)=NULL)return(O);printf(nOutput data to file !nM);for(i=0; iN; i+)fwrite(&stdiz sizeof(STYPE),1,fp);fclose(fp);return (1);)main() STYPE s10=l/aaaaa/llllll/l;,bbbbbz222222/l;ccccc;333333/l/ddddd,7,444444/l/eeeee,555555;int k;k=fun(s);if (k=l) pri

3、ntf(Succeed!); check(); elsevoid check() FILE *fp; int i;STYPE s10;if(fp=fopen(myfile5.dat,rb)=NULL) printf(Fail !n); exit(O);printf(nRead file and output to screen :n);printf(nn num name teln);for(i=0; iN; i+) fread(&si,sizeof(STYPE),l, fp);printf(%6d %s %sn/si.num,si.name,si.tel);)fclose(fp);二、程序改

4、错题给定程序M0DI1.C中函数fun的功能是: .到t串中,密后把s中的字符按逆序连接到t串的后面。例如:当s中的空何串为:ABCDE”时,贝U t中的字符串应为:ABCDEEDCBA”。请改正程序中的锚吴,使它能得出正确的结果。先将在字符串S中的字符按正序存放应为:ABCDEEDCBA”。使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include void fun (char *s, char *t) int i, si;si = strlen(s);/*found */for( i=0; i=sl; i +)ti= si;f

5、or (i=0; isl; i+)tsl+i= ssl-i-l;t2*sl=0;main() charsIlOO, t100;printf(nPlease enter string s:); scanf(s, s);fun(s, t);printf(The result is:%sn”, t);函数fun的功前是:将两个两位数的正整数a、b合 合并的方式是:嗝徽的十位和个位数依次放在c数的斗 和个位数依次放在c数的百位和个位上。一午整姒以仕c位上,b数的程序编写题,当a=4/b=12时,调用该函数后,c=4152。速意:手分二.请勿改动王函一 入你编写的若干语句。一源程序存在文件PR0G1.

6、C中。数始:件IN. DAT中的数据不得修改。西薮mai湎其它函数中的任何福,仅在函数fun的花括导中填#include void fun(int a, int bz long *c)*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);main() int a,b; long c;void NONO ();printf(lnput a b:); scanf(%d%d/&a,&b);fun(a, b,&c);printf(The result is:%dn/ c);NONO();)void NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭

7、文件。*/FILE *rf,*wf;int i, a,b ; long c;rf = fopenCKiWkOlWlOOOlWin.dat,r);wf = fopen(K:k0124010001out.datzw);for(i =0; i 10; i+)fscanf(rf,d,%d“,&a,&b);fun(a, b,&c);fprintffwf,a=%d/b=%d/c=%ldn/ a, b, c);)fclose(rf);fclose(wf);第2套题一、程序填空题文件翳盟卧铲瞬解题雌福浦内容读出显示在屏集上。文件的读写芬别-4义函数区6&116乂1和后辽6亍6乂1实果。请在程序的下划线处填入正

8、确的内容并把下划线删除,使程序得出正确的结注意:源程序存放在考生文件隽下的BLANK1.C中。不容增存或删行,也不痔更改程序的结构!#include#include#includevoid WriteText(FILE *);void ReadText(FILE *);main() FILE *fp;if(fp=fopen(myfile4.txt7w)=NULL) printf( open fail!n); exit(O); WriteText(fp);fclose(fp);if(fp=fopen(myfile4.txt;r)=NULL) printf( open fail!n); exit(

9、O); ReadText(fp);fclose(fp);)/* fo und*/void WriteText(FILE *fw) char str81;printf(nEnter string with -1 to end :nH);gets(str);while(strcmp(str;-l)!=O)fputs(strjw); fputs(n,fw); gets(str);)void ReadText(FILE *fr) char str81;printf(nRead file and output to screen :nH); fgets(str,81,fr);while(!feof(fr

10、)/* fo und*/printf(s,str);fgets(str,81,fr);上的数,给定程序M0DI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位 上,裱义构成一个新数放在t中。高位伤在高位,低位仍在低位二、程序改错题例如,当s中的数为:7654321町,t中的数为:7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不椁增行或删行,也不得更改程序的结构!/include /* fo und* void fun (long s, long * t) long sl=10;*t = s%10;while ( s 0) s = s/100;*t

11、 = s%10*sl +*t;si = sl*10;) main() long s, t;printf(HnPlease enters:); scanf(ld”,&s);fun(s,&t);printf(The result is:%ldn, t);)三、程序编写题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放人结构体数组 s%.通编警I数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:方数盘低的学生可熊不止一个,函数返回分数最低的学生的人数。注意:部分源程序在支件PR0G1. C文件中。请勿改粉主函薮mai湎箕它函数中的任何内容,仅在函数fun的花括号中填入你编写

12、的若干语句。#include /define N 16 typedef struct char num10;int s; STREC;int fun( STREC *az STREC *b ) int i/j=Ozmin=aO.s;for(i=0;iN;i+)(if(ai.smin)(j=O;bj+=ai;min=ai.s;else if(min=ai.s)bj+=ai;return j;main() STREC sN=GA051/85/GA03z76,GA02/69/GA04/85/,GA01/91/GA07/72/GA08/64/GA06,/87/,GA015/85/GA013/91/GA

13、012/64/GA014/91/GA011/91/GA017/64/GA018/64/GA016772;STREC hN;int i,n;FILE *out;n=fun( s,h );printf(The %d lowest scorefor(i=0;in; i+)printf(%s %4dn”,himum,hi.s);printf(n);out = fopen(”K:k0124010001out.dat”,“w”);fprintf(out,dn“,n);for(i=0;in; i+)fprintf(outz %4dnzhi.s);fclose(out);)第3套题一、程序填空题给定程序史,函

14、数fun的呦3是:将自然数110以及它们的平方根写到名为 myfile3. txt的文本文和中,辰目再顺序读出适F在屏幕上。果。请在程序的下划四姒tun网呼E足:的日公潼脑急翻般曾耨使程序得出正确的结注意:源程序存放在考生文件隽下的BLANK1. C中。不替增存或删行,也不痔更改程序的结构!#include#includeint fun(char FILE *fp;*fname)int i,n;float x;if(fp=fopen(fname,w,)=NULL) return 0;for(i=l;i=10;i+)/*fou nd *Ifprintf(_fp_;%d %fnH,i,sqrt(d

15、ouble)i);printf(nSucceed!n);/*found*/fclose(fp);printf(nThe data in file :n);if(fp=fopen(myfile3.txt/r)=NULL)return 0;fscanf(fp;%d%f/&n/&x);while(!feof(fp) printf(d %fn”,n,x); fscanf(fp;%d%fz&n/&x); fclose(fp);return 1;)main() char fname=myfile3.txt;fun(fname);二、程序改错题给定程序M0DI1. C中fun函数的功能是:猫n个无序整数从小

16、到大排序。请改正建序中的错误,使它能彳导出正确的结果。注意:不要改动main函数,不容增行或删行,也不得更改程序的结构!#include #include void fun (int n, int *a ) int i, j, p, t;for (j =0; jn-l; j+) p = j;/*found*for (i=j+l; iai)/*found*/P=i;if ( p!=j)t = aO;aO = ap;ap = t;void putarr( int n, int *z) int i;for (i = 1; i = n; i+, z+ ) printf( %4d, *z );if (

17、!(i%10) printf( n); printf(n);)main() int aa20=930,4,l,2,5,6,8,10,7, n=ll;printf( nnBefore sorting %d numbers:n”,n ); putarr( n, aa );fun( n, aa );printf( nAfter sorting %d numbers:n,n ); putarr( n, aa );三、程序编写题数方数如意勿的 函的位瞿请写 并个 编 合和 侪- -r a 凌激br。 盟在45源函句 加:放a=分主语 前是次当曹干 fur式依:改若后批任 数计的 _爵L中 OG数 用PR

18、函N 口 它两封假鉴暝将十十网钻椅济的 掺C 数在 建一N.在 “1仅据花 数的 的皿数。入 改填 修中 管节 不括#include void fun(int a, int b, long *c)*c=(b%10)*10004-(a%10)*100+(b/10)*10+a/10;main() int a,b; long c;void NONO ();printf(lnput a b:);scanf(%d%dH,&a,&b);fun(a, b,&c);printf(The result is:%ldn, c);NONO();)void NONO ()/*本函数用于打开文件,输入数据,调用函数,输

19、出数据,关闭文件。*/ FILE*rf,*wf;int i, a,b ; long c;rf = fopenCKiWkOlWAOlOOOlWin.dat,r);wf = fopen(K:k0124010001out.datzw);for(i =0; i 10; i+)fscanf(rf,”%d,%cT,&a,&b);fun(a, b,&c);fprintf(wfz a=%d/b=%d/c=%ldn, a, b, c);)fclose(rf);fclose(wf);)第4套题一、程序填空题给定程序的功能是:朗用函数fun将揖定源文件中的内蛰 文件中,复制或功时函数递回值为1,失彼时返回法为0。在

20、复 制的内容输出乳终瑞屏幕。主函数中源文件名放在变量sfname.一厂更,把,目标支件名:果。变里:tfnaine中。请在程序南下划线处填入正确的内容并把下划线删除,使程序得出正确的结注意:源皆序存放在考生文件隽下的BLANKl. C中。 不容增行或删行,也不修更改程序的结构!#include#include int fun(charsource, char *target) FILE *fs/ft; char ch;/* f o und*!if(fs=fopen(source,_)=NULL)return 0;if(ft=fopen(targetz w)=NULL) return 0;pri

21、ntf(nThe data in file :n);ch=fgetc(fs);/* fo und*/while(!feof(_fs_) putchar( ch );/* found*fputc(ch,_ft_);ch=fgetc(fs);fclose(fs); fclose(ft);printf(Hnn);return 1;)main() char sfname20=Hmyfilel/tfname20=myfile2;FILE *myf; int i; char c;myf=fopen(sfname/w);printf(nThe original data :n);for(i=l; i30;

22、i+) c=A+rand()%25;fprintf(myf/%c/c); printf(“c,c); fclose (myf); p r i n tf (*nn11);if (funfsfname, tfname) printf(Succeed!);else printf(Fail!);)二、程序改错题次取出,请改正程序中的错误,使它能债出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!笫定露灰嬲翳需鬻墨裁鬻雎上为偶数的数依例如,当s中的薮为:87653142时,1顿数为:8642。include void fun (long s, long *t)int d;l

23、ong sl=l;*t =0;while ( s 0) d = s%10;if (d%2=0)*t=d* sl+*t;si *=10;)s/=10;)main() long s, t;printf(nPlease enter s:); scanf(%ld,&s);fun(s,&t);printf(The result is:%ldn, t);)三、程序编”题1 为数 也的c tAs在同串1 下形 需 除符 史子 nn 1 一、 符剩同为偶。 sc下也24 极的标 解r 字数中所爰组.其但数6Z数所且 15禺囱23知蠢G1值能CDH 值ABSC曾扎一C 除秘推OG数 华 P 良就中值件它 时其霹

24、文其 的.,而它在前 铺”“其鬻 衿当删一。 时应当删源函句 期此应当分主语因也应野,此不:改若 如数因此意勿的 例奇,建请写 。为数 编数中值1#incluae include void funfchar *s, char t)(int i =0, j =0;while(si)if(i %2=0& si%2=0) tj+= si;i+;)tj=0;main()(char s100, t100;void NONO ();printf(nnPlease enter string S:); scanf(s”, s);fun(s, t);printf(nThe result is:%sn,1);NO

25、NO();)void NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据、关闭文件。*/ char s100, t100;FILE*rf,*wf;int i;rf = fopen(”K:k0124010001in.dat,”r“);wf = fopenCKAXkOlWAOlOOOlWout.datVw);for(i =0; i 10; i+)fscanf(rfz %s, s);fun(s, t);fprintf(wf,sn”, t);fclose(rf);fclose(wf);第5套题一、程序填空题域中的数:已建立一个带有头结点的单向链表,链表中的各结点按结点数链理财谶露懿骤糟

26、事蠲靠的值放入一个新结点并: 请在座序指下划线处填入正确的内容并把下列或删除,使程序得出正确的结入到链表果。注意:源皆序存放在考生文件隽下的BLANK1.C中。 不得增存或删行,也不暮更改程序的结构!includeinclude#define N 8typedef struct list int data;struct list *next; SLIST;void fun( SLIST *h, int x) SLIST *p,*q,*s;s=(SLIST *)malloc(sizeof(SLIST);/*found*/s-data= x;q=h;p=h-next;while(p!=NULL &

27、 xp-data)/* f o und*I q=_p_;p=p-next;)s-next=p;/*found*/ q-next=s ;)SLIST *creatlist(int *a) SLIST *h/pz*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

28、);do printf(-%d/p-data); p=p-next; while(p!=NULL); printf(Endn);)main() SLIST *head; int x;int aN=11,12,15,18,19,22,25,29;head=creatlist(a);printf(nThe list before inserting:nH); outlist(head); printf(nEnter a number:); scanf(”%d”,&x);fun(head,x);printf(nThe list after inserting:n); outljst(head);)二

29、、程序改错题给定程序M0DI1. C中函数fun的功能是:计笄正整数n皿的各位上的数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。请改正程序中的错馍,使它能得出正确的将果。注意:不要改动main函数,不持增行或删行,也不得更改程序的结构!#include long fun (long num)/*found*/ long k=l;dok*=num%10;Num/=10; while(num); return (k);main()long n;printf(nPlease enter a number:*); scanf(%ldz&n);printf(,n%

30、ldn/fun(n);)三、程序编写题遁编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值遢回。例如:若有5门1耀的成绩是,90.5,72,80,61.5,55则曷教的值为171.80。注意:部分源程序存在文件PR0G1.C中。请勿改凝主函薮mai湎其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include float fun (float *a, int n)int i;float aver=0.0;for(i=0;in;i+)aver+=ai; aver=aver/n;return aver;)main()float score30=90.5

31、z 12,80z 61.5,55, aver;void NONO ();aver = fun( score,5);printf(nAverage score is:%5.2fnz aver);NONO();)void NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *fp,*wf;int i, j;float aver, score5;fp = fopen(”K:k0124010001in.dat”,“r“);wf = fopen(K:k0124010001out.dat;w);for(i =0; i 10; i+)for(j =0; j 5; j+

32、) fscanf(fpj%f,”,&scorej);aver = fun(scorez 5);fprintf(wt ,%5.2fnM, aver);fclose(fp);fclose(wf);第6套题一、程序填空题缩短。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源皆序存放在考生文件隽下的BLANK1.C中。不得增杼或删行,也不睿更改程序的结构!#includeinclude#define N 8 typedef struct list int data;struct list *next; SLIST;void fun( SLIST *p) SLIST *tz

33、 *s;t=p-next; s=p;while(t-next != NULL) S=t;t=t-next)/* foundprintf(%d ”, t-data _);s-next=NULL;/*fou nd *!free(_t_);SLIST *creatlist(int *a) SLIST *h,*pz*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)

34、 printf(nThe list is NULL!n); else printfCXnHead);do printf(-%d/p-data); p=p-next; while(p!=NULL); printf(-Endn);)main() SLIST *head;int aN=ll,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);

35、printf(nOutput from head again :n); outlist(head);)功的应能不 g则它, 帼 呻为错ma L O-W-S 动 DI1中改 MO内#要 孱若 程中,正: 定串如改意 给阑请注 字变。的行 ba确删 de正或 出行 出算增。一/Ms/include /* found Void fun (char *a) if(*a) fun(a+l);/*fo(jnd main() chars10=Habcd;printf(处理前字符串=%sn处理后字符串s);fun(s); printf(n);)三、程序编写题请编写一个函数fun,它的功能是:比较两个字符串的长

36、度,(不得调用c语言提供的求字符更长度的函数),函数返回较长的字符串。若两个字符串则返回第一个字符串。例如,购入beijing shanghai (R为回车键),函数将返回shanghai。度相同,你编写的若干语句。序存在文件PR0G1.C中。mainl其它函数中的任何内容,仅在函数fun的花括号中填入#include char *fun ( char *s, char *t)(nt i;char *p=s,*q=t;int n=O,m=O;while(*p)/*计算串s的长度n,其中p为临时指针*/(n+;P+; while(*q)/*计算串t的长度m,其中q为临时指针*/( m+;q+;

37、if(n=m)/*比较m和n的值,设置p指向较大的指针*/elseP=t;return p;main()char a20,b20;void NONO ();printf(lnput 1th string:);gets( a);printf(lnput 2th string:);gets( b);printf(%sn,fun (a, b);NONO ();void NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *fpz *wf;inti;char a20, b20;fp = fopen(K:k0124010001in.dat;r);wf = fope

38、nCKiWkOlWAOlOOOlWout.datVw);for(i =0; i 10; i+)fscanf(fp,%s %s,a, b);fprintf(wt H%snH, fun(a, b);)fclose(fp);fclose(wf);)第7套题一、程序填空题给定矍序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只操留一请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果注意:源野序存放在考生文件隽下的BLANK1.C中。不容增拧或删行,也不簿更改程序的结构!#includeinclude#def

39、ine N 8 typedef struct list int data;struct list *next; SLIST;void fun( SLIST *h) SLIST *p,*q;p=h-next;if (p!=NULL) q=p-next; while(q!=NULL) if (p-data=q-data) p-next=q-next;/*found*/ free(_q_);/*found*/ q=p-_next_;) else p=q;/* f o und*Iq=q-next)SLIST *creatlist(int *a)int SLIST *h,*p,*q;h=p=(SLIST *)malloc(sizeof(SLIST);for(i=0; idata=ai

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

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁