考试题库-二级C语言上机考试题库.pdf
《考试题库-二级C语言上机考试题库.pdf》由会员分享,可在线阅读,更多相关《考试题库-二级C语言上机考试题库.pdf(209页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、说明:本题库是针对2 0 0 8年4月份考试的上机考试题库,本题库共有1 0 0套题目(每套题目包含3道题:一道程序填空题、一道程序修改题、一道程序设计题),真实考试的时候,考生输入准考证后计算机随机为你抽取一套考试,每个考生考试时只需考一套题目(包含三道题),但由于考试时是随机抽题,所以即使把原题库告诉大家,你也不能知道到时计算机会给你抽取哪一套题,所以大家只有把全部题库都理解才能万无一失)二 级C语言上机试题汇编第0 1套:给定程序中,函 数f u n的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入
2、一个数:2 7 6 3 8 4 9 6,新 的 数:为7 3 9。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的B L A N K 1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:S i nc lu d e v o i d f u n(u ns i g ne d lo ng *n)u ns i g ne d lo ng x=0,i;i nt t;i=l;w h i le(*n)t=*n%_1;i f(t%2!=_ 2 _)x=x+t*i;i=i*1 0;*n=*n/1 0;)*n=_3 _;)mai nO u ns i g n
3、e d lo ng n=-l;w h i le(n 9 9 9 9 9 9 9 9|n 0)p r i nt f (/zP le as e i np u t (0 n 1 0 0 0 0 0 0 0 0):,);s c anf&n);f u n(&n);p r i nt f (/z nT h e r e s u lt i s:%ld nz,,n);)解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:1 0。第二处:判断是否是奇数,所以应填:0o第三处:最后通形参n来返回新数x,所以应填:X。给定程序M 0 D H.C中 函 数f u n的功能是:计 算n!。例如,给n输 入5
4、,则输出1 2 0.0 0 0 0 0 0。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动mai n函数,不得增行或删行,也不得更改程序的结构!给定源程序:S i nc lu d e d o u b le f u n(i nt n)d o u b le r e s u lt =1.0;i f n=0r e t u r n 1.0 ;w h i le(n 1&n 1 7 0 )r e s u lt *=n一r e t u r n r e s u lt ;)mai n()i nt n;p r i nt f(I np u t N:);s c anf&n);p r i nt f C n n
5、%d!=%lf n n,,n,f u n(n);)解题思路:第一处:条件语句书写格式错误,应改为:i f (n=0)o第二处:语句后缺少分号。请编写一个函数fu n,它的功能是:将一个数字字符串转换为一个整数(不得调 用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串 T2 3 4 ,则函数把它转换为整数值-12 3 4 o函数fu n中给出的语句仅供参考。注意:部分源程序存在文件P R 0G 1.C文件中。请勿改动主函数ma in和其它函数中的任何内容,仅在函数fu n的花括号中填入你编写的若干语句。给定源程序:inclu de Sinclu de long fu n(cha r*
6、p)/*以下代码仅供参考*/int i,len,t;/*len为串长,t为正负标识*/long x=0;len=s t rlen(p);if(p 0=,-)t=-l;len;p+;els e t=l;/*以下完成数字字符串转换为一个数字*/ret u rn x*t;ihillLiiMhJltiiihihifcma inO /*主函数*/cha r s 6;long n;print f(Z/E nt er a s t ring:nz z);get s(s);n=fu n(s);print f(%ld n,n);NO NO ();)NO NO ()/*本函数用于打开文件,输入数据,调用函数,输出数
7、据,关闭文件。*/F I LE *fp,*wf;int i ;cha r s 2 0;long n;fp=fopen(c:t es t in.da t ,r);wf=fopen(c:t es t ou t.da t ,w);for(i=0;i 10;i+)fs ca nf(fp,%s ,s);n=fu n(s);fprint f(wf,%ld n,n);)fclos e(fp);fclos e(wf);)解题思路:本题是将一个数字字符串转换为一个整数。参考答案:Sinclu de Sinclu de long fu n(cha r*p)int i,len,t;/*len为串长,t 为正负标识*
8、/long x=0;len=s t rlen(p);if(p O =-)t=-l;len;p+;els e t=l;/*以下完成数字字符串转换为一个数字*/while(*p)x =x*10-4 8+(*p+);ret u rn x*t;ma in()/*主函数*/ihillLiiMhJltiiihihifc cha r s 6;long n;print f(E nt er a s t ring:nz,);get s(s);n=fu n(s);print f(ld n,n);NO NO ();)NO NO ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/F I LE *f
9、p,*wf;int i;cha r s 2 0;long n;fp=fopen(c:t es t in.da t ,r);wf=fopen(c:t es t ou t.da t ,w);for(i=0;i 10;i+)fs ca nf(fp,s ,s);n=fu n(s);fprint f(wf,ld n,n);)fclos e(fp);fclos e(wf);注意:由于NO NO()这个函数是改卷人用的,与考生没有什么关系,故下面从第2套试题开始均省略N0N0()第 02 套:给定程序中,函数fu n的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并
10、显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的B LA NK1.C 中。不得增行或删行,也不得更改程序的结构!给定源程序:Sinclu de v oid fu n(cha r*s,int a,dou ble f)(_1-fp;cha r ch;fp=fopen(z/filel.t x tz/,w);fprint f(fp,%s%d%f n,s,a,f);ihillLiiMhJltiiihihifcfclos e(fp);fp=fopen(filel.t x t,r);print f(z/nThe res u lt :n
11、n);ch=fget c(fp);while(!feof(_ 2 _)pu t cha r(_ 3 _);ch=fget c(fp);pu t cha r n);fclos e(fp);ma in()cha r a 10=,H ello!/,;int b=12 3 4 5;dou ble c=9 8.76;fu n(a,b,c);解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。第一处:定义文本文件类型变量,所以应填:F I LE *。第二处:判断文件是否结束,所以应填:fPo第三处:显示读出的字符,所以应填:ch。给定程序M 0 D H.C中函数f u n的功
12、能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数f u n中指定部位的错误,使它能得出正确的结果。注意:不要改动m ai n函数,不得增行或删行,也不得更改程序的结构!给定源程序:Si n cl u de v o i d fu n(ch ar *s)i n t i,j;fo r(i=0,j=0;s i!=0 ;i+)i f(s i=O&s i =9 )/*fo u n d*/s j=s i;s j=O;m ai n()ch ar i t em 8 0;p r i n t f(z/n En t er a s t r i n g:;get s (i t em);p r
13、 i n t f(z zn n Th e s t r i n g i s :%s n,i t em);fu n(i t em);p r i n t f(z/n n Th e s t r i n g o f ch an gi n g i s :%s n,i t em );解题思路:第一处:要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j来控制新字符串的位置,所以应改为:s j+=s i;0第二处:置新字符串的结束符,所以应改为:s j=O;.请编写函数f u n,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,二维数组中的数据为:W W
14、 W WS S S SH H H H则字符串中的内容应是:WSHWSHWSH。注意:部分源程序在文件PR0 G1.C中。请勿改动主函数m ai n和其它函数中的任何内容,仅在函数f u n的花括号中填入你编写的若干语句。给定源程序:t t i n cl u de#defi n e M 3Sdefi n e N 4v o i d fu n(ch ar s N,ch ar *b)i n t i,j,n=0;fo r(i=0;i N;i+)/*请填写相应语句完成其功能*/bn=0 ;)m ai n()ch ara1 0 0,w M N=W,W,W,W ,S,S,S,S ,H,H,H,H 1i n t
15、 i,j;p r i n t f(/?Th e m at r i x:n/z);fo r(i=0;i M;i+)fo r(j=0;j N;j+)p r i n t f(%3 c,w i j);p r i n t f(n );)fu n(w,a);p r i n t f(z,Th e A s t r i n g:nz,);p u t s (a);p r i n t f(n n );NONO();解题思路:本题是把二维数组中的字符数据按列存放到一个字符串中。1 .计算存放到一维数组中的位置。2 .取出二维数组中的字符存放到一维数组(已计算出的位置)中。参考答案:v o i d fu n(ch ar
16、 s N,ch ar *b)i n t i,j,n=0;fo r(i=0;i N;i+)/*请填写相应语句完成其功能*/(fo r(j =0 ;j M;j+)bn =s j i;n =i*M +j +l;)bn=0 ;第0 3套:程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函 数fu n的功能是重写形参fi l en am e所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK 1.C中
17、。不得增行或删行,也不得更改程序的结构!给定源程序:Si n cl u de#defi n e N 5t y p edef s t r u ct s t u den t l o n g s n o;ch ar n am e1 0;fl o at s co r e3;STU;v o i d fu n(ch ar *fi l en am e,STU n)FILE*fp;fp =fo p en(_1 _,r b+”);fs eek(_ 2 _,-l L*s i z eo f(STU),SEEK_ END);fw r i t e(&n,s i z eo f(STU),1,3 );ihillLiiMhJ
18、ltiiihihifcfcl o s e(fp);m ai n O STU t N=1 0 0 0 1,MaCh ao ,9 1,9 2,7 7 ,1 0 0 0 2,Cao Kai ,7 5,6 0,8 8 ,1 0 0 0 3,Li Si ,8 5,7 0,7 8 ,1 0 0 0 4,Fan gFan g,9 0,8 2,8 7 ,1 0 0 0 5,Zh an gSan ,9 5,8 0,8 8 ;STU n=1 0 0 0 6,Zh ao Si ,5 5,7 0,6 8 ,s s N;i n t i,j;FILE*fp;fp =fo p en(s t u den t.dat,w b)
19、;fw r i t e(t,s i z eo f(STU),N,fp);fcl o s e(fp);fp =fo p en(s t u den t.dat,r b);fr ead(s s,s i z eo f(STU),N,fp);fcl o s e(fp);p r i n t f(z,n Th e o r i gi n al dat a:n n);fo r (j=0;j N;j+)p r i n t f(,zn No:%l d Nam e:%-8 s Sco r es:,s s j s n o,s s j.n am e);fo r (i=0;i 3;i+)p r i n t f(z,%6.2
20、 f”,s s j.s co r ei);p r i n t f(n);)fu n (s t u den t.dat,n);p r i n t f(z/n Th e dat a aft er m o di fi n g:n n);fp =fo p en(s t u den t.dat,r b);fr ead(s s,s i z eo f(STU),N,fp);fcl o s e(fp);fo r (j=0;j N;j+)p r i n t f(z/n No:%l d Nam e:%-8 s Sco r es:,s s j s n o,s s j.n am e);fo r (i=0;i 3;i+
21、)p r i n t f(z,%6.2 f ,s s j.s co r ei);p r i n t f(n);)解题思路:本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。第一处:从指定的文件中读出数据,所以应填:fi l en am eo第二处:读取文件f p的最后一条记录,所以应填:fpo第三处:再把读出的记录,写入文件f p指定的位置上,所以应填:fp o给定程序M0 DI1.C中的函数Cr eat l i n k的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数C r eatlin k中指定部位的错误,使它能得出正确的结果。注意:不要改动m a i
22、n函数,不得增行或删行,也不得更改程序的结构!ihillLiiMhJltiiihihifc给定源程序:Sin clu de Sin clu de ty pedef str u ct aa in t data;str u ct aa*n ex t;NODE;NODE *C r eatlin k(in t n,in t m)NODE *h=NULL,*p,*s;in t i;p=(NODE )mallo c(siz eo f(NODE);h=p;p-n ex t=NULL;fo r (i=l;i data=r an d()%m;s-n ex t=p-n ex t;p-n ex t=s;p=p-n
23、ex t;)r etu r n p;)o u tlin k(NODE *h)NODE *p;p=h-n ex t;pr in tf(z/n n THE LIST:n n HE A D );w hile(p)pr in tf(z,%d ,p-data);p=p-n ex t;)pr in tf(n);)main O NODE *head;head=C r eatlin k(8,2 2);o u tlin k(head);)解题思路:第 一 处:指 向 刚 分 配 的 结 构 指 针,所 以 应 改 为:p=(NODE*)mallo c(siz eo f(NODE);第二处:在动态分配内存的下一行
24、语句是,使用临时结构指针变量h保 存p指针的初始位置,最后返回不能使用P,是因为p的位置已经发生了变化,所以应改为返回h。请编写函数fu n,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:部分源程序在文件PR0 G1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fu n的花括号中填入你编写的若干语句。给定源程序:Sin clu de Win clu de#defin e N 8 0in t fu n(char *s)main ()char lin eN;in t
25、 n u m=0;pr in tf(E n ter a str in g:n);gets(lin e);n u m=fu n(lin e);pr in tf(Z/The n u mber o f w o r d is:%dn n,n u m);N0 N0();)解题思路:本题是统计字符串中的单词数。1 .利 用w hile循环语句和指针变量,当字符为空格时,则单词数k加1。2.循 环 结 束 返 回ko参考答案:in t fu n(char *s)(in t k=1 ;w hile(*s)if(*s=)k+;s+;)r etu r n k;第0 4套:程序通过定义学生结构体变量,存储了学生的学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考试 题库 二级 语言 上机
限制150内