C++练习题(附答案)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A)func(3,5); B)func(3.0,5.5);
C)func(3,5.5); D)func<int>(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 <iostream>
using namespace std;
class Test
{
public:
Test() {n+=2; }
C)枚举常量MINUS的值为6 D)枚举常量PRINT的值为10
(19)执行语句序列
int i=0;while(i<25)i+=3;cout<<i;
输出结果是
A)24 B)25
C)27 D)28
(20)要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句
classC:public A{
B b;
public:
C(){cout<<"C";}
};
int main(){ C obj; return 0;}
执行后的输出结果是
A)CBA B)BAC
C)ACB D)ABC
(31)有如下类声明:
class XA{
int x;
public:
XA(int n){x=n;}
(13)在C++中,用于实现运行时多态性的是
A)内联函数B)重载函数
C)模板函数D)虚函数
(14)下列关于运算符重载的叙述中,正确的是
A)通过运算符重载,可以定义新的运算符
B)有的运算符只能作为成员函数重载
C)若重载运算符+,则相应的运算符函数名是+
D)重载一个二元运算符时,必须声明两个形参
(15)下列关于模板的叙述中,错误的是
return 0;
}
执行后的输出结果是
A)n=0 B)n=l
C)n=2 D)n=3
(30)有如下程序:
#include <iostream>
using namespace std;
class A {
public:
A(){cout<<"A";}
};
classB{public:B(){cout<<"B";}}
A)模板声明中的第一个符号总是关键字template
B)在模板声明中用<和>括起来的部分是模板的形参表
C)类模板不能有数据成员
D)在一定条件下函数模板的实参可以省略
(16)对于语句cout<<endl<<x;中的各个组成部分,下列叙述中错误的是
A)"cout"是一个输出流对象
B)"endl"的作用是输出回车换行
则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
int main()
{
int a[2]={23,42};
fun(a[1],a[0]);
std::cout<<a[0]<<","<<a[1]<<std::endl;
return 0;
}
执行后的输出结果是
A)42,42 B)23,23
C)23,42 D)42,23
(22)有如下类声明:
class Foo { int bar; };
~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<<"n="<<Test::getNum()<<endl;
中错误的是
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 <iostream>
void fun(int& x,int y){int t=x;x=y;y=t;}
5.9
(11)下列关于C++函数的叙述中,正确的是
A)每个函数至少要具有一个参数B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明D)函数不能自己调用自己
(12)下wk.baidu.com关于类和对象的叙述中,错误的是
A)一个类只能有一个对象
B)对象是类的具体实例
C)类是对某一类对象的抽象
D)类和对象的关系是一种数据类型与变量的关系
C)"x"是一个变量
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
{
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;,下列关于这个函数的叙述中,错误
};
class XB:public XA{
int y;
public:
XB(int a,int b);
的是
A)这是运算符-的重载运算符函数
B)这个函数所重载的运算符是一个一元运算符
C)这是一个成员函数
D)这个函数不改变类的任何数据成员的值
(25)有如下函数模板定义:
template <class T>
T func(T x,T y){ return x*x+y*y;}
在下列对func的调用中,错误的是
相关文档
最新文档