东南大学机械学院C++第一学期上机(作业八之后)

更新时间:2023-11-14 09:57:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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 void main(void) { double f=1,sum=0,x; int n=1; cout<<\请输入一个x的值:\ cin>>x; while(fabs(f)>0.0001) { sum+=f; f=-f*x*x/2/n/(2*n-1); n++; } cout<<\的近似值为:\}

2、#include #include void main(void) { int m,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<

3、#include void main (void) { int sum; cout<<\之内的所有完数为:\ for(int i=1;i<=1000;i++) { sum=0; for(int j=1;j

4、#include int fac(int n) { int m=1; for(int i=1;i<=n;i++) m=m*i; return m; }

void main(void) { int n; cout<<\请输入一个n的值:\ cin>>n; cout<

5、#include #include double f(int x)

{ double m=1,sum=0; int i=1; while(fabs(m)>0.0001) { sum+=m; m=-m*x*x/2/i/(2*i-1); i++; } return sum; }

void main(void) { int x; cout<<\请输入一个x的值:\ cin>>x; cout<<\的近似值为:\}

第9周上机题目:

(1) 构造递归函数与程序,把输入的一个十进制的数字,正确的输出转化为2进制的数字。 (2) 写出 斐波那契级数前20项计算的 递归和递推的函数与程序;

(3) 要求:设计一个函数int check(int m),功能是提取m中的最高位数字和最低位数字,检查二者是否相同,若是则返回1,否则返回0。在主函数能够依次输入20个数,然后调用所设计的函数,输出多少个数是高位与低位相同。

(4)定义一个函数long invers(long x),形式参数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) 定义函数double g(int m, double x)用于计算g(m , x)。

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

(3) 主函数:从键盘输入x值(-1) = <结果值>, (n= <给定值>)。

1、#include void fun(int n)

{ if(n!=0) { fun(n/2); cout<

void main(void) { int n; cout<<\请输入一个十进制的数:\ cin>>n; cout<<\其对应的二进制数为:\ fun(n); cout<<'\\n'; }

2、#include int fib(int n) { int m; if(n==1||n==2) m=1; else m=fib(n-1)+fib(n-2); return m; }

void main(void) { cout<<\数列前20项为:\\n\ for(int i=1;i<=20;i++) cout<

#include int fib(int n) { int t1,t2,t; if(n==1||n==2) t2=1; else { t1=1;

t2=1; for(int i=3;i<=n;i++) { t=t2; t2=t1+t2; t1=t; } } return t2; }

void main(void) { cout<<\数列前20项为:\\n\ for(int i=1;i<=20;i++) cout<

3、#include int check(int m) { int a,b; b=m; while(m/10!=0) m=m/10; if(m==b) a=1; else a=0; return a; }

void main(void) { int m,j=0; for(int i=1;i<=20;i++) { cout<<\请输入一个整数:\ cin>>m; if(check(m)) j++; } cout<<\这二十个数中有\个高位和低位相同\}

#include

本文来源:https://www.bwwdw.com/article/om1v.html

Top