(完整版)四川大学电子信息学院卓越工程师班高级语言程序设计II考试试题B(2011)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
using namespace std;//使用命名空间std
class A
{
public:
void Show() const { cout << "A" << endl; }//输出信息
};
class B: public A
{
public:
void Show() const { cout << "B" << endl; }//输出信息
int main()//主函数main()
{
Test obj1, obj2, obj3;//定义对象
Test::Show();//显示对象数
return 0;//返回值0,返回操作系统
}
参考答案:int Test::count =
2.下列程序的输出结果为“B”,试将程序补充完整。
#include <iostream>//编译预处理命令
A)ios::inB)ios::out
C)ios::in | ios::outD)没有默认的打开方式
参考答案:A
9.在下面4个关键字中,用于说明虚基类的是( )。
A)virtualB)public
C)protectedD)private
参考答案:A
10.在面向对象方法中,实现信息隐蔽是依靠( )。
A)对象的继承B)对象的多态
T Max(const T &a, const T &b) { return a < b ? b : a; }
int main()//主函数main()
{
cout << Max(1.8, 5.18) << endl << Max<int>(1.8, 5.18) << endl;//输出信息
return 0;//返回值0,返回操作系统
virtual void Show() const{ cout << "Base::Show()" << endl; }//虚函数
};
//派生类
class Derived: public Base
{
public:
//公有函数:
void Show() const{ cout << "Derived::Show()" << endl; }//虚函数
};
void Refers(const Base &obj)//基类引用
{
obj.Show();//调用函数Show()
}
int main()//主函数main()
{
Base obj1;//定义对象
Derived obj2;//定义对象
Refers(obj1);//调用函数Refers()
Refers(obj2);//调用函数Refers()
C)对象的封装D)对象的分类
参考答案:C
二
1.含有纯虚函数的类称为()。
参考答案:抽象类
2.若将一个二元运算符重载为类的成员函数,其形参个数应该是()个。
参考答案:1
3.一个全局函数应声明为类的()函数才能访问这个类的private成员。
参考答案:友元
4.重载运算符“>>”的函数名为()。
参考答案:operator>>
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
16,6
2.阅读下面程序,写出输出结果。
#include <iostream>//编译预处理命令
using namespace std;//使用命名空间std
class A
{
public:
A() { cout << "A" << endl; }//构造函数
};
int main(void)//主函数main()
{
A *p = new B;//定义指针
p->Show();//输出信息
delete p;//释放空间
return 0;//返回值0,返回操作系统
}
参考答案:virtual
3.将如下程序补充完整。
#include <iostream>//预处理命令
template <class Type>
Type Area(const Type &size) { return size * size; }
其中Type是( )。
A)函数形参B)函数实参
C)模板类型形参D)模板类型实参
参考答案:C
3.由于常对象不能被更新,因此( )。
A)通过常对象只能调用它的常成员函数
static int count;//对象数
public:
//公有函数:
Test(){ count++; }//构造函数,实现对对象进行计数
static void Show(){ cout << "共有" << count << "个对象!" << endl; }//显示对象数
};
0;//为静态数据成员赋初值
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
20 10
100 300
5.阅读下面程序,写出输出结果。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
//基类
class Base
{
public:
//公有函数:
void Show() const//显示b之值
{ cout << a << "," << b << endl; }
};
int main()//主函数main()
{
C obj(5, 18);//定义对象
obj.Show();//显示相关信息
obj.A::Show();//显示相关信息
obj.B::Show();//显示相关信息
B)通过常对象只能调用静态成员函数
C)常对象的成员都是常成员
D)通过常对象可以调用任何不改变对象值的成员函数
参考答案:A
4.如果派生类以public方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是( )。
A)public和publicB)public和protected
~A() { cout << "~A" << endl; }//析构函数
};
class B
{
private:
A a;//数据成员
public:
B() { cout << "B" << endl; }//构造函数
~B() { cout << "~B" << endl; }//析构函数
};
int main(void)//主函数main()
}
namespace//无名命名空间
{
int x = 20;//命名空间中的变量x
}
int y = 300;//全局变量y
int main(void)//主函数main(void)
{
cout << x << " " << ns::x << endl;//显示变量x的值
cout << ns::y << " " << y << endl;//显示变量y的值
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
5,18
5
18
四
1.将如下程序补充完整。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
//测试静态成员类
class Test
{
private:
//数据成员:
6..在C++中,用于实现编译时多态性的是( )。
A)友元函数B)重载函数
C)静态成员函数D)虚函数
参考答案:B
7.在下列函数原型中,可以作为类AA构造函数的是( )。
A)void AA(int);B)int AA();
C)~AA(int);D)AA(int);
参考答案:D
8.使用ifstream流类定义流对象并打开磁盘文件时,文件的默认打开方式为( )。
}
上面程序的输出结果为:
参考答案:
5.18
5
4.阅读下面程序,写出输出结果。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
namespace ns//命名空间ns
{
int x = 10;//命名空间ns中的变量x
int y = 100;//命名空间ns中的变量y
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
Base::Show()
Derived::Show()
6.阅读下面程序,写出输出结果。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
class A
{
protected:
Show();//调用基类的Show()
}
};
int main()//主函数main()
{
Derived obj(158, 98);//定义派生类对象
Base *p = &obj;//定义基类指针
p->Show();//调用Show()
return 0;//返回值0,返回操作系统
}
参考答案:Base::
C)protected和publicD)protected和protected
参考答案:C
5.下列关于this指针的叙述中,正确的是( )。
A)与类相关的所有函数都含有this来自百度文库针
B)所有类的成员函数都有this指针
C)类的所有友元函数都有this指针
D)只有类的非静态成员函数才有this指针
参考答案:D
4.将如下程序补充完整。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
//整型类
class Int
{
private:
//数据成员:
int i;//数据成员
public:
//公有函数:
int Get() { return n; }//返回n
int Get() const { return n - 2; }//返回n-2
};
int main()//主函数main()
{
CTest a;//定义对象a
const CTest b(8);//定义对象b
cout << a.Get() << "," << b.Get() << endl;//输出信息
5.定义模板的关键字为()。
参考答案:template
三
1.阅读下面程序,写出输出结果。
#include <iostream>//编译预处理命令
using namespace std;//使用命名空间std
class CTest
{
private:
int n;//数据成员
public:
CTest(int i = 16): n(i){}//构造函数
//数据成员:
int a;//数据成员
public:
//公有函数:
A(int x): a(x){ }//构造函数
void Show() const{ cout << a << endl; }//显示a之值
};
class B
{
protected:
//数据成员:
int b;//数据成员
public:
//公有函数:
B(int x): b(x){ }//构造函数
void Show() const{ cout << b << endl; }//显示a与b之值
};
class C: public A, public B
{
public:
//公有函数:
C(int x, int y): A(x), B(y){ }//构造函数
};
//派生类
class Derived: public Base
{
private:
//数据成员:
int n;//数据成员
public:
//公有函数:
Derived(int a, int b): Base(a), n(a){ }//构造函数
void Show() const//虚函数
{
cout << n << ",";//显示n及","
{
B obj;//定义对象
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
A
B
~B
~A
3.阅读下面程序,写出输出结果。
#include <iostream>//编译预处理命令
using namespace std;//使用命名空间std
template <class T>
using namespace std;//使用标准命名空间std
//基类
class Base
{
private:
//数据成员:
int m;//数据成员
public:
//公有函数:
Base(int a): m(a){ }//构造函数
virtual void Show() const { cout << m << endl; }//虚函数
计算机学院
一、单项选择题(本大题共
1.下列语句中,错误的是( )。
A)const int buffer = 256;B)const int tem;
C)const double *point;D)double * const pt = new double(5.5);
参考答案:B
2.有以下函数模板:
class A
{
public:
void Show() const { cout << "A" << endl; }//输出信息
};
class B: public A
{
public:
void Show() const { cout << "B" << endl; }//输出信息
int main()//主函数main()
{
Test obj1, obj2, obj3;//定义对象
Test::Show();//显示对象数
return 0;//返回值0,返回操作系统
}
参考答案:int Test::count =
2.下列程序的输出结果为“B”,试将程序补充完整。
#include <iostream>//编译预处理命令
A)ios::inB)ios::out
C)ios::in | ios::outD)没有默认的打开方式
参考答案:A
9.在下面4个关键字中,用于说明虚基类的是( )。
A)virtualB)public
C)protectedD)private
参考答案:A
10.在面向对象方法中,实现信息隐蔽是依靠( )。
A)对象的继承B)对象的多态
T Max(const T &a, const T &b) { return a < b ? b : a; }
int main()//主函数main()
{
cout << Max(1.8, 5.18) << endl << Max<int>(1.8, 5.18) << endl;//输出信息
return 0;//返回值0,返回操作系统
virtual void Show() const{ cout << "Base::Show()" << endl; }//虚函数
};
//派生类
class Derived: public Base
{
public:
//公有函数:
void Show() const{ cout << "Derived::Show()" << endl; }//虚函数
};
void Refers(const Base &obj)//基类引用
{
obj.Show();//调用函数Show()
}
int main()//主函数main()
{
Base obj1;//定义对象
Derived obj2;//定义对象
Refers(obj1);//调用函数Refers()
Refers(obj2);//调用函数Refers()
C)对象的封装D)对象的分类
参考答案:C
二
1.含有纯虚函数的类称为()。
参考答案:抽象类
2.若将一个二元运算符重载为类的成员函数,其形参个数应该是()个。
参考答案:1
3.一个全局函数应声明为类的()函数才能访问这个类的private成员。
参考答案:友元
4.重载运算符“>>”的函数名为()。
参考答案:operator>>
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
16,6
2.阅读下面程序,写出输出结果。
#include <iostream>//编译预处理命令
using namespace std;//使用命名空间std
class A
{
public:
A() { cout << "A" << endl; }//构造函数
};
int main(void)//主函数main()
{
A *p = new B;//定义指针
p->Show();//输出信息
delete p;//释放空间
return 0;//返回值0,返回操作系统
}
参考答案:virtual
3.将如下程序补充完整。
#include <iostream>//预处理命令
template <class Type>
Type Area(const Type &size) { return size * size; }
其中Type是( )。
A)函数形参B)函数实参
C)模板类型形参D)模板类型实参
参考答案:C
3.由于常对象不能被更新,因此( )。
A)通过常对象只能调用它的常成员函数
static int count;//对象数
public:
//公有函数:
Test(){ count++; }//构造函数,实现对对象进行计数
static void Show(){ cout << "共有" << count << "个对象!" << endl; }//显示对象数
};
0;//为静态数据成员赋初值
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
20 10
100 300
5.阅读下面程序,写出输出结果。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
//基类
class Base
{
public:
//公有函数:
void Show() const//显示b之值
{ cout << a << "," << b << endl; }
};
int main()//主函数main()
{
C obj(5, 18);//定义对象
obj.Show();//显示相关信息
obj.A::Show();//显示相关信息
obj.B::Show();//显示相关信息
B)通过常对象只能调用静态成员函数
C)常对象的成员都是常成员
D)通过常对象可以调用任何不改变对象值的成员函数
参考答案:A
4.如果派生类以public方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是( )。
A)public和publicB)public和protected
~A() { cout << "~A" << endl; }//析构函数
};
class B
{
private:
A a;//数据成员
public:
B() { cout << "B" << endl; }//构造函数
~B() { cout << "~B" << endl; }//析构函数
};
int main(void)//主函数main()
}
namespace//无名命名空间
{
int x = 20;//命名空间中的变量x
}
int y = 300;//全局变量y
int main(void)//主函数main(void)
{
cout << x << " " << ns::x << endl;//显示变量x的值
cout << ns::y << " " << y << endl;//显示变量y的值
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
5,18
5
18
四
1.将如下程序补充完整。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
//测试静态成员类
class Test
{
private:
//数据成员:
6..在C++中,用于实现编译时多态性的是( )。
A)友元函数B)重载函数
C)静态成员函数D)虚函数
参考答案:B
7.在下列函数原型中,可以作为类AA构造函数的是( )。
A)void AA(int);B)int AA();
C)~AA(int);D)AA(int);
参考答案:D
8.使用ifstream流类定义流对象并打开磁盘文件时,文件的默认打开方式为( )。
}
上面程序的输出结果为:
参考答案:
5.18
5
4.阅读下面程序,写出输出结果。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
namespace ns//命名空间ns
{
int x = 10;//命名空间ns中的变量x
int y = 100;//命名空间ns中的变量y
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
Base::Show()
Derived::Show()
6.阅读下面程序,写出输出结果。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
class A
{
protected:
Show();//调用基类的Show()
}
};
int main()//主函数main()
{
Derived obj(158, 98);//定义派生类对象
Base *p = &obj;//定义基类指针
p->Show();//调用Show()
return 0;//返回值0,返回操作系统
}
参考答案:Base::
C)protected和publicD)protected和protected
参考答案:C
5.下列关于this指针的叙述中,正确的是( )。
A)与类相关的所有函数都含有this来自百度文库针
B)所有类的成员函数都有this指针
C)类的所有友元函数都有this指针
D)只有类的非静态成员函数才有this指针
参考答案:D
4.将如下程序补充完整。
#include <iostream>//预处理命令
using namespace std;//使用标准命名空间std
//整型类
class Int
{
private:
//数据成员:
int i;//数据成员
public:
//公有函数:
int Get() { return n; }//返回n
int Get() const { return n - 2; }//返回n-2
};
int main()//主函数main()
{
CTest a;//定义对象a
const CTest b(8);//定义对象b
cout << a.Get() << "," << b.Get() << endl;//输出信息
5.定义模板的关键字为()。
参考答案:template
三
1.阅读下面程序,写出输出结果。
#include <iostream>//编译预处理命令
using namespace std;//使用命名空间std
class CTest
{
private:
int n;//数据成员
public:
CTest(int i = 16): n(i){}//构造函数
//数据成员:
int a;//数据成员
public:
//公有函数:
A(int x): a(x){ }//构造函数
void Show() const{ cout << a << endl; }//显示a之值
};
class B
{
protected:
//数据成员:
int b;//数据成员
public:
//公有函数:
B(int x): b(x){ }//构造函数
void Show() const{ cout << b << endl; }//显示a与b之值
};
class C: public A, public B
{
public:
//公有函数:
C(int x, int y): A(x), B(y){ }//构造函数
};
//派生类
class Derived: public Base
{
private:
//数据成员:
int n;//数据成员
public:
//公有函数:
Derived(int a, int b): Base(a), n(a){ }//构造函数
void Show() const//虚函数
{
cout << n << ",";//显示n及","
{
B obj;//定义对象
return 0;//返回值0,返回操作系统
}
上面程序的输出结果为:
参考答案:
A
B
~B
~A
3.阅读下面程序,写出输出结果。
#include <iostream>//编译预处理命令
using namespace std;//使用命名空间std
template <class T>
using namespace std;//使用标准命名空间std
//基类
class Base
{
private:
//数据成员:
int m;//数据成员
public:
//公有函数:
Base(int a): m(a){ }//构造函数
virtual void Show() const { cout << m << endl; }//虚函数
计算机学院
一、单项选择题(本大题共
1.下列语句中,错误的是( )。
A)const int buffer = 256;B)const int tem;
C)const double *point;D)double * const pt = new double(5.5);
参考答案:B
2.有以下函数模板: