收藏 分销(赏)

2023年面向对象程序设计基础A.doc

上传人:二*** 文档编号:4776333 上传时间:2024-10-12 格式:DOC 页数:13 大小:40.54KB 下载积分:5 金币
下载 相关 举报
2023年面向对象程序设计基础A.doc_第1页
第1页 / 共13页
本文档共13页,全文阅读请下载到手机保存,查看更方便
资源描述
姓名: 学号: 系别: 计算机学院 年级专业: 09软件工程 ( 密 封 线 内 不 答 题 ) ……………………………………………………密………………………………………………封………………………………………线……………………………………线……………………………………… _____________ ________ … 东莞理工学院(本科)试卷(A卷) 2023 --2023 学年第 2 学期 《面向对象程序设计基础》试卷 开课单位: 计算机学院 ,考试形式:闭、开卷,允许带 入场 题序 一 二 三 四 五 六 七 八 总 分 得分 评卷人 Ⅰ 选择题(所有为单选,请把结果写在本大题后面的答题纸内相应的横线上,写在其它地方无效,每小题2分,共50分) 1 以下叙述中不对的的是:( ) A 函数名属于用户标记符,其起名规则与变量相同 B 形参只能是变量 C 为保证程序的对的运营,函数中定义的变量不能与其他函数中定义的变量同名 D 函数中定义的变量可以与其他函数中定义的变量同名 2 有定义语句:int a[]={1,2,3,4,5,6,7},*p=A *q=&a[5]; ( ) 则下列表达式中值不等于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 用鼠标双击工作区文献可以打开整个工程 D 在VC的FileView中可以看到工程中所有的文献,涉及工作区文献,项目文献等 6 下面关于在VC6环境下调试运营的说法错误的是 ( ) A 设立合适的断点(F9),按Ctrl+F5开始调试运营 B 设立合适的断点,按F5开始运营 C 调试时,可以随时观测断点处的变量值 D 在调试运营过程中,可随时按下Stop Debugging(Shift+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 静态函数 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,b[2],*p[2];后,程序的输出结果是( ) A 11 B 111 C 1111 D 11111 14 下面程序的输出结果是( ) #include <iostream> using namespace std; int i = 0; int fun(int n) { static 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 13 B 14 C 15 D 16 15 下面程序的输出结果是( ) #include <iostream> using namespace std; class A { public: A (int i) { x = i; } void dispa () { 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 <iostream> using namespace std; class Base { public: Base(int i) { cout << i; } ~Base () { } }; 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 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() { Derived objD (1, 2, 3, 4); } A 134122 B 123412 C 14302023 D 143212 17 下面程序的输出结果是( ) #include <iostream> 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,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::cout<<countp<<endl; 姓名: 学号: 系别: 计算机学院 年级专业: 09软件工程 ( 密 封 线 内 不 答 题 ) ……………………………………………………密………………………………………………封………………………………………线……………………………………线……………………………………… } A 0 B 4 C 3 D 6 18 下面程序的输出结果是( ) #include <iostream > 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 = 20; swap1(i,j); swap1(&i,&j); cout<<i<<”,”<<j<<endl; } 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 字符’b’ 20 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 以下选项中不是字符常量的是( ) A ‘\v’ B ‘\x6d’ C ‘w’ D “0” 23 以下非法的字符串常量为( ) A “\\ \\” B “It’s” C “m=\abc” D “$12.8” 24 对于类的常成员函数的描述对的的是( ) A 常成员函数不修改类的数据成员 B 常成员函数可以对类的数据成员进行修改 C 常成员函数只能由常对象调用 D 常成员函数不能访问类的数据成员 25 使用如setw()的操作符对数据进行格式输出时,应包含的头文献是( ) 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 19 20 姓名: 学号: 系别: 计算机学院 年级专业: 09软件工程 ( 密 封 线 内 不 答 题 ) ……………………………………………………密………………………………………………封………………………………………线……………………………………线……………………………………… Ⅱ 上机编码试题,共5小题,共50分,请按规定答在给定的项目文献中提交。 (本页不得撕掉! 答本大题前请先交卷!) ! 请于考试结束前关闭你的项目,删去你的文献夹下的Debug文献夹,然后把你的整个项目文献夹打包成一个“.rar”文献提交到下面服务器中相应的地方。 ! 服务器 ftp://219.222.170.198 提交考试结果的用户名及密码username/password: cs2023w/ cs2023w ! 你的程序不能有编译错误,否则以0分记!以“ 陈晓雪”为例,提交的文献名应为“陈晓雪_面向对象A.rar”,解压后的文献夹也应为“陈晓雪_面向对象A”。(注:中间没有空格!) 1 创建一个VC6.0项目。规定:以你的学号+姓名+”_面向对象A”为项目名创建一个带“Hello World”的win32控制台应用程序。以“ 陈晓雪”为例,所创建项目的名称为“陈晓雪_面向对象A”(10分) 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,请实现这个++运算符的重载。(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 提交考试结果的用户名及密码username/password: cs2023w/ cs2023w ! 你的程序不能有编译错误,否则以0分记!以“ 陈晓雪”为例,提交的文献名应为“陈晓雪_面向对象A.rar”,解压后的文献夹也应为“陈晓雪_面向对象A”。(注:中间没有空格!) 1 创建一个VC6.0项目。规定:以你的学号+姓名+”_面向对象A”为项目名创建一个带“Hello World”的win32控制台应用程序。以“ 陈晓雪”为例,所创建项目的名称为“陈晓雪_面向对象A”(10分) 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,请实现这个++运算符的重载。(10分) 5 刚学会加减法的小学生都知道1+1 = 2, 2- 1 = 1。但是他还暂时还算不出来1 – 2 = -1,而会认为1 – 2是减不动的,所以得不出对的的结果。现规定你写一个小学生的减法函数int sum(int x, int y),当出现减不动的情况时抛出一个异常消息为“减不动”的异常;并请在main函数中截获并显示该异常消息。(10分)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服