VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案.docx
- 文档编号:13391978
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:161
- 大小:47.10KB
VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案.docx
《VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案.docx》由会员分享,可在线阅读,更多相关《VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案.docx(161页珍藏版)》请在冰点文库上搜索。
VisualC++面向对象编程教程第2版王育坚清华大学出版社课后答案
2-45编写一个程序,输入三角形的三条边的边长,求三角形的面积。
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;j cin>>Array[i][j]; for(intx=0;x for(inty=x+1;y if(Array[i][x] { temp=Array[i][x]; Array[i][x]=Array[i][y]; Array[i][y]=temp; } } cout<<"每一行的最大值: "< for(i=0;i cout< 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;i if((str1[i]==str2[i])&&i continue; 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;i cin>>num[i]; for(i=0;i for(j=i+1;j if(num[i] { temp=num[i]; num[i]=num[j]; num[j]=temp; } for(i=0;i cout< 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; } 2-74设计函数prime(),它只带一个整型参数,当这个参数的值是素数时,该函数返回非0,否则返回0.利用这个函数编写一个程序来验证哥德巴赫猜想: 任何一个大于2的偶数都可以表示成两个素数之和。 2-74 #include intprime(intx) { inti; for(i=2;i if(x%i==0) return0; returnx; } intmain() { inta,b,c,d; intj=2,k; cin>>a; if(a>2&&a%2==0) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualC 面向 对象 编程 教程 版王育坚 清华大学出版社 课后 答案