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

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

1、二级 C 语言-163 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:利用指针数组对形参 ss 所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss 所指字符串数组中共有 N 个字符串,且串长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在 下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构! #include stdio. h #include string. h #define N 5 #define M 8 vo

2、id fun(char(*ss)M) char *psN, *tp; int i, j, k; for(i=0; iN; i+) psi=ssi; for(i=0; iN-1; i+) /*found*/ k= 1; for(j=i+1; jN; j+) /*found*/ if(strlen(psk)strlen ( 2) k=j; /*found*/ tp=psi; psi=psk; psk= 3; printf (“/nThe string after sorting by length:/n/n“); for(i=0; iN; i+) puts(psi); main( ) char c

3、hNM=(“red“, “green“, blue“, “yellow“, “black“); int i; printf(“/nThe original string/n/n“); for(i=0; iN; i+)puts(chi); printf(“/n“); fun(ch); (分数:30.00)二、程序修改题(总题数:1,分数:30.00)2.已知一个数列从第 0 项开始的前三项分别为 0,0,1,以后的各项都是其相邻的前三项之和。给定程序MODI1. C 中函数 fun 的功能是:计算并输出该数列前 n 项的平方根之和。n 的值通过形参传入。 例如,当 n=10 时,程序的输出结果应

4、为:23.197745。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include stdio. h #include math. h /*found*/ fun(int n) double sum, s0, s1, s2, s; int k; sum=1.0; if(n=2) sum=0.0; s0=0.0; s1=0.0; s2=1.0; for (k=4; k=n; k+) s=s0+s1+s2; sum+=sqrt(s); s0=s1; s1=s2; s2=s; /*found*/ return sum ma

5、in( ) int n; printf(“Input N=“); scanf(“%d“, printf(“%f/n“, fun(n); (分数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.编写函数 fun,它的功能是计算下列级数和,和值由函数值返回。 (分数:40.00)_二级 C 语言-163 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:利用指针数组对形参 ss 所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss 所指字符串数组中共有 N 个字符串,且串长小于 M

6、。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在 下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构! #include stdio. h #include string. h #define N 5 #define M 8 void fun(char(*ss)M) char *psN, *tp; int i, j, k; for(i=0; iN; i+) psi=ssi; for(i=0; iN-1; i+) /*found*/ k= 1; for(j=i+1; jN; j+) /*found*/ if(strlen(psk)st

7、rlen ( 2) k=j; /*found*/ tp=psi; psi=psk; psk= 3; printf (“/nThe string after sorting by length:/n/n“); for(i=0; iN; i+) puts(psi); main( ) char chNM=(“red“, “green“, blue“, “yellow“, “black“); int i; printf(“/nThe original string/n/n“); for(i=0; iN; i+)puts(chi); printf(“/n“); fun(ch); (分数:30.00)解析

8、:i psj tp 答案考生文件夹 解析 本题中函数 fun 的功能是利用指针数组对形参 ss 所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。在 fun 函数中采用了选择排序法,在选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一元素交换,接着从剩下的 n-1 个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。 第一空:分析可知,fun 函数采用的选择排序,在第一空处是初始化 k。“for(j=i+1; jN; j+)”循环是寻找长度最长的字符串,找到之后和 k 字符串交换,因此 k 从 0 开始,随着 i 变化,故第

9、一空处应为“i”。 第二空:“if(strlen(psk)strlen( -|_|-)k=j;”新的字符串 psj如果比 psk的长度长,那么 k 记录下新的最长的字符串的下标位置 j,故第二空处应为“psj”。 第三空:“tp=psi; psi=psk; psk= -|_|-;”是字符串地址交换,显然第三空处应是临时变量 tp。 考点 指向一维数组的指针以及指针数组、字符数组和字符串。二、程序修改题(总题数:1,分数:30.00)2.已知一个数列从第 0 项开始的前三项分别为 0,0,1,以后的各项都是其相邻的前三项之和。给定程序MODI1. C 中函数 fun 的功能是:计算并输出该数列前

10、 n 项的平方根之和。n 的值通过形参传入。 例如,当 n=10 时,程序的输出结果应为:23.197745。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include stdio. h #include math. h /*found*/ fun(int n) double sum, s0, s1, s2, s; int k; sum=1.0; if(n=2) sum=0.0; s0=0.0; s1=0.0; s2=1.0; for (k=4; k=n; k+) s=s0+s1+s2; sum+=sqrt(s);

11、s0=s1; s1=s2; s2=s; /*found*/ return sum main( ) int n; printf(“Input N=“); scanf(“%d“, printf(“%f/n“, fun(n); (分数:30.00)_正确答案:()解析:double fun(int n) return sum; 解析 本题中函数的功能是计算并输出该数列前 n 项的平方根之和 sum。解题思路首先根据题干求得每一项的值,然后再计算数列前 n 项的平方根之和。 (1)第一个错误标识下 fun 函数的定义根据题干要返回前 n 项的平方根之和,函数具有返回值,所以“fun(intn)”应改为

12、“double fun(int n)”,其中 double 为双精度型变量。 (2)第二个标识符下返回平方根之和,根据 C 语言语法每一句 C 语言后面应该以“;”为结尾,所以“return sum”改为“return sum;”。 考点 for 循环结构、函数的定义以及调用。三、程序设计题(总题数:1,分数:40.00)3.编写函数 fun,它的功能是计算下列级数和,和值由函数值返回。 (分数:40.00)_正确答案:()解析:dguble s=1.0, y=x; int i; long k=1; for(i=1; i=n; i+) k=k*i; s+=y/k; y *=x; return s; 解析 该程序功能是计算并输出多项式值。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。 (1)根据题干中给出的数列,推出每一项分子是在前一项的基础上乘以 x,分母是每一项的阶乘,它可以在前一项的基础上乘以当前项的项数,即第 n 项是 n。 (2)在循环中求得每一项,然后对其进行累加求和。 考点 for 循环结构。

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

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

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