1、C+程序设计试题和答案C+程序设计试题一、单项选择题(本大题共20小题。每小题1分。共20分)在每小题列出得四个备选项中只有一个就是符合题目要求得。请将其代码填写在题后得括号内、错选、多选或未选均无分。、C+源程序文件扩展名为( )A。cpp .。h C。1ib D。j2。在C+中使用流进行输入输出、其中专用于从键盘进行输入得流就是(B )A。r B.cin C。cout D.cfile3、包含自定义头文件e。得预处理指令就是( D ).definefile。h B、#inclee。hC。defn le、h D、#ncludefie、h4、用于标识十六进制前缀或后缀就是( D)A、元 B。后缀
2、L或 C、前缀零 D。前缀0x、设存在整型变量int x、则下列句与其它三项含义不同得就是( A )A、int* p=; .nt& =x; C。int&=x; D.tp=;6、在定义类成员时.为产生封装性、则需使用哪个关键字( D )A.public B.plish C。protected D。rvate7、设函数id s。int)将交换两形参得值。如两整型变量ita=0;intb=15;则执行s)后。、b值分别为( C)A.10.10 B。0、5 C、15、10 D。15.158.函数默认参数在函数原型中说明、默认参数必须放在参数序列得(C )A、前部 B。中部 C、后部 D、两端9、设存在
3、函数it min(nt。in)返回两参数中较小值、若求1。2。4三者中最小值、下列表达式中错误得就是( )。in m=mi(min(、26)、min(15.4);B、it mmin(15。2。47);C、it mn(15.i(。2); D.nt =min(min(47、)。6);10。下列函数不能与函数vod prin(char)构成重载得就是( )。int pr(int); B.voidprin(char.chr);C、ntrnt(ha); D.voidprint(int。n);11、在下列成对得表达式中。运算结果类型相同得一对就是( )A、72与7、0/2。0 、72、0与72 C。.0与
4、72 D、7。02。0与7。02 l2、内联函数得特点就是( D )。减少代码量。加快访问速度 B。减少代码量.减缓访问速度C、增加代码量、减缓访问速度 D.增加代码量。加快访问速度13。类得私有成员可在何处被访问( A )A.本类得成员函数中 B.本类及子类得成员函数中C.通过对象名在任何位置 D。不可访问4、类得构造函数在以下什么情况下会被自动调用( B )A.定义成员函数时 B。定义对象时C。定义数据成员时 、定义友元函数时15。下列关于析构函数描述正确得就是( D )A。可以重载 B。函数体中必须有dele语句C。返回类型必须就是oid类型 D、不能指定返回类型 16。设有函数T Su
5、m(、T y)retr +y;。其中T为模板类型、则下列语句中对该函数错误得使用就是( D)A。S(1、); B.Sum(3。2。);C、Su(A。C); D.u(。”C);17。下列哪个编译指令属于条件编译指令( )A、#incue B。define C、es D、#pagma18。关于类得静态成员函数描述错误得就是( A ) A。在创建对象前不存在 B.不能说明为虚函数C。不能直接访问非静态函数 D、不就是对象得成员l9。如果类被声明成类得友元。则( D ) 。类得成员即类B得成员 。类得成员即类得成员C。类得成员函数不得访问类得成员D、类B不一定就是类A得友元2、派生类得对象可以访问以下
6、那种情况继承得基类成员( D ) A、私有继承得私有成员 B、公有继承得私有成员C、私有继承得保护成员 。公有继承得公有成员二、填空题(本大题共20小题。每小题1分。共20分)请在每小题得空格中填上正确答案。错填、不填均无分。21.若使用标准输出流把整型变量a得值输出到屏幕上、实现此操作得C+语句就是 coua。22。C+将数据从一个对象流向另一个对象得流动抽象为“流”。从流中获取数据得操作称为提取操作。执行下列代码 it b=1; cout”H:num(2、2,1.)或olexdule nm(.2,1.3)。27、若有函数定义为: itadd(int m=。int m2=2、inm=) eu
7、r ml+m2m3; 在主函数中有int=add()add(。1)+ad(0.1。2);则执行此语句后s得值为1 。28。C+中使用inline关键字说明函数为内联函数、29。在源程序中有宏定义:defin I .14。则若不想使该宏定义影响到程序得其它地方、可以使用undef P删除该宏定义、0。类与其它数据类型不同得就是、组成这种类型得不仅可以有数据、还可以有对数据进行操作得函数或成员函数、31。有下列代码nt a=0;oube b=;cab;当用键盘输入、25时、b0。2、3.对于类Poin而言、其析构函数得定义原型为Point:Pint( )或Point()、33、对象成员构造函数得调
8、用顺序取决于这些对象在类中说明得顺序、与它们在成员初始化列表中给出得顺序无关。34、类得简单成员函数就是指声明中不含ons、vltie、satc关键字得函数、3。与操作对象得数据类型相互独立得算法称为泛型算法。36.从一个或多个以前定义得类产生新类得过程称为派生。37。在veto类中向向量尾部插入一个对象得方法就是psh_bck(const T&)、8、中用于动态创建对象.并返回该对象得指针得关键字就是new。39。C+得流类库预定义得与标准输出设备相联接得流就是cout、4.执行下列代码unohopoit13。;程序输出结果就是3 。三、改错题(本大题共5小题、每小题分。共10分)下面得类定
9、义中有一处错误.请用下横线标出错误所在行并给出修改意见。1.incldeistrea。h class f rivate:flot x.y; ublc:f(flat a、floatb)x=a;y=b; flat max()return(xy)?x:y; /求最大值 ; i( ) f (、5.3。); oua、max()dl; retrn(y)?:y;该语句求得就是最小值。应改为retun(xy)?:;或ret(xy)?y:;.ncldeiostream。 classtest pivate:i x; pblc:est(it a); vois(in a)a; void get()cout las o
10、in private:flt x、y; public:f(loa a、flo )a;=; pon()x;y=0; vodgx()coutxndl; void gety()cutendl; ; voi prnt(poit )coua、xedl;main() pont a;a、f1(3、0.5、0); prit(a);prit(poin a)cout。xend;prn( )不就是成员函数不允许直接调用、x或将private:lot x,y;改为 pbic:fot ,y;或cua.xndl;改为a。gx( );44、includistream、 clssfprivat:intx。y; pic:fl(
11、int 、it b)a;y=b; oi rint()ctxyndl; ; main() a; a.f1(1。5。1.8);.print();a、f1(1.5,1.8); f1( )调用时实参与形参类型不一致45。iclueiosteam。h ain() int x=6; cs t*px; coupendl; ons in*p=; 变量给指针p赋值必须加上四、完成程序题(本大题共小题。每小题4分、共2分)6、完成下面程序.使其输出.并在退出运行时正确释放分配给指针得存储空间、#iclude ingnamespace st;vd man()it a。p;a=new int(10);p= _a_;c
12、oupndl;delete p;或elete a;7.#ncud osea sing namspce td; clas base privte:n x; pulic:bae(nt a)=a; intgt()trn x; vod owase() cutx=”xe; ; clsDevd:pubic se prvte:t y; public:Derived(in、it b):ase(a)y=b; oi hwde() coutx=”get()、=yhowbase();d。howdeive();.shobse();输出结果如下:x=3x6.=7=6=6x6.y=7x=68、下面程序得运行结果如下: B:
13、displa() :dsplay() 在下划线处填上缺少得部分。源程序如下: #nlueiosteam un nasace sd; clas B pul: itloi sply() cout :display( ) nl; ; lass C:pulicB pubi:v dsplay()cout”:displa()endl; ; voi fu(B*) pdila(); oid ai() B b。pb; C; pb; fn(p); pb=&; fn(p); 4。下面程序得运行结果如下: Th i line1 Tis is line2 This is line3 在下划线处填上缺少得部分。源程序如下
14、: incueiosrm #nclfe或”fre” us naee std; void main() fsrafi, ot; fout。open(my、txt、ios:out); if(!fu、is_op() return; or(int i=0;i3;i=i+1) foutThis slinei+1enl; fou、lose(); fin.open(my。tt。ios:in); if(!in。isopen() retun; chr str00; wle(!fin。of( ) in。getlin(str。100); couttusing nameace t;templae或templaetyp
15、ename T n(Tx) y; x-T(5); etrny; void min() fota=2; coutun();五、程序分析题(本大题共小题。每小题5分。共0分)51、请写出myTxtl.txt文本文件中得内容#iludeung amepae std;includefstremid an() ofsreammyFi;my(”myTxt.txt);ct”nter thedaa in Chnse forat(e.g。 、208。May 25):ndl;tingDate(”08。Janary 1”);stri Yar=Date、subtr(.4);n k=Date、ind(”、);in i=
16、Date.find(” ”);ting Moth=te、sut(+、ik-1);strinDay=Date.sustr(。);strin NeDate=a+”+Mnth+Year;myFileinal dat:”atendl;mFile1Convertddate:”NDatendl;y();orginaldate:200,January1Cnveteddate:1 Jury 0052.给出下面程序得输出结果#ncluesrm usingnmespace td;class Smplent x.y;pulic:Simple()=0;Sipe(int i.i j)x=i;y=j;oid copy(S
17、ipl);voidetxy(in、it j)x=i;y=j;vo prnt()coutx=x、y=0) if(-i4=3)cntne; se ui”iedl; i=16 i=14 =12 i=1054.给出下面程序得输出结果 #idistream sgnmepacesd; voidmain() nt nm=300; it rf=u; coutrf; refref0;outnum; nu=num-50; cout” efenl; 30 200 50六、程序设计题(本大题共1小题、共10分)55、定义堆栈类模板Stack(先进后出)、栈得大小由使用者确定。要求该类模板对外提供 如下二种基本操作: (1)ps入栈(2)pop出栈。用数组来实现 icueotam us amsae st; teate:push() i (rrn si) cout“TheStki full!end;exit(0); /堆栈满则程序结束ese xcurret=;crret+; /新元素入栈并修改栈顶指针T StackT,ize:p( ) if (curent=)cout”here is no oect ieStck!”edl;xi(0); /堆栈空则程序结束ese T =crrent1;current-;retun;/栈顶元素出栈并修改栈顶指针
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2