c语言上机试题1(数学计算) 下载本文

答案:

double fun ( int m ) {

for( i = 100;i <=m;i += 100 ) {

1.7 数学公式

修正:

当k=1时,第一项为4/1*3

#include #include float fun(int k){ }

main ( ) {

printf(\}

答案1: int n;

--WORD格式--可编辑--

float s, w, p, q; n = 1; s = 1.0;

while ( n <= k ) { w = 2.0 * n; p = w - 1.0; q = w + 1.0;

s = s * w *w/p/q; n++; }

return s;

改错: int i;

float sum=1.0; for(i=2;i<=k;i++){

sum*=(2*i * 2*i)/((2*i+1)*(2*i-1)); //注意数据类型 }

return sum;

1.8 最小公倍数

给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。 例如,给主函数中的变量x1、x2、x3分别输入15 11 2, 则输出结果应当是:330。请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include

--WORD格式--可编辑--

/************found************/ fun(int x, y, z ) { int j,t ,n ,m; j = 1 ; t=j%x; m=j%y ; n=j%z;

while(t!=0||m!=0||n!=0) { j = j+1; t=j%x; m=j%y; n=j%z; }

/************found************/ return i; }

main( ) {

int x1,x2,x3,j ;

printf(\

scanf(\

printf(\j=fun(x1,x2,x3);

printf(\}

答案:

int fun(int x,int y,int z){ return j;

--WORD格式--可编辑--

编程:

#include //求三个数的最大数

int max(int x,int y,int z){ }

//求三个数最小公倍数

int fun(int x, int y, int z ) { }

main( ) {

int x1,x2,x3,j ;

printf(\

scanf(\

printf(\j=fun(x1,x2,x3);

printf(\}

答案: int temp;

if (x>y) temp=x; else temp=y;

if(temp >z) return temp;

--WORD格式--可编辑--

else return z;

int temp=max(x,y,z); int result=temp; while(1){

if(result%x==0 && result%y==0 && result%z==0) return result;

result=result+temp; }

1.9 n!改错

给定程序MODI1.C中函数 fun 的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include 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 ;

--WORD格式--可编辑--