void main() {b B(5); }
2. 运行程序,写出程序执行的结果。 #include
void init(int initX,int initY); int GetX(); int GetY(); };
void Location::init (int initX,int initY) {X=initX; Y=initY; }
int Location::GetX() {return X; }
int Location::GetY() {return Y; }
void display(Location& rL)
{cout< void main() {Location A[5]={{5,5},{3,3},{1,1},{2,2},{4,4}}; Location *rA=A; A[3].init(7,3); rA->init(7,8); for (int i=0;i<5;i++) display(*(rA++)); } 3. 给出下面程序输出结果。 #include int a[8]={1,2,3,4,5,6,7}; void fun(int *pa,int n); void main() {int m=8; fun(a,m); cout< void fun(int *pa,int n) {for (int i=0;i 4. 给出下面程序输出结果。 #include public: A(int x=0):a(new int(x)){} ~A() {delete a;} int getA() {return *a;} void setA(int x) {*a=x;} }; void main() {A x1,x2(3); A *p=&x2; (*p).setA(x2.getA()+5); x1.setA(10+x1.getA()); cout< 六、程序设计题(本大题共1小题,共10分) 1. 已知交通工具类定义如下。 要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有 属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数 ),print(打印车轮数,重量和载人数)。 class vehicle {protected: int wheels;//车轮数 float weight;//重量 public: void init(int wheels,float weight); int get_wheels(); float get_weight(); void print(); }; void vehicle::init(int wheels,float weight) {this->wheels=wheels; this->weight=weight; cout< int vehicle::get_wheels() {return wheels; } float vehicle::get_weight() {return weight;} void vehicle::print() {cout<<\车轮数:\重量:\ 2010年全国自考C++程序设计模拟试卷(五) 一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中 只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无 分。 1. 静态成员函数没有() A. 返回值 B. this指针 C. 指针参数 D. 返回类型 2. 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管 理操作的函数是() A. 友元函数 B. 虚函数 C. 构造函数 D. 析构函数 3. 所有在函数中定义的变量,都是() A. 全局变量 B. 局部变量 C. 静态变量 D. 寄存器变量 4. 假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数 为() A. 3 B. 4 C. 5 D. 9 5. 如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则 可表示为() A. a.operator++(1) B. operator++(a) C. operator++(a,1) D. a.operator++() 6. 已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明() A. f1和f2都是静态函数 B. f1不是静态函数,f2是静态函数 C. f1是静态函数,f2不是静态函数 D. f1和f2都不是静态函数 7. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 () A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数 8. 解决定义二义性问题的方法有() A. 只能使用作用域分辨运算符 B. 使用作用域分辨运算符或成员名限定 C. 使用作用域分辨运算符或虚基类 D. 使用成员名限定或赋值兼容规则 9. 在main函数中可以用p.a的形式访问派生类对象p的基类成员a,其中a是() A. 私有继承的公有成员 B. 公有继承的私有成员 C. 公有继承的保护成员 D. 公有继承的公有成员 10. 在C++中不返回任何类型的函数应该说明为() A. int B. char C. void D. double 11. 若Sample类中的一个成员函数说明如下: void set(Sample& a),则Sample& a的含义是() A. 指向类Sample的名为a的指针 B. a是类Sample的对象引用,用来作函数Set()的形参 C. 将a的地址赋给变量Set D. 变量Sample与a按位与的结果作为函数Set的参数 12. 要实现动态联编必须() A. 通过成员名限定来调用虚函数 B. 通过对象名来调用虚函数 C. 通过派生类对象来调用虚函数 D. 通过对象指针或引用来调用虚函数 13. 在派生类中定义虚函数时,可以与基类中相应的虚函数不同的是() A. 参数类型 B. 参数个数 C. 函数名称 D. 函数体 14. 实现两个相同类型数加法的函数模板的声明是() A. add(T x,T y) B. T add(x,y) C. T add(T x,y) D. T add(T x,T y) 15. 下列不是描述类的成员函数的是() A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 16. 继承机制的作用是() A. 信息隐藏 B. 数据封装 C. 定义新类 D. 数据抽象 17. 已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,正确 的是() A. A1.p=5; B. A1->p=5; C. A1.*p=5; D. *A1.p=5; 18. 如果采用动态多态性,要调用虚函数的是() A. 基类对象指针 B. 对象名 C. 基类对象 D. 派生类名 19. 若有以下定义,则说法错误的是() int a=100,*p=&a; A. 声明变量p,其中*表示p是一个指针变量 B. 变量p经初始化,获得变量a的地址 C. 变量p只可以指向一个整型变量 D. 变量p的值为100 20. C++语言建立类族是通过() A. 类的嵌套 B. 类的继承 C. 虚函数