计算机二级c语言上机题库.pdf
《计算机二级c语言上机题库.pdf》由会员分享,可在线阅读,更多相关《计算机二级c语言上机题库.pdf(304页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2011全国计算机二级C语言上机参考题库注意:填空题填好答案要去掉下划线。改错题*found*下面的一行为错误地方,直接按答案更正即可。程序题答案只填在花括号中。(记得保存)第0 1套:、填空题:程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数f u n的功能是重写形参f i l e n a m e所指文件中最后 个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下B L A N K l.C+不得增行或删行,也不得
2、更改程序的结构!给定源程序:#i n c l u d e d e f i n e N 5t yp e d e f s t r u c t s t u d e n t l o n g s n o;c h a r n a m e 1 0 ;f l o a t s c o r e 3 ;S T U;vo i d f u n(c h a r *f i 1 e n a m e,S T U n)F I LE *f p;/*f o u n d*/f p =f o p e n(_1_,r b+”);/*f o u n d*/f s e e k(_ 2 _,-(l o n g)s i ze o f (S T U
3、),S E E K_ E ND);/*f o u n d*/f wr i t e (&n,s i ze o f (S T U),1,_3_);f c l o s e (f p);)m a i n()S T U t N =1 0 0 0 1,Ma Ch a o ,9 1,9 2,7 7,1 0 0 0 2,Ca o Ka i”,7 5,6 0,8 8,1 0 0 0 3,Li S i ,8 5,7 0,7 8,1 0 0 0 4,“F a n g F a n g”,9 0,8 2,8 7,1 0 0 0 5,Z h a n g S a n ,9 5,8 0,8 8;S T U n=1 0 0 0
4、 6/Z h a o S i 5 5,7 0,6 8),s s N;i n t i,j;F I LE *f p;f p =f o p e n (s t u d e n t,d a t7 7,wb );f wr i t e(t,s i ze o f (S T U),N,f p);f c l o s e (f p);f p =f o p e n(s t u d e n t.d a t,“r b);f r e a d(s s,s i ze o f(S T U),N,f p);f c l o s e (f p);p r i n t f(n T h e o r i g i n a l d a t a :
5、n n );f o r (j=0;j N;j+)p r i n t f (,z n No:%l d Na m e:%-8 s S c o r e s:,s s j .s n o,s s j .n a m e);f o r (i=0;i 3;i+)p r i n t f C%6.2 f ”,s s j .s c o r e i );p r i n t f C n 3 ;)f u n(s t u d e n t,d a t”,n);p r i n t f (n T h e d a t a a f t e r m o d i f i n g :n n );f p =f o p e n Cs t u
6、d e n t.d a t ,r b );f r e a d(s s,s i ze o f(S T U),N,f p);f c l o s e (f p);f o r (j=0;j N;j+)p r i n t f (/z n No:%l d Na m e:%-8 s S c o r e s:,s s j .s n o,s s j .n a m e);f o r (i=0;i 3;i+)p r i n t f C%6.2 f s s j .s c o r e i l);p r i n t f (n );)解题答案:/*第-空*/f p =f o p e n(f i l e n a m e,r
7、b+”);/*第二空*/f s e e k(f p,-(l o n g)s i ze o f(S T U),S E E K_ E ND);/*第三空*/f wr i t e(&n,s i ze o f (S T U),1,f p);二改错题:给定程序M O D I L C 中的函数Cr e a t l i n k 的功能是创建带头结点的单向链表,并为各结点数据域赋0到 m-1 的值。请改正函数Cr e a t l i n k 中指定部位的错误,使它能得出正确的结果。注意:不要改动m a i n 函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l u d e i n c l
8、 u d e t yp e d e f s t r u c t a ai n t d a t a;s t r u c t a a *n e xt;NO D E;NO D E *Cr e a t l i n k(i n t n,i n t m)NO D E *h=NU LL,*p,*s;i n t i;/*f o u n d*/p=(NO D E)m a l l o c(s i ze o f(NO D E);h=p;p-n e xt=NU LL;f o r(i=l;i d a t a=r a n d();s-n e xt=p-n e xt;p-n e xt=s;p=p-n e xt;)/*f o
9、 u n d*/r e t u r n p;)o u t l i n k(NO D E *h)NO D E *p;p=h-n e xt;p r i n t f C n n T H E LI S T :n n H E AD );wh i l e(p)p r i n t f (z/-%d ”,p-d a t a);p=p-n e xt;)p r i n t f(n );)m a i n()NO D E *h e a d;h e a d=Cr e a t l i n k(8,2 2);o u t l i n k (h e a d);)解题答案:/*f o u n d*/p=(NO D E *)m a
10、 1 1 o c(s i ze o f(NO D E);/*f o u n d*/r e t u r n h;三、程序题:请编写函数f u n,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:部分源程序在文件P R O G L C中。请勿改动主函数m a i n和其它函数中的任何内容,仅在函数f u n的花括号中填入你编写的若干语句。给定源程序:#i n c l u d e 4i n c l u d e d e f i n e N 80i n t f u n (c h a r *
11、s)()m a i n()c h a r l i n e N ;i n t n u m=0;v o i d N O N O ();p r i n t f (z zEn t e r a st r i n g :n);g e t s(l i n e);num二 fun(1 ine);printf(z,The number of word is:%dnn,num);N O N O O;)void N O N O ()/*请在此函数内打开文件,输入测试数据,调 用 fu n 函数,输出数据,关闭文件。*/FILE*rf,*wf;int i,num;char lineN,*p;rf=fopen(in.d
12、at,r);wf=fopen(z,out.dat,w);for(i=0;i 10;i+)fgets(line,N,r f);p 二 strchr(line,n);if(p!=NULL)*p=0;num=fun(line);fprintf(wf,%dn,num);fclose(rf);fclose(wf);)参考答案:int fun(char*s)(int k=1 ;while(*s)if(*s=)k+;s+;)return k;)#第02套:一、填空题:给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用T 作为字符串输入结束的标志。然后将文件的
13、内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和 WriteText实现。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK 1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include iinclude ttinclude v o i d W r i t e T e x t(F I L E*);v o i d R e a d T e x t(F I L E*);m a i n O F I L E*f p;i f (f p=f o p e n C*m y f i l e 4.t x t,v)二 二 N
14、 U L L)p r i n t f (z/o p e n f a i l!n,z);e x i t (0);W r i t e T e x t(f p);f c l o se(f p);i f (f p=f o p e n(,m y f i l e 4.t x t,r)=N U L L)p r i n t f C o p e n f a i l!n*);e x i t (0);R e a d T e x t(f p);f c l o se(f p);)/*f o u n d*/v o i d W r i t e T e x t(F I L E _ _ _)c h a r st r 81;p
15、r i n t f(,z n En t e r st r i n g w i t h -1 t o e n d :n);g e t s(st r);w h i l e(st r c m p(st r,*-1)!=0)/*f o u n d*/f p u t s(2,f w);f p u t s(n ,f w);g e t s(st r);)v o i d R e a d T e x t(F I L E*f r)c h a r st r 81;p r i n t f(z/n R e a d f i l e a n d o u t p u t t o sc r e e n :n);f g e t
16、s(st r,81,f r);w h i l e(!f e o f(f r)/*f o u n d*/p r i n t f (%s,_ _ _ 3_);f g e t s(st r,81,f r);)解题答案:/*第一空*/v o i d W r i t e T e x t(F I L E*f w)/*第二空*/f p u t s(st r,f w);f p u t s(n,f w);/*第1 空*/p r i n t f st r);二、改错题:给定程序M O D I L C 中函数f u n 的功能是:从低位开始取出长整型变量s 中奇数位上的数,依次构成一个新数放在t 中。高位仍在高位,
17、低位仍在低位。例如,当s中的数为:7654321时,t中的数为:7531o请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l u d e /*f o u n d*/v o i d f u n (l o n g s,l o n g t)(l o n g sl=10;*t =s%10;w h i l e (s 0)s=s/100;*t 二 s%10*si +/*f o u n d*/si =sl*100;)m a i n()l o n g s,t;p r i n t f(,z n P l e a se e n t
18、 e r s:);sc a n f(“耦d”,&s);f u n (s,&t);p r i n t f(,zT h e r e su l t i s:%l d n”,t);)解题答案:/*f o u n d*/v o i d f u n (l o n g s,1 o n g *t)/*f o u n d*/sl=sl*10;三、程序题:函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位 和个位数依次放在c数的千位和十位上。例如,当a=45,b=12时,调用该函数后,c=1524.注意:部分源程序存在文
19、件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数ftin的花括号中填入你编写的若干语句。给定源程序:t t i n c l u d e v o i d f u n(i n t a,i n t b,l o n g *c)()m a i n O i n t a,b;l o n g c;v o i d N O N O ();p r i n t f(I n p u t a,b:);sc a n f (%d,%d,&a,&b);fun(a,b,&c);prin tf(z,The result is:%ldn,c);N O N O O;)vo
20、id N O N O ()/*本函数用于打开文件,输入数据-,调用函数,输出数据,关闭文件。*/FILE*rf,*wf;int i,a,b;long c;rf=fopcn(in.dat,r);wf=fopen(out.dat,w);for(i=0;i 10;i+)fscanf(rf,&a,&b);fun(a,b,&c);fprintf(wf,z/a=%d,b=%d,c=%ldnz,,a,b,c);fclose(rf);fclose(wf);)解题答案:(*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);)#第03套:一、填空题:给定程序中,函数fun的功能是
21、:将自然数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*/fprintf(_1_,i,sqrt(double)i);printf(AnSucce
22、ed!n);/*found*/2;printfCAnThe data in file :n);/*found*/i f(f p=f o p e n(_ _ _ 3_ _ _,r)二:N U L L)r e t u r n 0;f sc a n f (f p,*%d%f&n,&x);w h i l e (!f e o f (f p)p r i n t f (,%d%f nz,,n,x);f sc a n f (f p,&n,&x);f c l o se(f p);r e t u r n 1;)m a i n O c h a r f n a m e =/zm y f i l e 3.t x t;f
23、 u n(f n a m e);)解题答案:/*第一*空*/f p r i n t f (f p,z,%d%f n”,i,sq r t (d o u b l e)i);p r i n t f (z/n S u c c e e d!n);/*第 二 空*/f c l o se(f p);/*第三空*/i f (f p=f o p e n(f n a m e,z,r,z)=N U L L)改错题:给定程序MOD11.C+fun函数的功能是:将 n 个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:t t
24、i n c l u d e t t i n c l u d e f u n (i n t n,i n t *a)i n t i,j,p,t;f o r (j =0;j n-l ;j+)p =J;/*f o u n d*/f o r (i=j+l;i a i )/*f o u n d*/t=i;i f (p!=j)t =a j ;a j =a p ;a p =t;)p u t a r r(i n t n,i n t *z)i n t i;f o r (i =1;i 二 n;i+,z+)p r i n t f (%4d,*z);i f (!(i%10)p r i n t f(n);p r i n
25、t f(n);)m a i n()i n t a a 20 =9,3,0,4,1,2,5,6,8,10,7,n=l l;p r i n t f Cz n n Be f o r e s o r t i n g%d n u m b e r s:n*,n);p u t a r r(n,a a);f u n (n,a a);p r i n t f (An Af t e r s o r t i n g%d n u m b e r s:X n77,n);p u t a r r(n,a a);)解题答案:#i n c l u d e#i n c l u d e f u n (i n t n,i n t *a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 上机 题库
限制150内