C++编程题答案.docx

上传人:b****4 文档编号:5239330 上传时间:2022-12-14 格式:DOCX 页数:68 大小:32.44KB
下载 相关 举报
C++编程题答案.docx_第1页
第1页 / 共68页
C++编程题答案.docx_第2页
第2页 / 共68页
C++编程题答案.docx_第3页
第3页 / 共68页
C++编程题答案.docx_第4页
第4页 / 共68页
C++编程题答案.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

C++编程题答案.docx

《C++编程题答案.docx》由会员分享,可在线阅读,更多相关《C++编程题答案.docx(68页珍藏版)》请在冰豆网上搜索。

C++编程题答案.docx

C++编程题答案

//编写一个C++的程序,输入你的年龄,然后在屏幕上输出年龄,最后将源程序以myprog.cpp文件名存盘

#include

voidmain()

{

inti;

cout<<"Howoldareyou?

\n";//用C++特有的方式输出数据

cin>>i;//用C++特有的方式输入数据

cout<<"Youare"<

}

//2-4-1编写程序,提示用户输入三角形的三条边长,判断该三角形是否为直角三角形,若是输出结果以及三角形面积。

#include

voidmain()

{

floata,b,c,side1,side2,area;//side1和side2为两条直角边长度

cout<<"pleaseinputlengthofthreesidesofthetriangle:

\n";//输出提示信息

cin>>a>>b>>c;//输入三角形三边长度

if((a*a==b*b+c*c)||(c*c==a*a+b*b)||(b*b==a*a+c*c))

//判断是否为直角三角形

{

if(a*a==b*b+c*c)

//判断三边中哪两条边为直角边,并存储到side1和side2中

{

side1=b;

side2=c;

}else

{

if(c*c==a*a+b*b)

{

side1=a;

side2=b;

}else

{

side1=a;

side2=c;

}

}

area=side1*side2/2;//计算直角三角形的面积

cout<<"Itisaright-angledtriangleandtheareais"<

}else

cout<<"Itisnotaright-angledtriangle.\n";

}

//2-4-2编写程序,求解各种数据类型的存储长度并显示出来,在其中找出存储长度最大的和最小的两种数据类型并输出。

#include

voidmain()

{

intlength[7];

intmax=0,min=0;

cout<<"datatype\tmemoryused(bytes)";

length[0]=sizeof(shortint);//获取短整型长度

cout<<"\nshortint\t"<

length[1]=sizeof(int);//获取整型长度

cout<<"\ninteger\t"<

length[2]=sizeof(long);//获取长整型长度

cout<<"\nlonginteger\t"<

length[3]=sizeof(char);//获取字符型长度

cout<<"\nchar\t"<

length[4]=sizeof(float);//获取单浮点型长度

cout<<"\nfloat\t"<

length[5]=sizeof(double);//获取双浮点型长度

cout<<"\ndouble\t"<

length[6]=sizeof(bool);//获取布尔型长度

cout<<"\nbool\t"<

for(inti=0;i<7;i++)

{

if(length[i]>length[max])//求取长度最大的类型的存取位置

max=i;

if(length[i]

min=i;

}

cout<<"Thelongestlengthisfrom";

switch(max)

{

case0:

cout<<"shortint."<

break;

case1:

cout<<"int."<

break;

case2:

cout<<"long."<

break;

case3:

cout<<"char."<

break;

case4:

cout<<"float."<

break;

case5:

cout<<"double."<

break;

case6:

cout<<"bool."<

break;

}

cout<<"Theshortestlengthisfrom";

switch(min)

{

case0:

cout<<"shortint."<

break;

case1:

cout<<"int."<

break;

case2:

cout<<"long."<

break;

case3:

cout<<"char."<

break;

case4:

cout<<"float."<

break;

case5:

cout<<"double."<

break;

case6:

cout<<"bool."<

break;

}

}

//2-4-3(3)编写程序输入一个华氏温度,将其转换为摄氏温度并输出。

#include

voidmain()

{

floatC;//变量C为摄氏温度

floatF;//变量F为华氏温度

cout<<"请输入华氏温度(float类型):

\n";

cin>>F;//输入华氏温度

C=(F-32)*5/9;//华氏温度转换为摄氏度

cout<<"转换为摄氏温度为"<

}

//2-4-4编写程序输入一个十进制表示的正整数,将其转化为二进制表示并输出结果。

#include

voidmain()

{

inta;//变量C为摄氏温度

intb[20];//数组存储转换后的二进制数

inti;

i=0;

cout<<"请输入一个十进制的数字:

\n";

cin>>a;//输入十进制数

while(a>0)//转换过程

{

b[i]=a%2;

i++;

a=(int)(a/2);

}

i--;

cout<<"转换的二进制数为:

";

while(i>=0)//输出二进制结果

{

cout<

i--;

}

cout<

}

//3-4-1编写程序,计算1到100中所有3的倍数的数的和。

#include

voidmain()

{

intsum=0;//sum变量为3的倍数的和

for(inti=1;i<=100;i++)

{

if(i%3==0)//判断i是否是3的倍数

sum+=i;

}

cout<<"1到100中所有3的倍数的数的和为:

"<

}

//编写程序,用户输入一些整数,该程序分别计算出所有奇数和所有偶数之和,并输出它们。

#include

voidmain()

{

intsum_odd=0;//变量为所有奇数的和

intsum_even=0;//变量为所有偶数的和

intb;//变量为输入的数字

intN;//变量为数字个数

cout<<"输入数字的总的个数为";

cin>>N;

cout<<"请输入数字(数字以空格隔开)"<

for(inti=0;i

{

cin>>b;

if(b%2==0)//判断数字是否为偶数

sum_even+=b;

else

sum_odd+=b;

}

cout<<"所有奇数的和为"<

cout<<"所有偶数的和为"<

}

//求解输入两个正整数的最大公约数和最小公倍数。

#include

voidmain()

{

inta,b;//输入的两个正整数

intmin,max;//最小值和最大值

cout<<"请输入两个正整数(数字以空格隔开)"<

cin>>a>>b;

if(a>=b)//找出两个数中的最大值和最小值

{

min=b;

max=a;

}

else

{

min=a;

max=b;

}

//最大公约数一定不大于两个数中的最小值

while(min>0)

{

if((a%min==0)&&(b%min==0))

break;

else

min--;

}

cout<

//最小公倍数一定不小于两个数中的最大值

while((max%a!

=0)||(max%b!

=0))

{

max++;

}

cout<

}

//编写程序计算10个正整数的平均值、方差以及标准方差。

#include

#include

#definenumber10

voidmain()

{

inta[number];//输入的10个正整数

intaverage,sum=0;//平均值和总和

intvariance=0;//方差

intmvariance;//均方差

cout<<"请输入"<

"<

for(inti=0;i

{

cin>>a[i];

sum+=a[i];

}

i--;

average=sum/number;//求均值

cout<<"average="<

while(i>=0)//求方差

{

variance+=abs(a[i]*a[i]-average*average);

i--;

}

mvariance=variance/number;//求均方差

cout<<"variance="<

cout<<"mvariance="<

}

//输入4个字母,并反向显示这些字母。

#include

voidmain()

{

chara[4];//输入4个字符

cout<<"请输入4个字符:

"<

for(inti=0;i<4;i++)

cin>>a[i];

cout<<"反向输出4个字符为:

"<

for(i=3;i>=0;i--)

cout<

cout<

}

//输出所有的"水仙花数"。

//"水仙花数"是指一个3位数,其各位数字的立方和等于该数本身。

#include

voidmain()

{

intN,M;

inta[3];//存储三位数的个十百位

cout<<"水仙花数为:

"<

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)

cout<

}

}

//求1!

+2!

+…+50!

#include

voidmain()

{

intsum1=1;//记录i!

的结果

intsum2=0;//记录i!

累加的结果

for(inti=1;i<=50;i++)

{

for(intj=1;j<=i;j++)//计算i!

sum1*=j;

sum2+=sum1;

}

cout<<"1!

+2!

+…+50!

="<

}

//编写程序求一元二次方程ax*x+bx+c=0的解。

#include

#include

voidmain()

{

floata,b,c;//方程的系数

floats1,s2;//解

floattemp;

cout<<"Inputa,b,c:

"<

cin>>a>>b>>c;

if(a==0)

{

cout<<"不是一元二次方程!

"<

}else

{

temp=b*b-4*a*c;

if(temp<0)//无根的情况

cout<<"无实根!

"<

elseif(temp==0)//只有一个实根的情况

{

s1=-b/(2*a);

cout<<"方程有一个实根,为"<

}

else//两个实根的情况

{

s1=(-b+sqrt(temp))/(2*a);

s2=(-b-sqrt(temp))/(2*a);

cout<<"方程有两个实根,为"<

}

}

}

//3-4-9编写程序,用循环语句打印如下图案。

#include

#include

#include

voidmain()

{

for(inti=1;i<=7;i++)

{

cout<

if((i==1)||(i==7))//第一行和最后一行仅显示一个@

{

cout<

continue;

}

for(intm=abs(4-i)+2;m<=6-abs(4-i);m++)//显示中间的*

cout<<"*";

cout<<"@"<

}

}

//3-4-10编写程序,输入年月日信息,并输出这一天为这一年的第几天,注意闰年问题。

#include

voidmain()

{

intyear,month,day;

intnum=0;

intlength;

cout<<"Inputyear:

";

cin>>year;

cout<<"Inputmonth:

";

cin>>month;

cout<<"Inputday:

";

cin>>day;

for(inti=1;i

{

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;

else

if(((year%100==0)&&(year%4==0))||((year%100!

=0)&&(year%4==0)))//闰年判断条件

length=29;//闰年的二月29天

else

length=28;//非闰年的二月28天

num+=length;

}

num+=day;

cout<

"<

}

//3-4-11编写程序,由用户输入x值,计算函数值并输出y。

函数如下所示:

#include

voidmain()

{

intx,y;

cout<<"InputX(int):

";

cin>>x;

if(x<0)//x<0的情况

y=x;

elseif(x>10)//x>10的情况

y=4*x*x*x-x*x;

else//其余的情况

y=x*x;

cout<<"函数结果y为:

"<

}

//3-4-12鸡兔同笼问题。

若鸡兔共有100只脚,利用循环计算鸡兔各几只。

#include

voidmain()

{

intrabbit,chicken;

for(rabbit=100/4;rabbit>=0;rabbit--)//兔子最多有25只,最少没有

{

chicken=(100-rabbit*4)/2;

cout<<"兔子有"<

}

}

//4-5-1编写一个函数,计算直角坐标系中点a(x0,y0)到点b(x1,y1)的距离。

#include

#include

floatlength(floatx0,floaty0,floatx1,floaty1)//求两点距离的子函数

{

returnsqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1));;

}

voidmain()

{

floatx0,x1,y0,y1;

cout<<"Inputxandyofapoint:

";

cin>>x0>>y0;

cout<<"Inputxandyofbpoint:

";

cin>>x1>>y1;

cout<<"Thelengthfromatobis"<

}

//4-5-2求a!

+b!

+c!

的值,其中求n!

要用一个函数实现,通过主函数输入a、b和c的值,并在主函数中输出计算的结果。

#include

intfactorial(intn)//求两点距离的子函数

{

intsum=1;

for(inti=1;i<=n;i++)

sum*=i;

returnsum;

}

voidmain()

{

inta,b,c;

cout<<"Inputa,b,c:

";

cin>>a>>b>>c;

cout<<"a!

+b!

+c!

="<

}

//4-5-3编写一个函数。

该函数读入一个整数,并判断这个整数是否为一个回文数字。

例如4,44,434,4334,43534都是回文数字。

#include

boolpalindrome(intn)//判断n是否为回文的子函数

{

inta[20];

intm=n;

inti=0;

inttemp,num;

while(m>0)//将数字的各位反向放置在数组a中

{

a[i]=m%10;

m=m/10;

i++;

}

temp=i/2;//需要比较的次数

num=--i;//数字的最高位存储在a[num]中

for(intj=0;j

{

if(a[j]!

=a[num-j])returnfalse;//如果出现不相等的情况立即退出

}

returntrue;//若比较的各个位置都相等,则为回文

}

voidmain()

{

intnumber;

cout<<"Inputthenumber:

";

cin>>number;

if(palindrome(number))

cout<

else

cout<

}

//4-5-4编写一个程序,为选修3、4和5门课程的学生计算平均分,其中求平均分要用重载函数实现

#include

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;

}

voidmain()

{

intnumber;

floats1,s2,s3,s4,s5;

cout<<"Thetotalofstudent'scoursesis";

cin>>number;

if(number==3)

{

cout<<"Inputthreescoreofstudent:

";

cin>>s1>>s2>>s3;

cout<<"Theaverageis"<

}

elseif(number==4)

{

cout<<"Inputfourscoreofstudent:

";

cin>>s1>>s2>>s3>>s4;

cout<<"Theaverageis"<

}

else

{

cout<<"Inputthreescoreofstudent:

";

cin>>s1>>s2>>s3>>s4>>s5;

cout<<"Theaverageis"<

}

}

//4-5-5用递归方法将一个整数n转换成字符串。

#include

#include

usingnamespacestd;

stringconvert(intn);

stringnumstring("");

voidmain()

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1