收藏 分销(赏)

面向对象程序设计-考试试题-答案.pdf

上传人:仙人****88 文档编号:6631182 上传时间:2024-12-18 格式:PDF 页数:6 大小:185.43KB 下载积分:10 金币
下载 相关 举报
面向对象程序设计-考试试题-答案.pdf_第1页
第1页 / 共6页
面向对象程序设计-考试试题-答案.pdf_第2页
第2页 / 共6页


点击查看更多>>
资源描述
A 卷 共6页 第1页 2009-2010 学年第 1 学期期末考试试题(A)卷 课程名称 面向对象程序设计 任课教师签名 出题教师签名 审题教师签名 考试方式(闭)卷 适用专业 08 计算、08 计科、08 网工、考试时间(120)分钟 题号 一 二 三 四 五 六 七 总分 得分 评卷人 注:一、二题答案写在各题前面的表格中,三、四题答案标明题号写在答题纸上。注:一、二题答案写在各题前面的表格中,三、四题答案标明题号写在答题纸上。一判断题(共 10 分,每题 1 分)一判断题(共 10 分,每题 1 分)题号题号 1 2 3 4 5 6 7 8 9 10 答案答案 1.根据定义 int n=1,&r=n;,则表达式+r,n-的值为 1。2.在构造类 A 的数组 A*a2时会调用构造函数 2 次。3.执行程序段 T a;T b=a;时,需要调用类 T 的赋值运算符函数。4.析构函数可以声明为类的 const 成员函数。5.在输出 T 类的对象 t 时 cout t,需要把运算符定义为类 T 的成员函数。6.计算函数对象表达式 greater()(a,b)后,结果为 false。7.类 B 从类 A 公有继承,则程序段 A a;B&b=a;会引发编译错误。8.类 A 中定义有纯虚函数,则函数原型 void f(A a);是错误的。9.仅设置字宽为 4,填充字符为#,则表达式 cout-10 的输出结果为-#10。10.istream 类成员函数 get 既可以输入单个字符,也可以输入整行字符串。二单选题(共 30 分,每题 2 分)二单选题(共 30 分,每题 2 分)题号题号 1 2 3 4 5 6 7 8 9 101112131415答案答案 1.有函数 f 定义如下:int f(int a=1,int b=2,int c=3)return a+b+c;下列说法中错误错误的是()。A函数调用 f()的结果为 6。B函数调用 f(f(f()的结果为 16。C函数调用 f(f(),f()的结果为 15 D函数调用 f(f(),f(f()的结果为 21。2.下列程序的输出结果是()。void f(int&i,int&j)int t(i);i=j,j=t;cout i t j t;int main()int a=5,b=8;f(b,a);cout a t b endl;A8 5 5 8 B5 8 8 5 C5 8 5 8 D8 5 8 5 3.如下是某同学定义的类 A,则其中有()处错误。class A int a=1;void A();A(void);A2 B3 C4 D5 4.针对下列类型定义,可以出现在 main 函数中的语句有()。class Date private:int year,month,day;A 卷 共6页 第2页 ADate d;BDate:year=1;CDate d=2009,1,1;Dcout month;5.有程序如下,下列说法中错误错误的是()。class RMB int yuan,jiao,fen;public:RMB(int y=0,int j=0,int f=0)yuan=y,jiao=j,fen=f;RMB()cout yuan :jiao :fen;int main()RMB a2,b(10,20,30),c(b);A20:10:30 不可能是程序的输出结果。B析构对象 c 时输出结果是 0:0:0。C0:0:0 会在输出结果中出现两遍。D对象 a0最后析构。6.类 A 是自定义类型,下列说法中错误错误的是()。A*a=new A;A*b=new A(a);delete a;delete b;A构造堆对象 a 时会调用类 A 的默认构造函数。B构造堆对象 b 时会调用类 A 的复制构造函数。C堆对象 a 先构造,所以它后析构。D释放指针 b 所指内存时,会调用类 A 的析构函数。7.a、b、c 是类 T 的对象,为计算表达式 c=a+b,必须()。A以成员函数形式重载加法运算符+。B以友元函数形式重载赋值运算符=。C以友元函数形式重载加法运算符+。D以 T 作为加法运算符函数的返回类型。8.函数模板 u2v 的功能是把 U 类型的数据转换为 V 类型的数据,它的定义如下,则下列说法中错误错误的是()。template V u2v(U u)return V(u);A表达式 u2v(3.14)的值为 3。B表达式 u2v(1.2)的值为 1。C表达式 u2v(a)的类型为 char。D必须显式实例化模板参数 V。9.s 是 STL 数据类型 string 的对象,下列表达式错误错误的是()。As+=s Bs=Hello Cs-a Ds abc 10.下列程序中,访问出错的是()。class A private:int x;protected:int y()x=1;/A public:int z;class B:public A public:void u()cout x;/B ;int main()B b;b.z=1;/C b.u();/D 11.有类型定义如下,则下列说法中错误错误的是()。class Object;class A Object oa;class B:public A Object ob;A构造类 B 的对象时会首先调用类 Object 的构造函数。B对语句 B b;的执行会先后引发 6 次函数调用。C析构类 B 的对象时,类 B 的析构函数在类 A 的析构函数之前调用。D析构类 A 的对象时会最后调用类 Object 的析构函数。12.下列()行的输出结果是 B:v。class A A 卷 共6页 第3页 public:void f()cout A:f endl;virtual void v()cout A:v endl;class B:public A public:void f()cout B:f endl;virtual void v()cout B:v f();/A pa-v();/B B b;pa=&b;pa-f();/C pa-v();/D 13.下列程序段中,ofs 是 ofstream 类的对象,ifs 是 ifstream 类的对象,c是 char 型变量,则执行结果是()。while(ifs.get(c)ofs.put(c);A把一个文件的第 1 个字节写入到另一个文件中 B把一个文件的内容全部写入到另一个文件 C仅仅把字符 c 写入到一个文件中 D把两个文件的内容合并到一起 14.下列()循环能够把 26 个小写字母以文本方式写入文件中。int main()int a;ofstream ofs(data.txt);a=a;while(a=z)ofs a+;/A a=a;while(a=z)ofs.put(a+);/B a=a;while(a=z)/C ofs.write(const char*)&a,sizeof(a);+a;a=a;while(a=z)cout str;getline(cin,s);A字符数组 str 的内容为Hello。B对象 s 的内容为Hello,World!。C对象 s 的内容为空字符串。D字符数组 str 的内容不包括空格。三程序分析(共 30 分,每题 5 分)三程序分析(共 30 分,每题 5 分)1.阅读程序,写出运行结果。阅读程序,写出运行结果。bool f(int n)return n%2=0;void g(int&n)if(f(n)n*=10;void h(int n)cout n t;int main()int a=2,1,4,3,6,7,5;int n=sizeof(a)/sizeof(*a);reverse(a,a+3);reverse(a+3,a+n-1);sort(a+2,a+n-2);for_each(a,a+n,g);for_each(a,a+n,h);2.阅读程序,写出运行结果。阅读程序,写出运行结果。class Object string name;public:A 卷 共6页 第4页 Object(char*s=NoName):name(s)cout name endl;Object(const Object&o):name(o.name)cout name endl;Object()cout name endl;Object MakeObject(char*s)Object obj(s);return obj;Object global(Global);int main()MakeObject(Local);3.阅读程序,写出运行结果。阅读程序,写出运行结果。class Rational int num,den;public:Rational(int n=0,int d=1):num(n),den(d)Rational&operator+()num+=den;return*this;Rational operator+(int)Rational r(*this);+(*this);return r;friend ostream&operator (ostream&os,const Rational&rhs)return os rhs.num /rhs.den;int main()Rational ra,rb(2,7);cout ra t rb n;ra=+rb;cout ra t rb n;ra=rb+;cout ra t rb n;4.阅读程序,写出运行结果。阅读程序,写出运行结果。class Base int n;public:Base(int i=0):n(i)cout n=n endl;Base()cout n=n endl;class Derived:public Base int n;public:Derived(int i=1):n(i)cout n=n endl;Derived()cout n=n endl;int main()Derived a,b(1);5.阅读程序,写出运行结果。阅读程序,写出运行结果。class Shape protected:double area;public:double GetArea()const return area;virtual void CalcArea()=0;virtual const char*WhoAmI()=0;class Point:public Shape public:void CalcArea()area=0;const char*WhoAmI()return Point;A 卷 共6页 第5页 class Square:public Shape double length;public:Square(double d):length(d)void CalcArea()area=length*length;const char*WhoAmI()return Square;class Circle:public Shape double radius;public:Circle(double d):radius(d)void CalcArea()area=3.14*radius*radius;const char*WhoAmI()return Circle;int main()vector vs;Point p;vs.push_back(&p);Square s(10);vs.push_back(&s);Circle c(10);vs.push_back(&c);for(size_t i=0;i vs.size();+i)cout WhoAmI()CalcArea();cout GetArea()endl;6.阅读程序,写出运行结果。阅读程序,写出运行结果。bool f(int i)return!(i%3);int main()ofstream ofs(nums.dat);int n=10;while(-n)ofs n x;if(f(x)+z,y+=x;cout x t;cout y/z endl;ifs.close();四程序设计(共 30 分,每题 10 分)四程序设计(共 30 分,每题 10 分)1.基本算法设计与应用(10 分)。(1)对 STL 算法 sort 的调用 sort(a,a+n,cmp)可以对区间a,a+n)(即从 a 开始的 n 个元素)按照准则 cmp 排序。请自定义函数模板 mysort实现这一功能,不能直接调用 sort 实现。(2)现有区间s,s+n),其元素是如下定义的类 Student 的对象。请应用上述函数模板 mysort 对区间元素按照成绩 score 从高到低排序。class Student public:string name;/姓名 int id;/学号 double score;/成绩 ;2.点和球的描述及计算(10 分)。(1)三维空间中的一点可以用坐标(x,y,z)。定义类 Point 描述点,提供构造函数,并重载减法运算符“-”计算两点之间的距离。(2)三维的球可以由圆心点 center 和半径 radius 决定。定义类 Sphere 描述球,定义构造函数,并提供成员函数计算两球的距离。(3)地球半径设为 re,月球半径设为 rm,某时刻它们分别处于点 pe 和 pm,计算它们的距离。3.计算机Computer的面向对象描述及模拟计算(10 分)。(1)每个计算机配件 ComputerAccessory 都有制造商manufacturer和价A 卷 共6页 第6页 格price两种属性。请定义类 ComputerAccessory,并提供必要的操作。(2)主板 MotherBoard、内存 Memory、显示器 Monitor 是典型的计算机配件。芯片组chipset、内存容量capacity、显示器类型mtype分别是这三种配件的重要特征。请定义类 MotherBoard、Memory、Monitor,并提供必要的操作。(3)主板、内存、显示器是计算机 Computer 的重要组成部分,请定义类Computer,并提供必要的操作。现配置一台计算机(芯片组为 Intel 的主板,2G 内存,显示器类型为 LCD),请计算其价钱(暂不考虑其他配件的价钱)。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服