1、姓名: 学号: 系别: 计算机学院 年级专业: 09软件工程 ( 密 封 线 内 不 答 题 )密封线线_ _ 东莞理工学院( 本科) 试卷( A卷) - 年第 2 学期面向对象程序设计基础试卷开课单位: 计算机学院 , 考试形式: 闭、 开卷, 允许带 入场题序一二三四五六七八总 分得分评卷人 选择题(全部为单选, 请把结果写在本大题后面的答题纸内相应的横线上, 写在其它地方无效, 每小题2分, 共50分)1 以下叙述中不正确的是: ( ) A 函数名属于用户标识符, 其起名规则与变量相同B 形参只能是变量C 为保证程序的正确运行, 函数中定义的变量不能与其它函数中定义的变量同名D 函数中定
2、义的变量能够与其它函数中定义的变量同名2 有定义语句: int a=1,2,3,4,5,6,7,*p=A *q=&a5; ( ) 则下列表示式中值不等于5的是A *q-B *-qC -*qD q-p3 以下叙述中错误的是: ( ) A 局部变量的定义能够在函数体内部B 全局变量的定义能够在函数以外的任何位置C 同一程序中, 全局变量和局部变量不能同名D 函数的形参属于局部变量4 以下叙述中错误的是: ( ) A 变量的作用域取决于变量定义语句出现的位置B 同一程序中, 全局变量的作用域一定比局部变量的作用域大C 局部变量的作用域是在定义它的函数体内D 全局变量的作用域是从定义位置开始至源文件结
3、束5 关于VC6建立的工程的说法, 正确的是: ( ) A 工程只能包含.cpp和.h类型的文件B 工作区文件的后缀是.dspC 用鼠标双击工作区文件能够打开整个工程D 在VC的FileView中能够看到工程中所有的文件, 包括工作区文件, 项目文件等6 下面关于在VC6环境下调试运行的说法错误的是 ( ) A 设置合适的断点(F9), 按Ctrl+F5开始调试运行B 设置合适的断点, 按F5开始运行C 调试时, 能够随时观察断点处的变量值D 在调试运行过程中, 可随时按下Stop Debugging(Shift+F5)结束调试运行7 下列情况中, 哪一种情况不会调用拷贝构造函数 ( ) A
4、用派生类的对象去初始化基类对象时B 将类的一个对象赋值给该类的另一个对象时C 函数的形参是类的对象, 调用函数进行形参和实参结合时D 函数的返回值是类的对象, 函数执行返回调用者时8 以下哪一关键字可用于重载函数的区分( ) A externB staticC constD virtual9 下列有关内联函数的叙述中, 正确的是 ( ) A 内联函数在调用时发生控制转移B 使用内联函数有利于代码重用C 必须经过关键字inline来定义D 是否最后内联由编译器决定10 实现运行时多态的机制是( ) A 虚函数B 重载函数C 静态函数D 模版函数11 以下哪个符号( 或组合) 是作用域限定符( )
5、 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 11B 111C 1111D 1111114 下面程序的输出结果是( ) #include using namespace std;int i = 0;int fun(int n) st
6、atic int a = 2;a+;return a+n;void main()int k = 5;姓名: 学号: 系别: 计算机学院 年级专业: 09软件工程 ( 密 封 线 内 不 答 题 )密封线线int i = 2;k += fun(i);k += fun(i);cout k;A 13B 14C 15D 1615 下面程序的输出结果是( ) #include using namespace std;class A public: A (int i) x = i; void dispa () cout x ”,”; private : int x ;class B : public A
7、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,2B 12,10C 12,2D 2,216 下面程序的输出结果是( ) #include using namespace std;class Base public: Base(int i) cout i; Base () ;class Base1: virtual public Base public: Base1(int i, int j=0) : Bas
8、e(j) cout i; Base1() ;class Base2: virtual public Base public: Base2(int i, int j=0) : Base(j) cout i; Base2() ;class Derived : public Base2, 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() D
9、erived objD (1, 2, 3, 4); A 134122B 123412C 1430 D 14321217 下面程序的输出结果是( ) #include using namespace std;int countp=0;class Point 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
10、,const Point &p3)Point tmp(p1.X+p2.X+p3.X,p1.Y+p2.Y+p3.Y);return tmp;void main() Point pp0,pp1(1,2),pp2(1);myfun(pp0,pp1,pp2);std:coutcountpendl;姓名: 学号: 系别: 计算机学院 年级专业: 09软件工程 ( 密 封 线 内 不 答 题 )密封线线A 0B 4C 3D 618 下面程序的输出结果是( ) #include using namespace std;void swap1( int &v1, int &v2) int tmp = v2;v2
11、 = v1;v1 = tmp;void swap1( int *v1, int *v2) int tmp= *v2;*v2 = *v1;*v1 = tmp;void main() int i = 10, j = 20; swap1(i,j); swap1(&i,&j); couti”,”jendl;A 10,20B 20,10C 10,10D 20,2019 下面的程序段的运行结果为( ) char str = job, *p = str;cout *(p+2) endl;A 98 B 无输出结果 C 字符b的地址 D 字符b20 double型数据所占字节数是( ) A 2B 4C 6D 8
12、21 若变量都已经正确定义, 以下表示式中非法的是( ) A a/=b+cB a % 4.0 C a=1/2*(x=y=10 , x*3)D a=b=c22 以下选项中不是字符常量的是( ) A vB x6dC wD ”0”23 以下非法的字符串常量为( ) A ” ”B ”Its”C ”m=abc”D ”$12.8”24 对于类的常成员函数的描述正确的是( ) A 常成员函数不修改类的数据成员B 常成员函数能够对类的数据成员进行修改C 常成员函数只能由常对象调用D 常成员函数不能访问类的数据成员25 使用如setw()的操作符对数据进行格式输出时, 应包含的头文件是( ) A iostrea
13、mB fstreamC stdioD iomanip选择题答题纸: 1 21 2 22 3 23 4 24 5 25 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 姓名: 学号: 系别: 计算机学院 年级专业: 09软件工程 ( 密 封 线 内 不 答 题 )密封线线 上机编码试题, 共5小题, 共50分, 请按要求答在给定的项目文件中提交。(本页不得撕掉! 答本大题前请先交卷! )! 请于考试结束前关闭你的项目, 删去你的文件夹下的Debug文件夹, 然后把你的整个项目文件夹打包成一个”.rar”文件提交到下面服务器中相应的地方。! 服务器 ftp:/21
14、9.222.170.198提交考试结果的用户名及密码username/password: cs w/ cs w! 你的程序不能有编译错误, 否则以0分记! 以” 41404101 陈晓雪”为例, 提交的文件名应为” 41404101陈晓雪_面向对象A.rar”, 解压后的文件夹也应为” 41404101陈晓雪_面向对象A”。(注: 中间没有空格! )1 创立一个VC6.0项目。要求: 以你的学号+姓名+”_面向对象A”为项目名创立一个带”Hello World”的win32控制台应用程序。以” 41404101 陈晓雪”为例, 所创立项目的名称为” 41404101陈晓雪_面向对象A”(10分
15、)2 声明一个Point类, 该类描述了直角坐标系中的一个点。成员变量为私有的double x,y; 成员函数包括不带参数的构造函数; 带两个参数(double x, double y)的构造函数, 拷贝构造函数, 分别取得x和y值的函数getX和getY。(10分)3 从第2题的Point类派生出一个新类(名为Circle), 该新类是描述圆的一个类, 成员变量为私有的表示圆的半径double r。并请写出一个成员函数getMaxY, 返回该圆在y轴最高点的坐标。(10分)4 运算符重载。假设obj是第3题的Circle类的对象, obj+是指把当前圆的半径加1, 请实现这个+运算符的重载。
16、(10分)5 刚学会加减法的小学生都知道1+1 = 2, 2- 1 = 1。可是她还暂时还算不出来1 2 = -1, 而会认为1 2是减不动的, 因此得不出正确的结果。现要求你写一个小学生的减法函数int sum(int x, int y),当出现减不动的情况时抛出一个异常消息为”减不动”的异常; 并请在main函数中截获并显示该异常消息。(10分)(请先撕掉本页, 交卷, 然后再答本大题!)! 请于考试结束前关闭你的项目, 删去你的文件夹下的Debug文件夹, 然后把你的整个项目文件夹打包成一个”.rar”文件提交到下面服务器中相应的地方。! 服务器 ftp:/219.222.170.198
17、提交考试结果的用户名及密码username/password: cs w/ cs w! 你的程序不能有编译错误, 否则以0分记! 以” 41404101 陈晓雪”为例, 提交的文件名应为” 41404101陈晓雪_面向对象A.rar”, 解压后的文件夹也应为” 41404101陈晓雪_面向对象A”。(注: 中间没有空格! )1 创立一个VC6.0项目。要求: 以你的学号+姓名+”_面向对象A”为项目名创立一个带”Hello World”的win32控制台应用程序。以” 41404101 陈晓雪”为例, 所创立项目的名称为” 41404101陈晓雪_面向对象A”(10分)2 声明一个Point类
18、, 该类描述了直角坐标系中的一个点。成员变量为私有的double x,y; 成员函数包括不带参数的构造函数; 带两个参数(double x, double 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函数中截获并显示该异常消息。(10分)
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100