C++编程题答案Word文档格式.docx
《C++编程题答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++编程题答案Word文档格式.docx(68页珍藏版)》请在冰豆网上搜索。
Itisaright-angledtriangleandtheareais"
area<
.\n"
//输出判断结果及直角三角形面积
Itisnotaright-angledtriangle.\n"
//2-4-2编写程序,求解各种数据类型的存储长度并显示出来,在其中找出存储长度最大的和最小的两种数据类型并输出。
intlength[7];
intmax=0,min=0;
datatype\tmemoryused(bytes)"
length[0]=sizeof(shortint);
//获取短整型长度
\nshortint\t"
length[0]<
\t"
length[1]=sizeof(int);
//获取整型长度
\ninteger\t"
length[1];
length[2]=sizeof(long);
//获取长整型长度
\nlonginteger\t"
length[2];
length[3]=sizeof(char);
//获取字符型长度
\nchar\t"
<
length[3];
length[4]=sizeof(float);
//获取单浮点型长度
\nfloat\t"
length[4];
length[5]=sizeof(double);
//获取双浮点型长度
\ndouble\t"
length[5];
length[6]=sizeof(bool);
//获取布尔型长度
\nbool\t"
length[6]<
endl;
for(inti=0;
7;
i++)
if(length[i]>
length[max])//求取长度最大的类型的存取位置
max=i;
if(length[i]<
length[min])//求取长度最小的类型的存取位置
min=i;
Thelongestlengthisfrom"
switch(max)
case0:
cout<
shortint."
break;
case1:
int."
case2:
long."
case3:
char."
case4:
float."
case5:
double."
case6:
bool."
Theshortestlengthisfrom"
switch(min)
//2-4-3(3)编写程序输入一个华氏温度,将其转换为摄氏温度并输出。
floatC;
//变量C为摄氏温度
floatF;
//变量F为华氏温度
请输入华氏温度(float类型):
F;
//输入华氏温度
C=(F-32)*5/9;
//华氏温度转换为摄氏度
转换为摄氏温度为"
C<
//2-4-4编写程序输入一个十进制表示的正整数,将其转化为二进制表示并输出结果。
inta;
intb[20];
//数组存储转换后的二进制数
i=0;
请输入一个十进制的数字:
a;
//输入十进制数
while(a>
0)//转换过程
b[i]=a%2;
i++;
a=(int)(a/2);
i--;
转换的二进制数为:
"
while(i>
=0)//输出二进制结果
b[i];
//3-4-1编写程序,计算1到100中所有3的倍数的数的和。
intsum=0;
//sum变量为3的倍数的和
for(inti=1;
=100;
if(i%3==0)//判断i是否是3的倍数
sum+=i;
1到100中所有3的倍数的数的和为:
sum<
//编写程序,用户输入一些整数,该程序分别计算出所有奇数和所有偶数之和,并输出它们。
intsum_odd=0;
//变量为所有奇数的和
intsum_even=0;
//变量为所有偶数的和
intb;
//变量为输入的数字
intN;
//变量为数字个数
输入数字的总的个数为"
N;
请输入数字(数字以空格隔开)"
for(inti=0;
b;
if(b%2==0)//判断数字是否为偶数
sum_even+=b;
else
sum_odd+=b;
所有奇数的和为"
sum_odd<
所有偶数的和为"
sum_even<
//求解输入两个正整数的最大公约数和最小公倍数。
inta,b;
//输入的两个正整数
intmin,max;
//最小值和最大值
请输入两个正整数(数字以空格隔开)"
if(a>
=b)//找出两个数中的最大值和最小值
min=b;
max=a;
min=a;
max=b;
//最大公约数一定不大于两个数中的最小值
while(min>
0)
if((a%min==0)&
&
(b%min==0))
min--;
a<
和"
b<
的最大公约数为"
min<
//最小公倍数一定不小于两个数中的最大值
while((max%a!
=0)||(max%b!
=0))
max++;
的最小公倍数为"
max<
//编写程序计算10个正整数的平均值、方差以及标准方差。
math.h>
#definenumber10
inta[number];
//输入的10个正整数
intaverage,sum=0;
//平均值和总和
intvariance=0;
//方差
intmvariance;
//均方差
请输入"
number<
个整数:
number;
i++)//求总和
a[i];
sum+=a[i];
average=sum/number;
//求均值
average="
average<
=0)//求方差
variance+=abs(a[i]*a[i]-average*average);
mvariance=variance/number;
//求均方差
variance="
variance<
mvariance="
mvariance<
//输入4个字母,并反向显示这些字母。
chara[4];
//输入4个字符
请输入4个字符:
4;
反向输出4个字符为:
for(i=3;
i>
=0;
i--)
//输出所有的"
水仙花数"
。
//"
是指一个3位数,其各位数字的立方和等于该数本身。
intN,M;
inta[3];
//存储三位数的个十百位
水仙花数为:
for(N=100;
N<
=999;
N++)
M=N;
for(intj=0;
j<
3;
j++)//提取数字的个十百位
a[j]=M%10;
M/=10;
if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==N)
//求1!
+2!
+…+50!
intsum1=1;
//记录i!
的结果
intsum2=0;
累加的结果
for(inti=1;
=50;
for(intj=1;
=i;
j++)//计算i!
sum1*=j;
sum2+=sum1;
1!
="
sum2<
//编写程序求一元二次方程ax*x+bx+c=0的解。
floata,b,c;
//方程的系数
floats1,s2;
//解
floattemp;
Inputa,b,c:
if(a==0)
不是一元二次方程!
temp=b*b-4*a*c;
if(temp<
0)//无根的情况
无实根!
elseif(temp==0)//只有一个实根的情况
s1=-b/(2*a);
方程有一个实根,为"
s1<
else//两个实根的情况
s1=(-b+sqrt(temp))/(2*a);
s2=(-b-sqrt(temp))/(2*a);
方程有两个实根,为"
s2<
//3-4-9编写程序,用循环语句打印如下图案。
iomanip.h>
=7;
{
setw(abs(4-i)+1)<
@"
//显示第一个@
if((i==1)||(i==7))//第一行和最后一行仅显示一个@
continue;
for(intm=abs(4-i)+2;
m<
=6-abs(4-i);
m++)//显示中间的*
*"
//中间几行显示第二个@
//3-4-10编写程序,输入年月日信息,并输出这一天为这一年的第几天,注意闰年问题。
intyear,month,day;
intnum=0;
intlength;
Inputyear:
year;
Inputmonth:
month;
Inputday:
day;
if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))
//大月31天
length=31;
elseif((i==4)||(i==6)||(i==9)||(i==11))//小月30天
length=30;
if(((year%100==0)&
(year%4==0))||((year%100!
=0)&
(year%4==0)))//闰年判断条件
length=29;
//闰年的二月29天
length=28;
//非闰年的二月28天
num+=length;
num+=day;
year<
年"
month<
月"
day<
日为这一年的第:
num<
天."
//3-4-11编写程序,由用户输入x值,计算函数值并输出y。
函数如下所示:
intx,y;
InputX(int):
x;
if(x<
0)//x<
0的情况
y=x;
elseif(x>
10)//x>
10的情况
y=4*x*x*x-x*x;
else//其余的情况
y=x*x;
函数结果y为:
y<
//3-4-12鸡兔同笼问题。
若鸡兔共有100只脚,利用循环计算鸡兔各几只。
intrabbit,chicken;
for(rabbit=100/4;
rabbit>
rabbit--)//兔子最多有25只,最少没有
chicken=(100-rabbit*4)/2;
兔子有"
rabbit<
只,鸡有"
chicken<
只"
//4-5-1编写一个函数,计算直角坐标系中点a(x0,y0)到点b(x1,y1)的距离。
floatlength(floatx0,floaty0,floatx1,floaty1)//求两点距离的子函数
{
returnsqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1));
floatx0,x1,y0,y1;
Inputxandyofapoint:
x0>
y0;
Inputxandyofbpoint:
x1>
y1;
Thelengthfromatobis"
length(x0,y0,x1,y1)<
//4-5-2求a!
+b!
+c!
的值,其中求n!
要用一个函数实现,通过主函数输入a、b和c的值,并在主函数中输出计算的结果。
intfactorial(intn)//求两点距离的子函数
intsum=1;
=n;
sum*=i;
returnsum;
inta,b,c;
a!
factorial(a)+factorial(b)+factorial(c)<
//4-5-3编写一个函数。
该函数读入一个整数,并判断这个整数是否为一个回文数字。
例如4,44,434,4334,43534都是回文数字。
boolpalindrome(intn)//判断n是否为回文的子函数
inta[20];
intm=n;
inti=0;
inttemp,num;
while(m>
0)//将数字的各位反向放置在数组a中
a[i]=m%10;
m=m/10;
temp=i/2;
//需要比较的次数
num=--i;
//数字的最高位存储在a[num]中
temp;
j++)
if(a[j]!
=a[num-j])returnfalse;
//如果出现不相等的情况立即退出
returntrue;
//若比较的各个位置都相等,则为回文
intnumber;
Inputthenumber:
if(palindrome(number))
isapalindrome."
isnotapalindrome."
//4-5-4编写一个程序,为选修3、4和5门课程的学生计算平均分,其中求平均分要用重载函数实现
floataverage(floata,floatb,floatc)//求三门课程平均分子函数
return(a+b+c)/3;
floataverage(floata,floatb,floatc,floatd)//求四门课程平均分子函数
return(a+b+c+d)/4;
floataverage(floata,floatb,floatc,floatd,floate)//求五门课程平均分子函数
return(a+b+c+d+e)/5;
floats1,s2,s3,s4,s5;
Thetotalofstudent'
scoursesis"
if(number==3)
Inputthreescoreofstudent:
s1>
s2>
s3;
Theaverageis"
average(s1,s2,s3)<
elseif(number==4)
Inputfourscoreofstudent:
s3>
s4;
average(s1,s2,s3,s4)<
s4>
s5;
average(s1,s2,s3,s4,s5)<
//4-5-5用递归方法将一个整数n转换成字符串。
iostream>
string>
usingnamespacestd;
stringconvert(intn);
stringnumstring("
);