还剩41页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2023年广东省潮州市全国计算机等级考试C++语言程序设计模拟考试(含答案)学校:班级:姓名:考号:、选择题(题)
1.10有如下程序
1.#includeiostreamusing namespacestd;int main{int*p;*p=9;coutThe valueat p:n*p;return0;}编译运行程序将出现的情况是()编译时出现语法错误,不能生成可执行文件A.运行时一定输出B.The valueat p9运行时一定输出C.The valueat p*9运行时有可能出错D.下列程序的输出结果为
2.#includeiostream.hint funcintn{ifn lreturnl;else returnn+funcn-l;return0;}void main{coutfunc5endl;}.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是3和A.showbaseeof和B.showpointeof和C.showpointbad和D.showpointgood.使用打开考生文件夹下的源程序文件36VC++
6.0该程序运行时有错误,请改正程序中的错误本程序要求实
1.cpp,现的功能为从键盘输入一个字符串,并将结果保存到文件中
1.txt注意不要改动函数,不能增加或删除行,也不能更改程序的结main构,错误的语句在白勺-******error******j试题程序:#includeiostream#includefstream,,,,,777777,7,个个个个个个不个个个个个个个个个usingstd;voidWriteFilechar*s ofstreamoutl;*1**1*^1**1^*1*si**1**1**1*不不不不不不不不不不不不不不不不outl.opennl.txt,binary|app;forinti=0;s[i]!=0;i++*X**i**1*error outl.putss[i];7^T*rywrj*rTwoutl.close;voidClearFileofstreamoutl;outl.opennl.txt;outl.close;intmainchars
[1024];ClearFile;cout«npleaseinputastrin9n«endl;cin.getlines,1024;WriteFiles;returnO;}.使用打开考生文件夹下的源程序文件该程序运37VC++
6.
01.cpp,行有问题,请改正函数中的错误,使程序的输出结果为main number=lnumber=10number=100注意不要改动函数,不能增加或删除行也不能更改程序的结main构,错误的语句在/的下面/******errc r******试题程序#includeiostream.hclassTC publicTCinti number=i;voidSetNumberintm number=m;intGetNumberconstreturnnumber;voidPrintconst cout«nnumber=n«number«endl;privateintnumber;voidmainTCobjl;objl.Print;「不不不不不不不不enoTCobj23;objl.number=10;!1********ej*j*or*******KI*TC.SetNumberlOO;objl.Print;.使用打开考生文件夹下的源程序文件但该程38VC++
6.
01.cpp,序运行有问题,请改正函数中的错误,使该程序的输出结果正确main程序输出:注意错误的语句在/的下面修改该语句********error********/即可,其他的语句不能修改试题程序:#includeiostream.h classCOpublic^1**1**1**1**1^*1*si*不干不不不不不不不不不不不不不不^^rrorstaticintn=OCO n++CO n—)7,7,T,7,7〃不小个个不不不个个个不个不小个不intCOn;voidmain COobj;[]COobj27;CO*C=NULL c=objvl*KL*K1*/不不不不不不不不]不不不不不不不不/enoeout«C.n«endl;cout«C0n«endl;}.使用打开考生文件夹下的源程序文件该程序39VC++
6.
1.cpp,运行有问题,请改正函数中的错误,使程序的输出结果为mainnumber=1number=10number=100注意不要改动函数,不能增加或删除行也不能更改程序的结main构,错误的语句在/的下面/******error******试题程序#includeiostream.hclassTC public TCinti二number i;voidSetNumberintm number=m;}intGetNumberconstreturnnumber;}voidPrintconst coutnnumber=H«number«endl;}private)intnumber;;voidmain个个个个个个个个个个个个个*T**T**T*TCobjl;objl.Print;TCobj23;«»£个个个个小个个个个个小个个个个个^^norobjl.number=10;//********error*^^0******TC.SetNumberlOO;objl.Print;obj
2.Print;.使用打开考生文件夹下的源程序文件该程序40VC++
6.
01.cpp,运行时有错请改正程序中的错误,使程序输出的结果为1003732注意错误的语句在/的下面,修改该语句即/******error******可试题程序:#includeiostream.h voidmain不不不不不不不不不不不不errorintm=0142intn=0X27intq=32;cout mendl;cout n endl;cout qendl;return;.使用打开考生文件夹下的源程序文件该程序运行时有41VC++
6.
01.cpp,错,请改正其中的错误,使程序正常运行,并使程序输出的结果为sizeofSl=5sizeofs2=10sizeofs3=l注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******errc r******⑴不能删除语句assert⑵只能修改后面的数字提示函数如果为假,则会产生一个中断异常assert试题程序#includeiostream.h#includeassert.hvoidmaincharts l=nabcn/不不小小不不不不不小不不不不不小errorassertsizeofs1==3cout«nsizeofsl=5n«endl;chars2
[10]=ab//vl*vl*vt*vt*^1#K£*/不不不不不不不不不不不不不不不不error;assertsizeofs2==2cout«!!sizeofs2=10n«endl;;chars3=23:assertsizeofs3==4cout«nsizeofs3=ln«endl;;return.使用打开考生文件夹下的源程序文件该程序42VC++
6.
01.cpp,运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意错误的语句在/的下面,修改该语句即/******errc r******可试题程序#includeiostream・hclassTC inti;publicTC;voiddisplay;TC;卜//******ejrc r******TCTCcout«Constructor«,i=0;I i******enx r******TCdisplay{touti=i,n«endl;}I i******eppor******TCTC{COUI«Destructor«endlvoidmain TCa;a.display;}.使用打开考生文件夹下的源程序文件本程序要求43VC++
6.01-CPP输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕.执行以下程序后的输出结果为4o#includeiostream.bclass Sample{int x,y;public:Sample{x=y=0;}Sampleint a,int b{x=a;y=b;}void disp{coutx=xy=yendl;};voidmain{Sample s2,3,*p=s;p-disp;}A.x=l,y=3B.x=2,y=4C.x=3,y=2D.x=2,y=3如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,
5.每个参数都必须使用关键字来修饰A.const B.static C.void D.class以下程序的执行结果是
6.#includeiostream.hint funint b[],intn{int i,r=l;fori=0;in;i++r=r*b[i];}void main{int x,a□={1,2,3,4,56,7,8};x=funa,3;coutxendl;}A.5B.6C.7D.8若有以下程序
7.#includeiostreamusing namespacestd;int main{int a
[4]
[4]={{1,2,3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0};int i,j,s=0;fori=0;i4;i++{forj=O;j4;j++{ifa[i][j]=0continue;s+=a[i][j];}}执行后的输出结果是coutsendl;return0;}A.-138B.141C.75D.-lo.关系模型允许定义类数据约束,下列不属于数据约束的是
83.实体完整性约束.参照完整性约束属性完整性约束用户自定义的完A BC.D.整性约束.下列关于运算符重载不正确的是9运算符重载不能改变运算符的操作数个数A.中构,错误的语句在//error、的下面,7,777,注意不要改动函数,不能增加或删除行,也不能更改程序的结main试题程序:#includeiostream.hvoidmaininti=0;charstr
[120];error7,77,7,7”7,rT*rT*TWrT*cout«nEnterastringendwith.H«endl;Kt*rT*rT*rT*cryiwn.getlinestr,120;T*KL«KL*vt*vl*vt#errorKL*不不不不不不不不whilestrerrorifstr[i]=astr[i]=str[i]-a+A;i++;}cout«str«endl;return;.使用打开考生文件夹下的源程序文件该程序运44VC++
6.
01.cpp,行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意错误的语句在/的下面,修改该语句即可/******error******试题程序#includeiostream.h classTCinti;public;TCvoiddisplay;;〜TCTCTC cout«nConstructorn«n,i=0;不不不不不不]不不不不不不enoTCdisplay toutni=n«i«n,n«endl;*L*vL*不下不不个个个个个个不不epj*orTCTCCOUI«nDestructorn«endlvoidmainTCa;a.display;.使用打开考生文件夹下的源程序文件45VC++
6.0该程序运行时有错误,请改正程序中的错误本程序要求实现的
1.cpp,功能为从键盘输入一个字符串,并将结果保存到文件中
1.txt注意不要改动函数,不能增加或删除行,也不能更改程序的结构,mainerror的下面错误的语句在试题程KL*序:KL*#includeiostream#includefstream,,77K.t77,个个个个个个个个个个个个个个个个usingstd;voidWriteFilechar*s vi*不不不个errorofstreamoutl;outl.opennl.txt,binary|app;forinti=0;s[i]!=0;i++outl.putss[i];outl.close;voidClearFile ofstreamoutl;outl.openul.txt;outl.close;intmain chars
[1024];ClearFile;cout«npleaseinputastrin9H«endl;cin.getlines,1024;WriteFiles;returnO;
五、综合应用题(题)
2.请使用或使用【答题】菜单打开考生文件夹下的工程46VC6proj3proj3,其中声明的类,是一个用于表示数据表的类DataList DataList的重载运算符函数其功能是求当前数据表与另一个相同长度的Operator+,数据表之和;即它返回一个数据表,其每个元素等于相应两个数据表对应元素之和请编写这个函数程序的正确输出应该operator+是两个数据表两个数据表之L2,3,4,5,63,4,5,6,7,8和要求:4,6,8,10,12,14之间,“〃********666********不得修改程序的其他部分注意程序最后将结果输出到文件中输出函数已经ut.dat writeToFile编译为文件,并且在本程序中调用bj//DataList.h#inCludeiostream usingnamespaCe std;{〃数据表类ClaSS DataListintfen;double*d;public;;DataListint len,double data[]=NULL DataListDataListdata;}int lengthConst{return lendoublegetElementint iConsttreturn d[i];};〃两个数据表求和DataList operator+Const DataList listConst void〃显示数据表showConst;;,void writeToFileChar$Const DataList;//main.Cpp#inCludeDataList.hDataListDataListint len,double data[]lenien{d=new doubletlen];forint i=0;ilen;i++㈤d i=data==NULLO.0data[i];二DataListDataListDataListdata lendata.len{d newdoubletlen];forint i=0;ilen;i++d[i]=data.d[i];{〃两个数据DataList DataList0perator+Con8t DataListlist,Const表求和double*dd=new doubletlist.1ensth];〃********333********〃********666********{〃显return DataListlist.1ength,dd;}void DataListshowConst数据表7K frintoi=0;ilen-l;i++eout«d[i]«,Cout«d[l en-1]«endl;int main{double sl[]={l,2,3,4,5,6};double s2[]={3,4,5,6,7,8};〃定义两个数据表对象两个DataListlist16,si,list26,s2;eoutvv”数据表wendl两个数据表之listl.showlist
2.show;eoutwendlw”和^«endl Iistl+list
2.show;writeToFile,”,listl+list2;return
0.使用打开考生文件夹下的源程序文件其中定义的类47VC++
6.
03.cpp不完整,按要求完成下列操作,将类的定义补充完整每卖出一个水果,则计算水果的重量,还要计算所有卖出水果的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整⑴定义类的私有静态数据成员型变量和型变TCFruit floatAllWeight int量请在注释后添加适当的语句AUN0,1完成类的带一个型变量的构造函数,并把这个加到2TCFruit floatw w中,并且自加请在注释后添加适当的语句AllWeight AllNo2⑶在析构函数中,在中减去然后自减,请在注AllWeight weight,A11N释后添加适当的语句3完成静态成员变量的初始化为请在注释后添加适当的语句注意40,4增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码试题程序#includeiostream.h classTCFruitprivatefloatWeight;、«、1si*K1K!K|K!*.t*J rj*I ry**y»^J rjstaticintAHNo;public TCFruitfloatw//.t KJK1K1*IKIKJKIKJK!77,KI/ri*rT*J rT*rr*rT^AllWeight+=w AIIN0++〜TCFruit//KIK17K!KIK1K!、7KJ[K!K!
7、7,K|、/rr^rj*rT*4rj rr^rT^A11W eight-=W eightvoiddisplaycout«nSellaFruitwithn«Weight«nk9Hendl;cout«^Allsellnumbern«AllNo«endl;cout«nAllsellweight n«AllWeight«nk9nendl«endl;};I1********4********floatTCFruitAll Weights.0;intmainTCFruitFruitll.2;Fruitl.display;TCFruitFruit
22.3;Fruit
2.display;returnO;
六、.综合应用题题
32.使用打开考生文件夹下的工程此工程包含一个源程序48VC6MyProj90文件程序中定义了两个类和但类的定义并不MyMain
9.cpp PointCircle,0完整请按要求完成下列操作,将类的定义补充完成Sample
①类是基类公有派生宋的请在注释“//*”之后添加Circle Point*1**适当的语句
②完成构造函数的定义,采用初始化列表的方式使基Circleinta,intb,intc类私有成员、分别初始化为、类的私有成员初始化Point xy a b,Circle r为请在注释“//**”之后添加适当的语句c*2*o
③完成类的成员函数的类体外的定义函数的功能是计Circle areaarea算出此圆对象的面积,即请在注释“〃*”之后添加适当的语PI*r*r*3**句注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件清单如下MyMain
9.cpp//MyMain
9.cpp#includeiostreamusing namespacestd;#define PI
3.14class Pointprivate:int x,y;public:Point inta,intbx=a;y=b;int getxreturn x;int getyreturn y;;〃**]**privateint r;public〃**2**int getrreturn r;double area;double Circle::area.运算符重载不能改变运算符的优先级B.运算符重载不能改变运算符的结合性C运算符重载能改变对预定义类型数据的操作方式D..下列关于流的叙述中,正确的是10C++是一个输入流对象A.cin可以用定义一个输出流对象B.ifstream执行语句序歹;;将输出字符串C ljchar*y=PQMNIt couty PQMN”的地址执行语句序列();时,若输入D.charx
[80];cin.getirne x,80Happyr new则中的字符串是year xHaPPy”
二、单选题(题)13口.下面关于数组的描述错误的是().在语言中数组的名字就是指向该数组第一个元素的指针A C++长度为的数组,下标的范围是B.n〜n-
1.数组的大小必须在编译时确定C数组只能通过值参数和引用参数两种方式传递给函数D..由于常对象不能被更新,因此()
12.通过常对象只能调用它的常成员函数A通过常对象只能调用静态成员函数B.int main;Circle cl5,7,10;coutcl.areaendl;return
0.使用打开考生文件夹下的工程此工程包含一个源程序文49VC6test9_3,件其中定义了类与类,类可对半径为test9_
3.cpp,Circle Money Circle r的圆进行周长与面积的计算,而类用于计算一圆形游泳池的造价Money游泳池四周有原形过道,过道外围上栅栏,过道宽度为米,根据键入3的游泳池半径,每米栅栏价格及每平方米过道价格,即可计算出游泳池的造价请按要求完成下列操作,将程序补充完整⑴定义符号常量值为与值为分别用于表示圆PI
3.14159f WIDTH
3.00f,周率与过道的固定宽度请在注释“〃**”之后添加适当的语句1**2定义类默认构造函数,把私有成员初始化为参数的值请Circle radiusr在注释后添加适当的语句“〃**2**”⑶完成类默认构造函数的定义,把私有成员每米栅栏Money FencePrice的价格、每平方米过道的价格初始化为参数的值请ConcretePrice f,c在注释“〃**”之后添加适当的语句3**完成类成员函数二4Money floatMoneyTotalMoneynoat fencelen,float的定义根据参数栅栏的长度和过道的面积,conarea fencelenconarea返回栅栏与过道的总造价请在注释“〃**”之后添加适当的语句4**注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件清单如下test9_
3.cpp#includeiostream.h〃**]**class Circleprivate:float radius;public:float Circumference{return2*PI*radius;float Area{return PI*radius*radius;;class Moneyprivate:float FencePrice;float ConcretePrice;public:Moneyfloat f,float c;float TotalMoneyfloat fencelen,float conarea;;Money::Moneyfloatf,float cfloat Money::TotalMoneyfloat fencelen,floatconarea void main floatradius,fence,concrete;cout.setfl Os::fixed;cout.setfios::showpoint;cout.precision2;coutEnter theradius ofthe pool:;cinradius;coutnEnter theFencePrice:n;cinfence;coutEnter theConcretePrice:n;cinconcrete;Circle Poolradius;Circle PoolRimradius+WIDTH;Money monfence,concrete;float totalmoney=mon.TotalMoneyPoolRim.Circumference,PoolRim.Area-P
001.Area;coutThe totalmoney isRMBtotalmoneyendl;参考答案解析此题考查的是指针的使用本题中,在给*赋值前,指针并LD pp没有指向一个具体的对象此时可以通过编译,但运行时由于中为随P机值,该赋值可能会破坏内存中某个重要的地址空间的内容,导致程序出错解析本题考查的是递归函数的使用,题中递归函数的结束条件为
2.D nl,递推公式为尸所以计算结果为最后fn n+fn-l,5+4+3+2+1+1,一个为时的返回值1n=
03.B解析表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是和showpoint eofo
4.D解析如果一个模板声明列出了多个参数,则每个参数之间必须使用
5.D逗号隔开,每个参数都必须使用关键字来修饰class
6.B解析本题属于综合题,考查多个方面的知识点程序首先定义了一
7.A个二维数组并初始化其值在内层循环体中,遇到大于等于的数,a,for0就继续执行下次循环,否则就执行『,即把其值累加并保存在s+=a[i][j变量中所以本题双重循环的功能是计算数组中所有负数的累加和,s即s=-
1388.C详细解答关系模型允许3类数据约束,它们是实体完整性约束该约束要求关系的主键中属性值不能为空值,这是数据库完整性的最基本要求参照完整性约束该约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组即在关系中的外键要么是所关联关系中实际存在的元组,要么就为空值用户定义的完整性约束用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求cC【解析】本题考查+语言中操作符重载的概念运算符重载的
9.DD C+关键字是运算符重载的规则是重载时不能改变运算符的操作数operator个数,不能改变运算符的优先级,不能改变运算符的结合性,不能改变对预定义类型数据的操作方式解析在中,作为输入流对象,作为输出流对象,
10.A C++cin coutifstream作为文件输入流对象,作为文件输出流对象数组指针指向的是ofstream数组的首地址,而不是整个数组地址集合变量,整数的作cin.getline用是得到整行并将其赋值给变量解析本题考查的是数组的基本使用,数组还可以通过对应的指针调1LD用传递参数,其余选项的说法都是正确的
12.A解析本题考查了常对象与常成员函数的概念使用关键字修饰的const对象称为常对象,它的特点是不能被更新;使用关键字声明的成员const函数称为常成员函数,它的特点也是不能更新对象的数据成员因为其他成员函数没有这个限制,即可以更新对象的数据成员,所以通过常对象只能调用常成员函数而不能调用其他成员函数,而且常成员函数也只能调用常成员函数而不能调用其他成员函数,否则它们的特性就会被打破故应该选择A
13.A解析本题考查的知识点是类的定义类中缺省的访问权限是私有的所以选项不正确类的数据成员和函数成员的访问控制权限private,B均可被声明为公有>私有和保护中的任意一种,public priateprotected所以选项不正确;成员函数的实现即可以在类体内定义,也可以在类C体外定义,所以选项不正确故本题应该选择D Ao解析本题考查的是内联函数的定义,引入内联函数是为了解决程
14.B序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加关键字,则编译器会将在类说明部分定义的任何函数都被认inline定为内联函数
15.A解析本题考查的知识点是运算符的重载运算符重载为成员函数时,形参个数一般为运算符的元数减因为此成员函数所属的对象可成为运1,算符的一个运算分量重载为非成员函数时,形参个数一般和运算符元数相等所以,二元运算符重载为非成员函数时,参数表中应有两个参数,选项不正确;运算符重载为成员函数时,若参数表中无参数,重C载的是一元运算符,选项是正确的一元运算符中,A取负、“++”增、”减等运算符均可重载为成员函数,故选项不11B正确中,有五个运算符不能重载,故选项不正确本题应\u3000C++D该选择A
16.B本题考查基类和派生类的逻辑关系,属于基础知汉,如果没有指明哪种继承方式,那么默认为私有继承,所以选项错误B
17.B解析通用流类和其他流的基类;类用来对文件iostream I/O I/O fstream流进行操作,类的头文件是类同时可以支持fstream fstream.hstxstream风格的串流的输入输出操作是流控制头文件,就像中的C iomanipI/O c格式化输出一样
18.D
19.A解析本题考核函数模板的使用引用模板函数和引用一般的函数在
20.B语法形式上没有任何区别所有的类型替换都是编译器在幕后悄悄进行的但是要注意的是说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参例如,本题中的)选项,编译系统从第一个参数获得的信B“
3.5”息是对应于而从第二个参数处获得的信息是对应于“T double,“4”“T int”,二者相互矛盾,在编译时会产生错误对于)选项中紧跟在函数名后D的〈〉就是模板实参表,通过它通知编译系统在调用过程中,double int型的参数将被自动换成型“4”double解析本程序设计了一个点类包含了横,纵两个坐标数据和
21.A Point,x由它派生出了圃类并加入了新的数据成员,即一个半径和一个y,Circle,r求圆面积的函数成员在主函数中,首先定义了一个圃area mainCircle类的对象并通过它的构造函数初始化其数据成员由此可知,其半径cl,的值为所以其面积为即对象的函数成员的返回r10,PI*10*10=314,cl area值为
31422.B解析耦合性和内聚性足模块独立性的两个定性标准内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,作为软件结构设计的设计原则,要求每个模块的内部都具有很强的内聚性;耦合性是指模块间相互连接的紧密程度的度量,一个模块与其他模块的耦合性越强则该模块的独立性越弱一般优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性
23.B本题考查模板函数的应用,表达式和血足将和intl.
14.
21.1强制转换为整型
4.
2.类类解析本题考查的是类模板的使用方式,就是把类模板的一般化24定义实例化为一个真正的类
25.public解析水题的关键在于对变量的赋值运算
26.00cd=abcd=543先算为真,得即〉此时为假,得54,1,d=l3,13,0解析此题考查的是复制构造函数复制构造函数
27.myClassmyClass定义的一般格式如下类名::类名类名引用对象名{复制构造函const数体而在类中的声明部分可省去“类名::.虚函数虚函数
2829.13解析由拷贝构造函数的声明的结构决定,格式为
30.myclassmyclass类名类名对象名{……}const,0解析中用成员函数重载为
31.operator+xyoperator+x,yC++x+y x.;,用友元函数重载为operator+y x+y operator+x,yo.软件工程学软件工程学32;;解析条件运算符要求有
33.max=aba bmax=aba b三个操作对象,称三目元运算符,它是语言中惟一的一个三目运算C++符条件表达式的一般形式为表达式表达式表达式所以我123们可以写成〉它是一个“条件表达式执行顺序是如果a bab,ab条件为真,则条件表达式取值作为整个表达式的值,否则取值作为整ab个表达式的值解析设循环队列的容量为
34.1818n0若则循环队列中的元素个数为;rearfront,rear-front若则循环队列中的元素个数为rearfront,n+rear-fronto题中,即所以,循环队列中的元素个数为叶frontal6,rear=9,rearfront,rear-from=25+9-16=18o.逻辑独立性逻辑独立性解析数据独立性是数据与程序间的互不依赖35性,即数据库中数据独立于应用程序而不依赖于应用程序数据独立性一般分为物理独立性与逻辑独立性两个含义注意在人工管理阶段,文件系统阶段和数据库管理阶段中数据独立性的特点应改为
36.⑴usingnamespacestd;应改为2outl.openl.txt,iosbinary Iiosapp;应改为3“outl.puts[i];【解析】本题第处的”是在程序中引入标准命名空间对1“usingstd;std,于中引入标准命名空间的格式,缺少所以第处的语句C++namespace,1修改为第处,调用成员函数中,输入、输“usingnamespacestd;2open出方式是在类中定义的,所以ios“outl.openl.txt,”语句缺少类即第处的语句修改为binary Iapp;ios,2第个标识应“outl.openl.txt,iosbinary Iiosapp;3该用流成员函数输出字符,所以第处的语句修改为put3Uoutl.puts[i];”应改为;
37.⑴TCobjll应改为;\n2“Objl.SetNumberlO应改为;\n3“0bj
2.SelNumberlOO[解析]本题第处的;”语句是声明类的对象根据\n1“TCobjl TC Objl,TC类构造函数的定义存在整型参数,并且题目要求第一个输出结果TCinti,两所以补全参数即第处的;第处处的1,1,1“TCobjll2“objl.;”应该是调用成员函数赋值在+中成员函number=10SetNumber C+数的使用形式应该是对象名.成员函数,所以修改为;“objl.SetNumberlO类是对象的抽象,而对象是类的具体实例第处3“TC.SetNumberlOO「语句中的为类,并不是对象,这里应该使用定义的对象,即切TC所以将语句修改为;2,“obj
2.SetNumberlOO应改为
38.1“staticintn=O staticintn;2“intCOn;”应改为“intCOn=0;34tcout«c.n«endl;应改为cout«c-nvendl;常对象的成员都是常成员C.通过常对象可以调用任何不改变对象值的成员函数D..下列关于类定义的说法中,正确的是()13类定义中包括数据成员和函数成员的声明A.类成员的缺省访问权限是保护的B..数据成员必须被声明为私有的C成员函数只能在类体外进行定义D..下列说法正确的是()
14.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方A内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方B..类的内联函数必须在类体内定义C类的内联函数必须在类体外通过加关键字定义D.inline.下列关于运算符重载的描述中,正确的是()15运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符A.一元运算符只能作为成员函数重载B.二元运算符重载为非成员函数时,参数表中有一个参数C.中可以重载所有的运算符D.C++【解析】本题要在屏幕上输出两个字符,首先要静态变量初始化,第处1应改为第处要给赋值,第处输出时引用的对象,“staticintn;,2n3c应改为〈coutv c-nendl;应改为
39.1TCobjll;应改为2“Objl.SetNumberlO;应改为3“0bj
2.SelNumberlOO;【解析】本题第处的”语句是声明类的对象根据1“TCobjl;TCObjl,TC类构造函数的定义存在整型参数,并且题目要求第一个输出结果TCinti,两所以补全参数即第处的第处处的1,1,1“TCobjll;2“objl.”应该是调用成员函数赋值在+中成员函数number=10;SetNumber C+的使用形式应该是对象名.成员函数,所以修改为“objl.SetNumberlO;,5o类是对象的抽象,而对象是类的具体实例第3处“TC.”语句中的为类,并不是对象,这里应该使用定义SetNumberlOO;TC的对象,即所以将语句修改为bj2,“obj
2.SetNumberlOO;
40.1“voidmain”2“intm=0144;34tintn=OX25;”或“intn===0x25;”【解析】本题主要考查了主函数定义及幕同进制之间的转换,包括十进制到八进制,十进制到十六进制主函数定义的定义形式为函数“main”,名之后必须是一对括号,因此第处应改为输出默认是1“voidmain”cout以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的对应八进制的卡进制的对应十六进制的因止100144,3725,匕2和3应分另U改成“intm=0144;”,t4intn=0x25;”或“intn=0x25;应改为七;
41.155011@20041==4应改为尸;\n⑵assertsizeofs2=10应改为;\n3assertsizeofs3==l【解析】函数如果为假,则会产生一个中断异常所以要让它正常\n assert执行输出结果,那么函数只有为真,才不会产生中断异常assertuassertsizeofs1==3;”语句中“sizeofsD==3”为假,这会使程序产生异常,不能正常执行因为的值为但是它还有一个尾符,它的长度strl abc,应该是而不是所以在第处修改为了4,3,1“assertsizeofsl==4str2
[10]说明,的空间为在第处修改为尸str210,2“assertsizeofs2=10语句说明是字符,所占存储空间为所以修改为charstr3=23;231,uassertsizeofs3=l;应改为
42.1“TCTC”应改为2voidTCdisplay”⑶应改为“TC〜TC”【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“”,作用域运算符用采表示某个成员属于哪个类,使用格式为“类名成员函数〉参数函数,因此第处应改为1“TC默认构造函数没有参数由第处后的语句看,这TC”,2“TCdisplay”是在类外实现函数,因此也有作用域运算符使用错误问题,TC display函数返回值为因此第处的语句应改为由第void,2“voidTCdisplay”处的语句可知,显然这里是在类外实现析构函数,析构函3“TCTC”数是一个特殊的函数,它的名称和类名相同,并在前面加“”字符,用〜采与构造函数加以区别,因此第处的语句应改为3“TC〜TC”应改为;
43.1“ein.getlinestr,120,应改为巾\n2while®\n3应改为“ifstr[i]=astr[i]=2,,o【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员\n函数函数读入一行字符,格式为字符数组,字符个数,getline“cin.getline终止标志字符字所以第处改为;第处的1“cin.getlinestr,120,2语句应该是判断字符串中的每一个字符是否为结束符,若“whilestr”str不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为第处的语句是判断字符“whilestr[i]”3“ifstr[i]=a”str[i]是否为小写字符,而现有的语句只是判断字符是否大于a,但是小写字符应该是a到2,所以修改为“ifstr[i]=a str[i]=z,,o应改为
44.1“TCTC”应改为\n2voidTCdisplay”应改为\n3“TC〜TC”【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和\n作用域运算符“”,作用域运算符用采表示某个成员属于哪个类,使用格式为“类名成员函数参数函数,因此第处应改为1“TC默认构造函数没有参数由第处后的语句看,这是TC”,2“TC display”在类外实现函数,因此也有作用域运算符使用错误问题,函数TC display返回值为因此第处的语句应改为由第处的void,2“voidTCdisplay-3o语句叮?丁小可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“”字符,用采与〜构造函数加以区别,因此第处的语句应改为3“TC〜TC”应改为;
45.1usingnamespacestd应改为;\n2“outl.open,
1.txt,ios::binary|iosapp应改为;\n3“outl.puts[i]【解析】本题第处的”是在程序中引入标准命名空间对\n1“usingstd;std,于+中引入标准命名空间的格式,缺少所以第处的语句C+namespace,1修改为;第处,调用成员函数中,输入、输出“usingnamespacestd2open方式是在类中定义的,所以是”语句缺少ios“outl.open.txt,binary|app;类即第处的语句修改为;”ios,2“outl.open.txf,iosbinary|iosapp第个标识应该用流成员函数输出字符,所以第处的语句修改为3put3;“outl.puts[i]<〃遍历对象中的数组和数组,把对应的
46.fOTint i=0;i len;++i listd值相加后放到数组中dddd[i]=d[i]+list.d[i];应添加
47.1“staticfloatAll Weight;⑵应添加l“Weight=w;应添力3rAUNo—;应添加4“intTCFruitAllNo=0;【解析】静态数据成员声明时需使用关键字因此第处应添加static,1ustaticfloatAllWeight;构造函数用来对类成员进行初始化,在类的构造函数中,完成的初始化,并把这TCFruit TCFruitfloatwweight个加到中,并且自加,因此第处应添加w AllWeightAllNo2“weight=w;调用析构函数相当于退出,这时中减去AllWeight然后自减,因此第处应添加静态数据weight,AHN3“AllNo-;成员的初始化格式为“〈数据类型><类名>静态数据成员>=初始值”,因此第处应添加4“intTCFruitAllNo=0;
48.
49.1const floatPI=
3.14159f;const float WIDTH=
3.00f;2Circlenoatr:radiusr{};3FencePrice=f;ConcretePrice=c;4returnFencePrice^fencelen+ConcretePrice*conarea;l\r\n constfloatPI=
3.14159f;\r\n constfloatWIDTH=
3.00f;\r\n2\r\n Circlenoatr:radiusr{};\r\n3\r\n FencePrice=f;\r\n ConcretePrice=c;\r\n4\r\n return解析本题考查了考生对符FencePrice*fencelen+ConcretePrice*conarea;号常量的定义及类的定义与实现等方面的内容注意常类型的定义应使用关键字const,下列代码段中声明了个类163Class Person{};Class Studentpublic;;下列关于这些类之间关系的Person{}Class UndergraduateStudent{描述中,错误的是类是类的基类A.Person Undergraduate类从类公有继承B.Undergraduate Student类是类的派生类C.Student Person类是类的派生类D.Undergraduate Person.要利用流进行文件操作,必须在程序中包含的头文件是17C++A.iostream B.fstream C.str streamD.iomanip.第题下面程序的运行结果是1833#includevoid funint*a,int*bint x=*a*a=,b;*b=x;cout«*a«*b«^void mainint x=1,y=2;fun x,y;cout«.己知有数组定义19char a
[3]
[4];下列表达式中错误的是⑵二A.a WINstrcpya
[2],WINB仁C.a33W,a
[0][1a
[0]
[1]D有如下函数模板声明
20.templatetypename TT MaxTa,T下列对函数模板的调用中错误的是b{returna=ba:b;}MaxA.Max
3.5,
4.5B.Max
3.5,4C.Maxdouble
3.5,
4.5D.Maxdouble
3.5,4有以下程序:;
21.#includeiostreamusing namespacestd#definePl2214Class Point{privateintx,y;publicPointint a,intB{X=a;yb;}int getxreturn x;}int gety{returny;}};class CirclepublicPoint{pri.软件设计中模块划分应遵循的准则是22低内聚低耦合A.高内聚低耦合B.低内聚高耦合C高内聚高耦合D..下列程序的运行结果为23#includeiostream.h templateclassTTclass FF{TT aha2,a3;publicFFTT bl,TT b2,TT b3{al=bl;a2=b2;a3=b3;}TT Sum{returnal+a2+a3;};}voidmain{FFintxintl.1,2,3,Yint
4.2,5,6;cout«x.Sum««Y.Sum«endl;}A.
6.
115.2B.615C.
615.2D.
6.115
三、.填空题题212类模板的使用实际上是将类模板实例化成一个具体的【】
24.是运算符重载时必须使用的关键字,它和被重载的运算符连
25.operator在一起,作为运算符函数的专用函数名,务必把该函数说明为的以下程序输出的结果是[】
26.#includeiostream.hvoid maininta=5,b=4,c=3,d;;d=abC;coutd下列类定义中包含了构造函数和拷贝构造函数的原型声明,请在横
27.线处填写正确的内容,使拷贝构造函数的声明完整class myClass{privateint data;public:构造函数myClassint value;//〃拷贝构造函数myClassconst anotherObject;多态性具体体现运行和编译两个方面,在程序运行时的多态性通过
28.继承和【】来体现,而程序编译时多态性体现函数和运符的重载上某二叉树中度为的结点有个,则该二叉树中有个叶子
29.212如下类定义中包含了构造函数和复制构造函数的原型声明,请在画线
30.处填写正确的内容,使复制构造函数的声明完整class my21ass{privateint data:public::;〃构造函数MyClassint value;//复制构造函数MyClassconst anotherObject将中的+运算符用友元函数重载应写为[]
31.x+y.软件危机出现于世纪年代末,为了解决软件危机,人们提出322060的原理来设计软件,这就是软件工程诞生的基础7将以下程序写成三日运算表达式是【】
33.;ifabmax=a;else max=b在一个容量为的循环队列中,若头指针尾指针则
34.25front=16,rear=9,该循环队列中共有上【】个元素数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性
35.和【】两个含义
四、程序改错题题10。