《2022年面向对象程序设计基础A .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计基础A .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 / 9 东莞理工学院(本科)试卷(A 卷)2009 -2018 学年第 2 学期面向对象程序设计基础试卷开课单位: 计算机学院 ,考试形式:闭、开卷,允许带入场选择题 ( 全部为单选,请把结果写在本大题后面的答题纸内相应的横线上,写在其它地方无效,每小题2 分,共 50 分)1 以下叙述中不正确的是:()A 函数名属于用户标识符,其起名规则与变量相同B 形参只能是变量C 为保证程序的正确运行,函数中定义的变量不能与其他函数中定义的变量同名D 函数中定义的变量可以与其他函数中定义的变量同名2 有定义语句: int a=1,2,3,4,5,6,7,*p=A *q=&a5。 ()则下列表达式中值
2、不等于5 的是A *q- B *-q C -*q D q-p 3 以下叙述中错误的是:()A 局部变量的定义可以在函数体内部B 全局变量的定义可以在函数以外的任何位置C 同一程序中,全局变量和局部变量不能同名D 函数的形参属于局部变量4 以下叙述中错误的是:()A 变量的作用域取决于变量定义语句出现的位置B 同一程序中,全局变量的作用域一定比局部变量的作用域大C 局部变量的作用域是在定义它的函数体内D 全局变量的作用域是从定义位置开始至源文件结束5 关于 VC6建立的工程的说法,正确的是:()A 工程只能包含 .cpp 和.h 类型的文件B 工作区文件的后缀是 .dsp C 用鼠标双击工作区文
3、件可以打开整个工程D 在 VC的 FileView中可以看到工程中所有的文件,包括工作区文件,工程文题序一二三四五六七八总 分得分评卷人_姓名:学号:系别:计算机学院年级专业:09软件工程(密封线内不答题)密封线精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 9 页2 / 9 件等6 下面关于在 VC6环境下调试运行的说法错误的是()A 设置合适的断点 (F9) ,按 Ctrl+F5 开始调试运行B 设置合适的断点,按F5 开始运行C 调试时,可以随时观察断点处的变量值D 在调试运行过程中,可随时按下Stop Debugging(Shi
4、ft+F5)结束调试运行7 下列情况中,哪一种情况不会调用拷贝构造函数()A 用派生类的对象去初始化基类对象时B 将类的一个对象赋值给该类的另一个对象时C 函数的形参是类的对象,调用函数进行形参和实参结合时D 函数的返回值是类的对象,函数执行返回调用者时8 以下哪一关键字可用于重载函数的区分()A extern B static C const D virtual 9 下列有关内联函数的叙述中,正确的是()A 内联函数在调用时发生控制转移B 使用内联函数有利于代码重用C 必须通过关键字inline来定义D 是否最后内联由编译器决定10 实现运行时多态的机制是()A 虚函数B 重载函数C 静态函
5、数D 模版函数11 以下哪个符号(或组合)是作用域限定符()A - B . C : D 12 下列关于 this指针的说法正确的是()A this指针存在于每个函数之中B 在类的非静态函数中this 指针指向调用该函数的对象C this指针是指向虚函数表的指针D this指针是指向类的函数成员的指针13 若有以下类定义class MyClass public: MyClass() cout 1。 。则执行语句 MyClass a,b2,*p2。后,程序的输出结果是()A 11 B 111 C 1111 D 11111 14 下面程序的输出结果是()#include using namespac
6、e std 。int i = 0。int fun(int n) static int a = 2。a+。return a+n。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 9 页3 / 9 void main() int k = 5。 int i = 2。k += fun(i)。 k += fun(i)。cout k 。 A 13 B 14 C 15 D 16 15 下面程序的输出结果是()#include using namespace std 。class A public: A (int i) x = i。 void disp
7、a () cout x “, ”。 private : int x 。 。class B : public A public: B(int i) : A(i+10) x = i。 void dispb() dispa()。 cout x endl。 private : int x 。 。void main() B b(2) 。b.dispb()。 A 10,2 B 12,10 C 12,2 D 2,2 16 下面程序的输出结果是()#include using namespace std 。class Base public: Base(int i) cout i。 Base () 姓名:学号
8、:系别:计算机学院年级专业:09软件工程(密封线内不答题)密封线精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 9 页4 / 9 。class Base1: virtual public Base public: Base1(int i, int j=0) : Base(j) cout i。 Base1() 。class Base2: virtual public Base public: Base2(int i, int j=0) : Base(j) cout i。 Base2() 。class Derived : public Ba
9、se2, public Base1 public: Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c), Base2(d), Base(a) cout b。 private: Base2 mem2 。Base1 mem1 。 。void main() Derived objD (1, 2, 3, 4)。 A 134122 B 123412 C 14302018 D 143212 17 下面程序的输出结果是()#include using namespace std 。int countp=0。class Point
10、int X,Y。public: Point(int x=0,int y=0) X=x。 Y=y 。 Point(Point &p)X=p.X。Y=p.Y。countp+。 friend Point myfun(Point p1 ,Point p2 ,const Point &p3)。 。Point myfun(Point p1,Point p2,const Point &p3) Point tmp(p1.X+p2.X+p3.X,p1.Y+p2.Y+p3.Y)。return tmp。 void main() 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - -
11、-第 4 页,共 9 页5 / 9 Point pp0,pp1(1,2),pp2(1)。myfun(pp0,pp1,pp2) 。std:coutcountpendl。 A 0 B 4 C 3 D 6 18 下面程序的输出结果是()#include using namespace std 。void swap1( int &v1, int &v2) int tmp = v2。v2 = v1 。v1 = tmp 。 void swap1( int *v1, int *v2) int tmp= *v2。*v2 = *v1 。*v1 = tmp 。 void main() int i = 10, j
12、= 20。 swap1(i,j)。 swap1(&i,&j)。couti ”, ”jendl 。 A 10,20 B 20,10 C 10,10 D 20,20 19 下面的程序段的运行结果为()char str = job, *p = str。cout *(p+2) endl。A 98 B 无输出结果 C 字符 b的地址 D 字符 b20 double 型数据所占字节数是()A 2 B 4 C 6 D 8 21 若变量都已经正确定义,以下表达式中非法的是()A a/=b+c B a % 4.0 C a=1/2*(x=y=10 , x*3) D a=b=c 22 以下选项中不是字符常量的是()
13、A vB x6dC w D “0”23 以下非法的字符串常量为()A “”B “It s”C “m= abc”D “$12.8”24 对于类的常成员函数的描述正确的是()A 常成员函数不修改类的数据成员B 常成员函数可以对类的数据成员进行修改C 常成员函数只能由常对象调用D 常成员函数不能访问类的数据成员25 使 用 如 setw() 的 操 作 符 对数 据进 行格式 输出 时 , 应 包 含的 头文 件 是姓名:学号:系别:计算机学院年级专业:09软件工程(密封线内不答题)密封线精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 9 页
14、6 / 9 ()A iostream B fstream C stdio D iomanip 选择题答题纸:1 21 2 22 3 23 4 24 5 25 6 7 8 9 10 11 12 13 14 15 16 17 18 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 9 页7 / 9 19 20 上机编码试卷,共5 小题,共 50 分,请按要求答在给定的工程文件中提交。(本页不得撕掉 ! 答本大题前请先交卷!) ! 请于考试结束前关闭你的工程,删去你的文件夹下的Debug 文件夹,然后把你的整个工程文件夹打包成一个“.rar ”
15、文件提交到下面服务器中相应的地方。! 服务器 ftp:/219.222.170.198提交考试结果的用户名及密码username/password: cs2009w/ cs2009w ! 你的程序不能有编译错误,否则以0 分记!以“ 200941404101 陈晓雪”为例,提交的文件名应为“200941404101 陈晓雪 _面向对象A.rar ”,解压后的文件夹也应为“ 200941404101陈晓雪 _面向对象 A”。( 注:中间没有空格! ) 1 创建一个 VC6.0 工程。要求:以你的学号+姓名+”_面向对象 A”为工程名创建一个带“ Hello World ”的 win32 控制台应
16、用程序。以“ 200941404101 陈晓雪”为例,所创建工程的名称为“200941404101陈晓雪 _面向对象 A”(10 分) 2 声明一个Point类,该类描述了直角坐标系中的一个点。成员变量为私有的double x,y。 成员函数包括不带参数的构造函数;带两个参数(double x, double y) 的构造函数,拷贝构造函数,分别取得x 和 y 值的函数getX 和getY。(10 分) 3 从第 2 题的 Point 类派生出一个新类 ( 名为 Circle),该新类是描述圆的一个类,成员变量为私有的表示圆的半径double r。并请写出一个成员函数getMaxY,返回该圆在
17、 y 轴最高点的坐标。 (10 分) 4 运算符重载。假设obj 是第 3 题的 Circle类的对象, obj+ 是指把当前圆的半径加 1,请实现这个 +运算符的重载。 (10 分) 姓名:学号:系别:计算机学院年级专业:09软件工程(密封线内不答题)密封线精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 9 页8 / 9 5 刚学会加减法的小学生都知道1+1 = 2, 2- 1 = 1。但是他还暂时还算不出来 1 2 = -1,而会认为 1 2 是减不动的,所以得不出正确的结果。现要求你写一个小学生的减法函数int sum(int x
18、, int y),当出现减不动的情况时抛出一个异常消息为“减不动”的异常;并请在main 函数中截获并显示该异常消息。 (10 分) (请先撕掉本页,交卷,然后再答本大题!) ! 请于考试结束前关闭你的工程,删去你的文件夹下的Debug 文件夹,然后把你的整个工程文件夹打包成一个“.rar ”文件提交到下面服务器中相应的地方。! 服务器 ftp:/219.222.170.198提交考试结果的用户名及密码username/password: cs2009w/ cs2009w ! 你的程序不能有编译错误,否则以0 分记!以“ 200941404101 陈晓雪”为例,提交的文件名应为“2009414
19、04101 陈晓雪 _面向对象A.rar ”,解压后的文件夹也应为“ 200941404101陈晓雪 _面向对象 A”。( 注:中间没有空格! ) 1 创建一个 VC6.0 工程。要求:以你的学号+姓名+”_面向对象 A”为工程名创建一个带“ Hello World ”的 win32 控制台应用程序。以“ 200941404101 陈晓雪”为例,所创建工程的名称为“200941404101陈晓雪 _面向对象 A”(10 分) 2 声明一个Point类,该类描述了直角坐标系中的一个点。成员变量为私有的double x,y。 成员函数包括不带参数的构造函数;带两个参数(double x, doub
20、le y) 的构造函数,拷贝构造函数,分别取得x 和 y 值的函数getX 和getY。(10 分) 3 从第 2 题的 Point 类派生出一个新类 ( 名为 Circle),该新类是描述圆的一个类,成员变量为私有的表示圆的半径double r。并请写出一个成员函数getMaxY,返回该圆在 y 轴最高点的坐标。 (10 分) 4 运算符重载。假设obj 是第 3 题的 Circle类的对象, obj+ 是指把当前圆的半径加 1,请实现这个 +运算符的重载。 (10 分) 5 刚学会加减法的小学生都知道1+1 = 2, 2- 1 = 1。但是他还暂时还算不出来 1 2 = -1,而会认为 1 2 是减不动的,所以得不出正确的结果。现要求你写一个小学生的减法函数int sum(int x, int y),当出现减不动的情况时抛出一个异常消息为“减不动”的异常;并请在main 函数中截获并显示该异常精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 9 页9 / 9 消息。 (10 分) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 9 页