C语言上机题库百科园第3章!南信大!

p=p*i; /*求m!*/ for(i=1;i<=n;i++) p=p/i; /*求m!/n!*/ for(i=1;i<=m-n;i++)

p=p/i;/*求m!/(n!(m-n)!)*/ return p;

/*编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0 的一个实根。 xn+1=cos(xn)

迭代步骤如下: (1)取x1初值为0.0;

(2)x0=x1,把x1的值赋给x0;

(3)x1=cos(x0),求出一个新的xl;

(4)若x0-x1,的绝对值小于0.000001,则执行步骤 (5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出结果Root=0.739085。 注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/

#include #include float fun() {

/***************Begin************/

/*************** End ************/

}

void main( ) {

FILE *out; float f=fun();

printf(\

/******************************/ out =fopen(\ fprintf(out,\ fclose(out);

/******************************/ }

【参考代码】

float x1=0.0,x0; do {

x0=x1; x1=cos(x0);

}while (fabs(x0-x1)>=1e-6); return x1;

/*输入一个无符号整数,判断该数是否为回文数(注:一个整数,从左向右读和从右向左读都是一样的数,

则该数称为回文数,如123321),编写函数fun(),判断给定的数是否为回文数 */

#include int fun( int n) {

/***************Begin************/

/***************End***************/ }

int main() {

FILE *out;

int i,n,k[4]={123,123321,3443,200}; out=fopen(\ scanf(\ if(fun(n))

printf(\是回文数!\\n\ else

printf(\不是回文数!\\n\ for(i=0;i<4;i++)

fprintf(out,\ fclose(out); return 0; }

【参考代码】

int m,t=0; m=n; while(m!=0) { } if(t==n)

return 1; t=t*10+m; m=m/10;

else

return 0;

/*编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)

例如,若n的值为11时,函数的值为1.833333。 注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序: */

#include #include #include float fun(int n) {

/***************Begin************/

/*************** End ************/

}

void main() {

FILE *wf; int n; float s;

printf(\ scanf(\ s=fun(n);

printf(\/******************************/ wf=fopen(\ fprintf (wf,\ fclose(wf);

/*****************************/ }

【参考代码】

int i,s1=0; /*定义整型变量s1,表示分母*/ float s=0.0;/*定义单精度变量s,表示每一项*/ for(i=1;i<=n;i++) {

s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1; }

return s;

/*求多项式的值*/

/*请编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。

合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。

例如,当a=45,b=12,调用该函数后,c=5241。 注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/

#include #include

long int fun(int a ,int b) {

/***************Begin************/

/*************** End ************/

} void main() {

int a,b,i; long c; FILE *out,*in;

printf(\ scanf(\ c=fun(a,b);

printf(\ /******************************/ in=fopen(\

out=fopen(\ for(i=0;i<10;i++) { }

fclose(in); fclose(out);

/******************************/ }

参考代码】

fscanf(in,\c=fun(a+11,b+22); fprintf(out,\

long fun(int a,int b) {

return (a)*1000+(b)*100+(a/10)*10+b/10; }

/*请编一个函数 float fun(double h),函数的功能是:对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)

例如,若h 值为8.32433,则函数返回8.32;若h值为8.32533,则函数返回8.33。 注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/

#include #include float fun (float h ) {

/***************Begin************/

/*************** End ************/

} void main() {

FILE *wf,*in; float a;

printf(\ scanf (\

printf(\ printf(\

printf(\/******************************/ in=fopen(\

wf=fopen(\ for(int i=0;i<10;i++) { }

fclose(in); fclose(wf);

fscanf(in,\ fprintf(wf,\

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4