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

1 整型、实型 1.1 实型四舍五入

请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入 (规定实型数为正数)。 例如:实型数为 1234.567, 则函数返回 1234.57; 实型数为 1234.564, 则函数返回 1234.56。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include int NONO(void); float fun ( float h ) { }

int main(void) { float a;

printf (\ scanf ( \

printf ( \ printf ( \

printf ( \NONO( ); return 1; }

int NONO(void) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */

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

int i ; float a ;

FILE *rf, *wf ;

rf = fopen(\ wf = fopen(\ for(i = 0 ; i < 20 ; i++) { fscanf(rf, \

fprintf(wf, \ }

fclose(rf) ; fclose(wf) ; return 1; }

答案1:

long i=h*1000; if(i<5)

return (i/10)/100.0; else

return (i/10+1)/100.0;

答案2:

long temp=a*1000,temp2; temp2=temp/10; temp=temp;

float result; //被除数定义成float if(temp>4)

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

result=temp2+1; else

result=temp2; return result/100;

1.2 根据公式求圆周率

#include #include

double fun ( double eps) { }

main( ) { double x;

printf(\ scanf(\

printf(\ NONO(); }

NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i ; double x ;

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

fp = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \

fprintf(wf, \ }

fclose(fp) ; fclose(wf) ; }

答案1:

double i=1,a=1,b=1,c=1,s=0; while(c>=eps) { s+=c; a*=i;

b*=2*i+1; c=a/b; i++; }

return s*2;

答案2:

double n=1.0,m,s1,s2; m=2*n+1; s1=n; s2=m;

double temp=s1/s2,sum=0.0; while(temp>=eps){ sum+=temp;

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

n+=1; m+=2; s1*=n; s2*=m;

temp=s1/s2; }

return (sum+1)*2;

1.3 求阶乘

#include float fun(int m, int n) { }

int main(void) /* 主函数 */ { printf(\ //NONO(); return 1; }

int NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, m, n ;

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