C上机试卷第一套

更新时间:2024-04-24 01:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一套

一、

程序填空(每空6分,共30分)

,计算sinx 的值,直到最后一项的绝对值小于

利用

时为止,输出e的值并统计累加的项数。请在下划线处填入正确的内容并将下划线删除,使程序得出正确结果。下面是源代码文件,注意:不得增行或删行,也不得更改程序的结构!

#include #include main() { int n = 1, count = 1; float x; double sum, term; printf(\ scanf(\ ① ); sum = x; term = x; do{

term = ② ; sum = sum + term; n = n + 2;

③ ; }while (fabs(term) >= 1e-5);

printf(\

}

二、 程序改错题:(每处10分,共30分)

爱因斯坦的阶梯问题。设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;只有每步跨7阶时,正好到阶梯顶。问共有多少阶梯。程序如下所示,其中存在一些语法和逻辑错误,请找出并改正之。注意:不得增行或删行,也不得更改程序的结构!

#include Void main() { int x = 1, find = 0;

/************found************/ while (!find); { if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0)

/************found************/

{ printf(\ = %d\\n\ find = 1;

/************found************/ x++; } } }

三、利用函数求fibonacci数列1,1,2,3,5,8……(40分)

第一套参考答案

一、

程序填空(每空6分,共30分)

,计算sinx 的值,直到最后一项的绝对值小于

利用

时为止,输出e的值并统计累加的项数。请在下划线处填入正确的内容并将下划线删除,使程序得出正确结果。下面是源代码文件,注意:不得增行或删行,也不得更改程序的结构!

#include #include main() { int n = 1, count = 1; float x; double sum, term; printf(\ scanf(\ &x); ① sum = x; term = x; do{ term = -term * x * x / ((n + 1) * (n + 2 ));② sum = sum + term; n = n + 2; count++;③ }while (fabs(term) >= 1e-5); printf(\} 二、 程序改错题:(每处10分,共30分)

爱因斯坦的阶梯问题。设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;只有每步跨7阶时,正好到阶梯顶。问共有多少阶梯。程序如下所示,其中存在一些语法和逻辑错误,请找出并改正之。注意:不得增行或删行,也不得更改程序的结构! 错误:

#include Void main() { int x = 1, find = 0;

/************found************/ while (!find); { if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5

&& x % 7 == 0)

/************found************/ { printf(\ = %d\\n\,); find = 1;

/************found************/ x++; } }

}

正确:

#include main() { int x = 1, find = 0; while (!find) { if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0) { printf(\ = %d\\n\ find = 1; } x++; } }

三、 利用函数求fibonacci数列1,1,2,3,5,8……(40分)

解答:

#include long Fib(int a); int main() { int n, i, x; printf(\ scanf(\ for (i=1; i<=n; i++) { x = Fib(i); /* 调用递归函数Fib()计算Fibonacci数列的第n项 */ printf(\ } return 0; }

/* 函数功能:用递归法计算Fibonacci数列中的第n项的值 */

long Fib(int n) { if (n == 0) return 0; /* 基线情况 */ else if (n == 1) return 1; /* 基线情况 */ else return (Fib(n-1) + Fib(n-2)); /* 一般情况 */ }

本文来源:https://www.bwwdw.com/article/rlrp.html

Top