计算机二级c语言上机题库.docx
《计算机二级c语言上机题库.docx》由会员分享,可在线阅读,更多相关《计算机二级c语言上机题库.docx(278页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2011全国计算机二级C语言上机参考题库注意:填空题填好答案要去掉下划线.改错题*found*下面的一行为错误地方,直接按答案更正即可。程序题答案只填在花括号中.(记得保存)第01套:-、填空题:程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:
2、include ttdefine N 5typedef struct student long sno;char name10;float score3; STU;void fun(char *filename, STU n)FILE *fp:/*found*/fp = fopen(_1_,rb+”);/*found*/fseek(_2_,-(long)sizeof (STU), SEEK_END);/*found*/fwrite (&n, sizeof (STU),1,3);fclose(fp);)main()STU tN=10001,*MaChao*,91,92,77,10002,CaoK
3、ai”,75,60,88,10003,LiSi”,85,70,78,10004,FangFang”,90,82,87,10005,*ZhangSan*,95,80,88;STU n=10006/ZhaoSi55,70,68, ssN;int i, j; FILE *fp;fp = fopenCstudent.dat,wb);fwrite(t, sizeof (STU), N, fp);fclose(fp);fp = fopenCstudent.dat,rb);fread(ss, sizeof(STU), N, fp);fclose(fp);printf(*nThe original data
4、:nn*);for (j=0; jN; j+)printf(*nNo:%ld Name:%-8s Scores: ssj. sno, ssj.name); for (i=0; i3; i+) printf(*%6.2f *, ssj.scorei);printf(*n*);fun(student, dat”, n);printf(*nThe data after modifing :nn*):fp = fopenCstudcnt.dat,rb);fread(ss, sizeof(STU), N, fp);fclose(fp);for (j=0; jN; j+)printf (*nNo:%ld
5、Name:%-8s Scores:*, ssj. sno, ssj. name); for (i=0; i3; i+) printf(*%6.2f ”, ssj.scorei);printf (n);解题答案:/*第空*/fp = fopen(filename,rb+”);/*第二空*/fseek(fp,(long)sizeof(STU), SEEK_END);/*第三空*/fwrite(&n, sizeof (STU),1, fp);二、改错题:给定程序M0DI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数Creatlink中指定
6、部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:include include typedef struct aaint data;struct aa *next; NODE;NODE *Creatlink(int n, int m)(NODE *h=NULL,*p,*s;int i;/*found*/p=(NODE)malloc(sizeof(NODE);h=p;p-next=NULL;for(i=l; idata=rand()%m; s-next=p-next;p-next=s; p=p-next;/*found*/retur
7、n p;)out link(NODE *h)NODE *p;p=h-next;printf(*nnTHE LIST :nn HEAD );while(p)printf(*-%d *,p-data);p=p-next;)printf(n);main()NODE *head;head=Creat1i nk(8,22);out link(head);)解题答案:/*found*/ p=(NODE *)malloc(sizeof(NODE);/* found*/ return h;三、程序题:请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回.一行字符串在主函数中输入,规定所有
8、单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格.注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include include #define N 80int fun(char *s)main()char 1ineN; int num=0;void NONO ();printf(Enter a string :n); gets(1ine);num=fun(1ine);printf(*The number of word is :%dnn*, num);NONO O :)void
9、NONO ()/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ FILE *rf,*wf ; int i, num ; char lineN,*p ;rf = fopen (in. dat,r);wf = fopen(out. dat,w);for(i =0; i 10; i+)fgets(line, N, rf);p = strchr (1 ine,n);if(p != NULL)*p =0;num = fun(line);fprintf(wf,%dn, num);)fclose(rf); fclose(wf);)参考答案:int fun( char *s)(
10、int k =1;while(*s)(if(*s =*) k-H-;S-H-;)return k;#抑#阴#抑#第02套:一、填空题:给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myflle4.txt中,用T作为字符串输入结束的标志.然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:include #include #include void Wr
11、iteText(FILE *);void ReadText(FILE );mainOFILE *fp;if (fp=fopen(*myfi 1 e4. txt,w)二二NULL)printf(* open fail!n*); exit(0);Wri teText(fp);fclose(fp);if (fp=fopenCxmyfile4. txt,r)=NULL)printf(* open fail!n*); exit(0);ReadText(fp);fclose(fp);/*found*/void WriteText(FILE 1)char str81;printf(*nEnter strin
12、g with -1 to end :n);gets(str);while(strcmp(str,*-1*)!=0)/*foun(j*/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);)解题答案:/*第一空*/void WriteText(FILE *fw)/*第二
13、空*/fputs(str, fw); fputs (n, fw);/*第三空*/ printf str);二、改错题:给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:7654321时,t中的数为:7531 o请改正程序中的错误,使它能得出1E确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include /*found*/ void fun (long s, long t)long sl=10;*t = s %10; while (s 0)s
14、 = s/100;*t = s%10* si +*t;/*found*/ si = sl*100;main()long s, t;printf(*nPlease enter s:); scanf&s);fun (s,&t);printf(*The result is:%ldn*, t);解题答案:/*found*/void fun (long s, long *t)/*founcj*/ sl=sl*10;三、程序题:函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
15、例如,当a=45, b=12时,调用该函数后,c=1524o注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数ftin的花括号中填入你编写的若干语句。给定源程序:#include void fun(int a, int b, long *c)()mainOint a, b; long c;void NONO ();printf(*Input a, b:);scanf (%d,%d,&a,&b);fun (a, b,&c);printf(*The result is:%ldn*, c);NONO O :)void
16、 NONO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE *rf,*wf ;int i, a, b ; long c ;rf = fopen(*in. dat*,r);wf = fopen(*out. dat,w);for(i =0; i 10; i+)fscanf(rf,&a,&b);fun (a, b,&c);fprintf (wf,*a=%d, b=%d, c=%ldn*, a, b, c);fclose (rf);fclose(wf);)解题答案:(*c=(b/l0)*1000+(a%10)*100+(b%10)*10+(a/10);)#阴的#制牌
17、#抑蝴#然的#曲#第03套:一、填空题:给定程序中,函数fun的功能是:将自然数110以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果.注意:源程序存放在考生文件夹下的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+)/*found*/ f
18、printf(1,*%d%fn* i, sqrt(double)i);printf(*nSucceed!n):/*found*/2;printf(*nThe data in file :n);/*found*/if(fp=fopen(3,r)=NULL)return 0;f scanf (fp,*%d%f *,&n,&x);whiledfeof (fp)printf(*%d n, x); fscanf (fp,&n,&x);fclose(fp);return 1;)mainOchar fname=*myfile3. txt*; fun(fname);)解题答案:/*第一空*/fprintf(f
19、p,%fn*, i, sqrt(double)i);printf(*nSucceed!n);/*第-空*/ fclose(fp);/*第三空*/ if (fp=fopen(fname,*r*)=NULL)改错题:给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:include ttinclude fun (int n, int *a)int i, j, p, t;for (j =0; jn-l ; j+)p = J;/*found*/ for (i=j+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 上机 题库
限制150内