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

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

1、二级 C 语言-42 及答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充函数 fun(),该函数的功能是:求 100(不包括 100)以内能被 2 或 5 整除,但不能同时被 2 和 5整除的自然数。结果保存在数组 bb 中,函数 fun()返回数组比元素的个数。 注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include stdio.h #define N 100 int fun (int bb ) int i, j; for

2、(U U /U /U;i100; i+) if (i%1!=0 U U /U /U; main() int i, n; int bb N; clrscr (); n=fun (bb); for(i=0; in; i+) if (i%10=0) printf (“/n“); printf (“% 4d“, bb i); (分数:30.00)填空项 1:_二、B改错题/B(总题数:1,分数:30.00)2.下列给定程序中函数 fun 的功能是:用递归算法计算斐波拉契数列中第 n 项的值。从第 1 项起,斐波拉契数列为:1,1,2,3,58,13,21, 例如,若给 n 输入 7,则该项的斐波拉契数

3、值为 13。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h long fun(int g) /*found*/ switch(g); case 0:return 0; /*found*/ case 1;case 2:return 1; return(fun(g-1)+fun(g-2); void main() long fib;int n; printf(“Input n:“); scanf(“%d“, clrscr (); printf(“%nPlease enter string

4、 S: “); scanf(“%s “,s); fun(s,t); prlntf(“/nThe result is:%s/n “,t); (分数:40.00)_二级 C 语言-42 答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充函数 fun(),该函数的功能是:求 100(不包括 100)以内能被 2 或 5 整除,但不能同时被 2 和 5整除的自然数。结果保存在数组 bb 中,函数 fun()返回数组比元素的个数。 注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写

5、的若干表达式或语句。 试题程序: #include stdio.h #define N 100 int fun (int bb ) int i, j; for(U U /U /U;i100; i+) if (i%1!=0 U U /U /U; main() int i, n; int bb N; clrscr (); n=fun (bb); for(i=0; in; i+) if (i%10=0) printf (“/n“); printf (“% 4d“, bb i); (分数:30.00)填空项 1:_ (正确答案:1 i=l, j=0 2 bbj+=i 3return j)解析:解析 填

6、空 1:题目要求找 100 以内的自然数,而自然数是从 1 开始的,所以 i 的初始值为 1。变量 j 声明时没有初始化,所以在这里初始化为 0,用来记录满足条件的自然数的个数。填空 2:将满足条件的白然数存于数组 bb 中,下标加 1 是为了下一次存储做准备。填空 3:题目要求 fun()函数返回数组bb 元素的个数,所以函数返回 j。二、B改错题/B(总题数:1,分数:30.00)2.下列给定程序中函数 fun 的功能是:用递归算法计算斐波拉契数列中第 n 项的值。从第 1 项起,斐波拉契数列为:1,1,2,3,58,13,21, 例如,若给 n 输入 7,则该项的斐波拉契数值为 13。

7、请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h long fun(int g) /*found*/ switch(g); case 0:return 0; /*found*/ case 1;case 2:return 1; return(fun(g-1)+fun(g-2); void main() long fib;int n; printf(“Input n:“); scanf(“%d“, clrscr (); printf(“%nPlease enter string S: “);

8、 scanf(“%s “,s); fun(s,t); prlntf(“/nThe result is:%s/n “,t); (分数:40.00)_正确答案:(void fun(char *s,char t) int i, j=0,k=strlen(s); /*k 为字符串的长度*/ for (i=l; ik; i=i+2) /*将 s 所指字符串中下标为奇数的字符存入 t 所指字符串中*/ t j+=s ii; tj=/0; /*在字符申最后加上结束标志*/ )解析:解析 本题使用了一种泳远是奇数的循环方法,即 for(i=1; ik;i=i+2),因为开始时的值为1,当 i+2 循环时,此值永远是奇数。

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

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

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