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

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

1、国家二级 C语言机试(操作题)模拟试卷 344及答案与解析 一、程序填空题 1 给定程序的功能是:从键盘输入若干行文本 (每行不超过 80个字符 ),写到文件myfile4 txt中,用 -1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数 ReadText和 WriteText实现。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include string h 3 #include st

2、dlib h 4 void WriteText(FILE *); 5 void ReadText(FTLE *); 6 main() 7 FILE *fp; 8 if(fp=fopen(myfile4 txt, w)=NULL) 9 printf(open fail! n); exit(0); 10 WriteText(fp); 11 fclose(fp); 12 if(fp=fopen(myfile4 txt, r)=NULL) 13 printf(open fail! n); exit(0); 14 ReadText(fp); 15 fclose(fp); 16 17 *found* 18

3、 void WriteText(FTLE _1_ ) 19 char str81; 20 printf( nEnter string with-1 to end: n); 21 gets(sir); 22 while(strcmp(str, -1)!=0) 23 *found* 24 fputs(_2_, fw); fputs( n, fw); 25 gets(str); 26 27 28 void ReadText(FILE *fr) 29 char str81; 30 printf( nRead file and output to screen: n); 31 fgets(str, 81

4、, fr); 32 while(!feof(fr) 33 *found* 34 printf( s, _3_); 35 fgets(str, 81, fr); 36 37 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:应用递归算法求形参 a的平方根。求平方根的迭代公式如下: 例如, a为 2时,平方根值为:1 414214。 请改正程 序中的错误,使它能得出正确结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 1 #include stdio h 2 #include math h 3 *found* 4 double fun(double a

5、, dounle x0)5 double xl, y; 6 x1=(x0+a x0) 2 0; 7 *found* 8 if(fabs(x1-x0) 0 00001)9 y=fun(a, x1); 10 else y=x1; 11 return y; 12 13 main()14 double x; 15 printf(Enter x: ); scanf( 1f, &x); 16 printf(The square root of 1f is if n, x, fun(X, 1 0); 17 三、程序设计题 3 编写函数 fun,它的功能是:利用以下所示的简单迭代方法求方程: cos(x)-x

6、=0的一个实根。 xn+1=cos(xn) 迭代步骤如下: (1)取 x1初值为 0 0; (2)x0=x1,把 x1的值赋给 x0; (3)x1=cos(x0),求出一个新的 x1; (4)若 x0-x1的绝对值小于0 000001,执行步骤 (5),否则执行步骤 (2); (5)所求 x1就是方程 cos(x)-x=0的一个实根,作为函数值返回。 程序将输出结果 Root=0 739086。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 1 #include math h 2 #includest

7、dio h 3 double fun() 4 5 6 7 main() 8 9 void NONO(); 10 printf(Root= f n, fun(); 11 NONO(); 12 13 void NONO() 14 *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * 15 FILE *wf; 16 wf=fopen(out dat, w); 17 fprintf(wf, f n, fun(); 18 fclose(wf); 19 国家二级 C语言机试(操作题)模拟试卷 344答案与解析 一、程序填空题 1 【正确答案】 (1)*fw (2)str (3)str 【试题

8、解析】 第一空:此处是补充函数参数名,参数类型已知是 FILE文件指针, “fputs( n, fw)”是将字符 “ n”写入文件,可知 fw是文件指针名,因此第一空处应该是 “void Write Text(FILE *fw)”。 第二空: “while(strcmp(str,”-1”)!=0)”循环的结束标志是 str字符串等于 “-1”时循环退出,如果 str不等于 “-1”,执行循环体内容:用 fputs函数将 str字符串写入文件。 fputs函数的调用形式是: “fputs(s, fp)”,其中 s是指向字符串的指针或字符串数组名, fp是指向将要被写入的文件的文件指针,因此第二处

9、应该是“fputs(str,fw)”。 第三空: “while(!feof(fr)”循环的作用是不断读取文件直到到达文件尾,每次最多读 81个,将读到的数据放在 str字符串里,并用 printf输出到屏幕,因此第三处应该是 “printf( s, str)”。 二、程序修改题 2 【正确答案】 (1)double fun(double a, double x0) (2)if(fabs(x1-x0) 0 00001) 【试题解析】 函数的功能是应用递归算法求某数 a的平方根。 (1)主函数中 “fun(x, 1 0)”, x是 double型变量, 1 0是浮点数,可知 fun有两个 doub

10、le型参数,而第一标识下 “dotmle”不是 C语言关键字,所以应将 “double fun(double a, dounle x0)”改为 “double fun(double a, double x0)”。 (2)第二个标识下的 if语句是判断进行递归运算的条件,第二标识下变量 x0没有定义,根据题意,这里是判断 x1和 x0的差值的绝对值是否比 0 00001大,所以第二个标识下 “if(fabs(x1-x0) 0 000011”改为 “if(fabs(x1-x0) 0 00001)”。 三、程序设计题 3 【正确答案】 1 float x0, x1=0 0; 2 do 3 x0=x1; 4 x1=cos(x0); 5 while(fabs(x0-x1) 0 000001), 6 return x1; 【试题解析】 该程序功能是利用简单迭代方法求方程的一个实根。牛顿迭代法的求解思想是从一个初始值开始,逐步逼近所求方程的根。 其具体过程是:将初始值代入迭代公式,得到一个迭代输出值。再次迭代时,将上一次的迭代输出值当作本次的迭代输入。不断重复以上过程,直到满足题目要求为止。 牛顿迭代公式为: Xn+1=Xn-f(x) f(x)。 其求解过程在题干中已经给出。

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

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

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