C++函数编程20道习题汇总含其详细程序解答
更新时间:2024-03-09 01:08:01 阅读量: 综合文库 文档下载
函数作业及解答
第1题:
编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。 样例输入:15 25 样例输出:5 75
#include
for(i=a;i>0;i--)
if (a%i==0&&b%i==0) { return i; break;} }
int gbs(int a,int b) {int i;
for(i=a;;i++)
if(i%a==0&&i%b==0) { return i; break;} }
int main()
{int a,b,c,d; cin>>a>>b; c=gys(a,b); d=gbs(a,b);
cout< 第2题: 编写函数factors(num, k),函数功能是:求整数num中包含因子k的个数,如果没有该因子则返回0,例如:32=2×2×2×2×2,则factors(32,2)=5。要求输入输出均在主函数中完成。 样例输入:4 2 样例输出:2 样例输入:8 3 样例输出:0 #include num=num/k; a=num%k; } return n;} int main() {int num,k,b; cin>>num>>k; b=factors(num,k); cout< 第3题: 编写函数,函数功能是:计算n的阶乘,要求输入输出均在主函数中完成。 样例输入:5 样例输出:120、 #include for(a=1;a<=n;a++) b=a*b; return b;} int main() {int n,s; cin>>n; s=jc(n); cout< 第4题: 编写函数,函数功能是:计算k以内(包括k)最大的10个(不足10个则是所有的)能被13或17整除的自然数之和。要求输入输出均在主函数中完成。 样例输入:500 样例输出:4622 #include {if(n==0||n==0) {c++; s+=n;} if(c>=10) break;} return s;} int main() {int k,s; cin>>k; s=sum(k); cout< - - 1 - - 函数作业及解答 第5题: 编写函数,函数功能是:根据下列公式求π的值(直到某一项的值小于给定精度e为止),精度e由键盘输入,要求输入输出均在主函数中完成。 样例输入:0.0005 样例输出:3.14058 #include for(k=2;;k++) {s+=a; a=a*(k/(k*2+1)); if(a {double e,p; cin>>e; p=pai(e); cout< 第6题: 编写程序求 要求使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主函数中完成。注意:0!=1。 样例输入:3 样例输出:10 #include {for(i=1;i<=a;i++) s=s*i;} return s;} int main() {int n,k,s; double sum=0; cin>>n; for(k=0;k<=n;k++) {s=jc(k); sum+=s;} cout< 第7题: 求数列 要求使用函数计算该序列的前N项和SN,直到SN 大于q为止,q由键盘输入,输入输出均在主函数中完成。 样例输入:50 样例输出:50.4167、 #include s+=a;} return s;} int main() { float q,s; cin>>q; s=sum(q); cout< - 2 - 函数作业及解答 第8题: 求数列的前n项和 要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。 样例输入:50 样例输出:1.96079 #include for(i=1;i<=n;i++) s+=i; a=1.0/s; return a;} int main() {int n,i; float s=0; cin>>n; for(i=1;i<=n;i++) s+=myx(i); cout< 第9题: 编写函数fun(num),其中num是一个n位数,函数功能是:求整数num的后n-1位,如果num是一位数则返回0,要求输入输出均在主函数中完成。 样例输入:9 样例输出:0 样例输入:6734 样例输出:734 样例输入:1000 样例输出:0 样例输入:10101 样例输出:101 #include else {n=int(log10(x))+1; m=x%int(pow(10,n-1)); a=m;} return a;} int main() {int x,c; cin>>x; c=jw(x); cout< 第10题: 编写函数,函数功能是:判断输入的字符是否为数字字符。如果是,则输出YES,否则输出NO,要求输入输出均在主函数中完成。 样例输入:5 样例输出:YES 样例输入:B 样例输出:NO #include if(n>='0'&&n<='9') flag=1; else flag=0; return flag;} int main() {char n; n=getchar(); if(pdsz(n)==1) cout<<\else cout<<\return 0;} - 3 - 函数作业及解答 第11题: 编写函数,函数功能是:将两个两位数的正整数a、b合并成一个整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。a、b由键盘输入,输入输出均在主函数中完成。 样例输入:45 12 样例输出:4125 #include g=a; m=b*10; c=q*1000+m+g; return c;} int main() {int a,b,c; cin>>a>>b; c=hb(a,b); cout< 第12题: 求数列的前n项和 要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。 样例输入:10 样例输出:0.382179 #include c=a/b; return c;} int main() {double n,s=0,i,a; cin>>n; for(i=1;i<=n;i++) {a=dx(i); s+=a;} cout< 第13题: 求数列的前n项和 要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。 样例输入:3 样例输出:123 #include a=m; s+=a;} return s;} int main() {int n,i,a,sum=0; cin>>n; for(i=1;i<=n;i++) {a=an(i); sum+=a;} cout< - 4 - 函数作业及解答 第14题: 求满足 的n的最大值,要求使用函数,函数功能是:计算 n的立方,k由键盘输入。累加过程和输入输出均在主函数中完成。 样例输入:10000 样例输出:13 #include return a;} int main() {int k,s=0,i,n=0,a; cin>>k; for(i=1;s {a=lf(i); s+=a;} n=i-2; cout< 第15题: 求数列 直到相邻两项之差的绝对值小于1E-6为止。要求使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。 样例输入:0.21 样例输出:1.1 #include m=1/b; s+=a*m*pow(x,i);} return s;} int main() {float x,k,n=0,p,q; cin>>x; for(k=1;;k++) {n++; p=sn(x,n); q=sn(x,n+1); if(fabs(q-p)<1E-6) break;} cout< 第16题: 利用级数展开式计算cosx 直到某一项的绝对值小于0.00001为止。要求使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。 样例输入:0 样例输出:1 样例输入:3 样例输出:-0.989992 c*=k; {p=an(x,i); #include #include double an(double x,double n) {double a,b,k,c=1,d,e; a=pow(-1,n); b=pow(x,2*n); for(k=1;k<=2*n;k++) d=1/c; e=a*b*d; return e;} int main() {double x,s=1,i,p; cin>>x; for(i=1;;i++) s+=p; if(fabs(p)<0.00001) break;} cout< - 5 - 函数作业及解答 第17题: 利用级数展开式计算sinx 直到某一项的绝对值小于0.00001为止。要求使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。 样例输入:0 样例输出:0 样例输入:3 样例输出:0.14112 #include double an(double x,double n) {double f,a,b,i,c=1,d; a=pow(-1,n+1); b=pow(x,2*n-1); for(i=1;i<=(2*n-1);i++) c=c*i; d=1/c; f=a*b*d; return f;} int main() {double x,s=0,i,p; cin>>x; for(i=1;;i++) {p=an(x,i); s=s+p; if(fabs(p)<0.00001) break;} cout< 第18题: 编写程序求Fibonacci数列的前n项阶乘之和,即。要求使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主函数中完成。注意: #include for(k=1;k<=x;k++) a*=k; return a;} 样例输入:6 样例输出:40450 int main() {int n,i,a,b,s,j,k; cin>>n; a=1; b=1; s=2; for(i=3;i<=n;i++) {j=a+b; k=jc(j); s+=k; a=b;b=j;} cout< - 6 - 函数作业及解答 第19题: 求数列 其中分母为n以内(包括n)的素数。要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。 样例输入:50 样例输出:1.66165 #include float a,b=0,c,d; int i; a=0; for(i=1;i if(a==1) d=1.0/n; else d=0; return d; } int main() { float s=0,n,a; int i; cin>>n; for(i=1;i<=n;i++) { a=an(i); s+=a; } cout< 第20题: 编写程序求m和n之间(包括m和n,m<=n)所有素数的平方根之和。要求使用函数,函数功能是:判断某一个数是否为素数。m和n由键盘输入,要求输入输出均在主函数中完成。 样例输入:100 999 样例输出:3157.48 #include {int i,m=0,flag=0; for(i=1;i<=n;i++) if(n%i==0) m++; if(m==2) flag=1; return (flag);} int main() {double m,n,s=0,b,k; cin>>m>>n; for(k=m;k<=n;k++) {b=pd(k); if(b) s=s+sqrt(k);} cout< 第21题: 编写函数digit(num, k),函数功能是:求整数num从左边开始的第k位数字的值,如果num位数不足k位则返回0。要求输入输出均在主函数中完成。 样例输入:4647 3 样例输出:4 样例输入:23523 7 样例输出:0 #include n=int(log10(x))+1; if(n s=0; else {a=x/int(pow(10,n-k)); b=a;} return b;} int main() {int num,k,t; cin>>num>>k; t=digit(num,k); cout< - 7 - 函数作业及解答 第1题: 编写函数,将字符串中的大写字母变成对应的小写字母,小写字母变成对应的大写字母,其它字符不变。在主函数中调用该函数,完成任意字符串的转换,并输出结果。输入字符串(允许包含空格),输出处理后的结果。 样例输入:How Are You? 样例输出:hOW aRE yOU? #include for(i=0;i {if(a[i]>='A'&&a[i]<='Z') a[i]=a[i]+32; else if(a[i]>='a'&&a[i]<='z') a[i]=a[i]-32; else a[i]=a[i];}} int main() {char a[50]; int l; gets(a); l=strlen(a); exc(a,l); puts(a); return 0;} 第2题: 编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果。 样例输入:5 样例输出: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 #include void yh(int a[][50],int l) {int i,j,k; for(k=0;k for(i=2;i a[i][j]=a[i-1][j-1]+a[i-1][j];}} int main() {int a[50][50],n,i,j; cin>>n; yh(a,n); for(j=0;j 第3题: 编写函数,求一个字符串的长度。在主函数中调用该函数,输出结果。输入字符串(允许包含空格),输出字符串的长度。 样例输入:How Are You? 样例输出:12 #include l=strlen(a); return l;} int main() {char a[50]; int l; - 8 - gets(a); l=len(a); cout< 函数作业及解答 第4题: 编写函数,将字符数组s2中的前n个字符复制到字符数组s1中,不允许使用strcpy函数。在主函数中调用该函数,完成任意字符串的复制,并输出结果。输入分2行,第一行为字符串(不包含空格),第二行为n的值,输出处理后的结果。 样例输入: Hello,world! 8 样例输出:Hello,wo #include void cp(char a[],char b[],int n) {int i; for(i=0;i b[n]='\\0';} int main() {char a[50],b[50]; int n; cin>>a>>n; cp(a,b,n); cout< 第5题: 编写函数,函数功能是:统计整数n的各位上出现数字1、2、3的次数。要求输入输出均在主函数中完成。 样例输入:123114350 样例输出:3 1 2 #include void cs(char a[],int b[],int l) {int i; b[0]=0;b[1]=0;b[2]=0; for(i=0;i b[0]++; else if(a[i]=='2') b[1]++; else if(a[i]=='3') b[2]++; else continue;}} int main() {char a[50]; int b[50],l; gets(a); l=strlen(a); cs(a,b,l); cout< 第6题: 编写程序完成进制转换,要求使用函数,函数功能是:十进制转换为二进制,输入输出均在主函数中完成。 样例输入:125 样例输出:1111101 #include a[i]=x%2; x=x/2;} return i;} int main() {int a[32],m,n,k; cin>>m; n=zh(a,m); for(k=n;k>=0;k--) {cout< 第7题: 编写两个函数,将n个正整数中的素数按升序排序。函数功能分别是:判断一个数是否为素数,以及对数组进行排序。输入分2行:第一行为n的值,第二行为n个整数。要求输入输出均在主函数中完成。 样例输入:9 9 8 7 6 5 4 3 2 1 样例输出:2 3 5 7 - 9 - 函数作业及解答 #include int order(int a[],int b[],int l) {int i,m,j,k=0,q,w; for(i=0;i for(j=1;j<=a[i];j++) if(a[i]%j==0) m++; if(m==2) return 0;} {b[k]=a[i]; k++;}} for(i=0;i for(j=i+1;j {w=b[q];b[q]=b[i],b[i]=w;}} return k;} int main() {int a[40],b[40],n,l,q; cin>>n; for(l=0;l q=order(a,b,n); for(l=0;l 第8题: 编写函数,功能是交换数组中的最大数和最小数的位置,并计算所有数之和。例如数组a有5个元素3、4、1、5、2,将最大数5和最小数1的位置交换后得到3、4、5、1、2,总和为15。程序中用到的主函数为: #include {int max=0,i,min=0,w,s=0; for(i=1;i w=a[max];a[max]=a[min];a[min]=w; for(i=0;i {int a[50],n,i,sum; cin>>n; for(i=0;i 第9题: 编写子函数fun,功能是挑出字符串中ASCII码值为偶数的大写字母并存放在原字符串中。例如字符串str为\,其中满足条件的字符为'B'和'D',因此调用fun函数后,字符串str变为\。程序中用到的主函数为: - 10 - 函数作业及解答 #include char b[50]; int i,j=0,n; n=strlen(a); for(i=0;i if(a[i]>='A'&&a[i]<='Z'&&a[i]%2==0) { b[j]=a[i]; j++; } for(i=0;i a[j]='\\0'; } int main() { char a[100]; gets(a); zf(a); puts(a); return 0;} 第10题: 编写程序完成进制转换,要求使用函数,函数功能是:十进制转换为八进制,输入输出均在主函数中完成。 样例输入:125 样例输出:175 #include int i=0; while(n>0) { b[i]=n%8; i++; n=n/8; } b[i]='\\0'; return i; } int main() { int b[100]; int n,a,i; cin>>n; a=zh(b,n); for(i=a-1;i>=0;i--) cout< - 11 -
正在阅读:
1--100数字表格 - 图文10-30
16、闪光的金子06-26
孟子成语文档(4)05-31
学生学校法制宣传的演讲稿范文合集8篇08-04
中山大学本科生选课指南05-10
夹逼准则在求极限中的应用11-19
个人知识管理的新视角探究06-12
- 高一物理牛顿运动定律全套学习学案
- 水处理一级反渗透加还原剂亚硫酸氢钠后为什么ORP会升高
- 毕业设计(论文)-正文董家口 - 图文
- 荣盛酒店经营管理公司录用通知及入职承诺书II
- 第二讲 大学英语四级快速阅读技巧
- 质量管理体系文件(2015年委托第三方医药物流配送企业专用版本)
- 214071收款办法
- 苏轼对《文选》选文的评价
- 《诊断学基础B》1-8作业
- 广东省东莞市高一数学下学期期末教学质量检查试题
- 海南电网公司VIS推广应用管理办法
- 红星照耀中国习题
- 苏教版小学语文六年级上册期末复习资料之生字词整理
- 局域网组建与应用—王向东
- 税务稽查内部管理文书样式
- 环保社会实践调查表
- 九年级思品第一单元复习
- 2016年全国注册咨询工程师继续教育公路路线设计规范试卷
- 毕业设计-青岛港董家口港区防波堤设计
- 撞背锻炼方法与益处
- C++
- 习题
- 函数
- 汇总
- 解答
- 编程
- 程序
- 详细
- 乘法的初步认识 公开课配套练习题
- 天津市人民政府批转市民政局、劳动局关于退伍义务兵安置工作随
- 汽车电工电子试卷A
- 加强语言实践
- 对全国31个省市城市设施水平进行聚类分析1
- 当代西方政治思潮期末考
- 安监科三季度工作总结范文
- 创业创新领导力期末考试题目
- 分管德育副校长安全工作责任书(140325修改)
- 大脑是怎样处理复杂信息的 - 图文
- 五年级下册英语试题- Unit6单元测评卷 湘鲁版(含答案) - 图文
- 北京市东城区2016-2017学年度第二学期高三综合练习(一)数学理
- 硅酸盐考试模拟题
- 实验09 结构
- 浅谈我国第三方物流的发展
- 经理在公司治理商业贿赂动员会议上的讲话
- 校卫队申请书
- 《医学基础知识》综合模拟卷及答案(共三套)要点 - 图文
- 2010年象山县中小学生田径运动会秩序册
- 国庆节横幅标语(20条)