二级C语言机试-268

上传人:博****1 文档编号:454546179 上传时间:2022-12-31 格式:DOC 页数:3 大小:33.50KB
返回 下载 相关 举报
二级C语言机试-268_第1页
第1页 / 共3页
二级C语言机试-268_第2页
第2页 / 共3页
二级C语言机试-268_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《二级C语言机试-268》由会员分享,可在线阅读,更多相关《二级C语言机试-268(3页珍藏版)》请在金锄头文库上搜索。

1、二级C语言机试-268(总分:100.00,做题时间:90分钟)、程序填空题(总题数:1,分数:30.00)1. 下列给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a0、a1、a2中,把奇数从数组中删除,偶数的个数通过函数值返回。例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6、8,返回值为4。请在下划线处填入正确的内容并将下划线删除,使程序得岀正确的结果。注意:部分源程序给岀如下。不得增行或删行,也不得更改程序的结构!试题程序:#include #define N 9int fun(int a,i

2、nt n) int i,j;j=0;for(i=0;i n;i+)kkkkkkif( (1) =0)kkkkkk=ai;j+;kkkkkkreturn (3);main() int bN=(9,1,4,2,3,6,5,8,7),i,n;printf(7nThe original data:/n); for(i=0;i N;i+) printf(%4d,bi);printf(/n);n=fun(b,N);printf(/nThe number of even:%d/n,n);printf(/nThe even:/n);for(i=0;i n;i+) printf(%4d,bi); printf(

3、/n);(分数:30.00 )正确答案:(ai%2 (2)ai (3)i)解析:解析本题关键字有:if语句条件表达式;数组变量赋值;函数返回值。微分析填空1: if语句用来判断数组元素是否为偶数,模2为0的数为偶数,所以填入 ai%2填空2:保存为偶数的数组元素。填空3:通过return语句将偶数个数作为函数值返回。二、程序改错题(总题数:1,分数:30.00)2. 下列给定程序中,函数fun的功能是:按以下递归公式求函数的值。例如,当给n输入5时,函数值为18;当给n输人3时,函数值为14 请改正程序中的错误,使它能得岀正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序

4、的结构 试题程序:#include kkkkkkfun(n) int c;kkkkkkif(n=1) c=10; eIse c=fun(n_1)+2; return(c);main() int n;printf(Encer n;);scanf(%d,&n);printf(The resu lt: %d/n/n,fun(n);(分数:30.00 ) 正确答案:(int fun(int n) (2)if(n=1)解析:解析 本题关键字有:函数定义;if语句条件表达式中=与=的区别。微分析(1) 有参函数要定义形参变量类型,由于主函数中传递的参数为int型,所以形参定义为inc型(2) n=1是赋值

5、表达式,不能作为判断条件,=用于比较判断。三、 程序设计题( 总题数: 1,分数: 40.00)3. 规定输入的字符串中只包含字母和 *号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个, 若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。例如,字符串中的内容为“ *a*bc*DEF*G* ,若 n的值为4,删除后,字符串中的内容应为“*A*BC*DEF*G* ”;若 n 的值为 7,则字符串中的内容仍为“ *A*BE*DEF*G* ”。 n 的值在 主函数中输入。编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序给出如下。请勿

6、改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。试题程序:#include void fun(char*a , int n)main()(char s81;int n;printf(Enfer a spring:/n);gets(s);printf(Encer n:);scanf(%d,&n);fun(s,n);printf(The string after deleted:/n);puts(s);分数: 40.00 ) 正确答案: (void fun(char*a,int n)int i=0,k=0;char*p,*t;p=t=a;/* 将指针

7、移动到字符串末尾 */while(*t)t+;t-;/* 从后往前如果是。 * 则使 k+, 找到最后一个 *所在的位置,并记录 * 的个数*/while(*t=*)/* 指针 t 指向前一个,同时标量 k 增加 */(k+ ; t-;)/* 如果最后 *的个数大于允许的个数 */if(k n)/* 循环次数不大于前面的字符与最大允许 *的个数之和 */(while(*p&p t+n+1)/* 把字符保存到数组 a 中 */(ai=*p;i+;p+;ai=/0;)解析: 解析 本题关键字有:循环判断语句;字符串操作;指针型变量。 微分析 通过 while 循环统计字符串尾部 *号的个数, 然后通过 if 语句比较尾部 *号数是否多于 n 个,若大于则保留 n 个* 号和其余字符。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

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