您好,欢迎访问三七文档
8题有问题1题目:歌德巴赫猜想指出:任何一个充分大的偶数都可以表示为两个素数之和。例如:4=2+26=3+38=3+5……50=3+47将4-50之间的所有偶数用两个素数之和表示。判断一个整数是否为素数用函数完成。#includeiostream#includecmathusingnamespacestd;intprime(inta){inti;for(i=2;ia;i++){if(a%i==0)return0;}return1;}intmain(){for(intn=4;n=50;n+=2){for(inti=2;i=n/2;i++)if(prime(i)&&prime(n-i))coutn'='i'+'n-iendl;//列出所有可能组合}return0;}2题目:编写一个函数min,返回三个整数形参中的最小值。#includeiostreamusingnamespacestd;intmin(inta,intb,intc){ints;if(ab&&ac)s=a;if(ba&&bc)s=b;if(ca&&cb)s=c;returns;}intmain(){inta,b,c;cout输入三个整数a,b,c=;cinabc;cout最小值=min(a,b,c)endl;return0;}3题目:试编程求给定的日期是那年的第几天输出结果见图:样张.JPG#includeiostreamusingnamespacestd;intdays(inty,intm,intd){intsum=0;inta[12]={0,31,28,31,30,31,30,31,31,30,31,30};if((y%400==0)||(y%4==0&&y%100!=0))a[2]=29;for(inti=0;im;i++)sum+=a[i];sum+=d;returnsum;}voidmain(){intyy,mm,dd;cout输入年月日:;cinyymmdd;coutyy年mm月dd日是yy年的第;coutdays(yy,mm,dd)天endl;}4题目:编写函数fun(),它的功能是利用以下所示的简单迭代方法求方程cos(a*x)-x=0的一个实根。(0a=1)xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(a*x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(a*x)-x=0的一个实根,做为函数值返回。输出结果见图:样张.JPG#includeiostreamusingnamespacestd;#includecmathfloatfun(floata);函数的声明floatfun(floata)函数的定义{floatx0,x1=0.0,cha;do{x0=x1;x1=cos(a*x0);cha=x1-x0;}while(cha0.000001||cha-0.000001);returnx1;}voidmain(){floata;cout输入a的值(0a=1):;cina;coutRoot=fun(a)endl;}5编写函数计算y=1!+2!+3!...n!,n作为参数传递,在主函数调用该函数并输出结果。注意:自己定义的函数中不能有cout!运行结果见图样张.JPG#includeiostreamusingnamespacestd;intfun(intn){intsum=0,y=1;for(inti=1;i=n;i++){y=y*i;sum+=y;}returnsum;}intmain(){intn;cinn;cout1!+2!+3!...+n!=fun(n)endl;return0;}6题目:编写函数计算y=1-1/2+1/3-1/4+...+1/n,n作为参数传递在主函数调用该函数并输出结果。注意:自己定义的函数中不能有cout!输出结果见图:样张.JPG#includeiostreamusingnamespacestd;doublefun(intm)double是函数返回值的类型{doublesum=0,a=1;for(inti=1;i=m;i++){sum+=(1.0/i)*a;a=a*(-1);}returnsum;}intmain(){intn;cinn;cout1-1/2+1/3-1/4+...+1/n=fun(n)endl;return0;}7题目:电文加密的算法是:将字母A变成F,a变成f,B变成G,b变成g,依次类推,A是65,a是97,相差32,\0的ascii值是32.V变成A,W变成B,等等。其他字符不变。从键盘输入一串电文,用函数将其加密,再在主函数中输出加密后的串。输出结果见图:样张.JPG#includeiostreamusingnamespacestd;charencryptionCH(chars){if(s=65&&s=85)s=s+5;elseif(s85&&s=90)s=s+5-26;因为86加上5,就是91,超过了Zelseif(s=97&&s=117)s=s+5;elseif(s97&&s=122)s=s+5-26;同理returns;}voidmain(){chars;do{s=cin.get();coutencryptionCH(s);}while(s!='\n');}8题目:试编程判断给定的两个正整数是否互质。运行结果见样张1.JPG和样张2.JPG#includeiostreamusingnamespacestd;intgcd(inta,intb){intc;if(ba){c=b%a;if(b%c==0)return0;if(b%c!=0)return1;}if(ba){c=a%b;if(a%c==0)return0;if(a%c!=0)return1;}}voidmain(){inta,b;couta&b:;cinab;if(gcd(a,b)==1)couta和b互质!endl;elsecouta和b不互质!endl;}输入126程序会出现错误
本文标题:简单函数编程练习
链接地址:https://www.777doc.com/doc-2095930 .html