C++实验答案.doc
《C++实验答案.doc》由会员分享,可在线阅读,更多相关《C++实验答案.doc(19页珍藏版)》请在冰点文库上搜索。
实验编程题答案
实验一
1、输入日期的年份和月份,求该月有多少天。
提示:
对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。
#include
usingnamespacestd;
intmain()
{
inty,m;
cin>>y>>m;
if(1900<=y&&y<3000&&0{if(y%4==0&&y%100!=0||y%400==0) { switch(m) { case1:cout<<"31";break; case2:cout<<"29";break; case3:cout<<"31";break; case4:cout<<"30";break; case5:cout<<"31";break; case6:cout<<"30";break; case7:cout<<"31";break; case8:cout<<"31";break; case9:cout<<"30";break; case10:cout<<"31";break; case11:cout<<"30";break; case12:cout<<"31";break; } } else { switch(m) { case1:cout<<"31";break; case2:cout<<"28";break; case3:cout<<"31";break; case4:cout<<"30";break; case5:cout<<"31";break; case6:cout<<"30";break; case7:cout<<"31";break; case8:cout<<"31";break; case9:cout<<"30";break; case10:cout<<"31";break; case11:cout<<"30";break; case12:cout<<"31";break; }}}elsecout<<"Inputerror!"; return0;}2、某高校录取研究生的要求是,新生的每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(“没有录取”、“自费”、“公费”三种情况)。#includeusingnamespacestd;intmain(){ inta,b,c,d,s; cin>>a>>b>>c>>d; s=a+b+c+d; if(a>=60&&b>=60&&c>=60&&d>=60&&s>=340) { if(s>=370)cout<<"公费"< elsecout<<"自费"< } elsecout<<"没有录取"< return0;}3、在华农校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。#includeusingnamespacestd;intmain(){ doubletb,tw,s; cin>>s; tb=s/3+50; tw=s/1.2; if(tb>tw)cout<<"Walk"< else if(tb elsecout<<"All"< return0;}4、一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。【提示】要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:cout<(2)<按上面的形式控制输出格式时,需在源程序最开始加上一行:#include。#include#includeusingnamespacestd;intmain(){ doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(y%4==0&&y%100!
=0||y%400==0)
switch(m)
case1:
cout<<"31";break;
case2:
cout<<"29";break;
case3:
case4:
cout<<"30";break;
case5:
case6:
case7:
case8:
case9:
case10:
case11:
case12:
}
else
cout<<"28";break;
cout<<"Inputerror!
";
return0;
2、某高校录取研究生的要求是,新生的每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。
编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(“没有录取”、“自费”、“公费”三种情况)。
inta,b,c,d,s;
cin>>a>>b>>c>>d;
s=a+b+c+d;
if(a>=60&&b>=60&&c>=60&&d>=60&&s>=340)
if(s>=370)cout<<"公费"< elsecout<<"自费"< } elsecout<<"没有录取"< return0;}3、在华农校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。#includeusingnamespacestd;intmain(){ doubletb,tw,s; cin>>s; tb=s/3+50; tw=s/1.2; if(tb>tw)cout<<"Walk"< else if(tb elsecout<<"All"< return0;}4、一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。【提示】要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:cout<(2)<按上面的形式控制输出格式时,需在源程序最开始加上一行:#include。#include#includeusingnamespacestd;intmain(){ doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
elsecout<<"自费"< } elsecout<<"没有录取"< return0;}3、在华农校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。#includeusingnamespacestd;intmain(){ doubletb,tw,s; cin>>s; tb=s/3+50; tw=s/1.2; if(tb>tw)cout<<"Walk"< else if(tb elsecout<<"All"< return0;}4、一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。【提示】要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:cout<(2)<按上面的形式控制输出格式时,需在源程序最开始加上一行:#include。#include#includeusingnamespacestd;intmain(){ doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
elsecout<<"没有录取"< return0;}3、在华农校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。#includeusingnamespacestd;intmain(){ doubletb,tw,s; cin>>s; tb=s/3+50; tw=s/1.2; if(tb>tw)cout<<"Walk"< else if(tb elsecout<<"All"< return0;}4、一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。【提示】要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:cout<(2)<按上面的形式控制输出格式时,需在源程序最开始加上一行:#include。#include#includeusingnamespacestd;intmain(){ doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
3、
在华农校园里,没有自行车,上课办事会很不方便。
但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。
假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。
请判断走不同的距离去办事,是骑车快还是走路快。
doubletb,tw,s;
cin>>s;
tb=s/3+50;
tw=s/1.2;
if(tb>tw)cout<<"Walk"< else if(tb elsecout<<"All"< return0;}4、一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。【提示】要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:cout<(2)<按上面的形式控制输出格式时,需在源程序最开始加上一行:#include。#include#includeusingnamespacestd;intmain(){ doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(tb elsecout<<"All"< return0;}4、一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。【提示】要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:cout<(2)<按上面的形式控制输出格式时,需在源程序最开始加上一行:#include。#include#includeusingnamespacestd;intmain(){ doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
elsecout<<"All"< return0;}4、一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。【提示】要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:cout<(2)<按上面的形式控制输出格式时,需在源程序最开始加上一行:#include。#include#includeusingnamespacestd;intmain(){ doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
4、
一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:
如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。
最高收费为40元。
假设任何车辆的停车时间都不超过24小时。
编写程序,计算每辆车的停车费。
【提示】
要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:
cout<(2)<按上面的形式控制输出格式时,需在源程序最开始加上一行:#include。#include#includeusingnamespacestd;intmain(){ doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
(2)<按上面的形式控制输出格式时,需在源程序最开始加上一行:#include。#include#includeusingnamespacestd;intmain(){ doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
按上面的形式控制输出格式时,需在源程序最开始加上一行:
#include。
doublet,cost;
cin>>t;
if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(t<=20.5)
cost=(t-3)*2+5;
cout<(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
(2)< } elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
elsecout<<"40.00"< return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeusingnamespacestd;intmain(){ doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0!"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
5、
模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。
注意:
除法运算‘/’的除数不能为0。
doublea,b,n;
charc;
cin>>a>>b>>c;
if(c=='/'&&b==0)cout<<"除数为0!
"< else if(c!='+'&&c!='-'&&c!='*'&&c!='/')cout<<"运算符号错误!";else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(c!
='+'&&c!
='-'&&c!
='*'&&c!
='/')cout<<"运算符号错误!
if(c=='+')
n=a+b;
cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(c=='-')
n=a-b;
cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(c=='*')
n=a*b;
cout< } if(c=='/') { n=a/b; cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(c=='/')
n=a/b;
cout< } return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cin>>a>>b>>c>>d>>e>>f;if(a<=100)if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
实验二
1、
给定一个正整数a,以及另外的5个正整数,问题是:
这5个整数中,小于a的整数的和是多少?
{inta,b,c,d,e,f,x=0;
cin>>a>>b>>c>>d>>e>>f;
if(a<=100)
if(bif(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(cif(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(dif(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(eif(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(fcout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
cout<return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeusingnamespacestd;intmain(){inth0;doubles,h;cin>>h0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);cout<return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#include#includeusingnamespacestd;intmain(){doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
2
一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。
编程计算气球在第5次落地时,共经过多少米?
第5次反弹多高?
inth0;
doubles,h;
cin>>h0;
h=h0/32.0;
s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);
cout<
3
有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。
doublei,n,x,y,z;
doubles;
cin>>n;
x=2;y=1;s=2;
for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; }cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
z=x;x=y+z;y=z;s=s+x/y;
cout<return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeusingnamespacestd;voidmain(){floatx,y;for(;;){cin>>x>>y;if(x==0&&y==0){cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
4
在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。
写一个程序,判断给定的多个点是否在这个正方形内。
voidmain()
floatx,y;
for(;;)
cin>>x>>y;
if(x==0&&y==0)
cout<<"yes"<break;}if(x<=1&&x>=-1&&y<=1&&y>=-1)cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
break;
if(x<=1&&x>=-1&&y<=1&&y>=-1)
cout<<"yes"<elsecout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
cout<<"no"<}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeusingnamespacestd;#includevoidmain(){inta,b,c,d,m,n;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=0;c<10;c++){for(d=0;d<10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n<100;n++)if(n*n==m)cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
5
一辆卡车违反交通规则,撞人后逃跑。
现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。
甲说:
牌照的前两位数字是相同的;乙说:
牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:
四位的车号所构成的数字正好等于某一个整数的平方。
请根据以上线索求出车号。
{inta,b,c,d,m,n;
for(a=0;a<10;a++)
{for(b=0;b<10;b++)
{for(c=0;c<10;c++)
{for(d=0;d<10;d++)
{if(a==b&&c==d)
{m=a*1000+b*100+c*10+d;
{for(n=32;n<100;n++)
if(n*n==m)
cout<{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i<=10;i++)cin>>a[i];cin>>m;for(i=1;i<=10;i++){if(m>=a[i]||(m=a[i]))sum=sum+1;}cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
实验三
1
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。
苹果成熟的时候,陶陶就会跑去摘苹果。
陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。
假设她碰到苹果,苹果就会掉下来。
inta[100];
intm,sum=0;
for(inti=1;i<=10;i++)
cin>>a[i];
cin>>m;
for(i=1;i<=10;i++)
if(m>=a[i]||(m=a[i]))
sum=sum+1;
cout<return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i<=6;i++)cin>>score[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j<=6;j++){if(score[j]>big)big=score[j];}for(intk=1;k<=6;k++){if(score[k]small=score[k];}for(intn=1;n<=6;n++)g+=score[n];m=(g-big-small)/4;cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
歌唱大赛选手成绩这样计算:
去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。
现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。
将6个评分存入score数组中。
关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。
doublescore[100];
doublem=0;
doubleg=0;
for(inti=1;i<=6;i++)
cin>>score[i];
doublebig=score[1];
doublesmall=score[1];
for(intj=1;j<=6;j++)
if(score[j]>big)
big=score[j];
for(intk=1;k<=6;k++)
if(score[k]
small=score[k];
for(intn=1;n<=6;n++)
g+=score[n];
m=(g-big-small)/4;
cout<return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。
例如,对于明文:
China,在间隔为1的位置依次插入一个字母而形成密文:
Coheifnia。
因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。
请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。
定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。
解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。
charci[100];
charpl[100];
intm=0;
cin.getline(ci,100);
for(inti=0;ci[i]!
='\0';i++)
if(i%2==0)
pl[m]=ci[i];
m=m+1;
pl[m]='\0';
cout<return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。要求用指针对字符串进行处理。#includeusingnamespacestd;intmain(){chars[21],*p;cin>>s;p=s;while(*p){if(*p>='a'&&*p<='z')*p=*p-32;elseif(*p>='A'&&*p<='Z')*p=*p+32;p++;}cout<return0;}5在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。#includeusingnamespacestd;voidmain(){intn;cin>>n;cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:
对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。
要求用指针对字符串进行处理。
chars[21],*p;
p=s;
while(*p)
if(*p>='a'&&*p<='z')
*p=*p-32;
if(*p>='A'&&*p<='Z')
*p=*p+32;
p++;
在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。
数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。
intn;
cout<int*p=newint[n];intj=0;for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
int*p=newint[n];
intj=0;
for(inti=0;icin>>p[i];while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
cin>>p[i];
while(j{if(n>=2&&j==0&&p[0]!=p[1])cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(n>=2&&j==0&&p[0]!
=p[1])
cout<<"0"<<''<if(j!=n-1&&j!=0){if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(j!
=n-1&&j!
=0)
if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j]
cout<}if(j==n-1&&p[n-1]!=p[n-2])cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(j==n-1&&p[n-1]!
=p[n-2])
cout<j++;}delete[]p;}实验四1判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。#includeusingnamespacestd;intnumber(int);intmain(){intn;cin>>n;intresult=number(n);if(result==-1)cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
j++;
delete[]p;
实验四
判断正整数n是否为完数。
已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。
此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。
然后主函数通过该函数的返回值,在屏幕上输出判断结果。
intnumber(int);
intresult=number(n);
if(result==-1)
cout<<"no"<elsecout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
cout<<"yes"<return0;}intnumber(inta){inttotal=0,re=0;for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
intnumber(inta)
inttotal=0,re=0;
for(inti=0;i{total+=i;if(a==total){re=a;break;}elsere=-1;}returnre;}2假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日—2012年7月26日。要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。#includeusingnamespacestd;intmain(){ inty,m,d,x; cin>>y>>m>>d; if(y!=2012||(m>7||m==0)||(m==7&&d>27)) cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
total+=i;
if(a==total)
re=a;
re=-1;
returnre;
假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。
已知伦敦奥运会的开幕日期是2012年7月27日。
用户输入日期的范围必须是2012年1月1日—2012年7月26日。
要求程序中编写函数intCountDown(intyear,intmonth,intday),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。
所求天数=month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。
inty,m,d,x;
cin>>y>>m>>d;
if(y!
=2012||(m>7||m==0)||(m==7&&d>27))
cout<"; elseif(m==7) { x=27-d; cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
elseif(m==7)
x=27-d;
cout<"; } else { switch(m) { case1:x=31-d+29+31+30+31+30+27;break; case2:x=29-d+31+30+31+30+27;break; case3:x=31-d+30+31+30+27;break; case4:x=30-d+31+30+27;break; case5:x=31-d+30+27;break; case6:x=30-d+27;break; } cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
x=31-d+29+31+30+31+30+27;break;
x=29-d+31+30+31+30+27;break;
x=31-d+30+31+30+27;break;
x=30-d+31+30+27;break;
x=31-d+30+27;break;
x=30-d+27;break;
cout<"; } return0;}3许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’mAdam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。#includeusingnamespacestd;boolhuiwen(char*p){ char*q=p+strlen(p)-1; for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。
在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。
英语的回文句更有趣味(忽略其中的标点符号)。
最著名的一句为:
“Madam,I’mAdam.”(小姐,我是亚当。
)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。
现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。
p是指向要输入的字符串的指针,如果是返回true,否则返回false。
boolhuiwen(char*p)
char*q=p+strlen(p)-1;
for(inti=0;i if(*p!=*q) returnfalse; returntrue;}voidmain(){ charch[100]; cin>>ch; if(huiwen(ch)) cout<<"yes"; else cout<<"no"; cin.get(); cin.get();}4编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。#includeusingnamespacestd;voidmystr(charc,intn,char*p){ for(inti=1;i<=n;i++) cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
if(*p!
=*q)
returnfalse;
returntrue;
charch[100];
cin>>ch;
if(huiwen(ch))
cout<<"yes";
cout<<"no";
cin.get();
编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:
voidmystr(charc,intn,char*p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。
要求:
编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。
voidmystr(charc,intn,char*p)
for(inti=1;i<=n;i++)
cout< return;} intmain(){charc; char*p; p=&c; intn; cin>>c; cin>>n;mystr(c,n,p); return0;}5有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下
return;
char*p;
p=&c;
cin>>c;
mystr(c,n,p);
有一个有趣的古典数学问题:
有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。
假设所有兔子都不死,问每个月兔子的总对数为多少?
不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。
每对老兔子每个月会生1对小兔子。
因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。
这就是Fibonacci数列。
该数列的递归定义如下
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2