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;

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 D)16 12.下面程序的输出结果是(C)

#include

usingnamespacestd;

classBase

{

public:

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

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

};

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+ 13.以下程序的输出结果是:(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

相关文档
最新文档