【计算机类职业资格】二级C语言机试-179及答案解析.doc

上传人:eastlab115 文档编号:1325680 上传时间:2019-10-17 格式:DOC 页数:4 大小:34.50KB
下载 相关 举报
【计算机类职业资格】二级C语言机试-179及答案解析.doc_第1页
第1页 / 共4页
【计算机类职业资格】二级C语言机试-179及答案解析.doc_第2页
第2页 / 共4页
【计算机类职业资格】二级C语言机试-179及答案解析.doc_第3页
第3页 / 共4页
【计算机类职业资格】二级C语言机试-179及答案解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、二级 C 语言机试-179 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)请补充 fun 函数,fun 函数的功能是求 n 的阶乘。注意:部分源程序已给出。请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句试题程序:#includestdio.hlong fun(int n)if( (1) )return(n*fun( (2) );return (3) ;main()printf(“10!=%1d/n“,fun(10);(分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、改错题

2、(总题数:1,分数:30.00)1.下列给定程序中函数 fun 的功能是:统计 substr 所指的字符串在 str 所指的字符串中出现的次数。例如,若字符串为 aaas 1kaaas,子字符串为 as,则应输出 2。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdiohint fun(char*str,char*substr)int i,j,k,num=0;/*found*/for(i=0,stri,i+)for(j=i,k=0;substrk=strj;k+,j+)/*found*/If(sub

3、strk+1=/0)num +;break;return num;main()char str80,substr80;printf(“Input a string:“);gets(str);printf(“Input a substring:“);gets(substr);printf(“%d/n“fun(str,substr);(分数:30.00)填空项 1:_三、编程题(总题数:1,分数:40.00)2.编写函数 fun,其功能是:根据以下公式求值(要求精度 0.0005,即某项小于 0.0005 时停止迭代)。(分数:40.00)_二级 C 语言机试-179 答案解析(总分:100.00

4、,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)请补充 fun 函数,fun 函数的功能是求 n 的阶乘。注意:部分源程序已给出。请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句试题程序:#includestdio.hlong fun(int n)if( (1) )return(n*fun( (2) );return (3) ;main()printf(“10!=%1d/n“,fun(10);(分数:30.00)填空项 1:_ (正确答案:n1 或 1n)解析:填空项 1:_ (正确答案:n-1)解析:填空项 1:_ (

5、正确答案:1 或 11 或 1L)解析:解析 此题应用的是递归算法,我们知道 10!=109!,9!=98!,8!=87!依此类推,而1!=1,2!=21!=2,3!=32!=6,依此可以推出 10!,递推算法表示为:n!=1(n1)n!=n*(n-1)(n1)二、改错题(总题数:1,分数:30.00)1.下列给定程序中函数 fun 的功能是:统计 substr 所指的字符串在 str 所指的字符串中出现的次数。例如,若字符串为 aaas 1kaaas,子字符串为 as,则应输出 2。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构

6、!试题程序:#includestdiohint fun(char*str,char*substr)int i,j,k,num=0;/*found*/for(i=0,stri,i+)for(j=i,k=0;substrk=strj;k+,j+)/*found*/If(substrk+1=/0)num +;break;return num;main()char str80,substr80;printf(“Input a string:“);gets(str);printf(“Input a substring:“);gets(substr);printf(“%d/n“fun(str,substr

7、);(分数:30.00)填空项 1:_ (正确答案:(1)错误:for(i=0,stri,i+)正确:for(i=0;stri;i+)(2)错误:If(substrk+1=/0)正确:if(substrk+1=/0))解析:解析 for 循环语句形式应为:for(表达式 1;表达式 2;表达式 3),表达式之间是分号;C 语言标识符区分大小写,所以条件句关键词 if 应小写。三、编程题(总题数:1,分数:40.00)2.编写函数 fun,其功能是:根据以下公式求值(要求精度 0.0005,即某项小于 0.0005 时停止迭代)。(分数:40.00)_正确答案:(double fun(double eps)double s=1.0,s1=1.0;int n=1;while(s1=eps)/*当某项大于精度要求时,继续求下一项*/s1=s1*n/(2*n+1);/*求多项式的每一项*/s=s+s1;/*累加求和*/n+;return 2*s;)解析:解析 此题考查的是用迭代法求多项式的值。通过观察题目中给出的数学公式可知,后面一项是前面一项乘以 n/(2*n+1),发现这个规律后,问题迎刃而解。通过定义 double 类型变量,并且赋初值,用来存放多项式的总和。此题中需要注意的是,表示每一项的 s1 和表示多项式之和的 s,二者的初值都是 1.0。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1