1604-全国-C++程序设计
总分:100
一、单选题(共20题,共20分)
1、下列运算符中,在C++中不能重载的是()。(1分)
A:+
B:>=
C:::
D:/
2、如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()(1分)
A:a.operator++(1)
B:operator++(a)
C:operator++(a,1)
D:a.operator++()
3、关于函数模板,描述错误的是()。(1分)
A:函数模板必须由程序员实例化为可执行的函数模板
B:函数模板的实例化由编译器实现
C:一个类定义中,只要有一个函数模板,则这个类是类模板
D:类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化
4、关于this指针的说法错误的是()。(1分)
A:this指针必须显式声明
B:当创建一个对象后,this指针就指向该对象
C:动态成员函数拥有this指针
D:静态成员函数不拥有this指针
5、按照标识符的要求,不能组成标识符的是()。(1分)
A:连接符
B:下划线
C:大小写字母
D:数字字母
6、以下能正确定义数组并正确赋初值的语句是()。(1分)
A:intN=5,b[N][N];
B:inta[2]={{1},{3},{4},{5}};
C:intc[2][]={{1,2},{3,4}};
D:intd[3][2]={{1,2},{3,4}};
7、已知:func()函数是一个类的常成员函数,它无返回值,下列表示中,是正确的是()。(1分)
A:voidfunc()const;
B:constvoidfunc();
C:voidconstfunc();
D:voidfunc(const);
8、已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,正确的是()。(1分)
A:A1.p=5;
B:A1->P=5;
C:A1.*P=5;
D:*A1.P=5;
9、下列不是类的成员函数的是()。(1分)
A:友元函数
B:构造函数
C:析构函数
D:拷贝构造函数
10、已知类A是类B的友元,类B是类C的友元,则()。(1分)
A:类A一定是类C的友元
B:类C一定是类A的友元
C:类C的成员函数可以访问类B的对象的任何成员
D:类A的成员函数可以访问类B的对象的任何成员
11、在编译指令中,宏定义使用哪个命令()。(1分)
A:#if
B:#include
指针调用成员函数
C:#define
D:#error
12、假定一个类的构造函数为A(intaa,intbb){a=aa++;b=a*++bb;},则执行Ax(4,5);语句后,x.a和x.b的值分别为()。(1分)
A:4和5
B:4和20
C:4和24
D:20和5
13、以下基类中的成员函数表示纯虚函数的是()。(1分)
A:virtualvoidvf(int)
B:voidvf(int)=0
C:virtualvoidvf()=0
D:virtualvoidyf(int){}
14、实现两个相同类型数加法的函数模板的声明是()(1分)
A:add(Tx,Ty)
B:Tadd(x,y)
C:Tadd(Tx,y)
D:Tadd(Tx,Ty)
15、类Cat是类Animal的公有派生类,类Animal和类Cat中都定义了虚函数func(),p是一个指向类Animal对象的指针,则P->Animal::func()将()。(1分)
A:调用类Animal中的函数func()
B:调用类Cat中的函数func()
C:根据p所指的对象类型而确定调用类Animal中或类Cat中函数func()
D:既调用类Animal中函数,也调用类Cat中的函数
16、下列关于对静态数据成员的描述中,正确的是()。(1分)
A:静态数据成员不能用public控制符修饰
B:静态数据成员可以直接用类名或者对象名来调用
C:静态数据成员不可以被类的对象调用
D:静态数据成员不能用private控制符修饰