




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、八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,返回值为整数。完成后,在主程序中输入一个整
2、数,然后调用该函数,并输出结果。5. 把第一题转化成函数,即设计一个函数 f, 参数是实数,返回值也是也实数。在主程序中 输入X,然后调用函数之后输出。1 、 #in clude #include void main(void)double f=1,sum=0,x;int n=1;coutx;while(fabs(f)0.0001)sum+=f;f=-f*x*x/2/n/(2*n-1);n+;coutf(x) 的近似值为 :sumn;2、#i n clude #include void main(void)int m,k,i,n=0;for(m=101;m200;m=m+2)k=sqrt(m)
3、; for(i=2;i=k;i+) if(m%i=0) break;if(i=k+1)coutmt;n+;if(n%8=0) coutn;3、#include void main (void)int sum;cout1000 之内的所有完数为 : for(int i=1;i=1000;i+)sum=0;for(int j=1;ji;j+) if(i%j=0) sum+=j;if(i=sum) coutit;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;cou
4、tn;coutn 的阶乘为 :fac(n)n;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;coutx;coutf(x) 的近似值为 :f(x) 1)其中:g(m , x)=(1+2+3+ +m)*x【要求】(1) 定义函数 double g(int m, double x) 用于计算 g(m , x) 。 定义函数double f(-)用于计算f(x),其
5、中应调用函数 g()。 主函数:从键盘输入 x值(-1x 1),调用函数f()计算当n=12时的f(x)值,输出计算 结果。输出格式为 f () = , (n= )。1 、 #include void fun(int n)if(n!=0)fun(n/2); coutn%2;void main(void)int n;coutn;cout 其对应的二进制数为 :;fun(n);coutn;2、#include int fib(int n)int m;if(n=1|n=2)m=1;elsem=fib(n-1)+fib(n-2);return m;void main(void)coutFibonnac
6、i 数列前 20 项为 :n;for(int i=1;i=20;i+)coutfib(i)t;#include int fib(int n)int t1,t2,t; if(n=1|n=2) t2=1;elset1=1; t2=1;for(int i=3;i=n;i+)t=t2;t2=t1+t2;t1=t;return t2;void main(void)coutFibonnaci 数列前 20 项为 :n;for(int i=1;i=20;i+) coutfib(i)t;3、#include int check(int m)int a,b;b=m%10;while(m/10!=0)m=m/10
7、;if(m=b)a=1;elsea=0;return a;void main(void)int m,j=0;for(int i=1;i=20;i+)coutm;if(check(m)j+;n;cout 这二十个数中有 j 个高位和低位相同 #include int check(int m)int n; if(m/10=0) n=m%10;else n=check(m/10);return n;void main(void)int m,j=0; for(int i=1;i=20;i+) coutm;if(m%10=check(m) j+;n;cout 共有 j 个数是高位与低位相同 4、#inc
8、lude long invers(long x) int m,a,b,c; a=x%10; b=x/10%10; c=x/100%10;m=100*a+10*b+c+x/1000; return m;void main(void)int x;coutx;cout 计算结果为 :invers(x)n;5、#include double g(int m,double x) double t=0;for(int i=1;i=m;i+) t=t+i;t=t*x;return t; double f(int n,double x)double t=1;for(int i=1;i=n;i+) t=t+1/
9、g(2*i+1),x);return t;void main(void)double x;cout 请输入 x 的值 (-1xx;coutf(x)=f(12,x),(n=12) 2)其中: g(m)=(m-2)/(m-1) 。 g(1)=1; m1【要求】(1) 定义函数 double g(int m) 用于计算 g(m )。 定义函数double f()用于计算f(x),其中应调用函数 g(m)。 主函数负责输入输出以及调用函数f(x)。从键盘输入x(-1x 1)值,计算当n=9时的f(x)值,输出计算结果。(4) 输出格式为: f () = ,(n= ) 。程序测试至少三次,分别输入不同的
10、 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(如果ab,则将a和B对调),a=bq+r。再将余数去除原来的除数,得新的商和余
11、数, 重复此过程,直到余数为零,则此时的除数就是a和b的最大公约数。3. 利用函数打印出如下图案:ABBBCCCCCDDDDDDDCCCCC BBB A1、#include double g(int m) double n; if(m=1)n=1; elsen=(m-2.0)/(m-1); return n;double f(double x,int n) double t; t=x*x*x;for(int i=3;i=n;i+) t+=-1*g(i)*x*x;t=t-x*x*x+x; return t;void main(void) double x; cout 请输入一个 x 值 (-1x
12、x;coutf(x)=f(x,9),(n=9)n; 2、#include double g(int m) double n; if(m=1)n=1; elsen=(m-2.0)/(m-1); return n;double f(double x,int n)double t; t=x*x*x;for(int i=3;i=n;i+) t+=-1*g(i)*x*x;t=t-x*x*x+x; return t;void main(void) double x; cout 请输入一个 x 值 (-1xx; coutf(x)=f(x,9),(n=9)n;#includeint f1(int m,int
13、n) if(m%n=0) return n; else return f1(n,m%n);int f2(int m,int n) m/=f1(m,n); return m*n;void main(void) int m,n; cinmn; if(f1(m,n)=1) coutmtnn;else coutf1(m,n)n; coutf2(m,n)n;3、#include #include void fun() char c;for(int i=1;i=4;i+)c=64;coutsetw(5-i);c=c+i;for(int j=1;j=2*i-1;j+) coutc;cout=1;i-)c=6
14、4; coutsetw(5-i);c=c+i;for(int j=1;j=2*i-1;j+) coutc;coutn;void main(void)fun();(3)根据猜想,每一个大于 4 的偶数都可以表示为两个质数之和, 请把 4-50 以内的偶数拆分成两个质数之和,验证猜想。#include int fun(int m)int a;for(int i=2;im;i+)if(m%i=0) break;if(i=m)a=1;elsea=0;return a;void main(void)for(int i=6;i=50;i=i+2)for(int m=3;mi;m+)if(fun(m)&fu
15、n(i-m)couti=m+i-mn;break;十二3. 拆分一个小于 8 位的整数,把各位数字存放在一个数组中, 例如,123456,拆分到 a0=6, a1=5; a2=4; a3=3;a4=2;a5=1; a6=0, a7=04. 建立一个长度为 10 的数组,从键盘由大到小输入9 个有序的整数,形成一个有序的数列依次存放到数组中; 然后再输入一个数, 把这个数放到数组的正确位置, 使得数组依然有 序(不能使用排序方法重新排序) 。 例如 ,数组为 data, 预先输入, 1, 3 , 4, 6, 8, 12, 14, 16, 20; 然后再从键盘接收一个数, 例如为 5,最后的数组结
16、果为, 1, 3 , 4, 5, 6, 8, 12, 14, 16, 20。 提示,算法采用数组的搬移,第一步:创建数组,读入 9 个有序的数字; 第二步:再读入一个数,然后在数组上遍历,找到新数应该处于的位置i ,即当在数组中发现第一个大于新数的位置,就在它的前面停止下来;第三步:从 i+1 到 9,数组依次向后搬移,注意搬移要从后面开始,即从第9 个开始向后依次到第 i+1 个;第四步:把输入的数字放到位置 i 上;#include void main(void)int a8,m,i=0;coutm;while(m!=0)ai=m%10;m=m/10;i+;for(;i8;i+)ai=0;
17、cout 拆分后的结果为 :n;for(i=0;i8;i+)coutai=ait;coutn;#include void main(void)int a10,i,j,k;cout=0;i-)cinai;coutk;for(i=0;i=k)break;for(j=8;j=i;j-)aj+1=aj;ai=k;cout 最后的结果为 :n;for(i=0;i=9;i+)coutait;13 周上机 要求:1. 一个 5 位数,判断它是不是回文数。 即 12321 是回文数, 个位与万位相同, 十位与千位 相同。1)编制函数判断该 5 位数是不是回文数,若是返回1,否则则返回 0,要求用循环和数组结合
18、做程序!2)在主函数中,要求从键盘输入十个“五位数” ,依次调用函数进行判断,输出其中满足 条件的回文数。要求每行输出 2个数。2. 编写一个程序,处理某班学生 3 门课程(语文、数学和英语)的成绩。先输入学生人数 (最多为 50 个人 );再调用一个函数按编号从小到大的顺序依次输入学生成绩;然后调用函 数统计每门课程全班的总成绩和平均成绩以及每个学生课程的总成绩和平均成绩;最后调用函数输出学生的成绩。分析:假设有50位同学,在主函数中定义一个sN5数组,N为50。注意在编程的时候一开始可以把 N 先定义成一个小的数字 5 调试,等到成功后再改成 50。 sn0 、sn1 、sn2 分别存储3
19、门课程(高数、英语和C+ )的分数,sn3和sn4分别存储计算出来的总分和平均分。定义四个函数: input 函数负责输入, calculate 函数负责计算平均成绩和总成绩, print 函数负责输出成绩,主函数负责定义数组和测试其它函数。3. 设计一个程序要求:(1 )建立两个一维整型数组 a12和b10。在数组a中存入12个整数:209, 2, 81, 637, 792, 117, 240, 913, 434, 782, 56 , 34,并输出至屏幕。(2)对数组a进行处理,计算所有整数中含数字0的个数、数字1的个数、数字 9的个数,存入数组 b。提示: b0- b9 中的元素是 统计
20、0-9 数字计数器。数组 a 中的每个数字都需要拆分。 拆得的数字与数组 b的下标是对应的。附加题 4.设计一个程序,完成函数,计算两个 3*3 矩阵的乘积,保存到另外一个 3*3 矩阵中。? 设两个矩阵 (数组 )为 ank 和 bkm ,则有 :?则乘积为 :? cij=?按照此数学方法,需要使用 3 重循环( i 循环, j 循环, l 循环)来完成乘积。其中,i , j为确定乘积数组c的每个变量, 内重I为 计算乘积的循环。(注意I的写法,容易与 数字 1 搞混)1 、 #incIude int fun(int m)int a5,i,n=0;for(i=0;i5;i+)ai=m%10;
21、m=m/10;if(a0=a4&a1=a3)n=1; return n;void main (void)int m,i,k=0,b10;cout 请输入十个五位数 :; for(i=0;ibi;cout满足条件的回文数为:n;for(i=0;i10;i+)if(fun(bi)coutbit; k+;if(k%2=0) coutn;if(k=0)cout 没有回文数 !;2、 #include void input(double s5,int n) int i,j;:n;cout 请依次输入每个学生的三门课程的成绩 for(i=0;in;i+)for(j=0;jsij;void calculat
22、e(double s5,int n)int i;for(i=0;in;i+) si3=si0+si1+si2; si4=si3/3;void print(double s5,int n)int i;double sum1=0,sum2=0,sum3=0; cout 每个学生的课程总成绩依次为 :n; for(i=0;in;i+)coutsi3t; coutn;cout 每个学生的课程平均成绩依次为 :n; for(i=0;in;i+)coutsi4t; coutn;for(i=0;in;i+)sum1+=si0; sum2+=si1; sum3+=si2;cout 语文,数学,英语全班的总成绩
23、分别为 :sum1tsum2tsum3n;cout 语 文 , 数 学 , 英 语 全 班 的 平 均 成 绩 分 别为:sum1/ * tsum2/* tsum3/n n:void main(void)int n;double s505;coutn;input(s,n);calculate(s,n);print(s,n);3、#include void main(void)int i;int a12=209,2,81,637,792,117,240,913,437,782,56,34;int b10=0,0,0,0,0,0,0,0,0,0;cout 这一组整数为 :n;for(i=0;i12
24、;i+)coutait;coutn;for(i=0;i12;i+)while(ai!=0)bai%10+;ai=ai/10;cout所有整数中含数字 0,123,4,5,6,7,8,9的个数分别为:n;for(i=0;i10;i+)coutbit;4、#include void main(void)double a33,b33,c33=0,0,0,0,0,0,0,0,0;int i,j,l;cout 请输入 a 矩阵 :;for(i=0;i3;i+)for(j=0;jaij;cout 请输入 b 矩阵 :;for(i=0;i3;i+)for(j=0;jbij;for(i=0;i3;i+)for
25、(j=0;j3;j+)for(l=0;l3;l+)cij+=ail*blj;couta 矩阵 :n;for(i=0;i3;i+)for(j=0;j3;j+)coutaijt;coutn;coutb 矩阵 :n;for(i=0;i3;i+)for(j=0;j3;j+)coutbijt;coutn;couta 矩阵与 b 矩阵的乘积为 :n;for(i=0;i3;i+)for(j=0;j3;j+)coutcijt;coutn;十四周5. 定义一个函数long invers(long x) , x为一个6位整数,函数功能是取 x的高3位数(赋 给h)和低3位各位数字(可从高位到低位依次存入变量a、b
26、和c),将a、b和c逆序组合为一个整数 t ,计算 h+t 并将结果返回。例如: x=123456, h=123, t=654。10. main()主函数功能:设计一个循环,在循环中从键盘输入一个6位长整数赋予变量 n,调用函数invers(n)对n进行处理和计算,输出返回值。若输入非6位的整数则显示提示信息, 输入 0 则结束循环。11. 主函数数据输出格式为:长整数 n 值:函数 invers(n) 的返回值。#include long invers(long x)int a,b,c;a=x%10;b=x/10%10;c=x/100%10;return x/1000+a*100+b*10+
27、c;void main(void)long x;coutx;while(x!=0)if(x/1000000&x/10000010) coutx:invers(x)n;elsecoutx;(1) 编写主函数 main(),先建立一个磁盘文件,文件名为data学号.txt ”并以写方式打开 (其中学号为本人的) 。(2) 定义字符变量 ch= #整型变量a,b,c,d。设计一个20次的循环,在循环体中产生 3 个100以内的随机整数分别赋给 a,b,c,计算这三个数的平均值赋给d,将a,b,c,d的值和ch 值输出至屏幕。即在每写入 4个数的后面加入一个 #字符(共 20组数据)。提示:可调用产生随机数的函数rand(),该函数包含在 stdlib头文件中。写入文件的数据可以用 ,分隔。#include #include #include void main(void)char ch=#;int a,b,c,d;srand(unsigned(time(0);for(int i=1;i=20;i+)a=rand()%100;b=rand()%100;c=rand()%100;d=(a+b+c)/3;couta,b,c,dch;现有两个已升序排好的数组,调用函数void combine(int x ,int y int z) 将它们合并为一个升序排序的数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 6048-1:2025 EN Information technology - JPEG AI learning-based image coding system - Part 1: Core coding system
- 高效沟通技能培训
- 运动控制功能课件
- 动物小游戏课件
- 课件显示画图过程
- 广东会计自考试题及答案
- 广东法律自考试题及参考答案
- 控制数考试题及答案
- 装岩机司机岗前考核试卷及答案
- 离心铸管工三级安全教育(公司级)考核试卷及答案
- 2025年中国物流集团国际物流事业部招聘面试经验及模拟题集
- 乡镇安全培训课件
- 2025年航空业面试者必看航空公司招聘笔试预测试题及答案
- 2025年全国企业员工全面质量管理知识竞赛题及参考答案
- 2025年秋季开学典礼诗歌朗诵稿:纪念抗战胜利八十周年
- 2025秋仁爱科普版(2024)七年级上册英语教学计划
- 《非物质文化遗产概论(第三版)》全套教学课件
- 2025年广东省中考英语试卷深度评析及2026年备考策略
- 2025年信息安全应急演练记录
- 社区医院创建汇报课件
- 轴对称及其性质第1课时课件2025-2026学年人教版数学+八年级上册
评论
0/150
提交评论