C++习题2(构造函数和静态成员)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1习题2第一题选择:1、下面的程序输出结果是什么?inti=2,sum=0;while(i=5){sum=sum+i;i=i+1;}coutsum=sumendl;A、14B、15C、16D、172、下面的程序输出结果是什么?inta=8;intb=++a;couta,b”,”;intc=a++;couta,cendl;A、9,9,10,9B、9,10,10,9C、9,9,9,9D、9,9,10,103、下面的程序输出结果是什么?intx=0;if(x=0)couta;elsecoutb;A、bB、aC、abD、ab4、下面的程序输出结果是什么?intx=0;(x==0)?(cout1):(cout3);A、1B、3C、13D、315、下面的程序输出结果是什么?intx=2;switch(x){case1:cout1;case2:cout2;case3:cout3;break;case4:cout4;2default:;}A、23B、123C、1234D、2346、下面的程序输出结果是什么?staticinta[]={1,2,4};for(inti=0;i(sizeof(a)/sizeof(int));i++)couta[i];coutendl;A、124B、1C、124D、127、下面的程序输出结果是什么?#includeiostream.hvoidmain(){int*iPtr;intiCount=18;iPtr=&iCount;iCount++;cout*iPtrendl;}A、19B、20C、18D、178、下面的程序输出结果是什么?#includeiostream.hvoidfun(char*s){++s;++s;cout*sendl;}voidmain(){3chara[]=ABCDEFGHIJ;fun(a);}A、CB、ABCDEFGHIJC、CDEFGHIJD、A9、数组定义为inta[100];以下数组输入正确的是?A、cina[];B、cina[100];C、for(inti=0;i100;++i)cina[i];D、cininta[100];10、下面的程序输出结果是什么?#includeiostream.hvoidfun(char*s){++s;++s;coutsendl;}voidmain(){chara[]=ABCDEFGHIJ;fun(a);}A、CDEFGHIJB、CC、ABCDEFGHIJD、J11、C++程序从上机到得到结果的几个操作步骤依次是()。A.编译、编辑、连接、运行B.编辑、编译、连接、运行C.编译、运行、编辑、连接D.编辑、运行、编辑、连接12、程序中主函数的名字为()。A.mainB.MAINC.MainD.任意标识符13、设inta=15,b=26;,则cout(a,b);的输出结果是()。A.15B.26,15C.15,26D.2614、设x是一个bool型的逻辑量,y的值为10,则表达式x&&y的值为()。A.1B.0C.与x值相同D.与x值相反15、字符串”a+b=12”的长度为()。A.6B.7C.8D.916、下列的符号常量定义中,错误的定义是()。A.constcharM=10;B.constintM=20;C.constcharch;D.constboolmark=true;17、循环语句“for(inti=0;in;i++)couti*i’’;”中循环体执行的次数为()。4A.1B.n-1C.nD.n+118、在下面循环语句中循环体执行的次数为()。inti=0,s=0;while(s20){i++;s+=i;}A.4B.5C.6D.719、在下面循环语句中循环体执行的次数为()。inti=0;doi++;while(i*i10);A.4B.3C.5D.220、假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为)。A.0B.4C.8D.621.下列的各类函数中,不是类的成员函数。()A)构造函数B)析构函数C)友元函数D)拷贝初始化构造函数22.作用域运算符“::”的功能是:()A)标识作用域的级别的B)指出作用域的范围的C)给定作用域的大小的D)标识成员是属于哪个类的23.在类定义的外部,可以被访问的成员有()A)所有类成员B)private的类成员C)public的类成员D)public或private的类成员24.关于类和对象不正确的说法是:()A)类是一种类型,它封装了数据和操作B)对象是类的实例C)一个类的对象只有一个D)一个对象必属于某个类25.在C++中实现封装是借助于()A)枚举B)类C)数组D)函数26.定义析构函数时,说法正确的是:()A)其名与类名完全相同B)返回类型是void类型C)无形参,也不可重载D)函数体中必须有delete语句27.类的指针成员的初始化是通过函数完成的,这个函数通常是:()A)析构函数B)构造函数C)其它成员函数D)友元函数28.关于构造函数的说法,不正确的是:()A)没有定义构造函数时,系统将不会调用它B)其名与类名完全相同C)它在对象被创建时由系统自动调用D)没有返回值29.通常拷贝构造函数的参数是:()A)对象名B)对象的成员名C)对象的引用名D)对象的指针名30.关于成员函数特征的描述中,错误的是:()A)成员函数一定是内联函数B)成员函数可以重载5C)成员函数可以设置参数的默认值D)成员函数可以是静态的31.有如下类声明“classA{intx;……};”,则A类的成员x是:()A)公有数据成员B)私有数据成员C)公有成员函数D)私有成员函数32.以下关键字不能用来声明类的访问权限的是:()A)publicB)privateC)staticD)protected33.类的私有成员可在何处访问()A)通过子类的对象访问B)本类及子类的成员函数中C)通过该类对象访问D)本类的成员函数中34.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是:()A)编译器总是自动创建一个不带参数的构造函数B)这个类没有构造函数C)这个类不需要构造函数D)该类不能通过编译35.下列关于类的权限的描述错误的是:()A)类本身的成员函数只能访问自身的私有成员B)类的对象只能访问该类的公有成员C)普通函数不能直接访问类的公有成员,必须通过对象访问D)一个类可以将另一个类的对象作为成员36.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是:()A)A类构造函数先执行B)成员构造函数先执行C)两者并行执行D)不能确定37拷贝构造函数的作用是()。A.进行数据类型的转换B.用对象调用成员函数C.用对象初始化对象D.用一般类型的数据初始化对象38.通过指针访问类对象成员的方法是()。A.::B.;C..D.-39.对C++语言和C语言的兼容性,描述正确的是:()A)C++兼容CB)C++部分兼容CC)C++不兼容CD)C兼容C++40.下列静态数据成员的特性中,错误的是()。A.静态数据成员的声明以关键字static开头B.静态数据成员必须在文件作用域内初始化C.引导数据成员时,要在静态数据成员前加(类名)和作用域运算符D.静态数据成员不是类所有对象共享的第二题:填空题1、在撤销类的对象时,C++程序将自动调用该对象的_____函数。2、对类中的成员函数和属性的访问是通过______、______和______这3个关键字来控制的。63、若要把类FriendClass定义为类MyClass的友元类,则应在类MyClass的定义中加入语句_______________。3、若要把函数voidFriendFunction()定义为类MyClass的友元函数,则应在类MyClass的定义中加入语句________________。5、在结构定义中,数据和成员函数默认权限是__________。在类定义中,数据和成员函数默认权限是___________。6、一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为__________权限,而把成员函数(方法)定义为__________权限。7、在类中定义和实现的函数称为___。8、非成员函数应声明为类的________才能访问这个类的private成员。9.假定x=10,则表达式x=10?20:30的值为____________。10.表达式sqrt(81)和pow(6,3)的值分别为______和______。11.用于输出表达式值的标准输出流对象是_________。12.用于从键盘上为变量输入值的标准输入流对象是________。13.一个函数定义由________和________两部分组成。14.C++头文件和源程序文件的扩展名分别为______和______。15.假定x是一个逻辑量,则x&&!x的值为__________。16.假定x是一个逻辑量,则x||!x的值为__________。三、读程序写结果1.。请问以下程序输出什么?#includeiostream.hclassA{public:A(){x=0;coutCA0endl;}A(inti){x=i;coutCA1endl;}A(A&r){x=r.x;coutCA2endl;}~A(){coutDAendl;}private:intx;};voidf1(Am){}voidf2(A&m){}7intmain(){Aa;Ab(a);f1(a);f2(a);}四、程序填空:1、classPoint{public:Point(intxx=0,intyy=0){X=xx;Y=yy;}Point(Point&p);intGetX(){returnX;}intGetY(){returnY;}private:intX,Y;};__________________//定义拷贝构造函数{X=p.X;Y=p.Y;}intmain(){PointA(1,2);__________________//用对象A初始化新建对象BcoutB.GetX()endl;}2、classStudent//定义Student类{public:Student(intn,inta,floats):num(n),age(a),score(s){}//定义构造函数voidtotal();__________________//声明静态成员函数average8private:intnum;intage;floatscore;staticfloatsum;//静态数据成员staticintcount;//静态数据成员};__________________//定义成员函数total{sum+=score;count++;}floatStudent∷average()//定义静态成员函数{return(sum/count);}答案:1.选择:12345678910AAAAAAAACA11121314151617181920BADCBCCCAA21222324252627282930CBCCBCBACA31323334353637383940BCDAABCDAD2.填空:1.析构2.public__、__protected__和___private3.friendclassFriendClass;___。4.__friendvoidFriendFunction();_5._public__private___6.private_public7.内联函数8.友元函数9.2010.9,21611.cout912.cin13函数头和函数体14.h.cpp15false(或0)16.true(或1)第三题读程序:答案:屏幕上输出,CA2,CA2,不输出。第四题:1.Point

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功