数字题:
1、根据整型形参m,计算如下公式的值。
y=1+1/(2*2)+1/(3*3)+1 /(4*4)+…+1/(m*m)的值。例如,若m=5,则应输出:1.463611。double fun(int m) {double y=1.0;int i;for(i=2;i<=m;i++)y+ =1.0/(i*i);return(y); }
2、根据形参m,计算列公式的值。T=1-1/2+1/3-1/4+……+(-1)(m+1)/m 例如,若输入5,则应输出0.783333 double fun(int m) {double t=1.0,j=1.0;int I;for(i=2;i<=m;i++){j=
-1*j;t+=j/i;}return t;}
3.根据整型参数m,计算如下公式的值,y=1/(100*100)+1/(200*20 0)+1/(300*300)+ (1)
(m*m).例如,若m=2000,则应输出0.000160.
double fun (int m) {double y=0, d;int i;
for(i=100;i<=m;i+=100) {d=(double)
i*( double)i;y+=1.0/d;} return(y);}
4.根据以下公式求n的值。例如,给eps输入0.0005时,应当输出
Pi=3.140578.
Pai/2=1+1/3+1/3*2/5+1/3 *2/5*3/7+…
double fun(double eps) {double s,t;int
n=1;s=0.0;t=1.0;while(t>= eps){s+=t;t=t*n/(2*n+1); n++;}return (s*2);}
5.根据形参m,计算下列公式的值。t=1+1/2+1/3+1/4+…1/m.。例如,若输入5,则应输出2.283333.
double fun (int m) {double t=1.0;int i;
for(i=2;i<=m;i++)t+=1.0/i ;return t;}
6.根据整型形参m,计算如下公式的值。
y=1+1/根号(2)+1/根号(3)+……1/根号(n)例如,若m中的值为:5,则应输出:3.231671
#include double fun (int m)
{int i;double t,y=0;
for(i=1;i<=m;i++){t=1/spr t(i);y=y+t;}return y;}
7. 根据整型形参m的值,计算如下公式的值。t=1-1/(2*2)-(3*3)- (1)
(m*m)例如m=5,则应输出0.536389.
double fun (int m) {double y=1.0;int i;
for (i=2;i<=m;i++)
m,计算
式的值.y=1-1/(2*2)+1/(3*3)-1/(4*4)+…+(-1)(m+1)/(m*m)
例如:m中的值为5,则应
输出0.838611.
double fun (int m)
{double y=1.0;double
j=1.0;int i;
for(i=2;i<=m;i++){j=-1*j;
n,计算
式的值。
A1=1.A2=1/(1+A1),A3=1/(
1+A2),A n=1/(1+A(n-1)).例
如,若n=10,则应输出
0.617977.
float fun (int n)
{float A=1;int
i;for(i=2;i<=n;i++)A=1.0/
(1+A);returnA;}
10.求
s=aa…aa-…aaa-aa-a(此
处aa…aa表示n个a,a
和n的值在1至9之间)。
如a=3.n=6,则以上表达
式为:
s=333333-33333-3333-33
3-33-3.其值是296298.
long fun (int a,int n)
{int j;long s=0,t=0;
for (j=0;j
t=t*10+a;s=t;
for(j=1;j
s-t;}return(s);}
11.用下面的公式求∏的
近似值,直到最后一项的
绝对值小于指定的数(参
数num)为止。
∏/4≈
1-1/3+1/5-1/7+…例如,
输入0.0001,则程序输
出3.1414.
float fun(float num)
{int s;float n,t,pi;t=1;
pi=0;n=1;s=1;
while(fabs(t)>=num)
{pi=pi+t;n=n+2;s=-s;t=s/n
;}
pi=pi*4;return pi;}
12.计算并输出下列级数
的前N项之和SN,直到
SN+1大于q为止,q的
值通过形参传入。
SA=2/1+3/2+4/3+(N+1)
/N。例如,若q的值为
50.0,则函数值为
49.394948.
double fun(int q)
{int n;double
s,t;n=2;s=2.0;
while(s<=q){t=s;s=s+(dou
ble)(n+1)/n;n++;}printf(“
n=%d\ n”,n);return t;}
13.求S的值。设S=(22/
(1*3))*(42/(3*5))*
(62/(5*7)*…*
(2k2/(2k-1)*(2k+1)).例
如,当k为10时,函数
的值应为1.533852.
float fun(int k)
{int n;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;}
14.计算S=f(f(-1.0)+f(5.0))
的值。结果为
2488.000000.f(x)函数定
义如下:(公式省略)
double f(double x)
{double y;if
(x<=2.0)y=2.0*x*x+3.0*x
+4.0;else
y=-2.0*x*x+3.0*x-4.0;
S=给f(-n)
…+f(0)+f(1)+f(
2)+…+f(n)的值。例如,
当n为5时,函数值应为
10.407143.f(x)函数定义
如下;(函数省略)
double f(double x)
{if(x= =0.0||x= =2.0)
return0.0;else
if(x<0.0)return
(x-1)/(x-2);
else return(x+1)/(x-2);}
double fun(int n)
{int i;double s=0.0,y;
for(i=-n;i<=n;i++){y=f(1.
0*i);s+=y;}return s;}
16.按以下递归公式求函
数值。函数省略。
例如,当给n输入5时,
函数值为18.
fun(int n){int
c;if(n==1)c=10;else
c=fun(n-1)+2;return(c);}
17.计算函数
F(x,y,z)=(x+y)/(x-y)+(z+y
)/(z-y)的值。其中x和y
不相等,z和y不等。例
如,当x的值为9,y的
值为11,z的值为15时,
函数值为-3.50.
#define FU(m,n)(m)/(n)
float fun(float a.float
b,float c)
{float value;
value=FU(a+b,a-b)+FU(c
+b,c-b);return(value);}
18.用二分法求方程2x3
-4x2+3x-6=0的一个根,
并要求绝对误差不超过
0.001.例如,若给m输入
-100,给n输入90,则函
数求得的一个根值为
2.000.
double funx(double x)
{return
(2*x*x*x-4*x*x*+3*x-6);
}
double fun(double
m,double n)
{double r;r=(m+n)/2;
while(fabs(n-m)>0.001)
{if(funx(r)*funx(n)<0)
m=r;
else
n=r;r=(m+n)/2;}return r;}
19.传入一个整数m,计
算如下公式的值,
t=1/2-1/3-…-1/m.例如,若
输入5,则应输出
-0.283333.
double fun (int m)
{double t=1.0;int i;
for(i=2;i<=m;i++)t=t-1.0/i
1/2,2/3,
3/5,5/8,8/13,13/21…
和值通过函数值返回
main函数。例如,若n
的值为:5,则应输
出:3.007051.
double fun(int n)
{int i;double t,s,a,b,c;
s=0;a=1;b=2;for(i=0;i
++){t=a/b;s=s+t;c=a+b;a=
b;b=c;}return s;}
21.求出以下分数序列的
前n项之和。2/1,3/2,
5/3,8/5,13/8,21/13,……
和值通过函数值返回主
函数。例如,若输入5,
则应输出8.391667.
double fun (int n)
{int a=2,b=1,c,k;double
s=0.0;for(k=1;k<=n;k++){
s=s+1.0*a/b;c=a;a+=b;b=
算1+2+3+……+n
float fun (int n)
{double t;if
(n==1)return(1);else
t=fun(n-1)+n;return t;}
23.应用递归算法求某数
a的平方根。求平方根的
迭代公式如下:
x1=(x0+a/x0)/a.例如,2的
平方根为1.414214.
doube fun(double
a,double x0)
{double x1,y;
x1=(x0=a/x0)/2.0;if(fabs
(x1 -x0)>=0.00001)
y=fun (a,x1);
else y=x1;return y; }
24.求k!(k<13),例如,若k
=10,则应输出3628800.
long fun (int k)
{if(k>0)return(k*fun(k-1))
阶乘。
double fun (int n)
{double result=1.0;
While
(n>1&&n<170)result*=n-
num 的各
若输入:252,则输出应
该是:20.
long fun(long num)
{long k=1;
do
{k*=num%10;num/=10;}
while (num);return(k); }
27.计算正整数num的各
位之平方和。例如,输入
352,则输出应该是38;
若输入328,则输出应该
是
77.
long fun (long num)
{long k=0;do
{k+=(num%10)*
(num%10);num/=10;}whil
high 以内
high由主函
数传给fun函数。若high
的值为100,则函数的值
为1060.
int fun (int high)
{int
sum=0,n=0,j,yes;while
(high>=2){yes=1;for(j=2;j
<=high/2;j++)
if
(high%j==0){yes=0;break
;}if(yes){sum+=high;n++;
}high--;}return sum;}
29.计算并输出k以内最
大的6个能被7或11整
除的自然数之和。若k的
值为500,则函数的值为
2925.
int fun (int k)
{intm=0,mc=0,j;
while((k>=2)&&(mc<6))
{if ((k%7==0)||
(k%11==0)){m+=k;mc++
;}k--;}return m;}
30.数列中,第一项为3,
后一项都比前一项的值
增5.下列给定程序中,函
数的功能是:计算前n(4
≤n≤50)项的累积和。
在累加过程中把那些被4
除后余2的当前累加值
放入数组中,符合此条件
的累加值的个数作为函
数值返回主函数里。如,
当n的值为20时,该数
列为3,8,13,18,23,
28,…,93,98.符合此
条件的累加值应为42,
126,366,570,1010.
int fun (int n,int *a)
{int
i,j=0,k,sum;sum=0;for
(k=3,i=0;i
{sum=sum+k;if
(sum%4==2)a[j++]=sum;
k(2≤k
质因子(即所有为素数的
因子)。例如,若输入整
数理化2310.则应输出:
2、3、7、11.
isPrime (int n)
{int i,m;m=1;for
(i=2;i
(!(n%i)){m=0;break;}retu
rn(m);}
32.将长整型数中每一位
上为偶数的数依次逆向
取出,构成一个新数放在
t中。高位在低位,低位
在高位。当s中的数为
25846513时,t中的数为
6482.
void fun(long s,long *t)
{int d;long s1=1.i=1;*t=0;
while(s/i>0)
i=i*10;i=i/10;
while (s>0)
{d=s/i;if(d%2==0){*t=d*
s1+*t;s1*=10;}s=s%i;i=i/
10;}}
33.已知一个数列从0项
开始的前3项:0,0,1,
以后的各项都是其相邻
的前3项之和。函数fun
的功能是:计算并输出该
数列前n项的和sum。N
的值通过形参传入。例
如,当n=10时,程序输
出结果应为96.000000.
double fun (int n)
{double
sum,s0,s1,s2,s;int
k;sum=1.0;
if(n<=2)sum=0.0;s0=0.0;s
1=0.0;s2=1.0;
for
(k=4;k<=n;k++){s=s0+s1
+s2;sum+=s;s0=s1;s1=s2;
以内最
或17
整除的自然数之和。例
如,若k的值为500,则
函数的值为4622.
int fun (int k)
{int m=0,mc=0,j;while
((k>=2)&&(mc<10)){if((
k%13==0)||(k%17==0))
{m=m+k;mc++;}k--;}retu
rn m;}
35.通过某种方式实现两
个变量值的交换,规定不
允许增加语句和表达式。
例如,变量a中的值原为