C++程序设计基本编程题型全解(4)

2018-11-22 22:46

}

(7)设计一个程序,输入两个正整数,求出这两个整数的最小公倍数。编写一个函数来求两个数的最小公倍数。

#include int gcd(int x,int y) { if(y==0) }

int lcm(int x,int y) {

return x*y/gcd(x,y); }

void main() { int a,b; cin>>a>>b;

cout<

(8)设计一个程序,输入两个正整数,求出这两个整数的最大公约数。编写一个函数来求两个数的最大公约数。

#include int calc(int a,int b); void main() {

cout<<\ int a,b,result; cin>>a>>b; result = calc(a,b);

cout<<\}

int calc(int a,int b) { int temp;

while((a % b) != 0) { } return b; }

(9)对于Hanoi塔问题,如果要移动64个盘子,假设一秒钟移动1000次,大约需要多少年又多少月又

temp = a % b; a = b; b = temp; return x; return gcd(y,x%y);

多少天。#include #include int fibo(int n) { }

void main() { }

(10)编写一个函数,用非递归方式来求Fibonnaci数列的前n项,n作为函数形参。 #include #include int fibo(int n) { int s=0;

if(n==1||n==2)return 1; else { } return s; }

void main() {

int n,i;

cout<<\请输入Fibonacci数组的前n项的参数n=\ cin>>n;

for(i=1;i<=n;i++)

int a=fibo(n-1); int b=fibo(n-2); s+=a+b;

int n,i;

cout<<\请输入Fibonacci数组的前n项的参数n=\cin>>n;

for(i=1;i<=n;i++) cout<

if(n==1||n==2)return 1; else { } return s;

int a=fibo(n-1); int b=fibo(n-2); s+=a+b;

cout<

}

cout<

cout<

(11)当x>1时,Hermite多项式定义为:

?1n?0 ?Hn(x)??2xn?1?2xH(x)?2(n?1)H(x)n?1n?1n?2?当输入实数x和整数n后,求出Hermite多项式的前n项的值。分别用递归函数和非递归函数实现。 #include using namespace std; double H(int n,double x); void main(void) {

cout<<\请输入实数x(x>1)及整数n:\ int n; double x; cin>>x; cin>>n;

cout<<\多项式的值为:\} /*

double H(int n,double x) { if(n == 0) else { } } */

double H(int n,double x) {

double H0 = 1,H1 = 2 * x,H2; if(n == 0) else {

if(n == 1) else

return H1; return H0; if(n == 1) else

return 2 * x * H(n-1,x) - 2 * (n-1) * H(n-2,x); return 2*x; return 1;

} }

{ }

for(int i = 2;i <= n;i++) { } return H2;

H2 = 2 * x * H1 - 2 * (i -1 ) * H0; H0 = H1; H1 = H2;

(12)阿克曼函数定义为:

m?0?n?1 n?0 ?Acm(m,n)??Acm(m?1,1)?Acm(m?1,Acm(m,n?1))n?0,m?0? 其中m,n为正整数。设计一个程序,分别求出Acm(2, 3),Acm(2, 6)的值。要求用一个函数求Acm(m, n)的值。

#include int Acm(int m,int n); void main(void) { }

int Acm(int m,int n) { }

if(m==0)return n+1; if(n==0)return Acm(m-1,1);

if(m>0 && n>0)return Acm(m-1,Acm(m,n-1)); return 0; int m,n;

cout<<\函数\do{ do{

cout<<\请输入参数n:\cin>>n;

if(n<0)cout<<\不能为负值,\cout<<\请输入参数m:\cin>>m;

if(m<0)cout<<\不能为负值,\

}while(m<0);

}while(n<0);

cout<<\的值为:\

(13)设计一个程序,把输入的整数实现逐位正序和反序输出。如输入一个整数3456,则输出3456和

6543。分别设计两个函数,一个实现正序输出;另一个实现反序输出。 #include void f(int num) {

cout<

void z(int num) {

if(num/10) }

void main() { int x;

cout<<\请输入一个整型数据:\ cin>>x;

cout<<\其正序输出为:\ z(x); cout<

cout<<\其反序输出为:\ f(x); cout<

(14)设计一个程序,由3个文件组成,一个文件main.cpp包含main函数,第2个文件max.cpp包含一个函数max(int, int),第3个文件hex.cpp包含一个函数toHex(int x)将形参x显示为十六进制。建立各文件,然后建立一个多文件项目,输入任意两个整数,求出最大值并以十六进制形式显示。

如果不配置多文件项目,如何更改程序使之能构建运行? (15)已知三角形的三条边长为a、b、c,则三角形的面积为:

z(num/10); cout<

f(num/10);

area?s(s?a)(s?b)(s?c)

其中s=(a+b+c)/2。设计一个函数求三角形的面积。 #include #include

bool triangle(float a,float b,float c); double area(float a,float b,float c); void main(void) {

float a,b,c;

cout<<\请输入三角形的边a:\cin>>a;

cout<<\请输入三角形的边b:\


C++程序设计基本编程题型全解(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:必修三情景式默写学生版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: