C语言上机考试编程题(全)

举报
资源描述
编程题1.编程题假定输入的字符串中只包含字母和*号。请编写函数f un,它的功能是:除了字符串前导和尾部的*号外,将串中其他*号全部删除。形参h已指向字符串中第一个字母,形参p 己指向字符串中最后一个字母。在编写函数时,不得使用C 语言提供的字符串函数。例如,字符串中的内容为:*A*B C*D E F*G*,删除后,字符串中的内容应当是:*A B CI)E F G*。在编写函数时,不得使用C 语言提供的字符串函数。注意:不得改动主函数ma in和其它函数中的任何内容,仅在函数f un的花括号中填入你编写的若干语句。1#inc lud e 2#inc lud e 3 void f un(c h a r*a,c h a r*h,c h a r*p)4 56 )78 void NONO()9/*请在此函数内打开文件,输入测试数据,调 用 f u n 函数,1 0 输出数据,关闭文件。*/1 1 c h a r s 8 1,*t,;1 2 int i;1 3 F I L E *rf,*wf:1 4 rf =f ope n(z,b 3 7.in,r);1 5 wf =f ope n(a 3 7.out,w);1 6 f or(i=0;i 4;i+)1 7 f sc a nf(rf,%s”,s);1 8 t=f=s;1 9 wh ile(*t)t+;20 t;21 wh ile (*t=*)t;22 wh i le (*f=*)f+;23 f un(s,f,t);24 f printf (wf,%sn”,s);25 26 f c lose(rf);27 f c lose(wf);28 )293 0 ma in()3 1 c h a r s 8 1,*t,*f;3 2 printf(E nte r a string:n);g e ts(s);3 3 t=f=s;3 4 wh ile(*t)t+;3 5 t;3 6 wh ile (*t=*)t;3 7 wh ile (*f=*)f+;3 8 f un(s,f,t);3 9 printf(T h e string a f te r d e le te d:n/z);puts(s);4 0 N0 N0();4 1 )本题的考核点是删除字符串中字符的算法。解题思路:先将原申中从首字符开始的连续*放到一字符串数组中,再将从第一个非*字符开始到串尾连续*之前的非*字符追加其后,接着将串尾的连续*后追加,最后将新串中的字符放到原串中覆盖原串。void f un(c h a r*a,c h a r*h,c h a r*p)c h a r b 8 1,*x;int i=0,j=0;wh ile (x h)b j=*x;x+;j+;wh ile (h =p)if (*h!=*)b j=*h;j+;h+;e lse h+;p+;wh ile (*p)b j=*p;j+;p+;b j=,O,;j=0;wh ile (b j)a i=b j:i+;j+;a i=0 2.编程题请编写一个函数fu n,它的功能是:根据以下公式求人的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):兀 1 1X2 1X2X3 1X2X3X4 1X2X Xn=1 4-+-+-+-+.+-2 3 3X5 3X5X7 3X5X7X9 3 X 5 X-X(2n+l)程序运行后,如果输入精度0.0005,则程序输出为3.140578。注意:不得改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句1#inc lud e 2#inc lud e 3 d oub le f un(d oub le e ps)4 5678 )91 0 void NONO()1 1 /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/1 2 F I L E *f p,*wf ;1 3 int i;1 4 d oub le x;1 51 6 f p=f ope n(b c 0 4.in,r);1 7 if(f p 二 二 NUL L)1 8 printf (“数据文件b c 0 4.in不存在!);1 9 re turn;20 21 wf =f ope n(b c 0 4.out,w);22 f or(i=0 ;i =e ps)/*通过循环语句判断公式中某项是否在精度范围之内*/pi+=one;n+;up=up*n;d own=d own*(2*n+l);one=(d oub 1 e)up/(d oub 1 e)d own;re turn pi*2;3.编程题请编写一个函数f un,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串,若两个字符串长度相同,则返回第一个字符串。例如,输入b e ijing CR sh a ng h a i CR(CR 为回车键),函数将返回sh an gh ai。注意:不得改动主函数main 和其它函数中的任何内容,仅在函数fu n 的花括号中填入你编写的若干语句1#in cl u de 2 ch ar*fu n(ch ar*s,ch ar*t)3 4567 8 v oid NO NO ()9 /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/10 FILE*fp,*w f;11 in t i;12 ch ar a 20,b 20;1314 fp=fopen(bc0 3.in ,r);15 if(fp=二 NU LL)16 prin t f(数据文件bc0 3.in不存在!);17 ret u rn ;18 19 w f=fopen(bc0 3.ou t”,w);20 ford=0 ;i)first+;w h il e(*q+!=0?)secon d+;if(first=secon d)ret u rn s;/*判断是否到了字符串s的结尾*/*判断是否到了字符串t 的结尾*/*判断两个字符串的长度是否相等*/*若上述条件成立,则返回第一个字符串*/el se if(first secon d)/*返回较长的字符串*/ret u rn s;el seret u rn t;)4.编程题规定输入的字符串中只包含字母和*号。请编写函数fu n,它的功能是:使字符串最前面连续的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删。例如,字符串中的内容为:*A*BC*DEF*G*,若n的值为4,删除后,字符串中的内容应当是:*A*BC*DEF*G*;若n的值为8,则字符串中的内容仍为:*A*BC*DEF*G*o n的值在王函数中输入。在编写函数时,不得使用C语百提供的字符串函数。注意:不得改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句1#in cl u de 2#in cl u de 3 v oid fu n(ch ar*a,in t n)4 5678)9 v oid NO NO()10 /*请在此函数内打开文件,输入测试数据,调 用 f u n 函数,11 输出数据,关闭文件。*/12 ch ar s 81;13 in t i,n;14 FILE*rf,*w f;15 rf=fopen(b40.in ,r);16 w f=fopen(a40.ou t”,w);17 for(i=0;in)for(k=0;kn;k+)b j=*;j+;w h il e(a i)b j=a i;j+;i+;)b j=,O,;i=0;j=0;w h il e(b j)a i=b j;i+;j+;a i=,0,;)5.请编写一个函数fu n,它的功能是:计算n 门课程的平均分,计算结果作为函数值返回。例 如:若 有 5 门课程的成绩是:90.5,72,80,61.5,5 5,则函数值为:71.80。1#in cl u de 2 fl oat fu n(fl oat *a,in t n)3(4567)8 v oid NO NO ()9 /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/10 FILE*fp,*w f;11 in t i,j ;12 fl oat av er,score 5 ;1314 fp=fopen(bcO L in ,r);15 if(fp=NU LL)16 prin t f(数据文件bcO l.in不存在!”);17 ret u rn ;18)19 w f=fopen(bcO L ou t”,w);20 for(i=0 ;i 10 ;i+)21 for(j =0 ;j 5;j+)fscan f(fp,z/%f,&score j);22 av er=fu n(score,5);23 fprin t f(w f,*5.2fn,av er);24 25 fcl ose(fp);26 fcl ose(w f);27)28 main()29 fl oat score 30 =(90.5,72,80,61.5,55,av er;30 av er=fu n(score,5);31 prin t f(z,n Av erage score is:%5.2fnz,,av er);32 NO NO ();33)本题的考核点是数组和循环语句的使用。解题思路:先使用循环语句对数组中的各个元素求和,然后用此和除以数组的元素总个数即得平均值。然后使用r e tur n语句将此平均值作为函数的返回值返回。f loa t f un(f loa t*a ,i nt n)(i nt i;f loa t a ve r a g e;d oub le s um=0;f or(i=0;i n;i+)s um+=a i ;/*对数组中的各个元素求和*/a ve r a g e=(f loa t)s um/n;/*计算平均值*/r e tur n a ve r a g e;/*返回平均值*/6.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写一个函数f un,它的功能是:求出该学生的平均分放在记录的a ve 成员中。请自己定义正确的形参。例如,学生的成绩是:8 5.5,7 6,6 9.5,8 5,9 1,7 2,6 4.5,8 7.5,他的平均分应当是:7 8.8 7 5。1#i nc lud e 2#d e f i ne N 83 type d e f s tr uc t4 c h a r num 10;5 d oub le s N ;6 d oub le a ve;7 S T R E C;89 voi d f un(S T R E C *p)10 11121314 15 voi d N 0N 0()16 /*请在此函数内打开文件,输入测试数据,调 用f u n函数,17 输出数据,关闭文件。*/18 S T R E C s=G A 005,8 5.5,7 6,6 9.5,8 5,9 1,7 2,6 4.5,8 7.5;19 i nt i;20 F I L E *wf;21 wf =f ope n(a 4 3.oul,w);22 f un(&s);23 f pr i ntf (wf,Z/T h e%sf s s tud e nt d a ta:n,s.num);24 f or(i=0;i N;i+)25 f pr i ntf (wf,*%4.lf n*s.s i );26 f pr i ntf (wf,*a ve=%7.3 f n,s.a ve);27 f c los e(wf);28 )29 ma i nO3 0 S T R E C s=G A 005,8 5.5,7 6,6 9.5,8 5,9 1,7 2,6 4.5,8 7.5;3 1 i nt i;3 2 f un(&s);3 3 pr i ntf C T h e%s s s tud e nt d a ta:nz/,s.num);3 4 f or(i=
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号