1、 考生得分:0 分 评语:7. 类的构造函数可以带有( )个参数。D.任意8. 假定AB为一个类,则执行 “AB x(a,5);9. 设px是指向一个类对象的指针变量,则执行 “delete px;”语句时,将自动调用该类的( )。A.无参构造函数B.带参构造函数C.析构函数D.拷贝构造函数10. 在一个类的定义中,包含有( )成员的定义。A.数据B.函数C.数据和函数D.变量11. 在C+中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为( )指针。A.对象B.派生C.基类D.this12. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,
2、则访问x对象中函数成员a()的格式为( )。A.x.aB.x.a()C.x-aD.x-a()13. 下面有关重载函数的说法中正确的是( )。A.重载函数必须具有不同的返回值类型;B.重载函数形参个数必须不同;C.重载函数必须有不同的形参列表;D.重载函数名可以不同;C14. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为( )。A.nB.n+1C.n-1D.n-215. 一个类的析构函数通常被定义为该类的( )成员。A.私有B.保护C.公用D.友元16. 类的析构函数是一个对象被( )时自动调用的。A.建立B.撤消C.赋值D.引用B17. 假定AA为一个类,i
3、nt a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( )。A.int AA:B.int AA:C.AA:D.AA:int a()A18. 在一个类的定义中,包含有( )成员的定义。D.数据或函数19. 对于公有继承,基类中的私有成员在派生类中将 ( )。A.能够直接使用成员名访问B.能够通过成员运算符访问C.仍然是基类的私有成员D.变为派生类的私有成员20. 下面描述中,表达错误的是( )。A.公有继承时基类中的public成员在派生类中仍是public的B.私有继承时基类中的private成员在派生类中仍是private的C.私有继承时基类中的protected成员在
4、派生类中仍是protected的D.私有继承时基类中的public成员在派生类中是private的21. 在C+中,对于基类的protected成员,当以protected方式派生一个新类时。该成员将成 为派生类的( )成员。A.privateB.protectedC.publicD.非法22. 在c+中,一个虚函数是通过关键字( )放在其基类说明的前面来加以说明的. (2分) A.virtualC.operator23. 设置虚基类的目的是( )。A.简化程序;B.消除二义性;C.提高运行效率;D.减少目标代码;24. 凡是能用以派生新类,却不能创建自己的对象的类称为( )。A.虚基类B.抽
5、象类C.容器类D.派生类25. 抽象类是( ):A.不可以定义对象B.可以定义对象C.不可以派生新类D.不可以输出26. 假定有定义“int b10; int *pb;”,则不正确的赋值语句为( )。A.pb=b;B.pb=&b0;C.*pb=new int;D.pb=b5;27. 假定一条定义语句为“int a10, x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( )。A.x=pa3;B.x=*(a+3);C.x=a3;D.x=*pa+3;28. 下列给字符数组赋初值时,正确的是( )。A.char s1=”abcdef”;B.char s24=”abcd”;
6、C.char s323=“abc”,”xyz”;D.char s44=a,x,s,t;29. 执行语句“char a10=abcd,*p; p=a;”后,*(p+4)的值是( ) (2分) A.“abcd”B.dC.0D.不能确定30. 设有如下函数定义int f(char *s) char *p=s;while(*p!=0) p+;return(p-s);在主函数中用coutf(“good”)调用上述函数, 则输出结果为( )。A.3B.4C.5D.631. 下面语句( )是非法的。A.char x=C;B.char x=#C.char x=D.char x=$32. 一个C+程序至少应包含
7、( )个函数。D.333. 设a=12,n=5,则表达 式a%=(n%=2)运算后,a的值为( )。C.6D.1234. 下列关于单目运算符+、-的叙述中正确的是 (2分) A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量、int型变量和float型变量D35. 假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为( )。A.int rx=x;B.int rx=&x;C.int *
8、rx=&D.int &rx=x;36. 以下描述中正确的是( )。A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来37. 循环语句“for(int i=0; in; i+) couti*i ;”中循环体执行的次数为( )。A.1B.n-1C.nD.n+138. C+语言的跳转语句中,对于break和continue说法正确的是( )。A.break语句只用于循环体中B.continue语句只用于循环体中C.break是无条件跳转语句,c
9、ontinue不是 D.break和continue的跳转范围不够明确,容易产生问题39. 在下面循环语句中循环体执行的次数为( )。int i=0,s=0; while(s20) i+; s+=i; (2分) A.4B.5D.740. do语句能够改写为( )语句。A.复合B.ifC.switchD.while344441. 采用重载函数的目的是( )。A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性2. 假定AB为一个类,则执行 “AB x(a,5);3. 假定AB为一个类,则执行 “AB *s=new AB(a,5);”语句时得到的一个动态对象为( )。A.sB.s-C.s.
10、aD.*s4. 当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的( )。A.只能是公有成员B.只能是保护成员C.只能是除私有成员之外的任何成员D.任何权限的成员5. 在关键字private后面定义的成员为类的( )成员。B.公用C.保护D.任何6. 一个C+程序文件的扩展名为( )。A.hB.cC.cppD.cp7. 对于任一个类,用户所能定义的构造函数的个数至多为( )。8. 在C+程序中使用的cout标识符是系统类库中定义的( )类中的一个对象。A.istreamB.ostreamC.iostreamD.fstream9. 类的析构函数可以带有( )个参
11、数。10. 如果类A被说明成类B的友元,则( ) (2分) 11. 类的析构函数是一个对象被( )时自动调用的。12. 引入友元的主要目的是为了( )。A.增强数据安全性B.提高程序的可靠性C.提高程序的效率和灵活性D.保证类的封装性13. 关于封装,下列说法中不正确的是( )。A.通过封装,对象的全部属性和操作结合在一起,形成一个整体B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C.通过封装,每个对象都成为相对独立的实体D.通过封装,对象的属性都是不可见的14. 被非静态成员函数访问的类的数据成员( )。A.可以是非静态数据成员或静态数据成员B.不可能是类的静态数据成员C.只能
12、是类的非静态数据成员D.只能是类的静态数据成员15. 在C+程序中使用的cin标识符是系统类库中定义的( )类中的一个对象。16. 对于任意一个类,析构函数的个数最多为( ) (2分) 17. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( )。18. 在C+中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为( )指针。19. 如果类B在类A的基础上构造,那么,就称( )。A.类A为基类或父类,类B为超类或子类B.类A为基类、父类或超类,类B为派生类或子类C.类A为派生类,类B为基类D.类A为派生类或子
13、类,类B为基类、父类或超类20. C+的基类指针可以访问派生类对象,但不能访问派生类对象的( )成员。D.新增21. 派生类的成员函数可以直接访问基类的( )成员。A.所有B.公有和保护C.保护和私有D.私有22. 派生类的对象对其基类中( )可直接访问。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员23. 当派生类中有和基类一样名字的成员时,一般来说,( )。A.将产生二义性B.派生类的同名成员将覆盖基类的成员C.是不能允许的D.基类的同名成员将覆盖派生类的成员24. c+语言的运算符可以重载为成员函数和( ):A.算术函数B.输出函数C.友元函数D
14、.逻辑函数25. 不能重载的运算符是:() (2分) A./B.*C.:D.+=26. 要想在程序中使用strcpy()函数,须把( )包含到程序中。A.iostream.hB.stdio.hC.string.hD.iomanip.h27. 以下函数的返回结果是( )。int function(char *x) char *p=x;while(*p+);return(p-x-1);A.求字符串的长度B.将字符串x连接到字符串p后面C.将字符串x复制到字符串p中D.将字符串x反向存放28. 假定p是具有double类型的指针变量,则表达式+p使p的值(以字节为单位)增加( )。C.sizeof(
15、double)D.sizeof(p)29. 假定指针变量p定义为“int *p=new int30;”,要释放p所指向的动态内存,应使用语句( )。A.delete p;B.delete *p;C.delete &p;D.delete p;30. 执行语句“char a10=31. 一个C+程序至少应包含( )个函数。32. 以下错误的描述是( )。A.被调用函数中可以不用return语句B.被调用函数中可以用多个return语句C.被调用函数中,如果有返回值,就一定要有return语句D.被调用函数中,一个return语句可返回多个值给调用函数33. 设a=12,n=5,则表达式a%=(n%
16、=2)运算后,a的值为( )。34. 下列标识符中( )是正确。A._suml23_B._suml23$C.*pt_123D.Sum-Count35. 函数调用不可以( )。A.出现在一个表达式中B.出现在执行语句中C.作为一个函数的实参D.作为一个函数的形参36. 在下面循环语句中循环体执行的次数为( )。for(int i=0; i+) if(in/2) break;A.n/2B.n/2+1C.n/2-1D.n-137. C+语言的跳转语句中,对于break和continue说法正确的是( )。38. C+中用于结构化程序设计的三种基本结构是 (2分) A.顺序结构、选择结构、循环结构B.
17、if、switch、breakC.for、while、do-whileD.if、for、continue39. 有以下程序void main()int i;for(i=0;i3;i+)switch(i)case 1: couti;case 2:default:执行后输出的结果是A.011122B.012C.012020D.12040. switch语句能够改写为( )语句。A.forC.do34555 一. 单选 (共40题,共80分) 1. 类中定义的成员默认为( )访问属性。A.publicB.privateC.protectedD.friend2. 在类作用域中能够通过直接使用该类的( )成员名进行访问。3. 类的构造函数是在定义该类的一个( )时被自动调用执行的。A.成员函数B.数据成员C.对象D.友元函数4. 对于任意一个类,析构函数的个数最多为( ) (2分) .05. 在一个类的定义中,包含有( )成员的定义。6. 对于一个类的析构函数,其函数名与类名( )。A.完全相同B.完全不同C.只相差一个字符D.无关系
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1