C++练习题(附答案)

5.9

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

A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 (12)下列关于类和对象的叙述中,错误的是 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象

D)类和对象的关系是一种数据类型与变量的关系 (13)在 C++中,用于实现运行时多态性的是 A)内联函数 B)重载函数 C)模板函数 D)虚函数

(14)下列关于运算符重载的叙述中,正确的是 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载

C)若重载运算符+,则相应的运算符函数名是+ D)重载一个二元运算符时,必须声明两个形参 (15)下列关于模板的叙述中,错误的是

A)模板声明中的第一个符号总是关键字 template

B)在模板声明中用<和>括起来的部分是模板的形参表 C)类模板不能有数据成员

D)在一定条件下函数模板的实参可以省略

(16)对于语句 cout<

D)\称作提取运算符

(17)下列字符串中,正确的 C++标识符是 A)foo-1 B)2b C)new D)_256

(18)已知枚举类型定义语句为:

enum Token{NAME,NUMBER,PLUS=5,MINUS,PRINT=10}; 则下列叙述中错误的是

A)枚举常量 NAME 的值为 1 B)枚举常量 NUMBER 的值为 1 C)枚举常量 MINUS 的值为 6 D)枚举常量 PRINT 的值为 10 (19)执行语句序列

int i=0;while(i<25)i+=3;cout<

A)int vect[]={30,50,-88}; B)int vect[]={30,50,-88,0,0};

C)int vect[5]={30,50,-88}; D)int vect[5]={30,50,-88,0,0}; (21)有如下程序: #include

void fun(int& x,int y){int t=x;x=y;y=t;} int main() {

int a[2]={23,42}; fun(a[1],a[0]);

std::cout<

执行后的输出结果是 A)42,42 B)23,23 C)23,42 D)42,23 (22)有如下类声明: class Foo { int bar; }; 则 Foo 类的成员 bar 是

A)公有数据成员 B)公有成员函数 C)私有数据成员 D)私有成员函数 (23)有如下类声明: class MyBASE {

int k; public:

void set(int n){k=n;} int get()const{return k;} };

class MyDERIVED:protected MyBASE {

protected: int j; public:

void set(int m,int n){MyBASE::set(m);j=n;} int get()const{return MyBASE::get()+j;} };

则类 MyDERIVED 中保护的数据成员和成员函数的个数是 A)4 B)3 C)2 D)1

(24)已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误 的是

A)这是运算符-的重载运算符函数

B)这个函数所重载的运算符是一个一元运算符 C)这是一个成员函数

D)这个函数不改变类的任何数据成员的值 (25)有如下函数模板定义: template

T func(T x,T y){ return x*x+y*y;} 在下列对 func 的调用中,错误的是 A)func(3,5); B)func(3.0,5.5);

C)func(3,5.5); D)func(3,5.5);

(27)在下列函数原型中,可以作为类 AA 构造函数的是 A)void AA(int); B)int AA(); C)AA(int)const; D)AA(int);

(28)下列关于 this 指针的叙述中,正确的是 A)任何与类相关的函数都有 this 指针 B)类的成员函数都有 this 指针 C)类的友元函数都有 this 指针

D)类的非静态成员函数才有 this 指针 (29)有如下程序: #include using namespace std; class Test {

public:

Test() {n+=2; } ~Test() {n-=3; }

static int getNum() {return n; } private:

static int n; };

int Test::n=1; int main() {

Test* p=new Test; delete p;

cout<<\ return 0; }

执行后的输出结果是 A)n=0 B)n=l C)n=2 D)n=3

(30)有如下程序: #include using namespace std; class A {

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4