【计算机类职业资格】二级C语言-374 (1)及答案解析.doc

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

1、二级 C 语言-374 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请在函数 proc()的横线上填写若干表达式,使从键盘上输入一个整数 n,输出斐波那契数列的前 n 个数。斐波那契数列是一个整数数列,该数列自第 3 项开始,每个数等于前面两个数之和,即0,1,1,2,3,5.8,13,21,34,55, 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的横线上填入所编写的若干表达式或语句。 试题程序: #includestdio.h int proc(int n); void

2、 main() int 1,n=0; printf(“please enter n:“); scanf(“%d“, for(i=0:in;i+) printf(“%d“,proc(i); int proc(int n) if( 1) return 0; else if( 2) return 1; else return 3; (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是按以下递归公式求函数值。 例如,当给 n 输入 3 时,函数值为 60;当给 n 输入 6 时,函数值为 480。 请修改程序中的错误,使它能得到正确结果。 注意

3、不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdio.h /*found* fun(int n); int j; /*found* if(n=1) j=15; else j=fun(n-1)*2; return(j); void main() int n; printf(“Enter n:“); scanf(“%d“, printf(“The result:%d/n/n“,fun(n); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.编写函数 proc(),函数的功能是:根据以下公式计算 s,计算结果作为函数值返回

4、m 通过形参传入。 s=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+m) 例如,若 n 的值为 11 时,函数的值为 1.833333。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includestdlib.h #includeconio.h #includestdio.h #includestring.h float proc(int m) void main() int m; float s; system(“CLS“); printf(“/nPlease enter

5、M:“); scanf(“%d“, s=proc(m); printf(“The result is:%f/n“,s); (分数:40.00)_二级 C 语言-374 (1)答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请在函数 proc()的横线上填写若干表达式,使从键盘上输入一个整数 n,输出斐波那契数列的前 n 个数。斐波那契数列是一个整数数列,该数列自第 3 项开始,每个数等于前面两个数之和,即0,1,1,2,3,5.8,13,21,34,55, 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函

6、数 proc()的横线上填入所编写的若干表达式或语句。 试题程序: #includestdio.h int proc(int n); void main() int 1,n=0; printf(“please enter n:“); scanf(“%d“, for(i=0:in;i+) printf(“%d“,proc(i); int proc(int n) if( 1) return 0; else if( 2) return 1; else return 3; (分数:30.00)解析:n=0 n=1 proc(n-1)+proc(n-2)解析 由斐波那契数列的定义可知,该数列中有两个特殊

7、项。当n 为 0 时,其值为 0;当 n 为 1 时,其值为 1。因此,第一处填“n=0”;第二处填“n=1”;当 n 为其他值时,为前两项的和,因此,第三处填“proc(n-1)+proc(n-2)”。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是按以下递归公式求函数值。 例如,当给 n 输入 3 时,函数值为 60;当给 n 输入 6 时,函数值为 480。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdio.h /*found* fun(in

8、t n); int j; /*found* if(n=1) j=15; else j=fun(n-1)*2; return(j); void main() int n; printf(“Enter n:“); scanf(“%d“, printf(“The result:%d/n/n“,fun(n); (分数:30.00)解析:错误:fun(int n); 正确:fun(int n) 错误:if(n=1) 正确:if(n=1) 解析 根据 C 语言的语法规则,函数定义之后是不加分号的。由整个程序看,函数fun()是函数定义。因此“fun(int n);应改为“fun(int n)”;表达式 n

9、1 表示的是将 1 赋给变量 n,显然是不对的。这里应该判断变量 n 是否等于 1,因此“if(n=1)”应改为“if(n=1)”。三、程序设计题(总题数:1,分数:40.00)3.编写函数 proc(),函数的功能是:根据以下公式计算 s,计算结果作为函数值返回;m 通过形参传入。 s=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+m) 例如,若 n 的值为 11 时,函数的值为 1.833333。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includestdlib.h

10、includeconio.h #includestdio.h #includestring.h float proc(int m) void main() int m; float s; system(“CLS“); printf(“/nPlease enter M:“); scanf(“%d“, s=proc(m); printf(“The result is:%f/n“,s); (分数:40.00)_正确答案:()解析:float proc(int m) int i,s1=0;/s1 表示的是分母 float s=0.0; for(i=1;i=m;i+) s1=s1+i; s=s+1.0/s1; /s 的作用是放其分数的和 return s; /把最后得到的和 s 返回到主函数中 解析 首先定义两个变量 s1 和 s,分别用来存放计算中所用到的分母和所有分数的和。由公式可知,分母从 1 开始,每次增加 1,直至 i=m。所有分数的和放在变量 s 中,返回到主函数中。

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

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

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