- 相干保举
2017计较机二级C++操纵操练题附谜底
指导语:2017年9月计较机二级测验将近到临了,你是不是在懊恼不操纵操练题呢,以下是百分网小编分享给大师的2017计较机二级C++操纵操练题附谜底,接待操练!
一、法式改错题(18分)
操纵VC++6.0翻开考生文件夹下的源法式文件1.cpp,该法式运转时有错,请更正此中的毛病,使法式一般运转,并使法式输入的成果为 TC1 TC2
注重:不要修改main函数,不能增添或删除行,也不能变动法式的布局,毛病的语句在//******error******的上面。 试题法式: #include
#include structTCO {
//********error******** virtualvoidfun(); };
classTCl:publicTCO { voidfun() {
cout<<"TCl"< } };
classTC2:publicTCO { voidfun() {
cout<<"TC2"< } }; voidmain() { TCO"P; TClobj1; TC2obj2;
//********error******** p=*obj1; p->fun();
//********error********
p=*obj2; p->fun(); return; }
二、简略操纵题(24分)
操纵VC++6.0翻开考生交件夹下的源法式文件2.cpp。浏览以下函数申明和代码,完成空出局部法式。函数fun(intN[4])的功效是用4个数字,构成互不不异且无反复数字的3位数,并将知足一切前提的数字输入到屏幕,
并且每输入一个3位数就换一行。
法式阐发:可填在百位、十位、个位的数字都是1、2、3、0。构成一切的摆列后再去掉不知足前提的摆列。若是鉴定第一个数字是0,则也去掉。 试题法式: #include voidfun(intN[4]) { } intmain()
intN[4]={1,2,3,0}; fun(N): return0; }
三、综合操纵题(18分)
操纵VC++6.0翻开考生文件夹下的源法式文件3.cpp。此中界说的类不完全,按请求完成以下操纵,将类的界说补充完全。
(1)基类People完成打印功效,界说此中的打印函数为 虚函数,请在正文1后增加恰当的语句。
(2)类Boy担当于People,在机关函数中设置性别为1, 请在正文2后增加恰当的语句。
(3)类Girl担当于People,在机关函数中设置性别为0,请在正文3后增加恰当的语句。 (4)完成函数fun,用于通报差别的范例,打印出性别,请在正文4后增加恰当的语句。 输入的内容以下: Sex=Boy Sex=Girl
注重:除在指定位暨增加语句以外,请不要修改法式中的其余内容。 试题法式: #include classPeople { public:
//********1******** voidprint(){} intsex; };
classBoy:publicPeople
{ publiC: Boy() {
//********2********} voidprint() {
cout<<"Boy"< } };
classGirl:publicPeople { public: Girl() {
//********3********} voidprint() {
cout<<"Girl"< } };
//********4********{ cout<<"Sex="; p.print(); } intmain() { Boym: fun(m); Girln: fun(n); return0; }
参考谜底
一、法式改错题
(1)应改成“virtualvoidfun()=0;”。 (2)应改成“p=&obj1;”。 (3)应改成“p=&obj2;”。
【剖析】若是在基类中不操纵这个虚函数,其前往值也是不意思的,它应当被界说为纯虚函数。以是虚函数fun应当是纯虚函数,也便是申明虚函数时初始化为0的函数。即第2处的“virtualvoidfun()=0;”。第2处的P为指针变量,将工具obj1赋值给P,现实上蹙P指向工具obj1的地点,以是将“p=*obj1;”修改成“P=&obj1;”。第3处的“P=*obj2;”修改成“p=&obj2;”。
二、简略操纵题
inti,j,k;
for(i=0;i<4;i++)//百位轮回 {
for(j=0;j<4;j++)//十位轮回 for(k=0;k<4;k++)//个位轮回 {
if(i!=j&&j!=k&&k!=i&&N[i]!=0)// 当三位数差别,并且百位不为0 {
cout< } } }
【剖析】本题操纵3层轮回,对3位数字是不是不异停止判定。若是3位数差别,并且百位不为0,那末顺次输入这3 位数,即由3位数构成的数字。
三、综合操纵题
(1)将“voidprint(){};”补充完全为“virtualvoidprint(){};”。 (2)应增加“sex=1;”。 (3)应增加“sex=0;”。
(4)应增加“voidfun(People&p)”。
【剖析】第1处请求“基类People完成打印功效,界说此中的打印函数为虚函数”。虚函数是函数的一种,界说虚函数,在函数名前申明virtual就能够了,以是将第1处的“voidprint(){}”语句修改成“virtualvoidprint(){}”。第2处请求“类Boy担当于People,在机关函数中设置性别为l”。基类People中变量sex用来寄存性别,Boy担当People,以是Boy中性别的变量能够操纵基类中的sex变量,设置性别为1,即“sex=1;”。第3处请求“类Girl担当于People,在机关函数中设置性别为0”。在第3处增加语句“sex=0;”。第4处请求“完成函数fun,用于通报差别的范例,打印出性别”。按照“P.print();”语句晓得,fun函数的形参为指针P,因为它挪用了基类People中的成员函数print,以是P的基类为People,即增加函数fun的界说为“voidfun(People&p)”。
【计较机二级C++操纵操练题附谜底】相干文章:
2016计较机二级测验C++操练题及谜底03-16
2017计较机二级C++根本操练题及谜底12-05
2017计较机二级C++考前操练题及谜底03-20
2017计较机二级C++备考操练题及谜底12-05
计较机二级C++摹拟试题及谜底02-06