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

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

1、国家二级 C语言机试(操作题)模拟试卷 105及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:在形参 ss所指字符串数组中,将所有串长超过 k的宁符串中后面的宁符删除,只保留前面的 k个字符。 ss所指字符串数组中共有 N个字符串,且串长小于 M。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include string h #define N 5 #define M 10 /*found*/ void fun(char(*S

2、S)【 1】 , int k) int i=0; /*found*/ while(i 【 2】 ) /*found*/ ssik=【 3】 ; i+; ) main() char xNM=“Create”, “Nodify”, “Sort”, “skip”, “Delete”; int i; printf(“ nThe original string nn”); for(i=0; i N; i+)puts(xi); printf(“ n”); fun(x, 4); printf(“ nThe string after deleted: nn”); for(i=0, i N; i+)puts(x

3、i); printf(“n”); 二、程序修改题 2 下列给定程序中函数 fun的功能是:计算 n!。 例如,给 n输入 5,则输出 120 000000。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include conio h double fun(int n) double result=1 0; /*found*/ if n=0 return 1 0; while(n 1 n 170) /*found*/ result=n一一; return result; mai

4、n() int n; printf(“Input N: ”); Scanf(“ d”, n); printf(“ n n d!= if nn”, n, fun(n); 三、程序设计题 3 编写函数 fun,其功能是:求 Fibonaeci数列中大于 t的最小的数,结果由函数返回。 Fibonacei数列 F(n)的定义为: F(0)=0, F(1)=1 F(n)=F(n1)+F(n一 2) 例如,当 t=1000时,函数值为 1597。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include c

5、onio h #include math h #include stdio h int fun(int t) main() int n; n=1000; printf(“n= d, f= d n”, n, fun (n); 国家二级 C语言机试(操作题)模拟试卷 105答案与解析 一、程序填空题 1 【正确答案】 (1)M (2)N (3) 0 【试题解析】 填空 1:根据 main函数中的函数调用语句,确定函数定义时的形式参数,所以填入 M。 填空 2: while循环语句需要对所有字符串进行操作,因此循环条件是 i N。 填空 3:字符串结尾加入字符串结束标以 0。 二、程序修改题 2 【

6、正确答案】 (1)if(n=0) (2)result*=n一一;或 result*=n; n一一; 【试题解析】 (1)这里是一个简单的格式错误, if条件判断语句应该加括号。 (2)根据阶乘的概念,从 n开始, n!=n*(n一 1)!,直到 1,所以麻该为 result*=n一一;。 三、程序设计题 3 【正确答案】 int fun(int t) int f0=0, f1=1, f, do *根据 Fibonacci数列的定义求数值 * f=f0+f1; f0=f1; f1=f; while(f t); *如果求的数值小于 t则继续 * return f; 【试题解析】 根据所给数列定义不难发现,该数列最终的结果是由两个数列之和组成,所以可以在循环内部始终把 f看成是前两项之和,而 f0始终代表第 n一 2项, f1代表第 n 1项。退出循环时得到的数 f,就是大于指定数的最小的数。

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

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

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