《计算机C++函数编程20道习题汇总含其详细程序解答》由会员分享,可在线阅读,更多相关《计算机C++函数编程20道习题汇总含其详细程序解答(11页珍藏版)》请在金锄头文库上搜索。
1、函数作业及解答第1题:编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。 样例输入:15 25样例输出:5 75 - 11 -#includeint gys(int a,int b)int i;for(i=a;i0;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;cinab;c=gys(a,b);d=gbs(a,b);coutc d;return 0
2、;第2题:编写函数factors(num, k),函数功能是:求整数num中包含因子k的个数,如果没有该因子则返回0,例如:32=22222,则factors(32,2)=5。要求输入输出均在主函数中完成。 样例输入:42 样例输出:2 样例输入:83 样例输出:0 #includeint factors(int num,int k)int n=0,a;a=num%k;while(a=0)n+;num=num/k;a=num%k;return n;int main()int num,k,b;cinnumk;b=factors(num,k);coutbendl;return 0;第3题:编写函数
3、,函数功能是:计算n的阶乘,要求输入输出均在主函数中完成。样例输入:5 样例输出:120、#includeint jc(int n)int a,b=1;for(a=1;an;s=jc(n);couts;return 0;第4题:编写函数,函数功能是:计算k以内(包括k)最大的10个(不足10个则是所有的)能被13或17整除的自然数之和。要求输入输出均在主函数中完成。样例输入:500 样例输出:4622#includeint sum(int k) int n,c=0,s=0;for(n=k;n0;n-)if(n%13=0|n%17=0)c+;s+=n;if(c=10)break;return s
4、;int main()int k,s;cink;s=sum(k);coutsendl;return 0;第5题:编写函数,函数功能是:根据下列公式求的值(直到某一项的值小于给定精度e为止),精度e由键盘输入,要求输入输出均在主函数中完成。 样例输入:0.0005样例输出:3.14058#includedouble pai(double e)double s,a,k,p;s=1;a=1/3.0;for(k=2;k+)s+=a;a=a*(k/(k*2+1);if(ae;p=pai(e);coutpendl;return 0;第6题:编写程序求要求使用函数,函数功能是:求某个数的阶乘。n由键盘输入,
5、输入输出均在主函数中完成。注意:0!=1。样例输入:3 样例输出:10 #includeint jc(int a)int s=1,i;if(a=0)s=1;elsefor(i=1;in;for(k=0;k=n;k+)s=jc(k);sum+=s;coutsumendl;return 0;第7题:求数列 要求使用函数计算该序列的前N项和SN,直到SN 大于q为止,q由键盘输入,输入输出均在主函数中完成。样例输入:50 样例输出:50.4167、#includefloat sum(float q)float s=0,a,n;for(n=1;sq;s=sum(q);coutsendl;return
6、0;第8题:求数列的前n项和 要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:50 样例输出:1.96079#includefloat myx(int n)float a;int i,s=0;for(i=1;in;for(i=1;i=n;i+)s+=myx(i);coutsendl;return 0;第9题:编写函数fun(num),其中num是一个n位数,函数功能是:求整数num的后n-1位,如果num是一位数则返回0,要求输入输出均在主函数中完成。 样例输入:9 样例输出:0 样例输入:6734 样例输出:734 样例输入:1000
7、样例输出:0 样例输入:10101 样例输出:101 #include#includeint jw(int x)int a,n,m;if(xx;c=jw(x);coutcendl;return 0;第10题:编写函数,函数功能是:判断输入的字符是否为数字字符。如果是,则输出YES,否则输出NO,要求输入输出均在主函数中完成。样例输入:5样例输出:YES 样例输入:B样例输出:NO #includeusing namespace std;int pdsz(char n)int flag;if(n=0&n=9)flag=1;elseflag=0;return flag;int main()char
8、 n;n=getchar();if(pdsz(n)=1)coutyes;elsecoutno;return 0;第11题:编写函数,函数功能是:将两个两位数的正整数a、b合并成一个整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。a、b由键盘输入,输入输出均在主函数中完成。 样例输入:45 12样例输出:4125 #include#includeint hb(int a,int b)int q,g,m,c;q=a/10;g=a%10;m=b*10;c=q*1000+m+g;return c;int main()int a,b,c;cinab;c=
9、hb(a,b);coutcendl;return 0;第12题:求数列的前n项和要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:10 样例输出:0.382179#include#includedouble dx(double n)double a,b,c;a=pow(-1,n+1);b=n*(n+1);c=a/b;return c;int main()double n,s=0,i,a;cinn;for(i=1;i=n;i+)a=dx(i);s+=a;coutsendl;return 0;第13题:求数列的前n项和要求使用函数,函数功能是:
10、计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:3 样例输出:123#include#includeint an(int n)int s=0,m,a,i;for(i=1;in;for(i=1;i=n;i+)a=an(i);sum+=a;coutsumendl;return 0;第14题:求满足的n的最大值,要求使用函数,函数功能是:计算n的立方,k由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:10000 样例输出:13#include#includeint lf(int x)int a;a=x*x*x;return a;int main()int k,s=0,i,n=0,a;cink;for(i=1;sk;i+)a=lf(i);s+=a;n=i-2;coutnendl;return 0;第15题:求数列直到相邻两项之差的绝对值小于1E-6为止。要求使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:0.21 样例输出:1.1#include#includefloat sn(float x,float n)float s=1,i,a=1,b=1,m;for(i=1;ix;for(k=1;k+)n+;p=s