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

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

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

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

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

东南大学机械学院C第一学期上机作业八之后汇总

1.设有如下求近似值的公式:

设计算法,给定一个x,求f(x)的近似值,要求单项误差不大于0.0001。

提示:

需要使用fabs函数求绝对值,fabs函数需要包含数学函数头文件,

#include“math.h”

2.输出100-200之间的质数,输出格式为8个一行;

3.一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如,6的因子为1、2、3,而6=1+2+3,28=1+2+4+7+14因此6,28是“完数”。

编程序找出1000之内的所有的完数并输出。

4.设计一个计算n的阶乘的函数fac,参数为n,返回值为整数。

完成后,在主程序中输入一个整数,然后调用该函数,并输出结果。

5.把第一题转化成函数,即设计一个函数f,参数是实数,返回值也是也实数。

在主程序中输入x,然后调用函数之后输出。

1、#include

#include

voidmain(void)

{

doublef=1,sum=0,x;

intn=1;

cout<<"请输入一个x的值:

";

cin>>x;

while(fabs(f)>0.0001)

{

sum+=f;

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

n++;

}

cout<<"f(x)的近似值为:

"<

}

2、#include

#include

voidmain(void)

{

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)

{

cout<

n++;

}

if(n%8==0)

cout<<'\n';

}

}

3、#include

voidmain(void)

{

intsum;

cout<<"1000之内的所有完数为:

";

for(inti=1;i<=1000;i++)

{

sum=0;

for(intj=1;j

if(i%j==0)

sum+=j;

if(i==sum)

cout<

}

}

4、#include

intfac(intn)

{

intm=1;

for(inti=1;i<=n;i++)

m=m*i;

returnm;

}

voidmain(void)

{

intn;

cout<<"请输入一个n的值:

";

cin>>n;

cout<

"<

}

5、#include

#include

doublef(intx)

{

doublem=1,sum=0;

inti=1;

while(fabs(m)>0.0001)

{

sum+=m;

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

i++;

}

returnsum;

}

voidmain(void)

{

intx;

cout<<"请输入一个x的值:

";

cin>>x;

cout<<"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

输出格式为f()=<结果值>,(n=<给定值>)。

1、#include

voidfun(intn)

{

if(n!

=0)

{

fun(n/2);

cout<

}

}

voidmain(void)

{

intn;

cout<<"请输入一个十进制的数:

";

cin>>n;

cout<<"其对应的二进制数为:

";

fun(n);

cout<<'\n';

}

2、#include

intfib(intn)

{

intm;

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

m=1;

else

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

returnm;

}

voidmain(void)

{

cout<<"Fibonnaci数列前20项为:

\n";

for(inti=1;i<=20;i++)

cout<

}

#include

intfib(intn)

{

intt1,t2,t;

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

t2=1;

else

{

t1=1;

t2=1;

for(inti=3;i<=n;i++)

{

t=t2;

t2=t1+t2;

t1=t;

}

}

returnt2;

}

voidmain(void)

{

cout<<"Fibonnaci数列前20项为:

\n";

for(inti=1;i<=20;i++)

cout<

}

3、#include

intcheck(intm)

{

inta,b;

b=m%10;

while(m/10!

=0)

m=m/10;

if(m==b)

a=1;

else

a=0;

returna;

}

voidmain(void)

{

intm,j=0;

for(inti=1;i<=20;i++)

{

cout<<"请输入一个整数:

";

cin>>m;

if(check(m))

j++;

}

cout<<"这二十个数中有"<

}

#include

intcheck(intm)

{

intn;

if(m/10==0)

n=m%10;

else

n=check(m/10);

returnn;

}

voidmain(void)

{

intm,j=0;

for(inti=1;i<=20;i++)

{

cout<<"请输入一个整数:

";

cin>>m;

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

j++;

}

cout<<"共有"<

}

4、#include

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;

returnm;

}

voidmain(void)

{

intx;

cout<<"请输入一个六位整数:

";

cin>>x;

cout<<"计算结果为:

"<

}

5、#include

doubleg(intm,doublex)

{

doublet=0;

for(inti=1;i<=m;i++)

t=t+i;

t=t*x;

returnt;

}

doublef(intn,doublex)

{

doublet=1;

for(inti=1;i<=n;i++)

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

returnt;

}

voidmain(void)

{

doublex;

cout<<"请输入x的值(-1

";

cin>>x;

cout<<"f("<

}

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

(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

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

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

A

BBB

CCCCC

DDDDDDD

CCCCC

BBB

A

1、#include

doubleg(intm)

{

doublen;

if(m==1)

n=1;

else

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

returnn;

}

doublef(doublex,intn)

{

doublet;

t=x*x*x;

for(inti=3;i<=

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

当前位置:首页 > 经管营销 > 经济市场

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

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