《二级C语言题库下载.docx》由会员分享,可在线阅读,更多相关《二级C语言题库下载.docx(144页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1套题一、程序填空题给定程序的功熊是调用fun函数建立班级通讯录。通讯录中记录每位差生的 编号、姓名和电话窗码。班级的人数和孝生的信息从键盘读入,每年入的信息作 为一个数帽i夬写更名为myfile5. dat的一进相女柞单。请在程序的带划线处填入正确的内容并犯下划线删除,使程序得出正确的结 果。注意:源程序存放在考生文件隽下的BLANK1.C中。 不容增旺或删行,也不建更改程序的结构!#includeinclude#define N 5 typedef struct int num;char name10; char tel10;STYPE; void check();/*found*/ i
2、nt fun(1*std)int/* fo und*/*fp;if(fp=fopen(myfile5.dat,wb)=NULL) return(O);printf(nOutput data to file !n);for(i=0; iN; i+)/* fo und*/fwrite(&stdi, sizeof(STYPE), 1,3);fclose(fp);return (1);)main() STYPE s10=l/aaaaa,/llllll/l/,bbbbb;,222222/l/ccccc,;,333333, l;,ddddd;,444444,l/,eeeee,;,555555;int k;
3、k=fun(s);if (k=l) printf(Succeed!); check(); elsevoid check() FILE *fp; int i;STYPE s10;if(fp=fopen(myfile5.dat7rb)=NULL) printf(Fail !lnn); exit(O);printf(nRead file and output to screen :n);printf(n num name teln);for(i=0; iN; i+) fread(&si,sizeof(STYPE),l, fp);printf(%6d %s %sn,si.num/si.name/si.
4、tel);)fclose(fp);)二、程序改错题给定程序M0DI1.C中函数fun的功能是: .到t串中,底后把s中的字符按逆序连接到t串的后面。例如:当s中的空何串为:ABCDE”时,贝U t中的字符串应为:ABCDEEDCBA”。请改正程序中的锚吴,使它能得出正确的结果。先将在字符串S中的字符按正序存放应为:ABCDEEDCBA”。使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include void fun (char *sz char *t) int i, si;si = strlen(s);/* * * found *
5、for( i=0; i=sl; i +)ti = si;for (i=0; isl; i+) /* found*tsl = 0;main() char s100, t100;printf(nPlease enter string s:); scanf(s,s);fun(s, t);printf(The result is: %sn, t);三、程序编写题函数fun的功能是:将两个两位数的正整数a、b合 合并的方式是:喟酸的十位和个位数依次放在c数的寸 和个位数依次放在c数的百位和个位上。-T罡效城仕c 位上,b数的例如,当a=45, b=12时,调用该函数后,c=4152o注意:部分源程序存在
6、文件PR0G1.C中。数始:件IN. DAT中的数据不得修改。请勿改动主函初: 一钿廿骨酒粘rh砧红柿 九 夫 A?左宓粘c.砧尤芹具r+r+吉 入你编写的若干语句。,mai福口其它函数中的任何内容,仅在函数fun的花括号中填#include void fun(int a, int bf long *c)main() int azb; long c;void NONO ();printf(lnput a b:M); 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 = fopen(”K:k0124010001in.dat“,”r);wf = fopen(K:k0124010001out.dat;w);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套题一、程序填空题给定程序的功能是:从键盘输入若干行文本(每任不超过80个字货),写
8、到 文件噌ileg txt 电用-1 (独立一分)正为字符金输入结束的标志。然后将文件的 内容读出显示在屏幕上。文件的读写分别由自定义函数1&灯6*1和收五6丁6乂弋实请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结注意:源秩序存放在考生文件隽下的BLANK1.C中。 不容增忏或删行,也不编更改程序的结构!/include#include#include void WriteText(FILE *);void ReadText(FILE *);main() FILE *fp;if(fp=fopen(myfile4.txt;w)=NULL) printf( open fail!
9、nH); exit(O); WriteText(fp);fclose(fp);if(fp=fopen(,myfile4.txt/,,r,)=NULL) printf( open fail!n); exit(O); ReadText(fp);fclose(fp);/*found*/void WriteText(FILE 1) char str81;printf(HnEnter string with -1 to end :n); gets(str);while(strcmp(strJ,-l)!=O) /* * /fputs(2,fw); fputs(n,fw);gets(str);) void
10、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(stc81,fr);给定程序M0DI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位 上的数,横茨构成一个新数放在t中。高位伤在高位,低位仍在低隹:二、程序改错题:构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:7654321时,t中的数为:7531。请改正程序中的错误,使它能得出正确的结果
11、。注意:不要改动main函数,不善增行或删行,也不得更改程序的结构!#include /* fo und*/void fun (long s, long t) long sl=10;*t = s % 10;while ( s 0) s = s/100;t = s%10 si + *t;/*found*/si = si* 100;)main() long s, t;printf(nPlease enter s:); scanf(%ld, &s);fun(s, &t);printf(The result is: %ldn, t);三、程序编写题学生的记录由学号和成绩组成,N名学生的数据己在主函数中
12、放入结构体数组 s%.语编瞽数fun,它的功能是:把分数最低的学生数据放在b所指的数组中, 注意:方数盘低的学生可熊不止一个,函数返回分数最低的学生的人数。注意:部分源程序在支件PR0G1. C文件中。请勿改粉主函薮mai湎箕它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。/include #define N 16 typedef struct char num10;int s; STREC;int fun( STREC *a, STREC *b )main() STREC sN=GA05,85/GA03/76/GA02/69/GA04/85), GA01/91/,GA07
13、,1/72/GA08#64/GA061/87/ GA015,/85/GA013,/91/GA012/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 score :n,n);for(i=0;in; i+)printf(%s %4dn”,hi.num,hi.s);printf(Hn);out = fopen(K:k0124010001out.dat,w);fprintf(out, %dnH,n);for(i=0;in; i+)f
14、printf(outz ,%4dn,hi.s);fclose(out);第3套题一、程序填空题给定程序史,函数fun的磁E是:将自然数110以及它们的平方根写到名为 myfile3. txt的文本文件中,然后即应序读出场在屏幕上。请在程序的下划枝处填入正赢内容并把T划线喧,使程序得出正确的结 果。注意:源野序存放在考生文件隽下的BLANK1.C中。 不得嘲T或删行,也不得更改程序的结构!#include #include int fun(char *fname) FILE *fp;int i,n;float x;if(fp=fopen(fname, w)=NULL) return 0;for(
15、i=l;i=10;i+)/* fo und*/fprintf(1,%d %fnJ/sqrt(double)i);printf(nSucceed! nn);/* *found * *I一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.txtH; f
16、un(fname);二、程序改错题给定程序M0DI1. C中fun函数的功能是:身n个无序整数从小到大排序。请改正建序中的错误,使它能督出正确的结果。注意:不要改动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)/* fo und*/t=i;if (p!=j)t = aj;aj = ap;ap = t;void putarr( int n, int *z) int i;f
17、or (i = 1; i = n; i+, z+ ) printf( %4d, *z );if( !(i%10) printf( n); printf(n);)main() int aa20=9,3,0,4,l,2,5,6,8,10,7, n=ll;printf( nnBefore sorting %d numbers:nz n ); putarr( n, aa );fun( n, aa);printf( nAfter sorting %d numbers:nz n ); putarr( n, aa );三、程序编写题请勿改为主於 你编写的若干语句。;,b=12时,调用该函数后,c=2514.
18、里序存在文徉PR0G1. C中。数敷件IN. DAT中的数据不得修改。 牧其它函数中的任何福,仅在函数fun的花括导中填入函数fun的功熊是:将两个两位数的正整数a、b合并形成一个整数放在cR 合并的方式是:溷徽的十位和个位数依次放在c数的个检和百位上,b数的1位 和个位装余次放在c数的位知车位E#include void fun(int a, int bf long *c) main() int a,b; long c;void NONO ();printf(lnput a b:H);scanf(%d%d, &a, &b);fun(a, b, &c);printf(The result is
19、: %ldn/ c);NONO();)void NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *rf, *wf;int , azb; long c;rf = fopen(,K:k0124010001in.dat, rH);wf = fopenCKiWkOlWAOlOOOlWout.datVw);for(i = 0; i 10; i+)fscanf(rf, %d,%d, &a, &b);fun(a, b, &c);fprintf(wf, a=%d/b=%d,c=%ldn, a, b, c);)fclose(rf);fclose(wf);第4套题一、程
20、序填空题E,复制脑功时函数返色值为1,失败时返回值为0。在复制的过: 力容辎出到莫端屏幕。主函薮中源支件名放在变量sfname好的目/王,目标文件名变lEtfname 中。请在程序南下划线处填入正确的内容并把下划线删除,使程序得出正确的结中构 c吉 需 BL程 的改 下更 港 件正 文也 生. 考行 在删 放或 查俨 序增 簿 源不/include#include int fun(char *source, char *target) FILE *fs/ft; char ch;/* fo und*Iif(fs=fopen(source/1)=NULL)return 0;if(ft=fopen(
21、target, w)=NULL)return 0;printf(nThe data in file :n);ch=fgetc(fs);*found*Iwhile(!feof(2) putchar( ch );/* fo und*/fputc(ch,_3_); ch=fgetc(fs):)fclose(fs); fclose(ft);printf(nn);return 1;)main() char sfname20 =,myfilel/tfname20=myfile2;FILE *myf; int i; char c;myf=fopen(sfname/,w);printf(nThe origin
22、al data :n);for(i=l; i30; i+) c=,A+rand()%25;fprintf(myf/%c/c); printf(,%c,/c); fclose(myf);pnntf(nnH);if (fun(sfnamez tfname) printf(Succeed!);else printf(,FaillM);二、程序改错题次取出,请改正程序中的错误,使它能债出正确的结果。注意:不要改动main函数,不容增行或删行,也不得更改程序的结构!给定矗簪嬲翳需赞墨裁鬻霜上为偶数的数依 例如,当s中的教为:87653142时,t顿数为:8642.#include void fun (l
23、ong s, long *t)int d;long sl=l;*t = 0;while ( s 0) d = s%10;/* f 0 und*/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,1);三、程序编写题例如,若s所指字符串中的内容为:ABCDEFG123456”,其史字符A的ASCH码 值为奇数,因此应当删除;其中学将B的ASCII码值为偶数,但在数
24、组中的下标为 * 中的下标出力偶函数fun的功能是:将s所指 数的字符外,其余的全都删除;串 中。 奇数,因此也应当删除;而字符2的ASCH碣值为偈数,所在数组中的下标也为偶 薮因此不应当删用,其它在屁类推。最片t所指条数组中的内容应是:246”。注意:瘁分源程序存在文件PROG1.C中。请勿改副主函薮mai而其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。#indude #include void fun(char *s, chart) main()char s100, t100;void NONO ();printf(nPlease enter string S:);
25、 scanf(%s, s);fun(s, t);printf(nThe result is: %sn, t);NONO();void NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/char s100, t100;FILE *rf, *wf;int i;rf = fopenCKiWkOlWAOlOOOlWin.datYr);wf = fopen(K:k0124010001out.datzw);for(i = 0 ; i 10; i+) fscanf(rf, %s, s);fun(s, t);fprintf(wf, %sn, t);fdose(rf);fclos
26、e(wf);第5套题一、程序填空题中的各结点按结点数值放入一个新结点并,使程序得出正确的结链治序删表既费链/下单需保并的旗仍容点怔值内头fu域确BL程的改下更 港 件不,据正文也带函数人生个。点填考行一膏处在删立链各线放或 建卷划叠仃 己更下序增 藩序递,序源不 定数表在意 给的链请注中到 。域入果/include#include/define N 8 typedef struct list int data;struct list *next; SLIST;void fun( SLIST *h, int x) SLIST *p, *q, *s;s=(SLIST *)malloc(sizeof
27、(SLIST);/* f0 und*I s-data=1;q=h; p=h-next;while(p!=NULL & xp-data) /* *found* */ q=一2; p=p-next;s-next=p;/* fo und*/q-next=3SLIST *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=O;return h;)void outlist(SLIST *h) SLIST *p;p=h-next;
28、jf (p=NULL) printf(nThe list is NULL!n); else printf(nHead);do printf(-%dzp-data); p=p-next; while(p!=NULL); pnntf(-EndnH);) 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(hea
29、d,x);printf(HnThe list after inserting:nM); outlist(head);)给定程序M0DI1. C史函数且驮的功能是:计算正整数nun的各位上的数字之积。 200若输入:202,则输出应该是:0二、程序改错题例如,若输入:252,则蓊出应该是:20。右通j八:请改正程序中的错良使它能债出正确的备果。注意:不要改动main函数,不容增行或删行,也不得更改程序的结构!#include long fun (long num) /* found*long k;dok*=num%10;/* found*/num=10; while(num);return (k
30、);main()long n;printf(nPlease enter a number:); scanf(ld,&n);printf(n%ldn,fun(n);三、程序编写题治编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函 数值退回。例如:若有5口瞟的成绩是,90.5, 72, 80, 61.5, 55则晶致命值为:71. 80注意:部分源程序存在文件PR0G1. C中。请勿改粉主函薮mai面其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。#include float fun (float *a, int n) main()float score3
31、0=90.5,72, 80, 61.5, 55, aver;void NONO ();aver = fun( score, 5 );printf( nAverage score is: %5.2fn/ aver);NONO ();)void NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *fp, *wf;int i,j;float aver; score5;fp = fopen(”K:k0124010001in.dat”Jr”);wf = fopen(K:k0124010001out.dat;wn);for(i = 0 ; i 10 ; i+) f
32、or(j = 0; j 5 ; j+) fscanf(fpj%fj,&scorej);aver = fun(score, 5);fprintf(wf, %5.2fn”, aver);fclose(fp);fclose(wf);第6套题一、程序填空题给定程序中己建立一个带有关结点的单向链帚在main函数中臂次调用fun 函数,每刷用一次fun函数,输出铳表尾部结点中的数据,并释放该2融,住链表 缩氤请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果。“注意:源程序存放在考生文件隽下的BLANK1.C中。不得增杆或删行,也不得更改程序的结构!#include#include#d
33、efine N 8 typedef struct list int data;struct list *next; SLIST;void fun( SLIST *p) SLIST *t, *s;t=p-next;s=P;while(t-next != NULL) s = t;/*qUPq|* *!t=t-1) /* * *found* * *printf( %d、2); s-next=NULL;/* *found *I free(_3_);)SLIST *creatlist(int *a) SLIST *h/*p/*q; int i;h=p=(SLIST *)malloc(sizeof(SLI
34、ST);for(i=0; idata=ai; p-next=q; p=q;)p-next=O;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(-%dzp-data); p=p-next; while(p!=NULL); printf(-Endn);)main() SLIST *head;int aN卜11,12,15,18,19,22,25,29;head=creatlist(a);printf(nOu
35、tput from head:n); outlist(head);printf(nOutput from tail: n);while (head-next != NULL) fun(head);printf(nnH);printf(nOutput from head again :n); outlist(head);)二、程序改错题WIO_ _.例如中看霸落为abed,则应输出:dcba 请改正程择中两错误,使它能诂算出正确的结 注意:不要改动main函数,不得埴行或删行,不得更改程序的结构!给定程序M0DILC中函数fun的功能是:将字符串中的字符按逆序输出,但不改 变字符串#includ
36、e /*found*/ fun (char a) if(*a) fun(a+l);/* found*/ printf(%c *a);) main() char s10=abcd,;printf(处理前字符串=%sn处理后字符串s);fun(s); printf(nH);)三、程序编写题供返提则ft!的。ingh序ma 数度串ijan募O 函长符besh源函句 个更又回分主语 一符个覆野干 写字一,将:改若 编求第如数意勿的 请的回例函注请写.回 是返 功函 的, 它物 n,函OG数 PR函 件它 文其符串字符常字两的串。薪CXT浮串#include char *fun ( char *s, c
37、har *t) main()char a20,b20;void NONO ();printf(Hlnput 1th string:);gets( a);printf(lnput 2th string:);gets( b);printf(%sn,fun (a, b);NONO ();void NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE *fp, *wf;int i;char a20, b20;fp = fopenCKiWkOlWAOlOOOlWin.daf/r);wf = fopen(K:k0124010001out.dat;w);for(i =
38、0 ; i 10 ; i+) fscanf(fpz %s %sz a, b);fprintf(wf, sn”, fun(a, b);)fclose(fp);fclose(wf);第7套题一、程序填空题给定程序中已建立一个带有头结点的单向链表,域递樊有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一果。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 注意:源矍序存放在考生文件房下的BLANK1.C中。不容增忏或删行,也不得更改程序的结构!#include#include#define N 8 typedef struct list int data;st
39、ruct list *next; SLIST;void fun( SLIST *h) SLIST *P/ *q;p=h-next;if (p!=NULL) q=p-next;while(q!=NULL) if (pdata=q-data) p-next=q-next;/*found*free(_1_);/* fo und*q=p-一2.) elseP=q;q=q-一3一;)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(SLI