二级C语言上机题库_南开100题.pdf
《二级C语言上机题库_南开100题.pdf》由会员分享,可在线阅读,更多相关《二级C语言上机题库_南开100题.pdf(178页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、说明:本题库是针对2 0 0 8年4月份考试的上机考试题库,本题库共有1 0 0套题I I(每套题1 1包含3道题:道程序填空题、道程序修改题、道程序设计题),真实考试的时候,考生输入准考证后计算机随机为你抽取套考试,每个考生考试时只需考套题目(包含三道题),但由于考试时是随机抽题,所以即使把原题库告诉大家,你也不能知道到时计算机会给你抽取咖套题,所以大家只有把全部题库都理解才能万无一失)宏为世纪教育提供网址:w w w.g re a tc.c n/*宏为世纪教仃w w w.g re a tc.c n*/二级C语言上机试题汇编第 3 套:给定程序中,函数f u n的功能是:将形参n所指变量中,
2、各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成个新的数,并通过形参指针n传回所指变量。例 如,输 入 个 数:2 7 6 3 8 4 9 6,新 的 数:为7 3 9。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的B L A N K I.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#i nc lu d c v oi d f u n(u nsi g ne d long *n)u nsi g ne d long x=0,i;i nt t;i=l;w h i le(*n)/*l u nd*/t=*n%_ 1 _;/*区)
3、u nd*辛*今 今*/i f(t%2!=_ 2 _)x=x+t*i;i=i*1 0;*n=*n/1 0;I/*S u nd*/*n=3 _;main()unsigned long n=-l;while(n99999999lln0)printfCPlease input(On I(X)O(K)OOO):);scanf(M%ld,&n):)fun(&n);printf(nThe result is:%ldn0,n);1解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。第二处:判断是否是奇数,所以应填:0。第三处:最后通形参n来返回新数x,所以应填:X。给定程序MODH.C
4、中 函 数fun的功能是:计算n!。pri ntf(I npu t N:);sc a nf(%dn,&n);pri ntf(n n%d!=%lf n n,n,f u n(n);1解题思路:第一处:条件语句书写格式错误,应改为:i f(n=O)。第二处:语句后缺少分号。请编写一个函数f u n,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串”-12 3 4”,则函数把它转换为整数值-I 2 3 4 o函数f u n中给出的语句仅供参考。注意:部分源程序存在文件PR OG1.C文件中。请勿改动主函数m a i n和其它函数中的任何内容
5、,仅在函数f u n的花括号中填入你编写的若干语句。给定源程序:#include#include long fun(char *p)(/*以下代码仅供参考*/int i,ien,t;/*len为串长,i为正负标识*/long x=0;len=s t r len(p):i f(N0 D t=l:len-:p+;els e t=1;/*以卜完成数字字符串转换为个数字*/r et ur n x*t;main()/*主函数*/char s 6;long n;pr int f(E nt er a s ir ing:n);gels(s);n=fun(s);printf(%ldn,n);/*宏为世纪教育*/
6、NONO();NO N O()/*木函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*w f;int i;char s20;long n;fp=fopen(c:testin.dai,r);wf=fopcn(c:Vestoui.dai,w);for(i=0;i 0)s u m +=x i ;C+:)i+;)/*found*/*宏为世纪教育w w w.g r e a t c.c n */s u m =c;r e t u r n s u m;Im a i n()i n t x I O O O ;i n t i=0:p r i n t f(n P l e a s e e
7、n t e r s o m e d a t a (e n d w i t h 0):);d o s c a n f(%d,&x i );w h i l e (x i+!=0):丽硬徵f u n (x);挤定程序中,函数f u n的功能是将形参给定的字符串、整数、浮点数写到文本以牌甲物再用字符方式从此文本文件中逐个读入并显示在终端屏幕匕璃 花 热 序 的 下 敏 速 献 俯 翻M蝌 蜘 淮 娜 妁 罐 可 好 所 佛 闸 他 痛 脚6 s u m=0.0;或l l o a i驷1=0.0:。银铉 源 陋 福 薇 觥 侬 件夹下的BLANKI.C中。不为睛衿或力解K*也不再莹鼓薛殍M拜椅5T*荆至
8、独整附中函数的功能是:根据以下公式计算s,计算结果作为函数值返嘛血蚂传入。v o i d f u i 1(c h a r *s,I n t a,d o u b l e f)+-+-+.+-/*4?*f 0u X 由2*瓢*/1 +2+3+.+n妈 注 通n的值为1 1时,函数的值为:1.833333诺就:h即分源程序在文件PROG1.C中。市”嬲 廊 碑 明 则 副 苏 它 函数中的任何内容,仅在函数面 的花括号中填入解 解 搬 赫 财 场A n,s,a,f);f c l o s c(f p):本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。第处:定义文本文件类型变量,
9、所以应填:F I L E*。第二处:判断文件是否结束,所以应填:f p。第三处:显示读出的字符,所以应填:c h。给定程序M 0 D I 1.C中函数f u n的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数f u n中指定部位的错误,使它能得出正确的结果。注意:不要改动mai n函数,不得增行或删行 也不得更改程序的结构!给定源程序:#inc l ud c v o id f un(c h a r *s)int i,j;f o r(i=0,j=0;s i !=();i+)if(s i=0,&s i=,9,)s j=s i;/*求*R)und*/s U=,O;)
10、m a in()/闻妙秋位毓/nd */加框6区 即 变 强-iWs(i tem);玳研程则T h e s t r ing is :%s n.it c m);|un(it e m);严 就 联 球 (3 1出 后 日 名 痴1血 尸2 is :%s n,it c m );=_2一 ;蝌 踞 弼+n N O)n+;嘛o琳n那*最 兴 兴 醉 津 娥;中所有数字字符组成个新的字符串,程序中是使用变量j净 制 雕 三 觥 讴 能 藏*8应改为:s l j+=s l i:o期+佐丁逊了:符串的结束符,所以应改为:slj K O:春*.*%*东 东*1=1+1;区编写函数f u n.函数的功能是:将M行
11、N列的二维数组中的字符数据.按列的利序依次放到一个字符串中。涮*()二维数组中的数据为:代能四姐=b a a c d a,c:r f ii(iiTh c s t r ing:%s n,s);p r int f(nl np ut a c h a r a c t e r:0);s c a nf(%c&c);解题思路:本题是找出最高成绩,再把N名学生的成绩等于最高成绩的记录存入b所指的数组中。具体操作请看答案程序中的说明。/*宏为世纪教育w w w.g r e a t c.c n */参考答案:i n t fun(S T R E C *a.S T R E C *b )(i n t i,m a x =
12、a O .s,n=0;fo r(i =I;i N;i+)i f(m a x a i l.s)m a x =a i .s;/*找出最高成绩*/fo r(i =0:i N:i+)i f(m a x=a i .s)b n+=a i ;/*找相等的最高成绩并存入数组b中*/r e t ur n n;/*返回符合条件的人数*/第00套:给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字价H同津其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处删字符串中的内容应是:WS HWS HWS H.他 黑 解 御 腋 伸 糕 视1史口敝字符为:a,拙钮反动行揭胸I棚/蜘典世格费隼
13、的任何内容,仅在函数f u n的花括号中填入旅翁号桶照手掷播处填入正确的内容并把下划线删除,使程序得出正确的结用定源程序:沛滴诃限嶷感奇顿在考生文件夹下的BL ANK 1.C中。而绿相即当删行,也不得更改程序的结构!船福海府用内吗做朋想接柠www.grea tc.c n*/void fun(c ha r s(N ,c ha r*b)彳*宏为世纪教育www.grea tc.c n*/int i,j,n=O;阳粗恻史玲辞+,取 错填写相应语句完成其功能*/|int i,j,n;参考答案:void fun(char sN,char*b)(/*宏为世纪教育*/int i,j.n=O;for(i=0:i
14、vN:i+)/*请填写相应语句完成其功能*/(for(j=0;j M;j+)bnl=sjiri;n=i*M+j+1;)IblnJO,;冰第 03套:程序通过定义学生结构体变量,存储了学生的学号、姓名和3 门课的成绩。所有学生数据均以:进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学夕率/款 抑 物 儆 换。第 2 个条件是应该第1和第3 个小,则交换就符合题意了,所以应改为:乖 锣 屎的下划线处填入正确的内容并把下划线删除 使程序得出正确的结段*学幽曲I!娴 郴 号 糊 蚓 酰 脚N名学生的数据已在主函数
15、中放入结构体数组s 中,请编写函数fu n,它的功能是:把分数最高的学生数据放在b 所指的数组中,注豫要分 锻 螭 翩 奉 雕 槌 央种邮 济 盘最高的学生的人数。催 懦 流 醐 健 和 酬 柳 侬 府 构!锵旗跟物星函数main和其它函数中的任何内容,仅在函数fun的花括号中填入物蝙u骅冏中中布J。绅盅源杈杀期展翅i*岫 拗 婀,蜩 褥 N 16帆M 砂y 抬 锁 char*filename,STU n)int fun(STREC*a,STREC*b)第二处:使用f。!循环语句来交换数组元素的值,所以应填:i。第三 处:使用中间变量t来交换的,所以应填:I。*给定程序M0 DI1.C中函数f
16、 t i n的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中o例如,输入的数为:5 5 1 2 3 4,输出结果应当是:a=5 5.O.b=3 4.0,c=1 2.0,.请改正程序中的错误,使它能得出正确结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构。给定源程序:#i n cl u d c v oi d f u n(f l oat *a.f l oat *b.f l oat *c)/*他u n(j*京*/f l oat *k;i f(*a*c)k=*c;*c=*a;*a=k;i f(*b *c)(柯 甘 唧*c;*c=k;)/*知u
17、 n(j*/l pc n(_ l_,rb+);a J xa 乐 於 u n d*/便忠?妈a忸 法 的 醐 银 皆 幽C曲l*P-&c);/*他u n d*/f wri t e(&n,si z e of(S T U),I,_3 _);的 廉 相 长 纪 教 育www.g re at */1R l i Wi H a=%4.1 f,b=%4.1 f,c=%4.1 f n n ,a,b,c);轴当C/IOOQ“M a C h a o”,9 1.9 2.77).1 0002.,C aoK ai ,75.6 0.8 8).H硼 方,E i的4然 啪 狗1人曲 阳 松 卿 地 碰,8 2,8 7,|1 0
18、005,Z h an g S an ;9 5,8 0,8 8);螭 牌 枳)06 J Z h aoS i”,5 5,70.6 8).ss N;镰i,j纲 僚 哪 皿 体中,k是一个浮点型变量,所以应改为:f l oat k;.吊=避妁)(渔解储备MW b啜1个条件是第1个比第2个小,则交换。第3个条件是第2个比第fw r it c(t,s iz e o f(S T U),N,fp);/*宏为世纪教育w w w.gr e a t c.c n */)解题思路:本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。第 一 处:从指定的文件中读出数据,所以应填:file n a m e。第.处:
19、读取文件f p的最后一条记录,所以应填:fpo第三处:再把读出的记录,写入文件用指定的位置上,所以应填:fPo*给定程序MODH.C中的函数C r c a d in k的功能是创建带头结点的单向链表,并为各结点数据域赋。到的值0请改正函数C r e a t lin k中指定部位的错误,使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构!给定源程序:/in c lu d e#in c lu d e t y p e d e f s t r u c t a a in t d a t a;s t r u c t a a *n e x t;娘/g、8、9、5、1
20、、2,3、4。冶P和苗栖叩则鲤她/映业税的内容并把下划线删除,使程序得出正确的结冢ODE*h=N U L L,*p,*s;t e:源程序存放在考生文件夹下的BLANKI.C中。的 箱 帽 嗫 咖叩?*范第皙矍谶隹序的结构!有慰抑 a U o c(s iz e o f(N O D E);iffiK S u d e 脸 愉?WL L:躺 淋 临 啕 埔n)(*)m a llo c(s iz e o f(N O D E);沁(4孤斗 n d Biw s x,砰叶n e x l;眸置题的1;)/*帖u n d*/解啜月世纪 教 育w w w.gr e a t c.c n */fo r (i=0:i n
21、/2;i+)请编写个函数f un,它的功能是:将s s所指字符串中所有卜标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“a b c 4 E F g ,则应输出a B c 4E F g注意:部分源程序存在文件PR0G1.C中。请勿改动主函数m a i n和其它函数中的任何内容,仅在函数f u n的花括号中填入你编写的若干语句。给定源程序:#in c l ude#in c l udc void f un (c h a r *ss)(Im a i n()c h a r tt|81J;p r in tf(n P l e a se e n te r a n str in g
22、 with in 8 0 c h a r a c te r s:n );g e ts(tt);p r in tf(n n Af te r c h a n g in g,th e str in g n tt);f un(tt);p r in tf(n b e c ome s n H%s n,tt);NONO();)购 黜 旅)D E *h)行 矍 龌 卷 考 生对字母按要求进行转换。其中大小字母的A SCH值相差3 2。御 悌 绘附W枫n 肿物?步虹、:n n HE A D);k h il e(p)帏,p-da ta);陶U北 v str l e n(*ss);i+=2)(f(ss i =a&s
23、sl ij =z)ss i -=3 2 ;%r in l f(n);Ima in()渣 逾 稀 流1举德噩窗包U in k(8,22);因 投 珈 鹿 额 鞅%施 隘 土 鹿 恃数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例隔ik(相田的指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后printf(Enter a string An):gets(line);num=fun(line);printf(The number of word is:%dnn,num);NONOO;)解题思路:本题是统计字符串中的单词
24、数。1.利用while循环语句和指针变量,当字符为空格时,则单词数k加L2.循环结束返回匕参考答案:int fun(char*s)|int k=1 ;while(*s)if(*s=)k+;s+;1return k:)给定程序MODI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包楷翰裳制海曲举卷度籁卷存餐霸姆落芋串时用物结束输入。楮 便 蚓 律*酶 镇 网 睡 展 闹 靳 确 辨 孵:号、姓名和3门课的成绩。所舞步糊蛔m盥 魁 承 蝌 嘛 微 删 泄 地 对 幽 蝴 物 脑 林-m e所指的施糠黑摩入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的篇 泪 翻 瑜 端
25、 翱 耿name所指的文件中,覆盖原来的文件内容。端而胡底煦应却笠处填入正确的内容并把下划线删除.使 程序得出正确的结rfrfclude 麟 加 舞护存放在考生文件夹卜的BLANK1.C中。代律趣彳扇融梅川:也不得更改程序的结构!漏学飙*found*字*/域 伸 用:i+)瓶做愠星声(p+i)ct+=pi:屋pM:施(*/也皓恻弋strcpy(px);k=fu n(_3 _);i f(k=0)pri n l f(n Not fou n d i n );e l s e pri n t f(T h e s e q u e n c e n u m b e r i s :%d n ,k);S L I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 上机 题库 南开 100
限制150内