C++实验答案Word下载.docx
- 文档编号:17729469
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:25
- 大小:70.21KB
C++实验答案Word下载.docx
《C++实验答案Word下载.docx》由会员分享,可在线阅读,更多相关《C++实验答案Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
假设找到自行车,开锁并骑上自行车的时间为27秒;
停车锁车的时间为23秒;
步行每秒行走1.2米,骑车每秒行走3.0米。
请判断走不同的距离去办事,是骑车快还是走路快。
#include<
doubletb,tw,s;
s;
tb=s/3+50;
tw=s/1.2;
if(tb>
tw)cout<
Walk"
if(tb<
Bike"
All"
4、
一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;
如果时间不是整数,按比例收取,例如:
如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。
最高收费为40元。
假设任何车辆的停车时间都不超过24小时。
编写程序,计算每辆车的停车费。
【提示】
要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:
fixed<
setprecision
(2)<
cost<
按上面的形式控制输出格式时,需在源程序最开始加上一行:
iomanip>
。
doublet,cost;
t;
if(t<
=3)cout<
5.00"
if(t<
=20.5)
{
cost=(t-3)*2+5;
cout<
}
40.00"
5、
模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。
注意:
除法运算‘/’的除数不能为0。
doublea,b,n;
charc;
c;
if(c=='
/'
b==0)cout<
除数为0!
if(c!
='
+'
c!
-'
*'
)cout<
运算符号错误!
if(c=='
)
{
n=a+b;
cout<
n<
if(c=='
n=a-b;
n=a*b;
n=a/b;
实验二
1、
给定一个正整数a,以及另外的5个正整数,问题是:
这5个整数中,小于a的整数的和是多少?
{inta,b,c,d,e,f,x=0;
e>
f;
if(a<
=100)
if(b<
a)x=x+b;
if(c<
a)x=x+c;
if(d<
a)x=x+d;
if(e<
a)x=x+e;
if(f<
a)x=x+f;
endl<
x<
2
一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。
编程计算气球在第5次落地时,共经过多少米?
第5次反弹多高?
inth0;
doubles,h;
h0;
h=h0/32.0;
s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);
s<
'
'
h<
return0;
3
有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。
doublei,n,x,y,z;
doubles;
n;
x=2;
y=1;
s=2;
for(i=1;
i<
i=i++)
z=x;
x=y+z;
y=z;
s=s+x/y;
setprecision(4)<
4
在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。
写一个程序,判断给定的多个点是否在这个正方形内。
voidmain()
floatx,y;
for(;
;
)
x>
y;
if(x==0&
y==0)
yes"
break;
if(x<
=1&
=-1&
y<
y>
=-1)
no"
5
一辆卡车违反交通规则,撞人后逃跑。
现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。
甲说:
牌照的前两位数字是相同的;
乙说:
牌照的后两位数字是相同的,但与前两位不同;
丙是数学家,他说:
四位的车号所构成的数字正好等于某一个整数的平方。
请根据以上线索求出车号。
#include<
#include<
math.h>
{inta,b,c,d,m,n;
for(a=0;
a<
10;
a++)
{for(b=0;
b<
b++)
{for(c=0;
c<
c++)
{for(d=0;
d<
d++)
{if(a==b&
c==d)
{m=a*1000+b*100+c*10+d;
{for(n=32;
100;
n++)
if(n*n==m)
m<
实验三
1
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。
苹果成熟的时候,陶陶就会跑去摘苹果。
陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。
假设她碰到苹果,苹果就会掉下来。
usingnamespacestd;
intmain()
inta[100];
intm,sum=0;
for(inti=1;
=10;
i++)
a[i];
m;
if(m>
=a[i]||(m<
a[i])&
(m+30>
=a[i]))
sum=sum+1;
sum<
歌唱大赛选手成绩这样计算:
去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。
现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。
提示:
将6个评分存入score数组中。
关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。
doublescore[100];
doublem=0;
doubleg=0;
=6;
score[i];
doublebig=score[1];
doublesmall=score[1];
for(intj=1;
j<
j++)
if(score[j]>
big)
big=score[j];
for(intk=1;
k<
k++)
if(score[k]<
small)
small=score[k];
for(intn=1;
g+=score[n];
m=(g-big-small)/4;
插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。
例如,对于明文:
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'
{
if(i%2==0)
pl[m]=ci[i];
m=m+1;
pl[m]='
pl<
输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:
对字符串中的每个字符,如果是大写字母,将其转化为小写;
如果是小写字母,将其转化为大写,最后将处理后的字符串输出。
要求用指针对字符串进行处理。
chars[21],*p;
cin>
p=s;
while(*p)
if(*p>
a'
*p<
z'
*p=*p-32;
else
if(*p>
A'
Z'
*p=*p+32;
p++;
在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。
数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;
同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。
{
intn;
int*p=newint[n];
intj=0;
p[i];
while(j<
n)
if(n>
=2&
j==0&
p[0]!
=p[1])
0"
if(j!
=n-1&
j!
=0)
if((p[j]>
p[j+1]&
p[j]>
p[j-1])||(p[j]<
p[j]<
p[j-1]))
}
if(j==n-1&
p[n-1]!
=p[n-2])
n-1<
j++;
delete[]p;
实验四
判断正整数n是否为完数。
已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。
此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;
否则返回false。
然后主函数通过该函数的返回值,在屏幕上输出判断结果。
intnumber(int);
intresult=number(n);
if(result==-1)
intnumber(inta)
inttotal=0,re=0;
a;
total+=i;
if(a==total)
re=a;
else
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;
m>
if(y!
=2012||(m>
7||m==0)||(m==7&
27))
cout<
ERROR!
elseif(m==7)
x=27-d;
距离2012伦敦奥运会还有"
天。
switch(m)
case1:
x=31-d+29+31+30+31+30+27;
case2:
x=29-d+31+30+31+30+27;
case3:
x=31-d+30+31+30+27;
case4:
x=30-d+31+30+27;
case5:
x=31-d+30+27;
case6:
x=30-d+27;
许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。
在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。
英语的回文句更有趣味(忽略其中的标点符号)。
最著名的一句为:
“Madam,I’mAdam.”(小姐,我是亚当。
)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。
现要求编写一个函数boolhuiwen(char*p),判断输入的一个单词是否为回文词。
p是指向要输入的字符串的指针,如果是返回true,否则返回false。
boolhuiwen(char*p)
char*q=p+strlen(p)-1;
strlen(p)/2;
if(*p!
=*q)
returnfalse;
returntrue;
charch[100];
ch;
if(huiwen(ch))
cin.get();
}
编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:
voidmystr(charc,intn,char*p);
其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。
要求:
编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。
voidmystr(charc,intn,char*p)
=n;
return;
char*p;
p=&
mystr(c,n,p);
有一个有趣的古典数学问题:
有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。
假设所有兔子都不死,问每个月兔子的总对数为多少?
不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。
每对老兔子每个月会生1对小兔子。
因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。
这就是Fibonacci数列。
该数列的递归定义如下:
f(n)=1(n等于1或2);
f(n)=f(n-1)+f(n-2)(n>
2)
请编写递归函数intfib(intn),求出第n个月兔子的总对数。
voidfib(ints)
intd=1,f=1,sum=0,n=1,t=0;
while(n<
s)
n++;
t=f;
f=d;
d+=t;
sum=d+f;
第"
个月兔子的总对数为"
sum-d<
intmain()
ints;
if(s!
=1)
fib(s);
第1个月兔子的总对数为1"
实验五
仿照本次实验预习的程序填空题1,将以上Distance函数定义为类piont的友元函数,实现程序的功能。
并在主函数中增加输入两点作为友元函数的实参。
cmath>
classpoint
public:
point(floata,floatb){x=a;
y=b;
friendfloatDistance(pointp1,pointp2)
floatdx=p1.x-p2.x;
floatdy=p1.y-p2.y;
return(float)sqrt(dx*dx+dy*dy);
private:
};
floatp1_x,p1_y,p2_x,p2_y;
//输入四个点
p1_x>
p1_y>
p2_x>
p2_y;
pointp1(p1_x,p1_y),p2(p2_x,p2_y);
Distance(p1,p2)<
根据以下主函数的功能来设计日期类CDateInfo,使其能正确运行。
类CDateInfo中应该具有描述年、月、日的三个数据成员和相应的成员函数。
classCDateInfo
intyear,month,day;
public:
CDateInfo(){};
CDateInfo(inty,intm,intd){year=y,month=m,day=d;
voidSetDate(inty,intm,intd);
voidGetDate();
voidCDateInfo:
:
SetDate(inty=2011,intm=10,intd=10)
year=y;
month=m;
day=d;
GetDate()
year<
-"
month<
day<
CDateInfodata1,data2(20
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 答案