C++习题(函数)_第1页
C++习题(函数)_第2页
C++习题(函数)_第3页
C++习题(函数)_第4页
C++习题(函数)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1题: 编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。 样例输入:15 25样例输出:5 75 程序如下#includeint main()int m,n;int gys(int,int); /声明函数int gbs(int,int); /声明函数cinmn;coutgys(m,n) gbs(m,n);int gys(int a,int b)int r;r=a%b;while(r!=0)a=b;b=r;r=a%b;return b;int gbs(int a,int b)int gys(int,int); /声明函数return (a*b)/gys(a,b);第2题: 编写函数digit(num, k),函数功能是:求整数num从右边开始的第k位数字的值,如果num位数不足k位则返回0。要求输入输出均在主函数中完成。 样例输入:4647 3 样例输出:6 样例输入:23523 7 样例输出:0 程序如下:方法一:#includeint main()int num,k;int digit(int,int); /声明函数cinnumk;coutdigit(num,k);int digit(int num,int k)int i,f; i=1;f=0;/f=0,num不足k位,否则f=1while(num!=0)if(i=k)f=1;break;elsenum=num/10;i+;if(f=1)return num%10;else return 0;程序如下:方法二:#includeint main()int num,k;int digit(int,int); /声明函数cinnumk;cout=k)return ak-1;else return 0;第3题: 哥德巴赫猜想指出:任何一个不小于6的偶数都可以表示为两个素数之和。例如:6=3+3 8=3+5 50=3+47。从键盘输入n(n=6且为偶数),输出对应的表达式,要求编写函数判断一个数是否为素数。 样例输入:8 样例输出:8=3+5 程序如下:#include int main() int n,n1,n2,hs=0;int prime(int); cinn;for(n1=3;n1=n/2;n1+=2)if(prime(n1)=1)n2=n-n1;if(prime(n2)=1)coutn=n1+n2endl;break;/判断n是否是素数,若是,返回1,否返回0int prime(int n)int gs=0,i;for(i=1;i=n;i+)if(n%i=0)gs+;if(gs=2)return 1;elsereturn 0;第4题: 编写函数,将字符串中的大写字母变成对应的小写字母,小写字母变成对应的大写字母,其它字符不变。在主函数中调用该函数,完成任意字符串的转换,并输出结果。输入字符串(允许包含空格),输出处理后的结果。 样例输入:How Are You?样例输出:hOW aRE yOU?程序如下:#include int main() char a30; void zh(char ); /函数声明 gets(a); /字串允许包含空格,所以用gets输入 zh(a); puts(a);void zh(char t) int i; for(i=0;ti!=0;i+) if(ti=a&ti=A&ti=Z) ti+=32;第5题: 编写函数,求一个字符串的长度。在主函数中调用该函数,输出结果。输入字符串(允许包含空格),输出字符串的长度。 样例输入:How Are You? 样例输出:12程序如下:#include int main() char a50; int cd(char ); /函数声明 gets(a); /字串允许包含空格,所以用gets输入 printf(%d,cd(a);int cd(char t) int i; for(i=0;ti!=0;i+) ; return i;第6题: 编写函数,求两个整数的最大公约数和最小公倍数。在主函数中调用该函数,输出分2行,第一行为最大公倍数,第二行为最小公倍数。 样例输入:15 25样例输出: 5 75 程序如下:(用指针)#includeint main()int m,n,gy,gb;void gygb(int,int,int *,int *); /声明函数cinmn;gygb(m,n,&gy,&gb);coutgyendlgb;void gygb(int a,int b,int *pgy,int *pgb)int r,a1,b1;a1=a;b1=b;r=a%b;while(r!=0)a=b;b=r;r=a%b;*pgy=b;*pgb=(a1*b1)/b;程序如下:(用全局变量)#includeint gy,gb;int main()int m,n;void gygb(int,int); /声明函数cinmn;gygb(m,n);coutgyendlgb;void gygb(int a,int b)int r,a1,b1;a1=a;b1=b;r=a%b;while(r!=0)a=b;b=r;r=a%b;gy=b;gb=(a1*b1)/b;第7题: 95编写函数,函数功能是:计算n的阶乘,要求输入输出均在主函数中完成。样例输入:10样例输出:3.6288e+06程序如下:#includeint main()int n;float jc(int); /声明函数cinn;coutjc(n);/函数定义成实型float jc(int n)int i;float t;/存放阶乘的变量定义成实型t=1;for(i=1;i=n;i+)t*=i;return t;第8题: 99有一分段函数如下,编写函数进行计算,在主函数中输入x值,输出y值。 样例输入:-1.5 样例输出:0.00250501 样例输入:5.6 样例输出:31.8957 样例输入:12.5 样例输出:4.06202程序如下:#include#include int main()float x,y;float js(float); /声明函数cinx;y=js(x);couty;float js(float x)float y;if(x=0)y=sin(x)+1;else if(x10)y=x*x+3/x;elsey=sqrt(x+4); return y;第9题: 编写函数,函数功能是:统计整数n的各位上出现数字1、2、3的次数。要求输入输出均在主函数中完成。 样例输入:123114350样例输出:3 1 2 程序如下:#includeint main()int count3=0,n,i;void tj(int ,int); /声明函数cinn;tj(count,n);for(i=0;i3;i+)coutcounti ;void tj(int js,int x)while(x!=0)switch(x%10)case 1:js0+;break;case 2:js1+;break;case 3:js2+;break;x=x/10;第10题: 编写函数fun(num),其中num是一个n位数,函数功能是:求整数num的后n-1位,如果num是一位数则返回0,要求输入输出均在主函数中完成。 样例输入:9 样例输出:0 样例输入:6734 样例输出:734 样例输入:1000 样例输出:0 样例输入:10101 样例输出:101 程序如下:#include #include int fun(int w) int n,k; n=0;k=w;if(w10) n+;w=w/10;/pow的函数值为实型,所以此处须强制转换成整型return k%(int)pow(10,n); int main() int num;cinnum;coutfun(num);第11题: 编写函数,函数功能是:将两个两位数的正整数a、b合并成一个整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。a、b由键盘输入,输入输出均在主函数中完成。 样例输入:45 12样例输出:4125 程序如下:#include int hb(int a,int b) int c,a_s,a_g,b_s,b_g; a_s=a/10;a_g=a%10;b_s=b/10;b_g=b%10;c=a_s*1000+b_s*100+b_g*10+a_g;return c;int main() int a,b,c;cinab;c=hb(a,b);coutc;第12题: 求数列的前n项和要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:10 样例输出:0.382179程序如下:#include #include float js(int i) float c; c=1.0/(i*(i+1)*pow(-1,i+1); /注意表达式类型return c;int main() float jf(int);int n,i;float s=0;cinn;for(i=1;i=n;i+)s+=js(i);couts;第13题: 求数列 其中分母为n以内(包括n)的素数。要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。 样例输入:50 样例输出:1.66165 程序如下:#include float pd(int n) int p=1,i; for(i=2;in;s=0;for(i=2;i=n;i+)s+=pd(i); couts;第14题: 编写程序求给定整数n的“亲密对数”。“亲密对数”是指:若整数a的因子(包括1但不包括自身,下同)之和为b,而整数b的因子之和为a,则称a和b为一对“亲密对数”。要求使用函数,函数功能是:计算某一个数的因子(包括1但不包括自身)之和。n由键盘输入,如果存在“亲密对数”则输出该数,否则输出NO。要求输入输出均在主函数中完成。样例输入:220 样例输出:284 样例输入:8 样例输出:NO 程序如下:#include int yzh(int n) int s=0,i; for(i=1;in1;n2=yzh(n1);if(n1=yzh(n2)coutn2;elsecoutNO;第15题: 编写函数,功能是交换数组中的最大数和最小数的位置,并计算所有数之和。例如数组a有5个元素3、4、1、5、2,将最大数5和最小数1的位置交换后得到3、4、5、1、2,总和为15。程序中用到的主函数为: 程序如下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论