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

using namespace std;

int i = 0;

int fun(int n)

{

static int a = 2;

a++;

return a+n;

}

void main()

{

int k = 5;

{

int i = 2;

k += fun(i);

}

k += fun(i);

cout << k;

}

A)13 B)14 C)15 D)16

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

#include

using namespace std;

class Base

{

public:

virtual void f() { cout << “f0+”; }

void g() { cout << “g0+”; }

};

class Derived : public Base

{

public:

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

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

};

void main() { Derived d; Base *p = &d; p->f(); p->g(); } A)f+g+ B)f0+g+ C)f+g0+ D)f0+g0+

13.以下程序的输出结果是:(D)

#include

using namespace std;

int fun(char *s)

{ char *p=s;

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

return (p-s);

}

void main(){

cout<

}

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

14.有如下程序段:

int i=1;

while(1)

{

i++;

if (i==10) break;

if(i%2==0) cout<<’*’;

}

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

A. 10

B. 3

C. 4

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

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

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

C. 声明 class B:virtual public A 说明类B为虚基类

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

16.有下类定义

Class A {

Char *a;

Public:

A():a(0){}

A(char *aa) {new char[strlen(aa)+1] B. char[strlen(aa)+1]

C. char[strlen(aa)]

D. new char[sizeof(aa)-1]

17.有如下程序:

#include

using namespace std;

class Test{

public:

Test(){}

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

};

int main(){

Test temp[2], *pTemp[2];

return 0;

}

执行这个程序输出星号(#)的个数为(B)。

A)1 B)2 C)3 D)4

18.友元运算符obj++被C++编译器解释为(D)。

A. operator++(obj)

B. operator++(obj,0)

B. ++( ) D. ++(0)

19.下面程序的运行结果为( C )

#include

class A

{

int num;

public:

A(int i){num=i;}

A(A &a){num=++;}

void print(){cout<

};

void main()

{

A a(1),b(a);

();

();

}

B.12

20.如果类A被说明成类B的友元,则( D )

A.类A的成员即类B的成员

B.类B的成员即类A的成员

C.类A的成员函数不得访问类B的成员

D.类B不一定是类A的友元

相关文档
最新文档