【计算机类职业资格】国家二级(C++)机试-试卷32及答案解析.doc
《【计算机类职业资格】国家二级(C++)机试-试卷32及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级(C++)机试-试卷32及答案解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级(C+)机试-试卷 32 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.软件设计中模块划分应遵循的准则是( )。(分数:2.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合2.通过运算符重载,可以改变运算符原有的( )。(分数:2.00)A.操作数类型B.操作数个数C.优先级D.结合性3.有如下程序: #include using namespace std; class Point public: static int number; public: Point() number+; Point() numb
2、er-; ; int Point:number=0; int main() Point *ptr; Point A, B; Point* ptr_point=new Point3; ptr=ptr_point; Point C; coutPoint:numberA.3B.4C.6D.74.软件生命周期是指( )。(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程5.在为一个类重载下列运算符时,只能作为该类成员函数重载的运算符是(分数:2.00)A.+B.()C.D.+6.有如下类定义:
3、class Point public: Point(int xx=0,int yy=0):x(xx),y(yy) private: int x,y; ; class Circle:public Point public: Circle(int r):radius(r) private: int radius; ;派生类 Circle 中数据成员的个数为(分数:2.00)A.1B.2C.3D.57.数据字典(DD)所定义的对象都包含于(分数:2.00)A.数据流图(DFD 图)B.程序流程图C.软件结构图D.方框图8.将运算符*重载为类成员函数时,其参数表中有且仅有一个参数,说明该运算符是(分数
4、:2.00)A.无操作数的运算符B.无操作数的运算符C.二元运算符D.三元运算符9.有如下程序: #include using namespace std; class Appliance public: Appliance() Appliance() coutA; ; class TV:public Appliance public: TV(int s=41):size(s) TV() coutTA.T41B.T41AC.T41T41D.T41AT41A10.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表
5、SC 的关键字(键或码)为( )。(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩11.下列关于内联函数的叙述中,错误的是(分数:2.00)A.内联函数的定义必须出现在内联函数第一次被调用之前B.内联函数主要解决程序的运行效率问题C.类体中定义的函数都是内联函数D.内联函数不能有参数12.有如下的类声明: #include using namespace std; class AA public: virtual void disp() coutA; ; class BB: public AA public: void disp() coutB; ; class
6、 CC: public BB public: virtual void disp() coutC; ; void plot(AA a) a.disp(); int main() BB bb; CC cc; BB plot(bb); cc.disp(); rb.disp(); return 0; 运行这个程序的输出是(分数:2.00)A.ACCB.ACBC.BCCD.BCB13.有如下程序段: int i=100; while ( int i=10 ) cout*; i-; 运行时输出“*“的个数是(分数:2.00)A.0B.100C.10D.无穷14.有如下类声明: class What in
7、t n; public: double d; private: char c; ;类 What 的公有数据成员和私有数据成员的数量分别是(分数:2.00)A.1 和 1B.1 和 2C.2 和 1D.2 和 215.有如下类定义: class Base public: int a; protected: int b; private: int c; ; class Derived: public Base protected: int d; ;若 obj 是类 Derived 的对象,以下语句编译正确的是(分数:2.00)A.obj.a;B.obj.b;C.obj.c;D.obj.d;16.已
8、知有数组定义 char a34;下列表达式中正确的是(分数:2.00)A.a0=“AAA“B.strcpy(a1,“BBBBB“)C.a21=“CC“D.a11=a1117.下列关于派生类构造函数和析构函数的表述中,错误的是(分数:2.00)A.下列关于派生类构造函数和析构函数的表述中,错误的是B.派生类的构造函数会隐含调用基类的构造函数C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数18.下面对软件特点描述错误的是(分数:2.00)A.软件没有明显的制作过程B.软件是一种逻辑实体,不是物理实体,具有抽象性
9、C.软件的开发、运行对计算机系统具有依赖性D.软件在使用中存在磨损、老化问题19.有如下两个类定义: class XX private: double x1; protected: double x2; public: double x3; ;class YY: protected XX private: double y1; protected: double y2; public: double y3; ;在派生类 YY 中的保护成员的个数是(分数:2.00)A.1B.2C.3D.420.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元
10、素出栈的顺序是( )。(分数:2.00)A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA21.在下列原型所示的 C+函数中,按“传值“方式传递参数的是( )。(分数:2.00)A.voidf1(intx);B.voidf2(int*x);C.voidf3(constint*x);D.voidf4(int22.下列代码段中声明了 3 个类:class Person ;class Student : public Person ;class Undergraduate : Student ;下列关于这些类之间关系的描述中,错误的是( )。(分数:2.
11、00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 Student 公有继承C.类 Student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类23.下列字符串中不能作为 C+标识符使用的是(分数:2.00)A.INTB.testC._1481D.1temp24.在公有继承的情况下,允许派生类中新定义的成员函数直接访问的基类成员只包括(分数:2.00)A.公有成员和保护成员B.公有成员C.公有成员、保护成员和私有成员D.保护成员25.设循环队列的存储空间为 Q(1:35),初始状态为 fr
12、ont=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(分数:2.00)A.15B.16C.20D.0 或 3526.下列关于函数的描述中,错误的是(分数:2.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能在类体中定义27.有如下类定义: #include using namespace std; class Point public: int GetXY() return x+y; protected: void SetXY(int a,int b) x=a;y=b; private: int
13、x,y; ; class Circle:public Point public: int GetR() return radius; int GetAll() return GetXY()+radius; protected: void SetR(int r) radius=r; private: int radius; ; int main() Circle c; c.GetXY(); / c.SetXY(3,4); / c.GetR(); / c.GetAll(); / return 0; 在标注号码的语句行中存在语法错误的是(分数:2.00)A.B.C.D.28.下列符号中能够作为 C+
14、标识符的是(分数:2.00)A.ClassB.gpa4.0C.1481quanzhanD.-score29.由于常对象不能被更新,因此(分数:2.00)A.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象只包含其所属类型的常成员D.通过常对象可以调用任何不改变对象值的成员函数30.下列叙述中正确的是(分数:2.00)A.所谓有序表是指在顺序存储空间内连续存放的元素序列B.有序表只能顺序存储在连续的存储空间内C.有序表可以用链接存储方式存储在不连续的存储空间内D.任何存储方式的有序表均能采用二分法进行查找31.下列有关类成员的叙述中,错误的是(分数:2.00)A.友元
15、函数不是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员可以是常成员32.下列关于模板的表述中,正确的是(分数:2.00)A.如果一个类中存在纯虚函数,这个类就是类模板B.函数模板不能带有形式参数表C.类模板带有模板形参表D.类模板中不能包含构造函数33.运算符重载是对已有的运算符赋予多重含义,因此( )。(分数:2.00)A.可以对基本类型(如 int 类型)的数据,重新定义“+“运算符的含义B.可以改变一个已有运算符的优先级和操作数个数C.只能重载 C+中已经有的运算符,不能定义新运算符D.C+中已经有的所有运算符都可以重载34.有如下程序:
16、#include using namespace std; class Instrument public: virtual void Display()=0; ; class Piano : public Instrument public: void Display() /*函数体略*/ ; int main() Instrument s; Instrument *p=0; / ; return 0; 下列叙述中正确的是( )。(分数:2.00)A.语句“Insturment*p=0;“编译时出错B.语句“Instruments;“编译时出错C.类 Piano 中的 Display 函数不
17、是虚函数D.类 Instrument 是一个虚基类35.必须用一对大括号括起来的程序段是( )。(分数:2.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体36.有如下两个类定义:class XX private:double x1;protected:double x2;public:double x3;class YY: protected XX private:double y1;protected:double y2;public:double y3;在类 YY 中保护成员变量的个数是( )。(分数:2.00)A.1B.2C.
18、3D.437.下面描述中,不属于软件危机表现的是( )。(分数:2.00)A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高38.Sample 是一个类,且有如下语句: Sample a2, *p = new Sample;执行这个语句时调用 Sample 类的构造函数的次数是(分数:2.00)A.0B.1C.2D.339.一个栈的初始状态为空。现将元素 1,2,3,A,B,C 依次入栈,然后再依次出栈,则元素出栈的顺序是(分数:2.00)A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1D.1,2,3,C,B,A40.用于定义类的必不可
19、少的 C+关键字是(分数:2.00)A.autoB.returnC.classD.public二、基本操作题(总题数:1,分数:2.00)41.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj1 下的工程 proj1,此工程中包含源程序文件maincpp,其中有类 Book(“书”)和主函数 main 的定义。程序中位于每个“ERROR*found*”之后的一行语句行有错误,请加以改正。改正后程序的输出结果应该是:书名:C+语言程序设计总页数:299 已把“C+语言程序设计”翻到第 50 页已把“C+语言程序设计”翻到第 51 页已把书合上。书是合上的。已把“C+语言程序设计”翻到第
20、 1 页注意:只修改每个“ERROR*found*”下的一行,不要改动程序中的其他内容。#includeiostreamusingnamespacestd;classBookchar*title;intnum_pages;页数intcur_page;当前打开页面的页码,0 表示书未打开 public:Book(constchar*theTitle,intpages):num_pages(pages)ERROR*found*title=newcharstrlen(theTitle);strcpy(title,theTitle);coutend1“书名:“title“总页数:“num_pages;
21、Book()deletetitle;ERROR*found*boolisOpen()constreturnnum_pages!=0;)书打开时返回 true,否则返回 falseintnumOfPages()constreturnnum_pages;)返回书的页数 intcurrentPage()constreturncurpage;返回打开页面的页码 voidopenAtPage(intpage_no)把书翻到指定页coutend1;if(page_no1|page_nonum_pages)cout“无法翻到第“cur_page“页。“;close(); else cur_page=page
22、_no;cout“已把“title“”翻到第“cur_page“页“; voidopenAtPreVPage()openAtPage(cur_page 一 1);)把书翻到上一页voidopenAtNextPage()openAtPage(cur_page+1);)把书翻到下一页 voidclose()把书合上coutend1;if(!isOpen()cout“书是合上的。“;elseERROR*found*num_pages=0;cout“已把书合上。“;coutend1; ;intmain()Bookbook(“C+语言程序设计“,299);bookopenAtPage(50);booko
23、penAtNextPage();bookclose();bookclose();bookopenAtNextPage();return0;(分数:2.00)_三、简单应用题(总题数:1,分数:2.00)42.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj2 下的工程 proj2,此工程中包含一个头文件numberh,其中包含了类 N 啪 ber、OctNumber、HexNumber 和 DecNumber 的声明;包含程序文件numbercpp,其中包含了上述类的成员函数 toString 的定义;还包含程序文件 proj2cpp,它以各种数制格式显示输出十进制数 11。请在程序
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 试试 32 答案 解析 DOC
