《2023年面向对象程序设计模拟试卷.pdf》由会员分享,可在线阅读,更多相关《2023年面向对象程序设计模拟试卷.pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计模拟试卷一单 选 题(15).1.关于构造的叙述 对的:A.最先构造虚基类g B.最先构造基类C.最先构造派生类的对象成员 4).都不对2.关于静态数据成员的叙述 对的:A.公有的可在类体外初始化。B.私有的不能在类体外初始化C.私有和保护的不能在类体外初始化Q.都可以且必须在体外初始化3.若派生类函数不是基类的友元,关于该函数访问基类成员 对的:0A.公有的可被派生类函数访问 B.都可以被派生类函数访问 C.公有和保护的可被派生类函数访问。D.都不对4.关于函数的所有缺省参数的叙述 对的:A.只能出现在参数表的最左边。止.只能出现在参数表的最右边C.必须用非缺省的参数隔开。-
2、D.都不对5.使 用 friend、vir t u a 1、st a tic说明函数的叙述 对的:A.必须同时使用三个。B.只能同时用其中两个 C.只能独立单个地使用 o D.都不对二.指出各类的成员及其存取属性(2 0)。;class Aclass C:A(inta;intg;protected:protected:intb;inth;public:public:intc;inti;););class B:protected Aclass D:B,Cintd;intj;protected:protected:inte;B:b;public:intk;A:c;private:intf;intn
3、;);三.指 出 m a in 中每行的输出结果(2 0)。#inc 1 u d e s t ru c t A A()coutA;;s t ruct BB()cou t f B1;);struct C:AC()cout*;struc t D:vir t ual B,C D()coutD;);stru c t E:AC c;E():c()coutE;);stru c t F:v irtual B,C,D,E*()coutvV F;);vo i d ma i n()A a;cou t n*;B b;c outvW;C c;co u t*n*;D d:cout,n,;E e;c o u t n;F
4、f;c o u t,n,;)四.指出以下程序的语法错误及其因素(15)oc 1 ass Asta t i c int a=0;j p r otected:i n t b;pub 1 ic:j int c;j A(int);operator i n t();a(1,2);jclas s B:A B(i nt);j v i r t u al i n t d;j in t e;jpu b lie:j A::b;j frien d in t op e rator=(B);j s t a t i c B(int,i nt);b=5;c l a s s C:B pu b lie:i n t o pe r
5、a t o r+(d o u b 1 e););i nt main()int*A::*p,i;i=a.a;i=A(4);i=b.c;p=&A:c;i=b;return;)五.指 出 mai n 变量i 在每条赋值语句执行后的值(1 5)。int x=2,y=x+30;s tr u ct Ast a ti c int x;i n t y;public:opera t or int()retu r n x-y;A oper a tor+(int)return A(x+,y+);A(in t x=::x+2,int y=::y+3)A:x=x;A:y=y;)int&h(i n t&x););int&
6、A:h(int&x)(f o r(int y=1;y!=1 I I x 2 00)x-=21;y-=2;r etur n x-=10;)i nt A:x=2 3;v o i d main()A a(54,3),b(6 5),c;in t i,&z=i,A:*p=&A:y;z=b.x;i=a.x;i=c.*p;i=a+;i=::x+c.y;i=a+b;b.h(i)=7;)六.为了没有误差地表达分数,定 义 类 F R A C T IO N 来表达分数,请编程实现分数类中的除cmd外的所有函数(15)。c 1 ass FR A C TIO N /对于与,numer a tor 存分子 6,d e
7、nomi n a t or 存分母 7i n t nume r a t o r,denomi n ato r;j s t atic int c md(i n t x,in t y)?。求整数x,y的最大公约数p u b 1 i c:int op e rator(cons t FRACTION&)const;。/大于比较,例 y-|FR ACT I ON(int num,i n t den=l);。“/n u m、d en 各为分子和分母FRACT IO N o p era t or()c o n s t;。/分数约简,*丹 =336 6FRAC T ION operator+(c o nst
8、F R ACT I ON&)c onst;/加法,y+|=1 yFRACTION o p er a t o r*(cons t FRACTION&)c o n s t;/乘法,;g 吟=.):i nt FRACTION:cmd(int x,in t y)int r;if(xy)r=x;x=y;y=r;while(y!=0)y=x%(r=y);x=r;r e turn x;6面向对象程序设计模拟试卷二单项选择题(从下列各题四个备选答案选出一个对的答案,并将其代号填在题干前的括号内。答案选错或未作选择者,该题不得分。每小题1 分,共 1 0分)()1.以下有关析构函数的叙述,选择对的的填入括号内。
9、A.可以进行重载可以定义为虚函数B.不能进行重载可以定义为虚函数C.可以进行重载不能定义为虚函数D.不能进行重载不能定义为虚函数()2 .以下有关函数缺省参数的出现位置,选择对的的叙述填入括号内。A.必须所有出现在函数参数表的左部B.必须所有出现在函数参数表的右部o C.必须所有出现在函数参数表的中间D.都不对()3.关于两个同名函数重载的叙述,选择最为对的的填入括号内。A.两个函数的参数个数不同由.两个函数相应的参数类型不同oC.两个函数的参数个数不同或相应的参数类型不同D.都不对()4.关于i n l i n e 保存字的用途,选择对的的叙述填入括号内。A.只能用于定义成员函数B.只能用于
10、定义非成员函数oC.可以定义成员函数及非成员函数D.都不对()5.关于类的构造函数的定义位置,将最为对的的叙述填入括号内。3 A.只能在p r i v a t e 下定义 B .只能在p r o t e c t e d 下定义C.只能在p u b l i c 下定义D.定义位置没有限制()6.如下修饰类体中函数的返回类型,将对的的用法填入括号内。A.同时使用s tati c 和 f rie n dB.同时使用static和 virtualC.同时使用fr i e n d 和 virtua 1D.不同时使用上述三个保存字中的任意两个()7.在如下关于继承的叙述中,选择对的的填入括号内。A.私有继
11、承用于实现类之间的ISA关系O B.保护继承用于实现类之间的IS A 关系C.公有继承用于实现类之间的ISA关系D,都不对()8.对于用union定义的类A,选择对的的叙述填入括号内。A.类 A 可以作为某个类的基类oB.类A 可以作为某个类的派生类 C.类 A 既不能作基类又不能作派生类D.类A 既可以作基类又可以作派生类()9.有关在类中声明友元函数的叙述,将对的的答案填入括号内。A.只能在p r i v a t e 下声明B.只能在pro t ec t ed下声明 C.只能在p ub l ie 下声明D.声明位置没有限制()1 0.在构造派生类A 的对象时,选择对的的叙述填入括号内。A.
12、最先构造派生类A 的基类B.最先构造派生类A 的虚基类C.最先构造派生类A 的数据成员对象D.都不对二.多项选择题(从下列各题四个备选答案选出二至四个对的答案,并将其代号填在题干前的括号内。答案选错或未选全者,该题不得分。每小题2 分,共 1 0 分)()11.将符号为分隔符的编号填入括号内。A.m“B.+。C.D.=)12.将用于定义类的保存字的编号填入括号内。8A.c l a s s B.s tru c t in t。D.u n ion()1 3.将用于释放p=new int 8 的内存的编号填入括号内。A.free(p)B.del e t e p C.d e lete p D.siz e
13、 of p()14.将派生类成员函数可访问的基类成员编号填入括号内。A.pr i v a te B.pr o t e c t e dC.publi c D.所有成员)1 5.将不能重载的运算符函数的编号填入括号内。A.?:ooB.::OMC.%D.三.填 空 题(阅读以下程序并填空。每 题 1分,共 1 0 分)c 1 a ss A g t int a;。p r o te c ted:。?in t b;。public:o 。i nt c;o a;。c la s s B:p ro t ectedeein t d;g ep ro t ecte d:。int e 产。pub 1 i c:8 bcla
14、 s s C:A oint g;pro t ected:int h;pu b li c:i nt c;c;A o stru c t D:B,Cin t j;6pro te c ted:B:b;d;。v oid main(void)i nt x;1 6.对于 main,对象a 的私有成员为1 7.对于mai n,对象a 的保护成员为1 8.对于 main,对象a 的公有成员为。19.对于 main,对象b 的私有成员为。2 0.对于ma i n,对象b 的保护成员为2 1.对于main,对象c 的保护成员为。2 2.对于 main,对象 c 的公有成员为。2 3.对于main,对象d的保护成员为
15、。24.对于 mai n,对象 d 的公有成员为。25.m a in应使用语句x=取对象d的基类C的成员c的值。四.名词解释(每小题3分,共1 5分)2 6.标记符:2 7.重载:28.异常:29.类型强制:3 0.抽象类:五.判断改错题(阅读以下程序并判断各题是否对的,对 对 的 的 就 在 其 题 号 前 打 错 误的在其题号前打x,并在题干后的括号内更正。每小题3分,共15分)#inc 1 ude st r uct A A()c o u t A;;s tructB B()co u tB;st r u c t C:A C()c o u t C,;);s truct D:vir t ua 1
16、 B,C(D()co u t D;);s t r u ct E:A C c;E():c()co u tV E;);s t ruct F:vir t u al B,C,D,EF()c o u t F;);void ma i n()/*.*/()31.如main定义A a,则输出为A。()()3 2.如m ain定义C c,则输出为BAC。()()33.如 m a in 定义D d,则输出为BACD。()()3 4.如m a in 定义E e,则输出为AACE。()()3 5.如 ma in 定义 F f,则输出为 BCDEF。()六.计算题(阅读如下程序并计算执行结果。共 20分)in t x=
17、2,y=x+3O;struct A static in t x;i n t y;publ i c:o p e r ator in t()r e turn x+y;A o perato r+(int)r etu r n A(x+,y+);)A(in t x=:x+2,int y=:y+3)A::x=x;A:y=y;i n t&h(int&x););int&A::h(i n t&x)f o r(in t y=1;y!=1|I x20 0)x-=2 1;y-=2;r e turn x-=1 0;in t A::x=2 3;v o id main()A a(5 4,3),b(6 5),c;i nti,
18、&z=i,A:*p=&A::y;i=b.x;/z=a.x;ooo/,i=c.*pi=a+;/i-:x+c.y;。/i=a+b;/.(6)b,h(i)=7;。“/.)3 6.语句执行结束后i=。(2 分)3 7.语句执行结束后i=。(3 分)38.语句执行结束后i=。(3 分)3 9 .语句执行结束后i=。(3 分)40.语句执行结束后i=。(3 分)41.语句执行结束后i=o (3 分)4 2.语句执行结束后i=(3 分)七.设 计 题(20分)43.如下复数类说明了五个成员函数,请具体定义这五个函数的函数体。(每个定义4 分)clas s COMPLEX 。/real,i mag分别为复数的
19、实部和虚部,doubl e re a 1,i m a g;。若 x=3+5 i,则 x.r e al=3,x.i mag=5pub l i e:COMPLEX(d o u b le r=0,dou b le i=0);COMPL E X&operat o r+=(const C O M P LEX&c);CO M P L EX&o pera t o r+();。/复数的实部和虚部加1COMPLEX operator-()const”/将实部和虚部的符号求反CO MPLEX op e rat o r+(co n st COMPL E X&c)c o n s t;;面向对象程序设计模拟试卷一答案一
20、解:l.A,2.D。3.C 4.B 5.C二解:各类的成员及其存取属性如下。1 .private:inta;2.private:int d;protected:protected:intb;int e;public:int b;intc;public:int c;int f;3.private:4.private:intg;int n,j;intb;int e,c;intc;int f,h;protected:int i;inth;protected:public:int b;inti;int k;三解:ma I n 中每行的输出结果见如下注释。A a;c o utvvn;/输出 AB b;c
21、o u t n;输出 BC c:coutn;。输出 ACD d;coutn;。/输出 BACDE e;c o u t nz;/输出 AACEF f;co u t (con s t FRA CTION&f)c o ns t do u ble d=d e n om i n at o r*f.d e nom i nato r;r et u rn(numer a t or*f.denomina t or/d den o mi n a t or*f.n u mer a tor/d);FRACTION FRACTION::o p e ra t or*()consti n t c=cmd(n u m e r
22、ator,d e n o min a to r);re t urn FRACTION(numer a tor/c,denomin a t o r/c);FRACTION FRACTI ON:operato r+(c onst FR ACTION&f)c on s tint n=n u merator*f.de n omi n ator+d en omin a t o r*f.n umerato r;i nt d=denomi n ator*f.denomi n ator;ret u rn*FRACTI 0N(n,d);“/对运算结果进行约分运算)FRACTION FRA CTION:opera
23、 t or*(c o n s t FRACTION&f)constreturn*F R ACT ION(numerato r*f.n umerato r,denominator*f.d e n omin ato r);/约分面向对象程序设计模拟试卷二答案一解:单项选择题答案1 .B。2.B 3,C 4.C 5.D6.D。7.0 8.C。9.D 10.B二解:多项选择题答案1 1.BCD。12.ABD 1 3.ABC。14.BC。15.AB三解:填空题答案16.。a.17.o。a.b1 8 3 a.c19.ob.d20.ob.b,b.e2 1.c.h2 2.ac.c2 3.d.b,d.e,d.h
24、24.oo d.B:c,d.f,d.C::c,d.j25.d.C:c四解:名词解释答案2 6.标记符:标记符是程序变量、常量、函数和类型的名字,通常是由字母或下划线开始的字母、数字或下划线等符号序列构成。(要点:仅回答名字或构成得2 分,全答得 3 分)2 7 .重载:重载是指用一个标记符或操作符命名多个函数,用于完毕多个不同类型的操作。(要点:没有回答多个扣1 分,没有回答操作符可不扣分)2 8 .异常:异常是指函数执行出现了不正常的现象、或运营结果出现了无法定义的情况而必须中断程序执行的状态。(要点:未回答不正(平)常、结果无法定义或中断执行,可 扣 1分)2 9 .类型强制:类型强制是指
25、将一种类型映射或转换为另一种类型。(要点:没有映射或转换扣1分,没有涉及两种类型扣1 分)30.抽象类:抽象类是指定义了纯虚函数、或继承了纯虚函数但没有定义函数体的类 或者抽象类是不能定义或产生实例对象的类。(要点:或者前后的两种回答都可以得分)五解:判断改错题答案31.V32.X 改正:AC33.V34.V3 5.X 改正:BACACD AACEF六解:计算题答案36.i=4 3 7.i=4 38.i=35 39.i=74 0.i=374 1 .i=47 4 2.i=7七解:设计题答案要点如下,达不到规定各扣1 分。所有函数头必须包含COMPLEX:构造函数定义时不能再次定义缺省参数返回类型
26、为COMPLEX&的&不能省略返回类型为COM P L EX&的必须 用 r eturn*this返回类型为COMPLEX的必须定义局部对象或使用常量对象 const不能漏掉,凡尾部部带c o n s t的函数不能改变当前对象的值。4 3.五个成员函数如下。COMPLEX::C OM P LEX(doub 1 e r,do u ble i)re a l=r;i mag=i;COMPLEX&COMPLEX:opera t or+=(cons t COMPL EX&c)re a l+=c.r e al;imag+=c.im a g;r et u m*th i s;)COMPLE X&C OMP LEX:ope rato r+()/前置运算,先运算后取值rea 1 +;imag+;r etum*this;COMPLEX C 0 MPLEX:o p erato r-()const r e t urn CO MP LEX(-real,i mag);C OMPLEXCOMPLEX:ope r a t o r+(cons t COMPLEX&c)c ons t r e t urn C 0 M PLE X(real+c.re a l,i m a g+c.im a g);