return0;
}
2
一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。
编程计算气球在第5次落地时,共经过多少米?
第5次反弹多高?
#include
更多精品文档
学习-----好资料
usingnamespacestd;
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
#include
usingnamespacestd;
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是纵轴。
写一个程序,判断给定的多个点是否在这个正方形内。
#include
usingnamespacestd;
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"<
else
cout<<"no"<
}
}
5
一辆卡车违反交通规则,撞人后逃跑。
现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。
甲说:
牌照的前两位数字是相同的;乙说:
牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:
四位的车号所构成的数字正好等于某一个整数的平方。
请根据以上线索求出车号。
#include
usingnamespacestd;
#include
voidmain()
{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个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。
假设她碰到苹果,苹果就
会掉下来。
#include
usingnamespacestd;
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(即最低分)。
#include
usingnamespacestd;
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中,最后即得到明文字符串。
#include
usingnamespacestd;
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的不含空格的字符串,然后对该字符串做如下处理:
对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最
后将处理后的字符串输出。
要求用指针对字符串进行处理。
#include
usingnamespacestd;
intmain()
{
chars[21],*p;
cin>>s;
p=s;
while(*p)
{
更多精品文档
学习-----好资料
if(*p>='a'&&*p<='z')
*p=*p-32;
else
if(*p>='A'&&*p<='Z')
*p=*p+32;
p++;
}
cout<
return0;
}
5
在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所
有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。
注意:
数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。
#include
usingnamespacestd;
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。
然后主函数通过该函数的返回值,在屏幕上输出判断结果。
#include
usingnamespacestd;
intnumber(int);
intmain()
{
intn;
cin>>n;
intresult=number(n);
if(result==-1)
cout<<"no"<else
cout<<"yes"<return0;
}
intnumber(inta)
{
inttotal=0,re=0;
for(inti=0;i{
total+=i;
if(a==total)
{
re=a;
break;
}
else
re=-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。
#include
更多精品文档
学习
-----好资料
usingnamespacestd;
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<距离2012
伦敦奥运会还有"<天。
";
}
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<距离2012
伦敦奥运会还有"<天。
";
}
return0;
}
3
许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、
noon(中午)、level(水平)等,这样的词称为回文词。
在最权威的《牛津英语大词典》
里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。
英语的回文句更有趣
味(忽略其中的标点符号)。
最著名的一句为:
“Madam,I’mAdam.”(小姐,我是亚
当。
)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。
现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。
p是指
向要输入的字符串的指针,如果是返回true,否则返回false。
#include
usingnamespacestd;
boolhuiwen(char*p)
{
char*q=p+strlen(p)-1;
for(inti=0;iif(*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函数生
成字符串,最后在主函数中将生成的字符串输出。
#include
usingnamespacestd;
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对兔子。
假设所有兔子都不死,问每个月兔子的总对数为多少?