1、高级程序设计语言 A 卷答案1. (15 分)试编写一个 C+程序实现求两个数的最大公约数和最小公倍数。要求两个数字必须用随机数生成。答案#include #include using namespace std;int gcd(int x, int y)int r;while(x%y!=0)r=x%y;x=y;y=r;return y; int lcm(int x, int y)return x*y/gcd(x,y);void main()srand(time(0);int a=rand(),b=rand();couty) x=x-y ; else if(yx) y=y-x ;return
2、y;2. (15 分)编写递归函数实现如下函数。答案#include using namespace std;double P(int n,int x)if(n=0)return 1;else if(n=1)return x;else if(n1)return (2*n-1)*x*P(n-1,x)-(n-1)*P(n-2,x)/n;void main()int x,y;cinxy;coutusing namespace std;int SubStrNum(char * str , char * substr)int Num=0,h1,h2,p1=0,p2;h1=strlen(str);h2=s
3、trlen(substr);while(p1str;cinsubstr;coutusing namespace std;#define N 100int find(int a,int n,int key)int i;for(i=0;in;coutai;coutkey;coutusing namespace std;#define M 100double sumM;struct Student char num11;char name20;float score1;float score2;float score3;void Input(Student s,int n)for(int i=0;i
4、si.numsi.namesi.score1si.score2si.score3;if(si.score10cout#includeusing namespace std;class Pointpublic:Point(int xx=0,int yy=0)X=xx,Y=yy;void Display()cout #include using namespace std;class Date /日期类 private: int year,month,day; public: Date() /默认构造 Date(int y,int m,int d) /带参构造 year=y,month=m, da
5、y=d; void set() cinyearmonthday; void display() /显示函数 cout #include using namespace std;class Date /日期类 private: int year,month,day; public: Date() /默认构造 Date(int y,int m,int d) /带参构造 year=y,month=m, day=d; void set() cinyearmonthday; void display() /显示函数 coutnum; coutsex; coutID; ID18=0; coutendl; void output() /输出函数 cout“编号:“numn“性别:“sexn“生日:“;birthday.display();coutn“身份证号:“IDendl; Person() /析构函数 cout“ “num“号人员已经录入“endl; ; void main() Person p1; p1.input();p1.output(); coutendl;Person p2(5,2001,3,21,“210301199005012365“,m); p2.output();