国家二级(C++)机试模拟试卷45_第1页
国家二级(C++)机试模拟试卷45_第2页
国家二级(C++)机试模拟试卷45_第3页
国家二级(C++)机试模拟试卷45_第4页
国家二级(C++)机试模拟试卷45_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

眼家二级(C++)机试模拟试卷第1套

一、选择题(本题共37题,每题1.0分,共37分。)

1、下列关于栈的叙述正确的是()。

A、栈按“先进先出”组织数据

B、栈按“先进后出”组织数据

C、只能在栈底插入数据

D、不能删除数据

标准答案:B

知识点解析:栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进

行操作。

2^下面程序的运行结果是()。#includeintx=5;intfun(inta){intc;c=x*a:

returnc;)voidmain()(intx=3»a=4;x=x+fun(a);cout«"x="<

A^x=15

B、x=17

C、x=23

D、x=25

标准答案:C

知识点解析:由主函数main入手,首先x被赋值为3,a被赋值为4。然后调用

fun函数,参数为4,所以在fun函数中的a=4。而主程序中的x作用域是由它定义

开始到cout输出,在fun函数中无效。而在fun函数定义前的变量x作用域是整个

程序,所以fun函数中的x值为5,这样c的值就为20。在主函数中的x+fun(a)中

的x为靠近这条语句的x定义,即3,所以最后x的值为20+3=23。

3、对虚函数的调用()。

A、一定使用动态联编

B、必须使用动态联编

C、一定使用静态联编

D、不一定使用动态联编

标准答案:D

知识点解析:虚函数在运行阶段和类的对象绑定在一起,这样成为动态联编。虚函

数声明只能出现在类声明中虚函数原型中,而不能在成员的函数体实现的时候。必

须由成员函数来调用或者通过指针、引用来访问虚函数。如果通过对象名来访问虚

函数,则联编在编译过程中认为是静态联编。

4、一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

A、一对一

B、一对多

C、多对一

D、多对多

标准答案:B

知识点解析:因为一间宿舍可以住多个学生即多个学生住在一个宿舍中,但一个学

生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系。

5、以下不正确的是()。

A、语句for(i=0;;1++)表示无限循环

B、for(;;)表示无限循环

C、for()表示型循环

D、while(l)表示无限循环

标准答案:C

知识点解析:选项c)是一个错误的for语句格式,for()语句中三个表达式可以省

略。但是两个分号(;)不能省略。

6^有如下程序:#includeusingnamespaeestd;elassBase{protected:

Base(){cout«,:|Base(charc){cout<

A、B

B、BA

C、AB

D、BB

标准答案:C

知识点解析:本题考查派生类的构造函数和析构菌数,在定义二不派笙类的对象

时,先调用基类的构造函数,然后再执行派生类的构造函数;对象释放时,先执行

派生类的析构函数,再执行基类的析构函数。本题中定义了一个派生类对象dl,

首先执行基类的构造函数,输出A:然后执行派生类的构造函数.输出Rc所以答

案为C。

7、有如下程序:includevoidmain(){charstr[2][5]={"1234","5678"),*p[2];

inti,j,s=0;for(i=0;i<2;i++)p[i]=str[i];for(i=0:i<2;i++)for(j=0;p[i][j]>,\

0\j+=2)s=10*s+p[i]U]-,0,;cout<

A、1357

B、2468

C、3556

D、23678

标准答案:A

知识点解析:程序中的“fbr(i=0;i〈20++)p|i|=slr[i];”语句将str中的值赋值给指针

数组p。在接下来的二直for循环中,跳取“j+=2”,p指针指向的值即“1”,“3”,

“5”,“7”。在分别对字符到整型的转换,即减去字符然后依次转换为千位,百

位,十位,个位“10*s”操作输出整型s,即“1357”。

8、对于一个类定义,下列叙述中错误的是()。

A、如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

B、如果没有定义缺省的构造函数,编译器一定将生成一个缺省的构造函数

C、如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函

D、如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数

标准答案:B

知识点解析:本题考查阂造函数和复制构造函数,如果没有定义构造函数,编译器

将生成一个缺省的构造函数和一个拷贝构造函数,如果已经定义了构造函数和拷贝

构造函数,编译器不会生成任何构造函数..如果没有定义拷贝构造函数,编译器

将生成一个拷贝构造函数。

9、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()。

A、逻辑设计

B、需求分析

C、详细设计

D、物理设计

标准答案:B

知识点解析:软件开发阶段包括需求分析、总体设订、详细设“、编码和测试五个

阶段。其中需求分析阶段常用的工具是数据流图和数据字典。

10、层次型、网状型和关系型数据库划分原则是()。

A、记录长度

B、文件的大小

C、联系的复杂程度

D、数据之间的联系方式

标准答案:D

知识点解析:层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制

的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的

联系方式。

11、算法的时间复杂度是指()。

A、算法的长度

B、执行算法所需要的时间

C、算法中的指令条数

D、算法执行过程中所需要的基本运算次数

标准答案:D

知识点解析:算法的时间复杂度,是指执行算法所需要的工作量,可以用算法在执

行过程中所需基本运算的执行次数来度量算法的工作量。

12、软件生命周期是指()。

A、软件产品从提出、实现、使用维护到停止使用退役的过程

C、堆排序

D、冒泡排序

标准答案:C

知识点解析:堆排序最坏情况时间下的时间复杂度为O(nlog2n);希尔排序最坏情

况时间下的时间复杂度为0(75):快速排序、冒泡排序最坏情况时间下的时间复

杂度为0(/)。故本题答案为C选项。

17、有如卜类定义:classMyClass{public:MyClass(doubled=0.0):val(d){)

//前缀自增运算符++的声明private:doubleval:}:若要使语

句序列MyClassx(2.I),y;y=++x;能够正常运行,横线处的语句应为()。

A、MyClass&operator++();

B、MyClass&operator++(int);

C、MyClassopcrator++(int);

D、MyClassoperator++();

标准答案:A

知识点解析:横线处填写的语句,是重载前缀自增运算符++的函数声明,为了与

内置类型一致,前缀自增运算符应该返回自增对象的引用,选项C、D错误;自增

运算符是一元运算符,即操作数是类对象,所以参数列表为空,选项B错误;答

案为Ao

18、有如下类声明:classFin{public:Fin();//①Fin*pf;//②Finf;/

/③Fin&p;//©);在标有数字的四个成员声明中,将产生编译错误的是

()o

A、①

B、②

C、③

D、@

标准答案:C

知识点解析:只有当类定义体完成之后才能定义类,题目中四个声明语句位置,

Fin类未定义完整,属于不完全类型,此时数据成员只能是指向该类类型的指针或

引用,而不能是该类的对象:语句3会产生编译错误;答案为c。

19、下列有关虚函数的表述中,错误的是()。

A、在C++中,运行时的多态性是通过虚函数体现的

B、在类声明中只有加了保留字virtual的成员函数才是虚函数

C、通过指针或引用对虚函数的调用称为多态调用

D、非多态调用总是通过成员访问运算符进行的

标准答案:B

知识点解析:C++中,触发多态性必须满足两个条件:1、被调用函数为虚函数;

2、必须通过基类类型的引用或指针调用函数,选项A、C正确;非多态调用虚函

数只能通过类对象调用,类对象调用虚函数使用成员访问运算符进行,选项D

正确;一旦函数在基类中被声明为虚函数,那它在后续的派生类中都是虚函数,可

以不使用virtual关键字,派生类无法改变该函数是虚函数这一事实;选项B错

误;答案为B。

20、用于定义类的必不可少的C++关键字是

A、auto

B、return

C^class

D、public

标准答案:C

知识点解析:本题定义类的基础知识,定义类时使用的关键字为class,所以C选

项正确。

21、有如下程序:#includeusingnamespacestd;classTV{public:TV(int

s=41):sizc(s){}voidPrint(){cout«7,«,N,<

A、/N41/C54

B、/N41/S54

C、/C41/C54

D、/C41/N54

标准答案:D

知识点解析:本题考查了常对象和常成员函数,本题中定义了常对象rooml,执行

room1.Print。;时,引用菖,成员函数Print,输出/C41,执行TVroom2(54)时输出

/N54,所以答案为D。

22、以下程序的输出结果是()。ma:in(){inta=4,b=5,c=0,d;d=!a&&!b||!C;cout<

<d<<endl;}

A、1

B、0

C、非0的数

D、一1

标准答案:A

知识点3析:本题考查逻辑运算,只要考生掌握了逻辑运算的优先级就可以正确得

到答案为选项A)。或运算的优先级最高,&&和!!的优先级相同,按照从左到右

的顺序计算。

23、下列语句中,错误的是

A、int*p[10];

B、int*p();

C>int(*p)();

D>intp*;

标准答案:D

知识点解析:A选项中,定义一个数组p,p中元素类型为整型指针;B选项中,

声明一个函数p,p的返回类型是整型指针;C选项中,定义一个函数指针p,p可

以指向返回类型为整型的函数;选项D错误,答案为D。

24、有如下类火正义和变量AL义:classParents}public:intpublicData;private:int

privateData;);classChildA:publicParents{/*类体略*/);classChildB:private

Parents)/*类体略*/);ChildAa;ChildBb;下列语句中正确的是

A、cout«a.publicData<

B、cout«a.privateData<

C、cout«b.pnvateDaUi<

D、cout«b.publicData<

标准答案:A

知识点解析:本题考查派生类对基类成员的访问属性,派生类公用继承基类,所以

派生类可以直接使用基类的公用成员,所以只有A选项正确。

25、有如下类定义:classCup{public:Cup(doubleval,string

cr="red"):price(val),color(cr){}〃①~Cup();〃②private:stringcolor;〃③double

price=5.8;//©);在标注号码的语句行中存在语法错误的是

A①

B②

c③

D④

标准答案:D

知识点解析•:本题考查如何初始化对象,其中类的数据成员是不能再声明类时初始

化的,所以D选项错误,在定义类的同时对数据成员price进行赋值是错误的。

26、在下列表述中,用来正确表示”相对于当前位置”文件定位方式的是

A^ios_base::cur

B、ios_base::beg

C、ios_base::out

D、ios_base::end

标准答案:A

知识点解析:本题考查文件流的定位操作,属于基础知识,A选项正确。

27、有如下程序:#includeusingnamespacestd;classShape{〃图形类public:〃图形

绘制函数(用显示字母模拟)virtualvoiddraw()const{cout«,S,;}};classCircle:

publicShape{〃圆形类public:voiddraw()const{coutw'C;}};voidplot(Shape

&s){s.draw();}intmain(){Shape*ps=newCircle;Circlet;ps->draw();t.draw();

plot(t);deleteps;return0;)运行这个程序的输出是

A、SCC

B、SCS

C、CSS

D、CCC

标准答案:D

知识点解析:C++中,多态性调用需要满足两个条件,1、被调用成员函数必须是

虚函数;2、必须通过基类类型的引用或指针进行函数调用。多态性使程序在运行

时期根据指针或引用所由对象的类型来决定调用哪个函数。程序中,类Shape定

义了虚函数draw。,在派生类Circle中重写了函数draw。;main函数中,分别使用

指针、对象、引用三种方式调用函数draw(),指针ps是基类指针,指向的是派生

类的对象,所以这里根据多态性,将调用Circle中的draw函数,输出“C“;对象t

是Circle对象,也调用Circle中的draw函数,输出"C";函数plot。执行时引用s

引用的是实参3引用对象是派生类Circle对象,根据多态性,同样调用Circle中

的draw函数,输出“C”:结果输出为“CCC";答案为D。

28、某系统结构图如下图所示该系统结构图中最大扇

入是

A、0

B、1

C、2

D、3

标准答案:C

知识点解析:扇入指的是调用一个给定模块的模块个数。题干系统中,第2层模块

扇入均为1,第3层中功能模块3.1扇入为2,其余为1,故最大扇入为2,C选项

正确。

29、关于类定义,下列叙述中错误的是

A、如果没有定义复制杓造函数,编译器将生成•个复制构造函数

B、如果没有定义复制构造函数,编译器将生成一个复制构造函数

C、如果没有定义构造函数,编译器将生成一个默认的构造函数和一个复制构造函

D、如果已经定义了构造函数和复制构造函数,编译器不会生成任何构造函数

标准答案:B

知识点解析:C++中,只有当一个类没有定义构造函数时,编译器才会自动生成一

个默认构造函数,一个类哪怕只定义了一个构造函数,编译器也不会再生成默认构

造函数,选项B错误,答案为B。

选择

A、

投影

B、

插入

c、

连接

D、

B

S

R

R

o

B

)<>

(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论