1、C++的特点:C++语言具有以下特点:(1)C++是C语言的超集。它既保持了C语言的简洁、高效和接近汇编语言等特点,又克服了C语言的缺点,其编译系统能检查更多的语法错误,因此,C++比C语言更安全。(2)C++保持了与C语言的兼容。绝大多数C语言程序可以不经修改直接在C++环境中运行,用C语言编写的众多库函数可以用于C++程序中。(3)支持面向对象程序设计的特征。C++既支持面向过程的程序设计,又支持面向对象的程序设计。(4)C++程序在可重用性、可扩充性、可维护性和可靠性等方面都较C语言得到了提高,使其更适合开发大中型的系统软件和应用程序。C++对C那些发展?C主要有如下不足之处:1.编译器查错能力弱2.没有支持代码重用的机制,编程效率低下3.结构上的不足,导致难以开发大型、复杂的程序4.因语法过于灵活,导致安全性下降C++克服了C的不足,C++支持面向对象的程序设计。C++中发展了类的概念,使面向对象的设计能以实现,适于开发大型、复杂的程序2.一个c++程序由哪几部分构成?每一部分的作用是什么?任何的可被执行的程序都必须要有一个被执行的入口点,当然C++也不会例外,有main函数作为整个程序的入口点,而且必不可少。再有就是在main函数中所要用到的类,这个部分的内容由#include将类的内容在链接的过程中参与到整个程序的过程中,但是这个部分的内容并不参与编译。为了管理的清晰和系统化,类方法的实现部分将会存在另外一个或者几个独立的文件中,当然如果不嫌弃有一个长长的文件的话,也可以将类的实现方法跟类放在同一个文件当中。总体上就分为这三个部分。4、请说明编辑、编译、连接的作用编辑是应用程序开发的第一步,工作内容就是输入、修改程序。通过程序编辑而得到的程序称为源程序,约定的扩展名是cpp。编译是应用程序开发的第二步,工作内容就是分析程序文件中的源程序,生成目标程序,扩展名是obj。连接是应用程序开发的第三步,工作内容就是将若干目标程序加以归并、整理,为所有的函数、变量分配具体地址,生成可执行程序,扩展名是exe。编译后得到的目标文件为什么不能直接运行?构造函数和析构函数的作用是什么?什么时候需要自己定义构造函数和析构函数?构造函数用来处理对象的初始化,它的功能是有用户定义的,用户根据初始化的要求设计函数体和函数参数;当一个类含有一些数据成员,你需要在实例化类的时候就初始化这些成员,就需要自己定义构造函数;析构函数作用是用来完成对象被删除前的一些清理工作,就是专门的扫尾工作;当你的类数据成员中使用了动态分配的内存,就需要定义自己的析构函数来释放这部分内存,防止内存泄露编辑的过程就是产生源代码的过程,这个部分的文件能很容易被人们理解和阅读,但是却不会被机器所读懂。编译的过程就是将被编辑的源文件生成机器所能读懂的语言的过程。链接就是在各个被编译的文件之间形成一个可以互通消息的同道。被编译过的源文件在没有链接之前是彼此孤立的,即不能够互相传达信息,所以被编译过后得到的目标文件仍然不能直接运行。.输入一个字符串,把其中的字符按逆序输出。如输入LIGHT,输出THGIL。要求用string方法。#includeiostream#includestringusingnamespacestd;intmain(){stringstr;inti,n;chartemp;coutpleaseinputastring:;cinstr;n=str.size();for(i=0;in/2;i++){temp=str[i];str[i]=str[n-i-1];str[n-i-1]=temp;}coutstrendl;return0;}.有5个字符串,要求将它们按由小到大的顺序排列,用string方法。#includeiostream#includestringusingnamespacestd;intmain(){inti;stringstr[5]={BASIC,C,FORTRAN,C++,PASCAL};voidsort(string[]);sort(str);coutthesortedstrings:endl;for(i=0;i5;i++)coutstr[i];coutendl;return0;}voidsort(strings[]){inti,j;stringt;for(j=0;j5;j++)for(i=0;i5-j;i++)if(s[i]s[i+1]){t=s[i];s[i]=s[i+1];s[i+1]=t;}}二章1.#includeiostreamusingnamespacestd;classTime{public://成员改为公用的inthour;intminute;intsec;};Timet;voidset_time(void)//在main函数之前定义{cint.hour;cint.minute;cint.sec;}voidshow_time(void)//在main函数之前定义{coutt.hour:t.minute:t.secendl;}intmain(){set_time();show_time();return0;}2.#includeiostreamusingnamespacestd;classTime{public:voidset_time(void){cinhour;cinminute;cinsec;}voidshow_time(void){couthour:minute:secendl;}private:inthour;intminute;intsec;};Timet;intmain(){t.set_time();t.show_time();return0;}3.#includeiostreamusingnamespacestd;classTime{public:voidset_time(void);voidshow_time(void);private:inthour;intminute;intsec;};voidTime::set_time(void){cinhour;cinminute;cinsec;}voidTime::show_time(void){couthour:minute:secendl;}Timet;intmain(){t.set_time();t.show_time();return0;}6.#includeiostreamusingnamespacestd;classBox{public:voidget_value();voidvolume();voiddisplay();public:floatlengh;floatwidth;floatheight;floatvol;};voidBox::get_value(){coutpleaseinputlengh,width,height:;cinlengh;cinwidth;cinheight;voidBox::volume(){vol=lengh*width*height;}voidBox::display(){coutvolendl;}intmain(){Boxbox1,box2,box3;box1.get_value();box1.volume();coutvolmueofbax1is;box1.display();box2.get_value();box2.volume();coutvolmueofbax2is;box2.display();box3.get_value();box3.volume();coutvolmueofbax3is;box3.display();return0;}三章2.分析下面的程序,写出其运行时的输出结果。#includeiostreamusingnamespacestd;classDate{public:Date(int,int,int);Date(int,int);Date(int);Date();voiddisplay();private:intmonth;intday;intyear;};Date::Date(intm,intd,inty):month(m),day(d),year(y){}Date::Date(intm,intd):month(m),day(d){year=2005;}Date::Date(intm):month(m){day=1;year=2005;}Date::Date(){month=1;day=1;year=2005;}voidDate::display(){coutmonth/day/yearendl;}intmain(){Dated1(10,13,2005);Dated2(12,30);Dated3(10);Dated4;d1.display();d2.display();d3.display();d4.display();return0;}输出结果:10/13/200512/30/200510/1/20051/1/20053..如果将“第二题”中的程序的第5行改为用默认参数,即Date(int=1,int=1,int=2005);分析程序有无问题。上机编译,分析出错信息,修改程序使之能通过编译。要求保留上面一行给出的构造函数,同时能输出相同的输出结果。#includeiostreamusingnamespacestd;classDate{public:Date(int=1,int=1,int=2005);voiddisplay();private:intmonth;intday;intyear;};Date::Date(intm,intd,inty):month(m),day(d),year(y){}voidDate::display(){coutmonth/day/yearendl;}intmain(){Dated1(10,13,2005);Dated2(12,30);Dated3(10);Dated4;d1.display();d2.display();d3.display();d4.display();return0;}四题建立一个对象数组,内放5个学生的数据(学号,成绩),用指针指向数组首元素,输出第1,3,5个学生的数据#includeiostream.hclassstudent{public:student(inta=0,intb=0);~student();student(student&m);voiddisplay(void);//显示学号和成绩voidsetnum(intn);voidsetmark(intm);private:intnum;intmark;};student::student(inta,intb){num=a;mark=b;}voidstudent::setnum(intn){num=n;}voidstudent::setmark(intm){mark=m;}voidstudent::display(void){cout学号:numendl;cout成绩:markendl;}student::student(student&m){num=m.num;mark=m.mark;}student::~student(){}intmain(){inti,m,n;student*p;p=newstudent[5];for(i=0;i5;i++){cout请输入学号:;cinn;(p+i)-setnum(n);cout请输入成绩:;cinm;(p+i)-setmark(m);}for(i=0;i5;i++){if