visual+C++练习题.docx
- 文档编号:18323227
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:20
- 大小:19.57KB
visual+C++练习题.docx
《visual+C++练习题.docx》由会员分享,可在线阅读,更多相关《visual+C++练习题.docx(20页珍藏版)》请在冰点文库上搜索。
visual+C++练习题
面向对象编程程序设计复习题
一、编程题
1.试定义一个表示学生成绩的结构体,要求包含学号(no)、姓名(name)、数学成绩(math)、英语成绩(eng)、C++语言成绩(c)和三门课程的总分(sum),再定义两个变量(s1,s2)。
2.定义一个第1题的结构体类型的结构体数组stud,输入学生三门课成绩,然后按总分成绩排序后输出学生成绩。
3.定义一个学生类,其中有3个数据成员:
学号、姓名、年龄,以及若干成员函数。
同时编写main函数使用这个类,实现对学生数据的赋值和输出。
4.计算两点之间的距离。
可以定义点类(Point),再定义一个类(Distance)描述两点之间的距离,其数据成员为两个点类对象,两点之间距离的计算可设计由构造函数来实现。
5.编写一个程序,设计一个产品类Product,要求包含数据成员:
产品名称,产品单价,剩余产品数量,同时要求有构造函数,析构函数,显示剩余产品数量的成员函数。
6.编写一个程序计算两个给定的长方形的周长和面积,要求定义一个长方形rectangle的类。
7.声明一个Shape基类,在此基础上派生出Rectangle和Circle类,二者都有GetArea()函数计算对象的面积。
使用Rectangle类创建一个派生类正方形Square类。
8.声明一个哺乳动物Mammal类,再由此派生出狗Dog类,声明一个Dog类的对象,观察基类与派生类的构造函数与析构函数的调用顺序。
9.定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增加学号、班级、专业和入学成绩。
10.例7.2对候选人得票的统计程序。
设有3个候选人,最终只能有1人当选为领导。
今有10个人参加投票,从键盘先后输入这10个人所投的候选人的名字,要求最后输出这3个候选人的得票结果。
11.定义一个国家基类Country,包含国名、首都、人口等属性,派生出省类Province,增加省会城市、人口数量属性。
12.定义一个车基类Vehicle,含私有成员speed,weight。
派生出自行车类Bicycle,增加high成员;汽车类Car,增加seatnum成员。
从bicycle和car中派生出摩托车类Motocycle。
13.声明一个Rectangle类,有长(itsWidth)、宽(itsLength)等属性,重载其构造函数Rectanle()和Rectangle(intwidth,intlength)
14.写一个Complex类,将运算符“+”重载为适用于复数加法,重载函数不作为成员函数,而放在类外,作为Complex类的友元函数。
如例题10.3
15.例9.2有两个长方柱,其长、宽、高分别为:
(1)12,20,25;
(2)10,14,20。
求它们的体积。
编一个基于对象的程序,在类中用带参数的构造函数。
16.例11.8声明一个教师(Teacher)类和一个学生(Student)类,用多重继承的方式声明一个研究生(Graduate)派生类。
教师类中包括数据成员name(姓名)、age(年龄)、title(职称)。
学生类中包括数据成员name1(姓名)、age(性别)、score(成绩)。
在定义派生类对象时给出初始化的数据,然后输出这些数据。
17.写一个程序,定义抽象基类Shape,由它派生出5个派生类:
Circle,Square,
Rectangle,Trapezoid,Triangle。
用虚函数分别计算几种图形的面积,并求它们的和。
要求用基类指针数组,使它的每一个元素指向一个派生类的对象。
(第12章的习题5)
18.例13.11有一个整型数组,含10个元素,从键盘输入10个整数给数组,将此数组送到磁盘文件中存放。
19.例13.12从例13.11建立的数据文件f1.dat中读入10个整数放在数组中,找出并输出10个数中的最大者和它在数组中的序号。
20.定义一个Dog类,包含体重和年龄两个数据成员及相应的成员函数。
声明一个实例dog1,体重为5,年龄为10,使用I/O流把dog1的状态写入磁盘文件;再声明另一个实例dog2,通过读文件把dog1的状态赋给dog2。
21.第13章的习题3
二、阅读题
1.
#include
usingnamespacestd;
intmain()
{
charline[20];
cin>>line;
cout<<"line:
"< return0; } 如运行时输入Thisisexample. 2.写出下列程序运行结果: #include usingnamespacestd; structpoint {intx;inty;}st[5]={1,2,3,4,5,6,7,8,9,10}; voidmain() {inti; point*p; p=st; for(i=0;i<5;i++) {cout< p++;} } 3.写出下列程序运行结果: #include usingnamespacestd; classA { public: inta; A(): a(10) {cout< }; intmain() { Aobj1; Aobj2(obj1); cout< return0; } 4.下列程序的输出结果是__ #include usingnamespacestd; template Tmax(Tx[],intn) { inti; Tmaxv=x[0]; for(inti=1;i { if(maxv maxv=x[i]; } returnmaxv; } intmain() { inta[]={3,2,4,5,9,10}; doubleb[]={1.2,4.6,3.6,9.0}; cout< return0; } 5.下列函数average功能是计算10名学生3门课成绩的平均分,请填空。 #include usingnamespacestd; constintm=3; constintn=10; structstud{ intno; charname[16]; floatmark[m]; floatave; }; voidaverage(studst[]) {inti,j; floatsum; for(i=0;i {sum= (1);//1 for(j=0;j sum= (2);//2 (3)=sum/m;//3 } } voidmain() {studpreson[n]; average(preson); } 6.函数findbook的功能是: 在有n个元素的数组s中查找名为a的书若找到,函数返回数组下标,否则,函数返回-1,请填空。 structdata {intid; charname[20]; doubleprice; }book[100]; intfindbook(datas[],intn,chara[]) {inti; for(i=0;i if( (1))returni;//1 (2);//2 } 7.学生姓名(name)和年龄(age)存于结构体数组person中,函数fun的功能是: 找出年龄最小的那名学生,找出程序错误,并改正。 #include usingnamespacestd; structstud{ charname[20]; intage; }; fun(studperson[],intn)//1 {intmin; min=0; for(i=0;i if(person[i] return(person[min]); } voidmain(){studa[]={{"Zhao",21},{"Qian",20},{"Sun",19},{"LI",22}}; intn=4; studminpers; minpers=fun(a,n); cout<<"年龄最小者是: "< } 8.写出下列程序的运行结果 #include usingnamespacestd; structab {chara[5]; floatb; }; voidmain() {abx={"Li",89.6}; cout< } 9.写出下列程序的运行结果 #include usingnamespacestd; structab {chara; floatb; }; voidf(ab&y) {y.a='W'; y.b=90.5; } voidmain() {abx={'L',89.5}; f(x); cout< } 10.写出下列程序的运行结果 #include usingnamespacestd; enumweek{sun,mon,tue,wed,thu,fri,sat}; voidmain() {char*w[]={"sun","mon","tue","wed","thu","fri","sat"}; cout< cout< } 11.写出下列程序的运行结果 #include usingnamespacestd; structabc {charc; floatv; }; voidfun(abc&b) {b.c='A'; b.v=77.5; } voidmain() {abca={'D',90}; fun(a); cout< } 12.写出下列程序的运行结果 #include usingnamespacestd; #include structabc {charstr[10]; floatv; }; abcfun(abcx,abcy) {if(strcmp(x.str,y.str)>0)returnx; elsereturny; } voidmain() {abca={"Zhao",90},b={"Sun",78},c; c=fun(a,b); cout< 13.写出下列程序的运行结果 #include usingnamespacestd; voidmain() {enumFF{Mon=1,Tue}; char*a[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; cout< } 14.写出下列程序的运行结果 #include usingnamespacestd; typedefintarr[10]; voidmain() {inti; arra; int*p=a; for(i=0;i<10;i++) {*p=(i+1)*10; p++; } for(i=0;i<10;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- visual C+ 练习题