[计算机类试卷]国家二级C语言机试(操作题)模拟试卷694及答案与解析.doc

上传人:terrorscript155 文档编号:498672 上传时间:2018-11-29 格式:DOC 页数:5 大小:31KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷694及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷694及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷694及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷694及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷694及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 694及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:利用指针数组对形参 ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。 ss所指字符串数组中共有 N个字符串,且串长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include string h 3 #define N 5 4 #define M 8 5 void fun(char(*ss

2、)M) 6 char *psN, *tp; int i, j, k; 7 for(i=0; i N; i+)psi=ssi; 8 for(i=0; i N-1; i+) 9 *found* 10 k=_1_; 11 for(j=i+1; j N; j+) 12 *found* 13 if(strlen(psk) strlen(_2_)k=j; 14 *found* 15 tp=psi; psi=psk; psk=_3_; 16 17 printf( nThe string after sorting by length: n n); 18 for(i=0; i N; i+)puts(psi);

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

4、23 197745。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include math h 3 *found* 4 fun(int n) 5 double sumf a0, a1, a2, a; int k; 6 sum=1 0; 7 if(n =2)sum=0 0; 8 s0=0 0; s1=0 0; s2=1 0; 9 for(k=4; k =n; k+) 10 s=s0+s1+s2; 11 sum+=sqrt(s); 12 s0=s1; s1=s2; s2=s; 13

5、 14 *found* 15 return sum 16 17 main() 18 int n; 19 printf(Input N=); 20 scanf( d, n); 21 printf( f n, fun(n); 22 三、程序设计题 3 编写函数 fun,它的功能是计算下列级数和,和值由函数值返回。 例如,当 n=10, x=0 3时,函数值为 1 349859。 注意:部分源程序在文件 PROG1 C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 #include math h 3

6、 double fun(double x, int n) 4 5 6 main() 7 void NONO(); 8 printf( f n, fun(0 3, 10); 9 NONO(); 10 11 void NONO() 12 (本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * 13 FILE *fp, *wf; 14 int i, n; 15 double s, x; 16 fp=fopen(in dat, r); 17 wf=fopen(out dat, w); 18 for(i=0; i 10; i+) 19 fscanf(fp, 1f, d, x, n), 20

7、s=fun(x, n); 21 fprintf(wf, f n, s); 22 23 fclose(fp); 24 fclose(wf); 国家二级 C语言机试(操作题)模拟试卷 694答案与解析 一、程序填空题 1 【正确答案】 (1)i (2)psj (3)tp 【试题解析】 本题中函数 fun的功能是利用指针数组对形参 ss所指字符串数组中的字符串按由 长到短的顺序排序,并输出排序结果。在 fun函数中采用了选择排序法,在选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一元素交换,接着从剩下的 n-1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直

8、到比较完最后两个元素。 第一空:分析可知, fun函数采用的选择排序,在第一空处是初始化 k。“for(j=i+1; j N; j+)”循环是寻找长度最长的字符串,找到之后和 k字符串交换,因此 k从 0开始,随着 i变化,故第一空处应为 “i”。 第二空: “if(strlenq(psk) strlen(_2_)k=j; ”新的字符串 psj如果比 psk的长度长,那么 k记录下新的最长的字符串的下标位置 j,故第二空处应为 “psj”。 第三空: “tp=psi; psi=psk; psk=_3_; ”是字符串地址交换,显然第三空处应是临时变量 tp。 二、程序修改题 2 【正确答案】 (

9、1)double fun(int n) (2)return sum; 【试题解析】 本题中函数的功能是计算并输出该数列前 n项的平方根之和 sum。解题 思路首先根据题干求得每一项的值,然后再计算数列前 n项的平方根之和。 (1)第一个错误标识下 fun函数的定义根据题干要返回前 n项的平方根之和,函数具有返回值,所以 “fun(int n)”应改为 “double fun(int n)”,其中, double为双精度型变量。 (2)第二个标识符下返回平方根之和,根据 C语言语法每一句 C语言后面应该以 “; ”为结尾,所以 “return sum”改为 “return sum; ”。 三、程序设计题 3 【正确答案】 1 double s=1 0, y=x; 2 int i ; 3 long k=1; 4 for(i=1; i =n; i+) 5 k=k*i; 6 s+=y k; 7 y*=x ; 8 9 return s; 【试题解析】 该程序功能是计算并输出多项式值。根据题干中给出的数列,首先推出每 _项的表达式,然后再对多项式进行累加求和。 (1)根据题干中给出的数列,推出每一项分子是在前一项的基础上乘以 x,分母是每一项的阶乘,它可以在前一项的基础上乘以当前项的项数,即第 n项是 n。 (2)在循环中求得每一项,然 后对其进行累加求和。

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

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

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