1、C+练习题(1)下列关于 C+函数的叙述中,正确的是 ( )A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值C)函数在被调用之前必须先声明 D)函数不能自己调用自己(2)下列关于类和对象的叙述中,错误的是( )A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系(3)在 C+中,用于实现运行时多态性的是( )A)内联函数 B)重载函数 C)模板函数 D)虚函数(4)下列关于运算符重载的叙述中,正确的是( ).A)通过运算符重载,可以定义新的运算符B)有的运算符只能作为成员函数重载C)若重载运算符+,则相应的运算符
2、函数名是+D)重载一个二元运算符时,必须声明两个形参(5)关于析构函数的说法错误的是( ) 。A)析构函数只有一个B)析构函数无任何函数类型C)析构函数与构造函数一样可以有形参D)析构函数在对象被撤销是自动执行(6)下面几个函数头格式中,不正确的是 ( ) 。 A)CC(int x,int y) B) CC(int y,int y0)C) CC(int x0,int y0) D) CC(int x0,int y)(7)下列字符串中,正确的 C+标识符是 ( )。A)foo-1 B)2b C)new D)_256(8)已知枚举类型定义语句为:enum Token NAME, NUMBER, PL
3、US = 5, MINUS, PRINT = 10 ;则下列叙述中错误的是( )。A)枚举常量 NAME 的值为 1B)枚举常量 NUMBER 的值为 1C)枚举常量 MINUS 的值为 6D)枚举常量 PRINT 的值为 10(9)要定义一个具有 5 个元素的一维数组 vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是( )。A)int vect =30,50,-88;B)int vect =30,50,-88,0,0; C)int vect5=30,50,-88;D)int vect5=30,50,-88,0,0;(10)有如下程序:#includ
4、e void fun(int x = y; y = t; int main( )int a2 = 23, 42;fun(a1, a0);std:cout 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 using namespace std;class A public:A( ) cout
5、using namespace std;class BASEpublic:BASE( ) coutclass Bpublic:B();B(int i,int j);B()coutusing 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;cout using namespace std;class AAint n;public:AA
6、(int k):n(k) int get( ) return n;int get( )const return n+1;int main( )AA a(5);const AA b(6);coutvoid fun(int x = y; y = t; int main( )int a2 = 23, 42;fun(a1, a0);std:cout using namespace std;class Test public:Test( ) n+=2; Test( ) n-=3; static int getNum( ) return n; private:static int n;int Test:n
7、 = 1;int main( )Test * p = new Test;delete p;cout using namespace std;class A public:A( ) cout using namespace std;class BASEpublic:BASE( ) cout“BASE“;class DERIVED: public BASE public:DERIVED( ) cout“DERIVED“;int main( )DERIVED x; return 0 ;执行后的输出结果是(D)A)BASE B)DERIVEDC)BASEDERIVED D)DERIVED BASE(19)在表达式 x+y*z 中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。下列叙述中正确的是(C)A)operator+有两个参数,operator*有两个参数B)operator+有两个参数,operator*有一个参数C)operator+有一个参数,operator*有两个参数D)operator+有一个参数,operator*有一个参数