四川大学电子信息学院卓越工程师班高级语言程序设计.docx
- 文档编号:3375857
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:15
- 大小:19.96KB
四川大学电子信息学院卓越工程师班高级语言程序设计.docx
《四川大学电子信息学院卓越工程师班高级语言程序设计.docx》由会员分享,可在线阅读,更多相关《四川大学电子信息学院卓越工程师班高级语言程序设计.docx(15页珍藏版)》请在冰豆网上搜索。
四川大学电子信息学院卓越工程师班高级语言程序设计
计算机学院2010级高级语言程序设计II计期末试题
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列语句中,错误的是()。
A)constintbuffer=256;B)constinttem;
C)constdouble*point;D)double*constpt=newdouble(5.5);
参考答案:
B
2.有以下函数模板:
template
TypeArea(constType&size){returnsize*size;}
其中Type是()。
A)函数形参B)函数实参
C)模板类型形参D)模板类型实参
参考答案:
C
3.由于常对象不能被更新,因此()。
A)通过常对象只能调用它的常成员函数
B)通过常对象只能调用静态成员函数
C)常对象的成员都是常成员
D)通过常对象可以调用任何不改变对象值的成员函数
参考答案:
A
4.如果派生类以public方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是()。
A)public和publicB)public和protected
C)protected和publicD)protected和protected
参考答案:
C
5.下列关于this指针的叙述中,正确的是()。
A)与类相关的所有函数都含有this指针
B)所有类的成员函数都有this指针
C)类的所有友元函数都有this指针
D)只有类的非静态成员函数才有this指针
参考答案:
D
6..在C++中,用于实现编译时多态性的是()。
A)友元函数B)重载函数
C)静态成员函数D)虚函数
参考答案:
B
7.在下列函数原型中,可以作为类AA构造函数的是()。
A)voidAA(int);B)intAA();
C)~AA(int);D)AA(int);
参考答案:
D
8.使用ifstream流类定义流对象并打开磁盘文件时,文件的默认打开方式为()。
A)ios:
:
inB)ios:
:
out
C)ios:
:
in|ios:
:
outD)没有默认的打开方式
参考答案:
A
9.在下面4个关键字中,用于说明虚基类的是()。
A)virtualB)public
C)protectedD)private
参考答案:
A
10.在面向对象方法中,实现信息隐蔽是依靠()。
A)对象的继承B)对象的多态
C)对象的封装D)对象的分类
参考答案:
C
二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。
错填或不填均无分。
1.含有纯虚函数的类称为()。
参考答案:
抽象类
2.若将一个二元运算符重载为类的成员函数,其形参个数应该是()个。
参考答案:
1
3.一个全局函数应声明为类的()函数才能访问这个类的private成员。
参考答案:
友元
4.重载运算符“>>”的函数名为()。
参考答案:
operator>>
5.定义模板的关键字为()。
参考答案:
template
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
1.阅读下面程序,写出输出结果。
#include
usingnamespacestd;//使用命名空间std
classCTest
{
private:
intn;//数据成员
public:
CTest(inti=16):
n(i){}//构造函数
intGet(){returnn;}//返回n
intGet()const{returnn-2;}//返回n-2
};
intmain()//主函数main()
{
CTesta;//定义对象a
constCTestb(8);//定义对象b
cout< return0;//返回值0,返回操作系统 } 上面程序的输出结果为: 参考答案: 16,6 2.阅读下面程序,写出输出结果。 #include usingnamespacestd;//使用命名空间std classA { public: A(){cout<<"A"< ~A(){cout<<"~A"< }; classB { private: Aa;//数据成员 public: B(){cout<<"B"< ~B(){cout<<"~B"< }; intmain(void)//主函数main() { Bobj;//定义对象 return0;//返回值0,返回操作系统 } 上面程序的输出结果为: 参考答案: A B ~B ~A 3.阅读下面程序,写出输出结果。 #include usingnamespacestd;//使用命名空间std template TMax(constT&a,constT&b){returna b: a;} intmain()//主函数main() { cout< return0;//返回值0,返回操作系统 } 上面程序的输出结果为: 参考答案: 5.18 5 4.阅读下面程序,写出输出结果。 #include usingnamespacestd;//使用标准命名空间std namespacens//命名空间ns { intx=10;//命名空间ns中的变量x inty=100;//命名空间ns中的变量y } namespace//无名命名空间 { intx=20;//命名空间中的变量x } inty=300;//全局变量y intmain(void)//主函数main(void) { cout< : x< cout< : y<<""< return0;//返回值0,返回操作系统 } 上面程序的输出结果为: 参考答案: 2010 100300 5.阅读下面程序,写出输出结果。 #include usingnamespacestd;//使用标准命名空间std //基类 classBase { public: //公有函数: virtualvoidShow()const{cout<<"Base: : Show()"< }; //派生类 classDerived: publicBase { public: //公有函数: voidShow()const{cout<<"Derived: : Show()"< }; voidRefers(constBase&obj)//基类引用 { obj.Show();//调用函数Show() } intmain()//主函数main() { Baseobj1;//定义对象 Derivedobj2;//定义对象 Refers(obj1);//调用函数Refers() Refers(obj2);//调用函数Refers() return0;//返回值0,返回操作系统 } 上面程序的输出结果为: 参考答案: Base: : Show() Derived: : Show() 6.阅读下面程序,写出输出结果。 #include usingnamespacestd;//使用标准命名空间std classA { protected: //数据成员: inta;//数据成员 public: //公有函数: A(intx): a(x){}//构造函数 voidShow()const{cout< }; classB { protected: //数据成员: intb;//数据成员 public: //公有函数: B(intx): b(x){}//构造函数 voidShow()const{cout< }; classC: publicA,publicB { public: //公有函数: C(intx,inty): A(x),B(y){}//构造函数 voidShow()const//显示b之值 {cout< }; intmain()//主函数main() { Cobj(5,18);//定义对象 obj.Show();//显示相关信息 obj.A: : Show();//显示相关信息 obj.B: : Show();//显示相关信息 return0;//返回值0,返回操作系统 } 上面程序的输出结果为: 参考答案: 5,18 5 18 四、程序填空题(本大题共4小题,每小题3分,共12分) 1.将如下程序补充完整。 #include usingnamespacestd;//使用标准命名空间std //测试静态成员类 classTest { private: //数据成员: staticintcount;//对象数 public: //公有函数: Test(){count++;}//构造函数,实现对对象进行计数 staticvoidShow(){cout<<"共有"< "< }; 0;//为静态数据成员赋初值 intmain()//主函数main() { Testobj1,obj2,obj3;//定义对象 Test: : Show();//显示对象数 return0;//返回值0,返回操作系统 } 参考答案: intTest: : count= 2.下列程序的输出结果为“B”,试将程序补充完整。 #include usingnamespacestd;//使用命名空间std classA { public: voidShow()const{cout<<"A"< }; classB: publicA { public: voidShow()const{cout<<"B"< }; intmain(void)//主函数main() { A*p=newB;//定义指针 p->Show();//输出信息 deletep;//释放空间 return0;//返回值0,返回操作系统 } 参考答案: virtual 3.将如下程序补充完整。 #include usingnamespacestd;//使用标准命名空间std //基类 classBase { private: //数据成员: intm;//数据成员 public: //公有函数: Base(inta): m(a){}//构造函数 virtualvoidShow()const{cout< }; //派生类 classDerived: publicBase { private: //数据成员: intn;//数据成员 public: //公有函数: Derived(inta,intb): Base(a),n(a){}//构造函数 voidShow()const//虚函数 { cout< Show();//调用基类的Show() } }; intmain()//主函数main() { Derivedobj(158,98);//定义派生类对象 Base*p=&obj;//定义基类指针 p->Show();//调用Show() return0;//返回值0,返回操作系统 } 参考答案: Base: : 4.将如下程序补充完整。 #include usingnamespacestd;//使用标准命名空间std //整型类 classInt { private: //数据成员: inti;//数据成员 public: //公有函数: Int(intx=0): i(x){}//构造函数,将基本类型int转换为整型类Int (){returni;}//类类型转换函数,将类Int转换为基本类型int }; intmain()//主函数main() { Inta;//定义整型对象 cout< return0;//返回值0,返回操作系统 } 参考答案: operatorint 五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分) 1.试使用函数模板实现求一个数组各元素的最小值,要求编写测试程序。 函数模板声明如下: template TypeMin(Typea[],intn)//求数组a各元素的最小值 参考程序: #include usingnamespacestd;//使用命名空间std template TypeMin(Typea[],intn)//求数组a各元素的最小值 { Typem=a[0];//用m表示当前所求的最小值 for(inti=1;i if(a[i] returnm;//返回最小值 } intmain()//主函数main() { inta[]={1,2,3,4,5,6,7,8,9};//定义数组 cout< return0;//返回值,返回操作系统 } 2.定义复数类Complex,并重载加法运算符“+”、重载输出运算符“<<”和重载输入运算符“>>”,要求编写测试程序。 参考程序: #include usingnamespacestd;//使用命名空间std //声明复数数 classComplex { private: //数据成员 doublereal;//实部 doubleimage;//虚部 public: //公有函数 Complex(doubler=0,doublei=0): real(r),image(i){}//构造函数 doubleGetReal()const{returnreal;}//返回实部 doubleGetImage()const{returnimage;}//返回虚部 voidSetReal(doubler){real=r;}//设置实部 voidSetImage(doublei){image=i;}//设置虚部 }; Complexoperator+(constComplex&a,constComplex&b)//重载加法运算符"+" { returnComplex(a.GetReal()+b.GetReal(),a.GetImage()+b.GetImage());//返回和 } istream&operator>>(istream&in,Complex&z)//重载输入运算符">>" { doubler,i;//表示实部(r)和虚部(i) cout<<"输入实部: "; in>>r;//输入实部 cout<<"输入虚部: "; in>>i;//输入虚部 z.SetReal(r);//设置实部 z.SetImage(i);//设置虚部 returnin;//返回输入流对象 } ostream&operator<<(ostream&out,constComplex&z)//重载输出运算符"<<" { if(z.GetImage()<0)cout< elseif(z.GetImage()==0)cout< elsecout< returnout;//返回输出流对象 } intmain()//主函数main() { Complexa,b,c;//定义复数对象 cout<<"输入复数a: "< cin>>a;//输入a cout<<"输入复数b: "< cin>>b;//输入b c=a+b;//求和 cout<<"("< return0;//返回值0,返回操作系统 }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四川大学 电子信息 学院 卓越 工程师 高级 语言程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)