东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx

上传人:b****3 文档编号:15763247 上传时间:2022-11-15 格式:DOCX 页数:27 大小:23.64KB
下载 相关 举报
东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx_第1页
第1页 / 共27页
东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx_第2页
第2页 / 共27页
东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx_第3页
第3页 / 共27页
东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx_第4页
第4页 / 共27页
东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx

《东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx》由会员分享,可在线阅读,更多相关《东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx(27页珍藏版)》请在冰豆网上搜索。

东南大学机械学院C第一学期上机作业八之后汇总Word下载.docx

<

"

请输入一个x的值:

;

cin>

>

x;

while(fabs(f)>

0.0001)

{

sum+=f;

f=-f*x*x/2/n/(2*n-1);

n++;

}

f(x)的近似值为:

sum<

'

\n'

}

2、#include<

intm,k,i,n=0;

for(m=101;

m<

200;

m=m+2)

k=sqrt(m);

for(i=2;

i<

=k;

i++)

if(m%i==0)

break;

if(i==k+1)

{

\t'

}

if(n%8==0)

cout<

3、#include<

voidmain(void)

intsum;

1000之内的所有完数为:

for(inti=1;

=1000;

sum=0;

for(intj=1;

j<

i;

j++)

if(i%j==0)

sum+=j;

if(i==sum)

cout<

4、#include<

intfac(intn)

intm=1;

=n;

m=m*i;

returnm;

intn;

请输入一个n的值:

n;

n<

的阶乘为:

fac(n)<

5、#include<

doublef(intx)

doublem=1,sum=0;

inti=1;

while(fabs(m)>

sum+=m;

m=-m*x*x/2/i/(2*i-1);

i++;

returnsum;

intx;

f(x)<

第9周上机题目:

(1)构造递归函数与程序,把输入的一个十进制的数字,正确的输出转化为2进制的数字。

(2)写出斐波那契级数前20项计算的递归和递推的函数与程序;

(3)要求:

设计一个函数intcheck(intm),功能是提取m中的最高位数字和最低位数字,检查二者是否相同,若是则返回1,否则返回0。

在主函数能够依次输入20个数,然后调用所设计的函数,输出多少个数是高位与低位相同。

(4)定义一个函数longinvers(longx),形式参数x为一个6位整数,函数功能是取x的高3位数(赋给h)和低3位各位数字(可从高位到低位依次存入变量a、b和c),将a、b和c逆序组合为一个整数t,计算h+t并将结果返回。

例如:

x=123456,h=123,t=654。

(5)、利用级数展开式计算:

(50分)

f(x)=(n≥1)

其中:

g(m,x)=(1+2+3+…+m)*x

【要求】

(1)定义函数doubleg(intm,doublex)用于计算g(m,x)。

(2)定义函数doublef(…)用于计算f(x),其中应调用函数g()。

(3)主函数:

从键盘输入x值(-1<

x≤1),调用函数f()计算当n=12时的f(x)值,输出计算结果。

输出格式为f(<

x值>

)=<

结果值>

(n=<

给定值>

)。

voidfun(intn)

if(n!

=0)

fun(n/2);

cout<

n%2;

请输入一个十进制的数:

其对应的二进制数为:

fun(n);

intfib(intn)

intm;

if(n==1||n==2)

m=1;

else

m=fib(n-1)+fib(n-2);

Fibonnaci数列前20项为:

\n"

=20;

fib(i)<

intt1,t2,t;

t2=1;

t1=1;

for(inti=3;

t=t2;

t2=t1+t2;

t1=t;

returnt2;

intcheck(intm)

inta,b;

b=m%10;

while(m/10!

m=m/10;

if(m==b)

a=1;

a=0;

returna;

intm,j=0;

请输入一个整数:

cin>

m;

if(check(m))

j++;

这二十个数中有"

个高位和低位相同"

if(m/10==0)

n=m%10;

n=check(m/10);

returnn;

if(m%10==check(m))

共有"

个数是高位与低位相同"

longinvers(longx)

intm,a,b,c;

a=x%10;

b=x/10%10;

c=x/100%10;

m=100*a+10*b+c+x/1000;

请输入一个六位整数:

计算结果为:

invers(x)<

doubleg(intm,doublex)

doublet=0;

=m;

t=t+i;

t=t*x;

returnt;

doublef(intn,doublex)

doublet=1;

t=t+1/g((2*i+1),x);

doublex;

请输入x的值(-1<

x<

=1):

f("

)="

f(12,x)<

"

(n=12)"

1.编写并调试运行多函数形式的程序

利用级数展开式计算:

f(x)=(n≥2)

g(m)=(m-2)/(m-1)。

g

(1)=1;

m>

1

(1)定义函数doubleg(intm)用于计算g(m)。

(2)定义函数doublef(…)用于计算f(x),其中应调用函数g(m)。

(3)主函数负责输入输出以及调用函数f(x)。

从键盘输入x(-1<

x≤1)值,计算当n=9时的f(x)值,输出计算结果。

(4)输出格式为:

f(<

,(n=<

)。

程序测试至少三次,分别输入不同的x值和n值(如x=0.3,0.8,1.5,n=10,16,25)。

2.编制函数,用辗除法求两个整数的最大公约数其最大公约数和最小公倍数。

要求在主函数中输入以下10对整数:

12、20,7、13,6、8,15、60,3、5,10、24,13、15,36、9,45、11,18、36,输出其中互质的数对(互质数对指除了1之外,没有其他的公因子,如7、13)。

输入两个正整数m和n,要求用写出函数完成上述功能。

所谓辗除法叙述如下:

设要求a和b的最大公约数.首先将a除以b,得商q,得余数r(如果a<

b,则将a和B对调),a=bq+r。

再将余数去除原来的除数,得新的商和余数,重复此过程,直到余数为零,则此时的除数就是a和b的最大公约数。

3.利用函数打印出如下图案:

A

BBB

CCCCC

DDDDDDD

doubleg(intm)

doublen;

if(m==1)

n=1;

n=(m-2.0)/(m-1);

doublef(doublex,intn)

doublet;

t=x*x*x;

for(inti=3;

=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1