判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数bool wanshu(int n),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。
#include
int n; cin>>n;
int result=number(n); if(result==-1)
cout<<\ else
cout<<\ return 0; }
int number (int a) {
int total=0,re=0;
for(int i=0;i
total+=i; if(a==total) {
re=a; break; } else
re=-1; }
return re; } 2
假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日— 2012年7月26日。要求程序中编写函数int CountDown(int year,int month,int day),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。 提示:所求天数= month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。
#include
using namespace std; int main() {
int y,m,d,x;
cin>>y>>m>>d;
if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout< x=27-d; cout< switch(m) { case 1:x=31-d+29+31+30+31+30+27;break; case 2:x=29-d+31+30+31+30+27;break; case 3:x=31-d+30+31+30+27;break; case 4:x=30-d+31+30+27;break; case 5:x=31-d+30+27;break; case 6:x=30-d+27;break; } cout< return 0; } 3 许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I?m Adam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。 现要求编写一个函数bool huiwen(char *p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。 #include bool huiwen(char *p) { char *q=p+strlen(p)-1; for(int i=0;i return false; return true; } void main() { char ch[100]; cin>>ch; if(huiwen(ch)) cout<<\ else cout<<\ cin.get(); cin.get(); } 4 编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为: void mystr(char c,int n, char *p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。 要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。 #include void mystr(char c,int n,char *p) { for(int i=1;i<=n;i++) cout< int main() { char c; char *p; p=&c; int n; cin>>c; cin>>n; mystr(c,n,p); return 0; } 5 有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少? 提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下:f(n)=1 (n等于1或2);f(n)= f(n-1)+ f(n-2) (n>2) 请编写递归函数int fib(int n),求出第n个月兔子的总对数。 #include sum=d+f; } cout<<\第\个月兔子的总对数为\ } int main() { int s; cin>>s; if(s!=1) fib(s); else cout<<\第1个月兔子的总对数为1\ return 0; } 实验五 1 仿照本次实验预习的程序填空题1,将以上Distance函数定义为类piont的友元函数,实现程序的功能。并在主函数中增加输入两点作为友元函数的实参。 #include using namespace std; class point { public: point(float a,float b) { x=a; y=b; } friend float Distance(point p1,point p2) { float dx=p1.x-p2.x; float dy=p1.y-p2.y; return (float)sqrt(dx*dx+dy*dy); } private: float x,y; }; int main() { float p1_x,p1_y,p2_x,p2_y; //输入四个点 cin>>p1_x>>p1_y>>p2_x>>p2_y; point p1(p1_x,p1_y),p2(p2_x,p2_y); cout< 2 根据以下主函数的功能来设计日期类CDateInfo,使其能正确运行。类CDateInfo中应该具有描述年、月、日的三个数据成员和相应的成员函数。 #include int year,month,day; public: CDateInfo(){}; CDateInfo(int y,int m,int d) {year=y,month=m,day=d;}; void SetDate(int y,int m,int d); void GetDate(); }; void CDateInfo::SetDate(int y=2011,int m=10,int d=10) { year=y; month=m; day=d; } void CDateInfo::GetDate() { cout< 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++实验答案(3)在线全文阅读。
相关推荐: