欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    VisualC面向对象编程教程第2版(王育坚)清华大学出版社课后答案.doc

    • 资源ID:2385811       资源大小:236.50KB        全文页数:104页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VisualC面向对象编程教程第2版(王育坚)清华大学出版社课后答案.doc

    2-45编写一个程序,输入三角形的三条边的边长,求三角形的面积。2-45#include<iostream.h>#include<math.h>int main()int a,b,c;int s,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<<"此三边不能构成三角形!"<<endl;elsecout<<"面积:"<<endl;cout<<S<<endl;return 0; 2-46从键盘输入一个大写字母,然后改用小写字母在屏幕输出。2-46#include<iostream.h>int main()char ch;int a;cout<<"输入一个大写字母:"<<endl;cin>>ch;if(ch>=65 && ch<=91)ch=ch+32;/a=(int)ch;cout<<ch<<endl;else cout<<"该字母不是字母或不是字母大写!"<<endl;return 0;2-47用户输入两个整数,编程输出稍大于第一个整数而又是第2个整数的倍数的数。计算公式是:valuel+value2-value1%value2.2-47#include<iostream.h>int main()int value1,value2;int result;cin>>value1>>value2;result=value1+value2-value1%value2; cout<<"该整数为:"<<result<<endl;return 0;2-48华氏温度转换为摄氏温度的公式是:C=(F-32)*5/9.。编写一个程序,输入一个华氏温度,程序输出相应的摄氏温度。请将32和5/9用const型变量表示。2-48#include<iostream.h>int main()const float i=32.0;const float j=5.0/9.0;float degFahr;float degCel;cin>>degFahr;/for(degFahr=0;degFahr<=300;degFahr+=10)/degCel=j*(degFahr-i);cout<<"华氏温度:"<<degFahr<<endl;cout<<"摄氏温度:"<<degCel<<endl;/return 0;2-49 从键盘输入20个整数,检查100是否存在于这些整数中,若是的话,求出他是第几个被输入的。2-49#include<iostream.h>int main()int Array20;int i,count=0,c=0;for(i=0;i<20;i+)cin>>Arrayi;for(i=0;i<20;i+)if(Arrayi=100 && count=0)cout<<"100存在该数组中!"<<endl;count+;if(Arrayi!=100)c+;if(c=19)cout<<"100不存在该数组中!"<<endl;for(i=0;i<20;i+)if(Arrayi=100)cout<<"它是第"<<i+1<<"个被输入的!"<<endl;return 0;2-50 从键盘输入一个N X N的整型数组,并将每一行的最大值显示输出。2-50#include<iostream.h>int main()int Array100100=0;int n,temp;cin>>n;for(int i=0;i<n;i+)for(int j=0;j<n;j+)cin>>Arrayij;for(int x=0;x<n;x+)for(int y=x+1;y<n;y+)if(Arrayix<Arrayiy)temp=Arrayix;Arrayix=Arrayiy;Arrayiy=temp;cout<<"每一行的最大值:"<<endl;for(i=0;i<n;i+)cout<<Arrayi0<<" "cout<<endl;2-51 输入三个整数,采用指针方法将三个数按从大到小的顺序输出。2-51#include<iostream.h>#include<math.h>int main()int Array3;int *pA=Array;int *a=Array;int i;int temp;for(i=0;i<3;i+)cin>>Arrayi;for(i=0;i<3;i+)a+;if(*pA<*a)temp=*pA;*pA=*a;*a=temp;a+;pA+;a=&Array0;for(i=0;i<3;i+)cout<<Arrayi<<" "return 0;2-52 采用指针方法将一个数组中的所有元素颠倒顺序,结果仍然存放在原来的数组中,要求使用最少的辅助存储单元2-52#include<iostream.h>int main()int n;cout<<"输入数组的长度(小于100):"<<endl;cin>>n;cout<<"输入"<<n<<"个数:"<<endl;int Array100;int *pA=Array;int i;for(i=0;i<n;i+)cin>>Arrayi;pA+;for(i=0;i<n;i+)pA-;cout<<*pA<<" "return 0;2-53输入两个字符串,如果两个字符串的字符和长度都相同(认为它们相等),在屏幕上输出“Equal”,否则在屏幕上输出“Unequal”。要求使用字符指针。2-53#include<iostream.h>int main()char * pstr="Enter a string:"char str1100,str2100;cout<<pstr<<endl;cin.get(str1,100);cin.get();cin.get(str2,100);int len1=0,len2=0;while(str1len1!='0')len1+;while(str2len2!='0')len2+;if(len1!=len2)cout<<"Unequal"<<endl;else if(len1=len2)int i=0;for(i=0;i<len1;i+)if(str1i=str2i)&&i<len1)continue;if(i=len1-1)cout<<"Equal"<<endl;else cout<<"Unequal"<<endl;return 0;2-54 编程将一个整数转换成对应的数字串,例如将值1234转换为数字串“1234”。2-54#include<iostream.h>int main()int number;int Array100;int i,j;cin>>number;for(i=0;number!=0;i+)Arrayi=number%10;number=number/10;j=i;for(i=j;i>=0;i-)cout<<Arrayi-1<<" "cout<<endl;return 0;2-55 编程求两个复数的和。2-55#include<iostream.h>int main()float a2,b2,c2;int i;for(i=0;i<2;i+)cin>>ai;for(i=0;i<2;i+)cin>>bi;for(i=0;i<2;i+)ci=ai+bi;cout<<c0<<" "<<c1<<endl;return 0;2-56 使用结构变量表示每个学生的信息:姓名、学号和三门课的成绩。从键盘输入10个学生的数据,然后输出每个学生的姓名和三门课的平均成绩。2-56#include<stdio.h>struct studentchar num10;char name20;float grade3;float average;int main()student stu10;int i,j;float sum=0;for(i=0;i<=9;i+)printf("Enter num:n");scanf("%s",&stui.num);printf("Enter name:n");scanf("%s",&stui.name);printf("Enter three grades:n");for(j=0;j<3;j+)scanf("%f",&stui.gradej);sum+=stui.gradej;stui.average=sum/3;printf("%f %sn",stui.average,stui.name);return 0;2-57 用结构数组建立并初始化一个工资表,然后输入一个人的姓名,查询其工资情况,并在屏幕上输出。2-572-58用枚举值MON、TUE、WED、THU、FRI、SAT和SUN表示一个星期中的7天。从键盘输入一个06之间的整数,根据输入的整数输出对应的英文缩写。2-582-59 编写一个求解一元二次方程的根的程序,方程的系数由用户输入。2-59#include<iostream.h>#include<math.h>int main()int a,b,c;int R;float p;float x1,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<<"仅且只有一个根"<<x1<<endl;elsecout<<"有两个不同的根"<<x1<<x2<<endl;else if(R<0) cout<<"无根"<<endl;return 0;2-60 从键盘输入一个字符,判断输入的字符是m、a、n或其他字符。如果是m则输出“Good morning!”;如果是a则输出“Good afternoon!”;如果是n则输出“Good night!”;如果是其他字符则输出“I cant undersrand!”。2-60 2-61 编程实现两个整数的加、减、乘、除四则运算,运算式形如“32+120”。2-612-62编写一个程序,利用swith语句将百分制的学生成绩转换为优、良、中、及格和不及格5分制成绩。2-622-63从键盘输入一个字符,判断输入的字符是数字、空格还是其他字符,并给出相应的提示信息。2-63#include<iostream.h>int main()char ch;cout<<"请输入一个字符:"cin.get(ch);if(ch=' ')cout<<"这是一个空格!"<<endl;else if(ch>='0')&&(ch<='9')cout<<"这是一个数字!"<<endl;else cout<<"这是一个其他字符!"<<endl;return 0;2-64 从键盘输入一个字符序列,编程统计其中的数字个数和英文字母个数。输入的字符序列以“#”作为结束符。2-64#include<iostream.h>int main()char symbol100;int i,end,j=0,k=0;cin>>symbol;for(i=0;i<100;i+)if(symboli='#')end=i;break;for(i=0;i<end;i+)if(symboli>='0') && (symboli<='9')j+;else k+;cout<<"digit:"<<j<<endl;cout<<"letter:"<<k<<endl;return 0;2-65 输入一个由若干单词组成的文本串,每个单词之间用一些空格分隔,统计此文本串单词的个数。2-65#include<iostream.h>int main()char str1000;int count=1;cin.get(str,1000);/while(!str0)/for(int i=0;stri!=0;i+)if(stri=' ' && stri+1!=' ')count+;/cout<<"the count is:"<<count<<endl;return 0;2-67 编程求值,使用如下公式:/4=1-1/3+1/5-1/7+,直到最后一项的绝对值小于10-6为止。2-67(1)#include<iostream.h>#include<math.h>int main()int i,n=1,j=1;double s=0;for(i=0;(2*i+1)<pow(10,6);i+)/*cout<<i<<endl;cout<<"*"cout<<2*i+1<<endl;cout<<"*"cout<<pow(2*i+1),-1)<<endl;cout<<"*"*/s+=pow(2*i+1),-1)*n;/j=2*i+1;n=n*(-1);cout<<i<<endl;cout<<4*s<<endl;return 0;2-67(2)#include<iostream.h>#include<math.h>int main()float i=0;double s=0;for(i=0;2*i+1<pow(10,6);i+)s+=pow(-1,i)*(1/(2*i+1);cout<<s*4<<endl;return 0;2-68 把100150之间不能被3整除的数输出,要求一行输出10个数。2-68 2-69 编程输出一个九九乘法表。2-69#include<iostream.h>int main()char table99;int i,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<<X*Y<<' 'cout<<endl;return 0;2-70编程计算整型数各位数字之和,例如数2007各位数字之和为2+0+0+7=9.2-70#include<iostream.h>int main()int num;int sum=0,i;cin>>num;for(i=0;num!=0;i+)sum+=num%10;num=num/10;cout<<"sum="<<sum<<endl;return 0;2-71 输入n个整数,利用冒泡排序法将它们从小到大排列,并在屏幕上输出。2-71#include<iostream.h>int main()int n;int i,j,temp;int num100;cin>>n;for(i=0;i<n;i+)cin>>numi;for(i=0;i<n;i+)for(j=i+1;j<n;j+)if(numi<numj)temp=numi;numi=numj;numj=temp;for(i=0;i<n;i+)cout<<numi<<' 'cout<<endl;return 0;2-72 编程求出从键盘输入的10个数之和,遇到负数时终止输入求和。2-72#include<iostream.h>int main()int Array10;int sum=0;for(int i=0;i<10;i+)cin>>Arrayi;if(Arrayi>0)sum+=Arrayi;else break;cout<<sum<<endl;return 0;2-73 编程求出从键盘输入的10个数中所有正数之和,负数不参加求和。2-73#include<iostream.h>int main()int num10;int i,sum=0;for(i=0;i<=9;i+)cin>>numi;if(numi>0)sum+=numi;cout<<"sum is "<<sum<<endl;return 0;2-74 设计函数prime(),它只带一个整型参数,当这个参数的值是素数时,该函数返回非0,否则返回0.利用这个函数编写一个程序来验证哥德巴赫猜想:任何一个大于2的偶数都可以表示成两个素数之和。2-74#include<iostream.h>int prime(int x)int i;for(i=2;i<x/2;i+)if(x%i=0)return 0; return x;int main()int a,b,c,d;int j=2,k;cin>>a;if(a>2 && a%2=0)for(j=2;j<a;j+)b=prime(j);if(b=j)c=a-b;d=prime(c);if(d=c)cout<<"该定理成立!"<<endl;else cout<<"此数不是大于2的偶数!"<<endl;return 0;2-75 编制如下函数原型的函数:int index(const char *str ,char c),这个函数返回字符串str中第一次出现字符c的位置。2-75#include<iostream.h>int index(const char *str,char c)int count=1;int Ccount=0;for(int i=0;stri!='0'i+)if(stri=c && Ccount=0)Ccount+;break;count+;return count;int main()char string100;char C;int V=0;int result;cin>>string;cin>>C;while(stringV!='0')V+;result=index(string,C);if(V+1)=result)cout<<"此字符不在字符串中!"<<endl;elsecout<<result<<endl;return 0;2-76 首先编写以下函数声明的函数:void swap(float* px,float*py),该函数用于交换两个实型变量的值,然后编写一个主函数验证函数swap()的功能。2-76#include<iostream.h>void swap(float *px,float *py)float temp;temp=*px;*px=*py;*py=temp;int main()float X,Y;cin>>X>>Y;swap(&X,&Y);cout<<"使用swap函数的值"cout<<X<<' '<<Y<<endl;/*float temp;temp=X;X=Y;Y=temp;*/cout<<"验证值: "<<X<<' '<<Y<<endl;return 0;2-77 定义将一个字符串反转的函数,例如将字符串“abcd”反转为“dcba”。2-77#include<iostream.h>#include<string.h>int Array(char *s)int j,n;char string100;strcpy(string,s);for(j=0;j<100;j+)if(stringj='0')n=j;return n;int main()char str100;int i,z;cin>>str;z=Array(str);/cout<<z;for(i=z;i>=0;i-)cout<<stri;cout<<endl;return 0;2-78 首先编写一个冒泡排序函数,然后在主函数中调用排序函数对10个整数从小到达进行排序。提示:采用数组名作为函数参数。2-782-79将习题2-76中的swap()函数改为内联函数,并实现相同的程序功能。2-79#include<iostream.h>inline void swap(float *px,float *py)float temp;temp=*px;*px=*py;*py=temp;int main()float X,Y;cin>>X>>Y;swap(&X,&Y);cout<<"使用swap函数的值"cout<<X<<' '<<Y<<endl;/*float temp;temp=X;X=Y;Y=temp;*/cout<<"验证值: "<<X<<' '<<Y<<endl;return 0;2-80 编写一个函数 maxmin(),该函数有两个实型参数,执行函数后,第一个参数为两个参数中值较大者,第二个参数为较小者。要求使用引用作为函数参数,并编写主函数验证函数功能。2-80#include<iostream.h>void maxmin(int &A,int &B)int temp;if(A<B)temp=A;A=B;B=temp;int main()int X,Y;cin>>X>>Y;maxmin(X,Y);cout<<X<<' '<<Y<<endl;return 0;2-81 编写一个函数 swapstruct(),实现交换两个结构变量的功能。编写主函数验证函数swapstruct()的功能,要求使用引用传递参数。2-81#include<iostream.h>#include<string.h>struct studentchar name20;int score;void swapstruct(student &s1,student &s2)int temp;char s20;strcpy(s,s1.name);strcpy(s1.name,s2.name);strcpy(s2.name,s);temp=s1.score;s1.score=s2.score;s2.score=temp;int main()student stu1="zhangsan",90;student stu2="lisi",85;cout<<"stu1:"<<stu1.name<<' '<<stu1.score<<endl;cout<<"stu2:"<<stu2.name<<' '<<stu2.score<<endl;swapstruct(stu1,stu2);cout<<"stu1:"<<stu1.name<<' '<<stu1.score<<endl;cout<<"stu2:"<<stu2.name<<' '<<stu2.score<<endl;return 0;2-82 编写一个程序,在主函数main()的外部和内部分别声明两个同名的整型变量并赋值,然后在主函数main()中分别访问两个变量。2-82#include<iostream.h>int i=3;int main()cout<<i<<endl;int i=5;cout<<i<<endl;return 0;2-83 一个程序由两个C+源文件组成,在一个源文件中定义主函数main()并声明一个外部整型变量n,在另一个源文件中定义一个不带参数的函数factorial(void),该函数用于计算变量n的阶乘。编程在主函数main()中输入一个整数并求它的阶乘。2-83#include<iostream.h>int factorial(int x)int y,pro=1;for(y=x;y>0;y-)pro*=y;return (pro);void main()int n,R;cout<<"The number is:"cin>>n;R=factorial(n);cout<<"The product is:"<<R<<endl;2-84 采用外部函数的方式使用习题2-75中的函数index(),即在一个源文件中定义该函数,然后在另一个源文件中调用该函数。2-842-85 编写一段程序,利用new运算动态分配float型、long型和char型三个内存单元,将它们的首地址分别赋给指针pf、pl和pc。给这些存储但愿赋值,并在屏幕上显示它们的值。最后利用delete运算释放所有动态分配的内存单元。2-85#include<iostream.h>int main()float *pf=new float;*pf=3.14;long *pl=new long;*pl=2135567889;char *pc=new char;*pc='A'cout<<*pf<<endl;cout<<*pl<<endl;cout<<*pc<<endl;delete pf;delete pl;delete pc;return 0;2-86 编写一个程序,用new运算为一个整型数组动态分配内存空间,对其进行赋值,并在屏幕上输出。2-86#include<iostream.h>int main()int size;int num;cin>>size;int *f=new intsize;for(int i=0;i<size;i+)cin>>num;fi=num;for(i=0;i<size;i+)cout<<fi<<' 'delete f;return 0;2-87 采用动态内存分配方法设计一个学生成绩处理程序,要求输入任何数量学生的学号、姓名和四门课的成绩,并按平均成绩的高低输出每个学生的高低输出每个学生的姓名和成绩。2-87#include<iostream.h>#include<string.h>struct studentint ID;char name20;int grade4;float average;int main()int num;int i,j,k,temp;float sum=0;char s20;cin>>num;student *stu=new studentnum;for(i=0;i<num;i+)cout<<"输入第"<<i+1<<"人的信息"<<endl;cout<<"ID:"cin>>stui.ID;cout<<"name:"cin>>stui.name;cout<<"grade:"for(j=0;j<4;j+)cin>>stui.gradej;sum+=stui.gradej;stui.average=sum/4;sum=0;cout<<"average:"<<stui.average<<endl;for(i=0;i<num;i+) /排序for(j=i+1;j<num;j+)if(stui.average<stuj.average)strcpy(s,stui.name);strcpy(stui.name,stuj.name);strcpy(stuj.name,s);for(k=0;k<4;k+)temp=stui.gradek;stui.gradek=stuj.gradek;stuj.gradek=temp;cout<<"成绩排名:"<<endl;cout<<"name"<<" "<<"grade"<<endl;for(i=0;i<num;i+)cout<<stui.name<<" "for(j=0;j<4;j+)cout<<stui.gradej<<' 'cout<<endl;return 0;2-88输入一行字符,建立一个链表,链表的每一个结点含有一个输入的字符,通过访问链表中的每个结点计算链表中结点的总个数。2-882-89 使用带参数的宏定义计算两个实数之和,并编写主函数验证宏的功能。2-89#include<iostream.h>#define sum(a,b) (a+b)int main()int x,y;cin>>x>>y;cout<<"主函数计算结果: "<<x+y<<endl;cout<<"宏定义函数结果: "<<sum(x,y)<<endl;return 0;2-90 定义一个带参数的宏,求出三个数中最大的一个数,并进行验证。2-90#include<iostream.h>#define MAX(a,b) (a)>(b)?(a):(b)void main()int x,y,z;cin>>x>>y>>z;cout<<"宏定义参数结果 "cout<<MAX(MAX(x,y),z)<<endl;if(x>y)if(x>z)cout<<"验证结果为 "<<x

    注意事项

    本文(VisualC面向对象编程教程第2版(王育坚)清华大学出版社课后答案.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开