高级程序设计模拟题_第1页
高级程序设计模拟题_第2页
高级程序设计模拟题_第3页
高级程序设计模拟题_第4页
高级程序设计模拟题_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/得分一、选择题。在题后括号内,填上正确答案代号。(本大题共10小题,每小题2分,共20分)1、下列有关内联函数的叙述中,正确的是(d)A、内联函数在调用时发生控制转移 B、是否最后内联由编译器决定C、必须通过关键字inline来定义 D、是否最后内联由编译器决定2、以下哪一关键字可用于重载函数的区分(d)A、extern B、static C、const D、virtual3、下列有关继承和派生的叙述中,正确的是(c)A、派生类不能访问通过私有继承的基类的保护成员B、派生类不能访问通过保护继承的基类的公有成员C、派生类对象不能访问通过私有继承的基类的公有成员D、派生类对象不能访问通过公有继承的基类的公有成员4、以下哪个关键字对应的属性破坏了程序的封装性(b)A、const B、friend C、public D、protected5、在下列关于C++函数的叙述中,正确的是(c)A、每个函数至少要有一个参数 B、每个函数都必须返回一个值C、函数在被调用之前必须先声明 D、函数不能自己调用自己6、对于类的常成员函数的描述正确的是(d)A、 常成员函数不能访问类的数据成员B、常成员函数可以对类的数据成员进行修改C、常成员函数只能由常对象调用D、常成员函数不修改类的数据成员7、下列关于new运算符的描述中,哪个是错误的?(d)A、它可以用来动态创建对象和对象数组;B、使用它创建的对象或对象数组,可以使用delete删除;C、使用它创建对象时要调用构造函数;D、使用它创建对象数组时必须指定初始值。8、下列运算符中,哪一个不能重载?(c)A、<<B、>>C、()D、?:9、下列函数参数默认值定义错误的是(c)A、Fun(intx,inty=0)

B、Fun(intx=100)C、Fun(intx=0,inty)D、Fun(intx=f())

(假定函数f()已经定义)10、下列情况中,哪一种情况不会调用拷贝构造函数(B)A、用派生类的对象去初始化基类对象时TB、将类的一个对象赋值给该类的另一个对象时C、函数的形参是类的对象,调用函数进行形参和实参结合时D、函数的返回值是类的对象,函数执行返回调用者时T得分二、填空题。在题中“”处填上答案。(本大题共5小题,共10分)1、类的三大基本特征是:类的封装性、多态性和_继承性_。2.在C++中,不能为抽象类定义对象。3.在定义派生类时,默认的继承方式是私有继承。4.构造函数中调用虚函数时,采用动态联编。5、在ifstream的构造函数中其默认的打开方式为(读入/输入方式)iso::in。得分三、程序阅读。(每题5分,共20分)1、下面程序的输出结果是36。#include<iostream>usingnamespacestd;inti=10;intfun(intn){ staticinta=6; a++; returna+n;}voidmain(){ intk=8; { inti=3; k+=fun(i); } k+=fun(i); cout<<k;}2、下面程序的输出结果是。#include<iostream>usingnamespacestd;voidswap(int&v1,int&v2){inttemp;temp=v2;v2=v1;v1=temp;}voidswap(int*v1,int*v2){inttemp;temp=*v2;*v2=*v1; *v1=temp;}voidmain(){ inti=18; intj=20; swap(i,j); swap(&i,&j);cout<<i<<","<<j<<endl;}3、下面程序的输出结果是。#include<iostream>usingnamespacestd;classBase{public: Base(inti) { cout<<i; }};classBase1:virtualpublicBase{public: Base1(inti,intj=1):Base(j) { cout<<i; }};classBase2:virtualpublicBase{public: Base2(inti,intj=2):Base(j) { cout<<i; }};classDerived:publicBase2,publicBase1{public: Derived(inta,intb,intc,intd):member1(a),member2(b),Base1(c),Base2(d),Base(a) { cout<<d; }private: Base1member1; Base2member2;};voidmain(){ DerivedobjD(3,4,5,6);}4、下面程序的输出结果是。#include<iostream>usingnamespacestd;classBase{public: virtualvoidf() { cout<<"Bf"; } voidg() { cout<<"Bg"; }};classDerived:publicBase{public: voidf() { cout<<"Df"; } voidg() { cout<<"Dg"; }};voidmain(){ Derivedd; Base*p=&d; p->f(); p->g();}得分四、程序填空。(每空2分,共24分)1、下面是个Cat类的声明与使用,请补充完整。#include<iostream>usingnamespacestd;classCat{ staticintcount;public: Cat() { count++; cout<<"Nowcatnumberis"<<count<<endl; } ~Cat() { count--; cout<<"Nowcatnumberis"<<count<<endl; }};(1)=0;intmain(){ Cata,b,c; return0;}2、已知文件之间具有以下的包含关系(用#include指令);Rectangle.cpp包含Rectangle.h,Rectangle.cpp同时包含Point.h,Rectangle.h包含Point.h。那么如下的Point.h文件缺少什么语句,请补充完整。//Point.h文件#ifndefPOINTH(2)classPoint{ ...}

;#endif3、使用命令行参数来编写主函数实现copy功能,编译完生成可执行程序copy.exe;在运行copy.exe时指定需要拷贝的文件。例如D:\copy.exetest1.txttext2.txt//copy.cpp#include<fstream>#include<iostream>usingnamespacestd;voidmain(intcount,(3)char*argv[]){ charc; ifstreaminfile; ofstreamoutfile; if((4)count!=3){cout<<"参数个数不对!\n";return;} infile.open(argv[1],ios::in); outfile.open(argv[2],(5)ios::out); if(!infile){cout<<"infileopenerror!\n";return;} if(!outfile){cout<<"outfileopenerror!\n";return;} while(infile.get(c)) (6)outfile.put(c); infile.close(); (7)outfile.close();}4、下面程序是一个学生类的定义,可以使用一个已有的对象来初始化新的对象,请把程序补充完整。#include<string>#include<iostream>usingnamespacestd;classStudent{private: char*name;public:Student(char*na)//构造函数{ name=new(8)char[strlen(na)+1]; if(name!=0) { (9)strcpy(name,na); } }Student(Student&p){ name=_(10)____newchar[strlen()+1]_____________________;专业班级专业班级学号姓名………………………装订线…………………… (strcpy(name,))____________________; } ~Student() { (deletename[])__________________; } };//类定义的结束voidmain(){ Studentwang("wang"); Studentli(wang);}得分五、编程题。(共26分)1、编写模板函数min_value()分别求三个整数,三个双精度数,或者数值类型的三个数据,函数的返回值是这几个数中的最小的值。(本小题8分)

2、声明矩形类Rectangle。已知该类有左上角坐标的成员数据为myPoint,高high、宽width都为double类型。(本小题8分)对应代码如下,请完成Rectangle类的两个构造函数的实现:#include<iostream>usingnamespacestd;classmyPoint //myPoint类定义{public: myPoint(intxx,intyy) { X=xx; Y=yy; } myPoint(myPoint&p) { X=p.X; Y=p.Y; }private: intX,Y;};classRectangle{private: myPointlefttop; doubleHeight; doubleWidth;public:Rectangle(intx,inty,doublew,doubleh):LEFTTOP(X,Y){This->Width=w;This->Height=h;}Rectangle(Rectangle&r);:lefttop(r.lefttop){this->width=r.w;this->height=r.h};//补充代码:

3、自定义的复数类声明如下,要实现主函数的代码,请把复数类中声明的函数代码补充完整。(本小题10分)#include<iostream>usingnamespacestd;classcomplex //复数类声明{public: complex(doubler=0.0,doublei=0.0) { real=r; imag=i; } com

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论