资源描述:
《C++08年高级语言程序设计(二)试题及答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第1页(共14页)上海大学2008~2009学年度春季学期试卷课程名:高级语言程序设计(二)课程号:08305002学分:4应试人声明:我保证遵守《上海大学学生手册》中的《上海大学考场规则》,如有考试违纪、作弊行为,愿意接受《上海大学学生考试违纪、作弊行为界定及处分规定》的纪律处分。应试人应试人学号应试人所在院系题号一(20)二(20)三(25)四(15)五(20)得分一、判断题(20分,每小题2分)1.类的数据成员的访问属性不能为public,成员函数的访问属性不能为private。(×)2.类
2、的成员函数对同类的所有对象的所有数据成员有无限制的访问能力。(√)3.对象的空间通常由其基本空间和资源空间构成。(√)4.任何类都一定有默认的构造函数。(×)5.执行赋值运算时由系统自动调用复制构造函数。(×)6.设计一个类,当其对象可能带有资源时,则应该为该类设计深复制构造函数、析构函数、重载深赋值运算符函数。(√)7.类的友元函数是类的成员函数。(×)8.类的静态成员函数只能通过对象来调用。(×)9.重载运算符时不能改变运算符的运算优先级和结合方向。(√)10.基类中访问属性为private的
3、数据成员在派生类中是存在的,但是它们被隔离起来了,派生类新增的成员函数(即并非由基类继承而来的)不能直接访问它。(√)成绩得分第2页(共14页)二、填空题(共20分,每空1分)1.根据如下程序及其运行结果,完成程序。#include<①iostream>usingnamespace②std;template③voidswap(T&a,T&b){④Ttemp;temp=a;a=b;b=temp;}templatevoidswap_p(T*a,T*b){T⑤
4、temp;temp=*a;*a=*b;*b=temp;}intmain(){intm=3,n=5;doublex=3.3,y=5.5;swap(⑥m,⑦n);cout<usingnamespacestd;classCompl
5、ex{public:Complex(doublereal=0,doubleimag=0);Complex&Set(doublereal=0,doubleimag=0);doubleReal()const;doubleImag()const;friendComplexoperator+(constComplex&c1,constComplex&c2);Complex&operator+=(constComplex&c);friendostream&operator<<(ostream&out,con
6、stComplex&c);friendistream&operator>>(istream&in,Complex&c);private:doublere,im;};Complex::Complex(doublereal,doubleimag){re=real;im=imag;}Complex&⑪Complex::Set(doublereal,doubleimag){re=real;im=imag;return*this;}doubleComplex::Real()⑫const{return⑬re;
7、}doubleComplex::Imag()const{return⑭im;}第4页(共14页)Complex⑮operator+(constComplex&c1,constComplex&c2){Complextemp;temp.Set(c1.re+c2.re,c1.im+c2.im);return⑯temp;}Complex⑰&Complex::operator+=(constComplex&c){re+=c.re;im+=c.im;return⑱*this;}ostream&operator
8、<<(⑲ostream&out,constComplex&c){out<<"("<>(istream&in,Complex&c){charstr[80];in.getline(str,80,'(');in.getline(str,80,',');c.re=atof(str);//标准函数doubleatof(char*);in.getline(str,80,')');//将字符串转