大一计算机改错题,计算机二级 改错题

数字题:

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++)

1-19-jpg_6_0_______-68-0-77-68.jpg

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;

1-20-jpg_6_0_______-58-0-0-58.jpg

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

1-20-jpg_6_0_______-48-0-136-48.jpg

+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;

1-19-jpg_6_0_______-49-0-198-49.jpg

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

1-20-jpg_6_0_______-22-0-23-22.jpg

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))

1-20-jpg_6_0_______-80-0-262-80.jpg

阶乘。

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,则输出应该

1-20-jpg_6_0_______-48-0-282-48.jpg

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

1-20-jpg_6_0_______-67-0-323-67.jpg

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

1-19-jpg_6_0_______-99-0-352-99.jpg

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中的值原为

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值