c练习题带答案

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

选择题1. C++语言属于(C)。

A)自然语言B)机器语言C)面向对象语言D)汇编语言

2. 下面选项中不属于面向对象程序设计特征的是(C)。

A)继承性B)多态性C)相似性D)封装性

3. 下列情况中,哪一种情况不会调用拷贝构造函数(B)

A)用派生类的对象去初始化基类对象时

B)将类的一个对象赋值给该类的另一个对象时

C)函数的形参是类的对象,调用函数进行形参和实参结合时

D)函数的返回值是类的对象,函数执行返回调用者时

4. 以下哪一关键字可用于重载函数的区分(C)

A)extern B)static C)const

D)virtual

5. 下列有关数组的叙述中,正确的是(B)

A)C++中数组的存储方式为列优先存储

B)数组名可以作为实参赋值给指针类型的形参

C)数组下标索引从1开始,至数组长度n结束

D)数组指针的语法形式为:类型名*数组名[下标表达式];

6. 下列有关继承和派生的叙述中,正确的是(C)

A)派生类不能访问通过私有继承的基类的保护成员

B)多继承的虚基类不能够实例化

C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数

D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实

7. 若有下面的函数调用:

fun(a+b,3,max(n-1,b));

其中实参的个数是(A)

A)3 B)4 C)5 D)6

8. 下列关于this 指针的说法正确的是(B)

A)this 指针存在于每个函数之中

B)在类的非静态函数中this指针指向调用该函数的对象

C)this 指针是指向虚函数表的指针

D)this 指针是指向类的函数成员的指针

9. 在下列关于C++函数的叙述中,正确的是(C)

A)每个函数至少要有一个参数B)每个函数都必须返回一个值

C)函数在被调用之前必须先声明D)函数不能自己调用自己

10. 下列运算符中,不能重载的是(C)

A)&& B)!= C). D)->

11. 下面程序的输出结果是(B)

选择题

#include usingnamespacestd;

inti=0;

12.

13.

intfun(intn)

{

staticinta=2;

a++;

returna+n;

}

voidmain()

{

intk=5;

{

inti=2;

k+=fun(i);

}

k+=fun(i);

cout<

}

A)13 B) 14 C)15

面程序的输出结果是( C)

#include

usingnamespacestd;

classBase

{

public:

virtualvoidf(){cout<< “f0+ ” ;}

voidg(){cout<< “ g0+”;}

};

D)16

classDerived:publicBase

{

public:

voidf(){cout<< “ f+ ”;}

voidg(){cout<< “ g+”;}

};

voidmain(){Derivedd;Base*p=&d;p->f();p->g();}

A) f+g+ B) f0+g+ C) f+g0+ D) f0+g0+ 以下程序的输出结果是:( D)

#include

usingnamespacestd;

intfun(char*s)

{char*p=s;

while(*p!='\0')p++;

return(p-s);

}

voidmain(){

cout<

}

A.0B.1 C.2D.3

14. 有如下程序段:inti=1;

while(1)

{

i++;

if(i==10)break; if(i%2==0)cout<< '* ';

} 执行这个程序段输出字符*的个数是(C)

A. 10

B.3

C.4

D.5

15. 下列关于虚基类的描述中,错误的是( C)

A. 使用虚基类可以消除由多继承产生的二义性

B. 构造派生类对象时,虚基类的构造函数只被调用一次

C. 声明classB:virtualpublicA 说明类B 为虚基类

D. 建立派生类对象时,首先调用虚基类的构造函数

16. 有下类定义

ClassA{

Char*a;

Public:

A():a(0){}

A(char*aa){// 把aa 所指字符串拷贝到a 所指向的存储空间A= ;

Strcpy(a,aa);

~A(){delete[]a;}

};

正确的选择是( A)

A. newchar[strlen(aa)+1]

B.char[strlen(aa)+1]

C.char[strlen(aa)]

D.newchar[sizeof(aa)-1]

17. 有如下程序:#include usingnamespacestd;

classTest{ public: Test(){}

~Test(){cout<<'#';}

};

intmain(){

相关文档
最新文档