版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、C+的特点:C+语言具有以下特点:(1)C+是C语言的超集。它既保持了C语言的简洁、高效和接近汇编语言等特点,又克服了C语言的缺点,其编译系统能检查更多的语法错误,因此,C+比C语言更安全。(2)C+保持了与C语言的兼容。绝大多数C语言程序可以不经修改直接在C+环境中运行,用C语言编写的众多库函数可以用于C+程序中。(3)支持面向对象程序设计的特征。C+既支持面向过程的程序设计,又支持面向对象的程序设计。(4)C+程序在可重用性、可扩充性、可维护性和可靠性等方面都较C语言得到了提高,使其更适合开发大中型的系统软件和应用程序。C+对C那些发展?2.一个c+程序由哪几部分构成?每一部分的作用是
2、什么?任何的可被执行的程序都必须要有一个被执行的入口点,当然C+也不会例外,有main函数作为整个程序的入口点,而且必不可少。再有就是在main函数中所要用到的类,这个部分的内容由#include将类的内容在链接的过程中参与到整个程序的过程中,但是这个部分的内容并不参与编译。为了管理的清晰和系统化,类方法的实现部分将会存在另外一个或者几个独立的文件中,当然如果不嫌弃有一个长长的文件的话,也可以将类的实现方法跟类放在同一个文件当中。总体上就分为这三个部分。4、请说明编辑、编译、连接的作用编辑是应用程序开发的第一步,工作内容就是输入、修改程序。通过程序编辑而得到的程序称为源程序,约定的扩展名是cp
3、p。编译是应用程序开发的第二步,工作内容就是分析程序文件中的源程序,生成目标程序,扩展名是obj。连接是应用程序开发的第三步,工作内容就是将若干目标程序加以归并、整理,为所有的函数、变量分配具体地址,生成可执行程序,扩展名是exe。编译后得到的目标文件为什么不能直接运行?编辑的过程就是产生源代码的过程,这个部分的文件能很容易被人们理解和阅读,但是却不会被机器所读懂。编译的过程就是将被编辑的源文件生成机器所能读懂的语言的过程。链接就是在各个被编译的文件之间形成一个可以互通消息的同道。被编译过的源文件在没有链接之前是彼此孤立的,即不能够互相传达信息,所以被编译过后得到的目标文件仍然不能直接运行。构
4、造函数和析构函数的作用是什么?什么时候需要自己定义构造函数和析构函数?构造函数用来处理对象的初始化,它的功能是有用户定义的,用户根据初始化的要求设计函数体和函数参数;当一个类含有一些数据成员,你需要在实例化类的时候就初始化这些成员,就需要自己定义构造函数;析构函数作用是用来完成对象被删除前的一些清理工作,就是专门的扫尾工作;当你的类数据成员中使用了动态分配的内存,就需要定义自己的析构函数来释放这部分内存,防止内存泄露.输入一个字符串,把其中的字符按逆序输出。如输入LIGHT,输出THGIL。要求用string方法。#include#includeusingnamespacestd;intmai
5、n()stringstr;inti,n;chartemp;coutstr;n=str.size();for(i=0;in/2;i+)temp=stri;stri=strn-i-1;strn-i-1=temp;coutstrendl;return0;.有5个字符串,要求将它们按由小到大的顺序排列,用string方法。#include#includeusingnamespacestd;intmain()inti;stringstr5=BASIC,C,FORTRAN,C+,PASCAL;voidsort(string);sort(str);coutthesortedstrings:endl;for(
6、i=0;i5;i+)coutstri;coutendl;return0;voidsort(strings)inti,j;stringt;for(j=0;j5;j+)for(i=0;isi+1)t=si;si=si+1;si+1=t;二章1.#includeusingnamespacestd;classTimepublic:/成员改为公用的inthour;intminute;intsec;Timet;voidset_time(void)/在main函数之前定义cint.hour;cint.minute;cint.sec;voidshow_time(void)/在main函数之前定义coutt.h
7、our:t.minute:t.secendl;intmain()set_time();show_time();return0;2.#includeusingnamespacestd;classTimepublic: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.#includeusingnamespace
8、std;classTimepublic: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.#includeusingnamespacestd;classBoxpublic:voidget_value();voi
9、dvolume();voiddisplay();public:floatlengh;floatwidth;floatheight;floatvol;voidBox:get_value()coutlengh;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();b
10、ox2.volume();coutvolmueofbax2is;box2.display();box3.get_value();box3.volume();coutvolmueofbax3is;box3.display();return0;三章2.分析下面的程序,写出其运行时的输出结果。#includeusingnamespacestd;classDatepublic:Date(int,int,int);Date(int,int);Date(int);Date();voiddisplay();private:intmonth;intday;intyear;Date:Date(intm,intd
11、,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.displa
12、y();return0;输出结果:10/13/200512/30/200510/1/20051/1/20053.如果将“第二题”中的程序的第5行改为用默认参数,即Date(int=1,int=1,int=2005);分析程序有无问题。上机编译,分析出错信息,修改程序使之能通过编译。要求保留上面一行给出的构造函数,同时能输出相同的输出结果。#includeusingnamespacestd;classDatepublic:Date(int=1,int=1,int=2005);voiddisplay();private:intmonth;intday;intyear;Date:Date(intm,
13、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个学生的数据#includeclassstudentpublic:student(inta=0,intb=0);st
14、udent();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.
15、num;mark=m.mark;student:student()intmain()inti,m,n;student*p;p=newstudent5;for(i=0;i5;i+)coutn;(p+i)-setnum(n);coutm;(p+i)-setmark(m);for(i=0;idisplay();deletep;return0;5题建立一个对象数组,内放5个学生的数据(学号,成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出学号#includeusingnamespacestd;classstudentpublic:voidinput
16、();intnum;intscore;voidstudent:input()coutnum;coutendl;coutscore;coutendl;coutendl;voidmain()studenta5;for(inti=0;i5;i+)couti+1:;ai.input();student*max(student&,student&);student*p;p=&a0;for(i=0;i4;i+)p=max(*p,ai+1);coutmax=numscore(c2.score)return&c1;elsereturn&c2;10.将例3.13程序中的display函数不放在Time类中,而作
17、为类外的普通函数,然后分别在Time和Date类中将display声明为友元函数。在主函数中调用display函数,display函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。#includeusingnamespacestd;classDate;classTimepublic:Time(int,int,int);friendvoiddisplay(constDate&,constTime&);private:inthour;intminute;intsec;Time:Time(inth,intm,ints)hour=h;minute=m;sec=s;cla
18、ssDatepublic:Date(int,int,int);friendvoiddisplay(constDate&,constTime&);private:intmonth;intday;intyear;Date:Date(intm,intd,inty)month=m;day=d;year=y;voiddisplay(constDate&d,constTime&t)coutd.month/d.day/d.yearendl;coutt.hour:t.minute:t.secendl;intmain()Timet1(10,13,56);Dated1(12,25,2004);display(d1
19、,t1);return0;11.将例3.13中的Time类声明为Date类的友元类,通过Time类中的display函数引用Date类对象的私有数据,输出年、月、日和时、分、秒。#includeusingnamespacestd;classTime;classDatepublic:Date(int,int,int);friendTime;private:intmonth;intday;intyear;Date:Date(intm,intd,inty):month(m),day(d),year(y)classTimepublic:Time(int,int,int);voiddisplay(con
20、stDate&);private:inthour;intminute;intsec;Time:Time(inth,intm,ints):hour(h),minute(m),sec(s)voidTime:display(constDate&d)coutd.month/d.day/d.yearendl;couthour:minute:secendl;intmain()Timet1(10,13,56);Dated1(12,25,2004);t1.display(d1);return0;四章1.定义一个复数类complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的
21、普通函数。求两个复数之和。#includeusingnamespacestd;classComplexpublic:Complex()real=0;imag=0;Complex(doubler,doublei)real=r;imag=i;doubleget_real();doubleget_imag();voiddisplay();private:doublereal;doubleimag;doubleComplex:get_real()returnreal;doubleComplex:get_imag()returnimag;voidComplex:display()cout(real,im
22、agi)endl;Complexoperator+(Complex&c1,Complex&c2)returnComplex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag();intmain()Complexc1(3,4),c2(5,-10),c3;c3=c1+c2;coutc3=;c3.display();return0;有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运载符“+”,使之能用于矩阵相加。如:c=a+b#includeClassMatrix/定义Matrix类public:Matrix();/默认构造函数frien
23、dMatrixoperator+(Matrix&,Matrix&);/重载运算符“+”voidinput();/输入数据函数voiddisplay();/输出数据函数private:intmat23;Matrix:Matrix()/定义构造函数for(inti=0;i2;i+)for(intj=0;j3;j+)matij=0;Matrixoperator+(Matrix&a,Matrix&b)/定义重载运算符“+”函数Matrixc;for(inti=0;i2;i+)for(intj=0;j3;j+)c.matij=a.matij+b.matij;returnc;voidMatrix:inpu
24、t()/定义输入数据函数coutinputvalueofmatrix:endl;for(inti=0;i2;i+)for(intj=0;jmatij;voidMatrix:display()/定义输出数据函数for(inti=0;i2;i+)for(intj=0;j3;j+)coutmatij;coutendl;intmain()Matrixa,b,c;a.input();b.input();coutendlMatrixa:endl;a.display();coutendlMatrixb:endl;b.display();c=a+b;/用重载运算符“+”实现两个矩阵相加coutendlMatr
25、ixc=Matrixa+Matrixb:endl;c.display();return0;九题分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类(教师兼干部)。要求:在两个基类中都包含姓名,年龄,性别,地址,电话等数据成员。在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务)。在TeacherCadre类中还包含数据成员wages(工资)。对两个基类中的姓名,年龄,性别,住址,电话等数据成员使用相同的名字,在引用这些数据成员时,指定作用域。在类体中声明成员函数。在类定义外定义成员函数。在派生类Teache
26、r_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话、然后再用cout语句输出职务与工资#include#includeusingnamespacestd;classTeacherpublic:Teacher(stringnam,inta,chars,stringtit,stringad,stringt);voiddisplay();protected:stringname;intage;charsex;stringtitle;stringaddr;stringtel;Teacher:Teacher(stringnam,inta,chars,stringtit,stringad,stringt):name(nam),age(a),sex(s),title(tit),addr(ad),tel(t)voidTeacher:display()coutname:nameendl;coutageageendl;coutsex:sexendl;couttitle:titleendl;coutaddress:addrendl;couttel:telendl;classCad
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家管网集团2026届高校毕业生招聘考试参考题库(浓缩500题)及参考答案详解(综合题)
- 2026秋季国家管网集团福建公司高校毕业生招聘笔试备考试题(浓缩500题)及一套参考答案详解
- 2026国网江西省电力公司高校毕业生提前批招聘笔试参考题库浓缩500题及答案详解(典优)
- 2025国网湖南省电力校园招聘(提前批)笔试模拟试题浓缩500题及答案详解(名师系列)
- 国家管网集团2026届高校毕业生招聘考试参考题库(浓缩500题)附答案详解(考试直接用)
- 2026国网江苏省电力校园招聘(提前批)笔试模拟试题浓缩500题完整答案详解
- 2026国家管网集团广西公司秋季高校毕业生招聘笔试参考题库(浓缩500题)含答案详解(巩固)
- 2025国网天津市高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题及答案详解(基础+提升)
- 2026国家管网集团高校毕业生招聘考试参考题库(浓缩500题)及答案详解【网校专用】
- 2025国网内蒙古电力校园招聘(提前批)笔试模拟试题浓缩500题附答案详解(能力提升)
- 短视频与直播电商(全彩微课版) 教学大纲
- (完整版)硬笔行楷入门字帖
- DB510100T 235-2017 成都市域快速轨道交通工程设计规范
- GB/Z 44070-2024液压缸屈曲载荷评估方法
- 2023年小型水库雨水情测报和大坝安全监测设施项目-实施方案
- 2024《公共基础知识必刷300题》题库(a卷)
- 《西柏坡精神》班会课件
- 55项临床护理技术操作标准(49-55项)
- MOOC 创业基础-暨南大学 中国大学慕课答案
- 人工智能一体化三维重建应用于胸外科的中国专家共识
- 前列腺恶性肿瘤查房课件
评论
0/150
提交评论