




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C复习二试卷分析C复习二试卷分析C复习二试卷分析选择题1基类指针指向派生类动态对象
派生类动态对象建立时,因为构造函数和析构函数不能继承,继承的基类成员必须通过成员初始化列表:X(y)调用基类的构造函数先初始化基类继承的数据成员,再调用派生类构造函数初始化派生类的数据成员。132x::a=2b=1pa2选择题2派生类对象初始化基类引用建立临时的派生类对象调用基类、派生类的构造函数建立基类对象a1,调用基类的拷贝构造函数,派生类对象初始化基类引用。12112.a=3b=1a=3a1临时对象3选择题派生类对象初始化基类引用建立派生类对象b3建立基类对象a3,调用基类拷贝构造函数2123113.a=0b=10b3a=2a34选择题错。静态成员属于类,不分配this指针,不可以是虚函数错。不是可以是,而是必须是!错。函数重载实现静态多态性〔编译时完成〕,虚函数+继承可实现动态多态性〔程序运行时连编的〕对。5选择题知识点:转义字符A.错。正确表示:“d:\\dir\\test.txt〞,转义字符有:‘\d’‘\t’B.错。少1个形参,正确:fstreamfile(“d:\\dor\\test.txt〞,ios::in|ios::out)C.错。转义字符+少1个形参D.对。“direst.txt〞6选择题7选择题答案:选A形参1:void(*)(int,int,int),函数指针,地址传递函数原形说明:voidf(inta,intb,intc)—函数头,函数是先定义再使用,后定义先说明,函数指针:
void(*f)(inta,intb,intc)形参2:int整形,值的传递形参3:int整形,值的传递8选择题答案:选D从运算符的性质来看,重载运算符“==〞应返回逻辑值。故应选D。运算符重载,完成两个对象之间有复杂运算运算符重载函数的函数必须为:operator,后面跟一个合法的运算符。list&list::operator==(constlist&a)运算符重载不能改变运算符的优先级和结合性。“:〞,“.〞,“*〞,“::〞,sizeof不能重载9选择题对象建立时,调用构造函数,对象生命完毕时调用析构函数,调用次序恰恰相反答案:A。共建立了对象a,对象数组b[2],对象指针数组*c[2],分析有三个对象建立。调用三次构造函数。10选择题CC11选择题a=b=c分析:例:相当于:operator(a,operator=(b,c))从上面②的函数原形分析,实参2对应的该函数返回的是③对象的引用。但这个实参和对应形参④相比,它的数据类型应该是对象不是对象的引用。1243正确的应该是:Fraction&operator=(Fraction&,Fraction&)orFractionoperator=(Fraction&,Fraction)12选择题a+=b+=c分析:例:相当于:operator(a,operator+=(b,c))从上面②的函数原形分析,实参2对应的该函数返回的是③对象的引用。但这个实参和对应形参④相比,它的数据类型应该是对象不是对象的引用。1243正确的应该是:Fraction&operator=+(Fraction&,Fraction&)orFractionoperator=(Fraction&,Fraction)我认为D也是错的。③与④的数据类型应该是一样的。可以讨论。13阅读程序题fun(int*s,intn)fun(int*s,intn)fun(int*s,intn)fun(&f,3)*s=5*5cout<<f<<‘\n’fun(&f,1)*s=1*5cout<<f<<‘\n’*s=1&x5&f3&f14.15.56.x=25346152答案①14形参:函数的指针阅读程序题②15x,u,v全局变量,函数外定义函数原形说明:f(double)g(double)t(double,double(*)(double))
double(*)(double)—形参2是函数的指针,属于地址传递,用来传递函数的首地址。所传递的函数应该是返回值是double,形参只有一个且为double的。阅读程序题形参:函数的指针②16形参:函数的指针函数的调用:u=t(4,f)→112return(*f)(a*a)returnf(a*a)2337.u=18阅读程序题③②17阅读理解形参:函数的指针函数的调用:u=t(4,g)→112return(*f)(a*a)returnf(a*a)2338.v=14②18阅读理解程度输出的第一行9,是第二行是10第三行是11。基类对象:b基类指针:*pbi=101③19派生类对象:di=10j=47公有派生:public构造和析构函数不被继承,基类所继承的成员必须调用基类构造函数进展初始化。构造函数调用顺序:基类→派生类base(I)→j(J)析构函数调用顺序构造函数的调用顺序恰恰相反。21阅读理解③201基类指针指向派生类:pb=&dcall(b)
实参与形参都是基类对象,值传递;输出:sum=10call(d)
实参:派生类对象,形参:基类对象;值传递输出:sum=10212call函数形参阅读理解③213基类指针指向派生类:
pb=&dcall(*pb)
实参:派生类对象,形参:基类对象,值传递;
输出:sum=10pb33call函数形参阅读理解③22继承+虚函数=多态〔动态〕,即基类指针指向派生类时,只调对象的虚函数时,即产生多态。基类指针指向派生类对象,调用函数虚函数→派生类的虚函数不是虚函数→基类的函数pb122★阅读理解③23基类指针指向派生类对象,调用函数虚函数→派生类的虚函数不是虚函数→基类的函数b22★call(&b):实参:基类对象的地址;形参:基类指针b,调用基类的sum阅读理解③24阅读理解③基类指针指向派生类对象,调用函数虚函数→派生类的虚函数不是虚函数→基类的函数pb122★call(&d):实参:派生类对象的地址;形参:基类指针b,调用派生类的sum25阅读理解基类指针指向派生类对象,调用函数虚函数→派生类的虚函数不是虚函数→基类的函数22pb12☆★③26阅读理解2g函数与基类的虚函数的原形说明不一样,不是虚函数111派生类对象:Bb基类指针指向派生类:X*px=&b④27阅读理解2与基类的虚函数的原形说明不一样,不是虚函数111(),对象调成员函数,同名覆盖,调派生类的g函数,输出:B:55px->f(),基类指针px指向派生类b,调派生类的虚函数f()。输出:B:44px->g(),基类指针指向派生类,调非虚函数时,调基类的。输出:X:22④28阅读理解知识点:构造函数与析构函数对象建立时自动调用构造函数;对象消失时自动调用析构函数,两者的顺序恰恰相反⑤29阅读理解Af1(1),f2(f2);f1—构造函数f2—拷贝构造函数f2=A(f1);
临时对象—拷贝构造函数临时对象—析构函数f1=A(f2)
;临时对象—拷贝构造函数临时对象—析构函数f(2)=A(f1);临时对象—拷贝构造函数临时对象—析构函数析构析构f2析构f11234⑤30阅读理解f1x=1f2x=211临时对象x=2f2x=22112⑤31阅读理解12临时对象x=3f1x=333临时对象x=4f2x=44434⑤32阅读理解123455析构f2析构f1⑤f1x=3f2x=433阅读理解知识点:静态数据成员:x数据类型转换函数:operatorint()后置++:Aoperator(int)缺省的构造函数:A(intx=2,inty=3);voidprint();⑥34阅读理解1abcA::x=60y=10y=16y=6x=20x=4⑥35阅读理解1abcA::x=60y=10y=16y=6x=20x=422⑥36阅读理解1abcA::y=10y=16y=6x=42233i=a+b=(int)a+(int)b=14+20=34⑥37阅读理解1cA::y=7x=5223344A(x++,y++)→临时对象:y=12x=8cA::y=6x=4A(4,6)→⑥A::38阅读理解ABCi=*paAi=B*pbA::i=10i=AC*pc123⑦3339阅读理解ABCi=1*paAi=2B*pbA::i=10i=3AC*pc4440阅读理解i=1*pai=2B*pbA::i=10i=3AC*pc55派生类C的指针*pc调用派生类自己的函数〔同名覆盖〕基类B指针*pb指向派生类对象c,调用虚函数—调派生类C的虚函数print665641阅读理解i=1*pai=2B*pbA::i=10i=3AC*pc55基类A指针*pa指向派生类对象c时,①基类A的print函数不是虚函数,②基类指针只能指向派生类中继承的成员〔赋值兼容性〕,调基类A函数print,输出从基类A继承的数据成员A::i的值。6767742完善填空char*sorchars[]1实参:数组名形参:数组名或字符指针2给指针p赋值:p=s11243完善填空if(min>*p)3算法:找最小4算法:字符搬家,添加是从后向前搬,搬到第一个字符为止。p>s112345算法:移动指针p--,q--5444完善填空45完善填空6实参:字符串常量形参:字符指针答案:*s7拷贝字符串给动态字符数组ps:答案:ps6746完善填空9答案:*this“=〞应返回左值,例:x=y=z。即当前对象。671010947完善填空8答案:i==0679108对象s2析构时,i==0,输出“Theend〞;对象s1析构时,i==1,输出“atthistimeofday〞48完善填空以下程序功能是:从一个字符串str中删除或添加一个指定的字符,假设指定的字符c出现在str中,则从str中删除第一个值为c的字符;否则把字符c添加到str的尾部。在程序中,函数dele()从字符串中删除一个字符;函数add()添加一个字符到字符尾部;函数search〔〕用于查找指定的字符是否在字符串中,假设在,则返回所在位置,否则返回0。49完善填空11.--sors-112.*p2++.搬家13.*s++,将ch中的字符放在最后。14.void(*fp)(char*,char)。fp是函数指针,没有被说明,是用来调用add和dele函数的。15str,cabcdcfgha/0strcsccadddelep1p2s50完善填空grade成绩n排名num学号point链node类51完善填空链表的建立:建结点、录数据、链表、指针相应移动grade78n0num01pointp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代加工食品合同范例
- 光学总监聘用合同范例
- 出租酒店合同范例
- 农村花草养护合同标准文本
- 个人转让阴阳合同标准文本
- 业务测试合同范例
- 公司汽车维修合同标准文本
- 买狗狗合同标准文本
- 剥离工程合同标准文本
- 制作在小学生教育中的应用分析
- 《情志护理与养生》课件
- 植保无人机飞行作业服务应急及突发事件处理方案
- 2025年昆明长水机场勤务员招聘笔试参考题库含答案解析
- 2019地质灾害深部位移监测技术规程
- DG-TJ 08-2336-2020 绿道建设技术标准
- 《光电对抗原理与应用》课件第3章
- AEO贸易安全培训
- 智慧能源信息化平台建设整体解决方案
- 2024年税务系统职业技能竞赛试题库-社会保险费管理
- 2024年领导干部政治理论知识培训考试题库及答案(九)
- 企业行政管理的数字化趋势分析
评论
0/150
提交评论