东南大学机械学院C第一学期上机作业八之后汇总.docx
- 文档编号:2852189
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:27
- 大小:23.64KB
东南大学机械学院C第一学期上机作业八之后汇总.docx
《东南大学机械学院C第一学期上机作业八之后汇总.docx》由会员分享,可在线阅读,更多相关《东南大学机械学院C第一学期上机作业八之后汇总.docx(27页珍藏版)》请在冰豆网上搜索。
东南大学机械学院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( 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( 程序测试至少三次,分别输入不同的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<=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东南大学机械学院C 第一学期上机作业八之后汇总 东南大学 机械学院 第一 学期 上机 作业 之后 汇总
![提示](https://static.bdocx.com/images/bang_tan.gif)