VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案之欧阳道创编.docx
《VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案之欧阳道创编.docx》由会员分享,可在线阅读,更多相关《VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案之欧阳道创编.docx(18页珍藏版)》请在冰豆网上搜索。
![VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案之欧阳道创编.docx](https://file1.bdocx.com/fileroot1/2023-2/1/608366af-b324-4f4a-983d-787baa9eb7b9/608366af-b324-4f4a-983d-787baa9eb7b91.gif)
VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案之欧阳道创编
2-45编写一个程序,输入三角形的三条边的边长,求三角形的面积。
时间:
2021.03.06
创作:
欧阳道
2-45
#include
#include
intmain()
{
inta,b,c;
ints,S;
cin>>a>>b>>c;
s=(a+b+c)/2;
S=powl(s*(s-a)*(s-b)*(s-c),0.5);
if(S==0)
cout<<"此三边不能构成三角形!
"<else
{
cout<<"面积:
"<cout<
}
return0;
}
2-46从键盘输入一个大写字母,然后改用小写字母在屏幕输出。
2-46
#include
intmain()
{
charch;
inta;
cout<<"输入一个大写字母:
"<cin>>ch;
if(ch>=65&&ch<=91)
{
ch=ch+32;
//a=(int)ch;
cout<}
elsecout<<"该字母不是字母或不是字母大写!
"<return0;
}
2-47用户输入两个整数,编程输出稍大于第一个整数而又是第2个整数的倍数的数。
计算公式是:
valuel+value2-value1%value2.
2-47
#include
intmain()
{
intvalue1,value2;
intresult;
cin>>value1>>value2;
result=value1+value2-value1%value2;
cout<<"该整数为:
"<return0;
}
2-48华氏温度转换为摄氏温度的公式是:
C=(F-32)*5/9.。
编写一个程序,输入一个华氏温度,程序输出相应的摄氏温度。
请将32和5/9用const型变量表示。
2-48
#include
intmain()
{
constfloati=32.0;
constfloatj=5.0/9.0;
floatdegFahr;
floatdegCel;
cin>>degFahr;
//for(degFahr=0;degFahr<=300;degFahr+=10)
//{
degCel=j*(degFahr-i);
cout<<"华氏温度:
"<cout<<"摄氏温度:
"<//}
return0;
}
2-49从键盘输入20个整数,检查100是否存在于这些整数中,若是的话,求出他是第几个被输入的。
2-49
#include
intmain()
{
intArray[20];
inti,count=0,c=0;
for(i=0;i<20;i++)
cin>>Array[i];
for(i=0;i<20;i++)
{
if(Array[i]==100&&count==0)
{
cout<<"100存在该数组中!
"<count++;
}
if(Array[i]!
=100)
{
c++;
if(c==19)
cout<<"100不存在该数组中!
"<}
}
for(i=0;i<20;i++)
{
if(Array[i]==100)
cout<<"它是第"<
"<}
return0;
}
2-50从键盘输入一个NXN的整型数组,并将每一行的最大值显示输出。
2-50
#include
intmain()
{
intArray[100][100]={0};
intn,temp;
cin>>n;
for(inti=0;i{
for(intj=0;jcin>>Array[i][j];
for(intx=0;xfor(inty=x+1;yif(Array[i][x]{
temp=Array[i][x];
Array[i][x]=Array[i][y];
Array[i][y]=temp;
}
}
cout<<"每一行的最大值:
"<for(i=0;icout<cout<}
2-51输入三个整数,采用指针方法将三个数按从大到小的顺序输出。
2-51
#include
#include
intmain()
{
intArray[3];
int*pA=Array;
int*a=Array;
inti;
inttemp;
for(i=0;i<3;i++)
cin>>Array[i];
for(i=0;i<3;i++)
{
a++;
if(*pA<*a)
{
temp=*pA;
*pA=*a;
*a=temp;
a++;
pA++;
}
a=&Array[0];
}
for(i=0;i<3;i++)
cout<return0;
}
2-52采用指针方法将一个数组中的所有元素颠倒顺序,结果仍然存放在原来的数组中,要求使用最少的辅助存储单元
2-52
#include
intmain()
{
intn;
cout<<"输入数组的长度(小于100):
"<cin>>n;
cout<<"输入"<"<intArray[100];
int*pA=Array;
inti;
for(i=0;i{
cin>>Array[i];
pA++;
}
for(i=0;i{
pA--;
cout<<*pA<<"";
}
return0;
}
2-53输入两个字符串,如果两个字符串的字符和长度都相同(认为它们相等),在屏幕上输出“Equal”,否则在屏幕上输出“Unequal”。
要求使用字符指针。
2-53
#include
intmain()
{
char*pstr="Enterastring:
";
charstr1[100],str2[100];
cout<cin.get(str1,100);
cin.get();
cin.get(str2,100);
intlen1=0,len2=0;
while(str1[len1]!
='\0')
len1++;
while(str2[len2]!
='\0')
len2++;
if(len1!
=len2)
cout<<"Unequal"<elseif(len1==len2)
{
inti=0;
for(i=0;iif((str1[i]==str2[i])&&icontinue;
if(i=len1-1)
cout<<"Equal"<elsecout<<"Unequal"<}
return0;
}
2-54编程将一个整数转换成对应的数字串,例如将值1234转换为数字串“1234”。
2-54
#include
intmain()
{
intnumber;
intArray[100];
inti,j;
cin>>number;
for(i=0;number!
=0;i++)
{
Array[i]=number%10;
number=number/10;
}
j=i;
for(i=j;i>=0;i--)
cout<cout<return0;
}
2-55编程求两个复数的和。
2-55
#include
intmain()
{
floata[2],b[2],c[2];
inti;
for(i=0;i<2;i++)
cin>>a[i];
for(i=0;i<2;i++)
cin>>b[i];
for(i=0;i<2;i++)
c[i]=a[i]+b[i];
cout<return0;
}
2-56使用结构变量表示每个学生的信息:
姓名、学号和三门课的成绩。
从键盘输入10个学生的数据,然后输出每个学生的姓名和三门课的平均成绩。
2-56
#include
structstudent
{
charnum[10];
charname[20];
floatgrade[3];
floataverage;
};
intmain()
{
studentstu[10];
inti,j;
floatsum=0;
for(i=0;i<=9;i++)
{
printf("Enternum:
\n");
scanf("%s",&stu[i].num);
printf("Entername:
\n");
scanf("%s",&stu[i].name);
printf("Enterthreegrades:
\n");
for(j=0;j<3;j++)
{
scanf("%f",&stu[i].grade[j]);
sum+=stu[i].grade[j];
}stu[i].average=sum/3;
printf("%f%s\n",stu[i].average,stu[i].name);
}
return0;
}
2-57用结构数组建立并初始化一个工资表,然后输入一个人的姓名,查询其工资情况,并在屏幕上输出。
2-57
2-58用枚举值MON、TUE、WED、THU、FRI、SAT和SUN表示一个星期中的7天。
从键盘输入一个0~6之间的整数,根据输入的整数输出对应的英文缩写。
2-58
2-59编写一个求解一元二次方程的根的程序,方程的系数由用户输入。
2-59
#include
#include
intmain()
{
inta,b,c;
intR;
floatp;
floatx1,x2;
cin>>a>>b>>c;
R=b*b-4*a*c;
if(R>=0)
{
p=sqrt(R);
x1=(-b+p)/(2*a);
x2=(-b-p)/(2*a);
if(x1==x2)
cout<<"仅且只有一个根"<else
cout<<"有两个不同的根"<}
elseif(R<0)cout<<"无根"<return0;
}
2-60从键盘输入一个字符,判断输入的字符是m、a、n或其他字符。
如果是m则输出“Goodmorning!
”;如果是a则输出“Goodafternoon!
”;如果是n则输出“Goodnight!
”;如果是其他字符则输出“Ican‘tundersrand!
”。
2-60
2-61编程实现两个整数的加、减、乘、除四则运算,运算式形如“32+120”。
2-61
2-62编写一个程序,利用swith语句将百分制的学生成绩转换为优、良、中、及格和不及格5分制成绩。
2-62
2-63从键盘输入一个字符,判断输入的字符是数字、空格还是其他字符,并给出相应的提示信息。
2-63
#include
intmain()
{
charch;
cout<<"请输入一个字符:
";
cin.get(ch);
if(ch=='')
cout<<"这是一个空格!
"<elseif((ch>='0')&&(ch<='9'))
cout<<"这是一个数字!
"<else
cout<<"这是一个其他字符!
"<return0;
}
2-64从键盘输入一个字符序列,编程统计其中的数字个数和英文字母个数。
输入的字符序列以“#”作为结束符。
2-64
#include
intmain()
{
charsymbol[100];
inti,end,j=0,k=0;
cin>>symbol;
for(i=0;i<100;i++)
if(symbol[i]=='#')
{
end=i;
break;
}
for(i=0;i{
if((symbol[i]>='0')&&(symbol[i]<='9'))j++;
elsek++;
}
cout<<"digit:
"<cout<<"letter:
"<return0;
}
2-65输入一个由若干单词组成的文本串,每个单词之间用一些空格分隔,统计此文本串单词的个数。
2-65
#include
intmain()
{
charstr[1000];
intcount=1;
cin.get(str,1000);
//while(!
str[0])
//{
for(inti=0;str[i]!
=0;i++)
if(str[i]==''&&str[i+1]!
='')
count++;
//}
cout<<"thecountis:
"<return0;
}
2-67编程求π值,使用如下公式:
π/4=1-1/3+1/5-1/7+…,直到最后一项的绝对值小于10-6为止。
2-67
(1)
#include
#include
intmain()
{
inti,n=1,j=1;
doubles=0;
for(i=0;(2*i+1){
/*cout<
cout<<"******************";
cout<<2*i+1<cout<<"********************************";
cout<cout<<"******************";*/
s+=pow((2*i+1),-1)*n;
//j=2*i+1;
n=n*(-1);
}
cout<
cout<<4*s<return0;
}
2-67
(2)
#include
#include
intmain()
{
floati=0;
doubles=0;
for(i=0;2*i+1{
s+=pow(-1,i)*(1/(2*i+1));
}
cout<
return0;
}
2-68把100~150之间不能被3整除的数输出,要求一行输出10个数。
2-68
2-69编程输出一个九九乘法表。
2-69
#include
intmain()
{
chartable[9][9];
inti,j,X,Y;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
X=i+1;
Y=j+1;
if(X>=Y)
cout<}
cout<}
return0;
}
2-70编程计算整型数各位数字之和,例如数2007各位数字之和为2+0+0+7=9.
2-70
#include
intmain()
{
intnum;
intsum=0,i;
cin>>num;
for(i=0;num!
=0;i++)
{
sum+=num%10;
num=num/10;
}
cout<<"sum="<return0;
}
2-71输入n个整数,利用冒泡排序法将它们从小到大排列,并在屏幕上输出。
2-71
#include
intmain()
{
intn;
inti,j,temp;
intnum[100];
cin>>n;
for(i=0;icin>>num[i];
for(i=0;ifor(j=i+1;jif(num[i]{
temp=num[i];
num[i]=num[j];
num[j]=temp;
}
for(i=0;icout<cout<return0;
}
2-72编程求出从键盘输入的10个数之和,遇到负数时终止输入求和。
2-72
#include
intmain()
{
intArray[10];
intsum=0;
for(inti=0;i<10;i++)
{
cin>>Array[i];
if(Array[i]>0)
sum+=Array[i];
else
break;
}
cout<return0;
}
2-73编程求出从键盘输入的10个数中所有正数之和,负数不参加求和。
2-73
#include
intmain()
{
intnum[10];
inti,sum=0;
for(i=0;i<=9;i++)
{
cin>>num[i];
if(num[i]>0)
sum+=num[i];
}
cout<<"sumis"<return0;
}
时间:
2021.03.06
创作:
欧阳道