C++模拟试题笔试03.docx

上传人:b****1 文档编号:17375261 上传时间:2023-04-24 格式:DOCX 页数:22 大小:23.64KB
下载 相关 举报
C++模拟试题笔试03.docx_第1页
第1页 / 共22页
C++模拟试题笔试03.docx_第2页
第2页 / 共22页
C++模拟试题笔试03.docx_第3页
第3页 / 共22页
C++模拟试题笔试03.docx_第4页
第4页 / 共22页
C++模拟试题笔试03.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C++模拟试题笔试03.docx

《C++模拟试题笔试03.docx》由会员分享,可在线阅读,更多相关《C++模拟试题笔试03.docx(22页珍藏版)》请在冰豆网上搜索。

C++模拟试题笔试03.docx

C++模拟试题笔试03

第三套

用树形结构来表示实体之间联系的模型称为______。

A、关系模型

B、层次模型

C、网状模型

D、数据模型

层次模型是最早发展出来的数据库模型。

它的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构,它们自顶向下、层次分明。

本题答案为B。

程序流程图(PFD)中的箭头代表的是______。

A、数据流

B、控制流

C、调用关系

D、组成关系

程序流程图(PFD)是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,其箭头代表的是控制流。

本题答案为B。

下面不属于软件工程的3个要素的是______。

A、工具

B、过程

C、方法

D、环境

软件工程包括3个要素,即方法、工具和过程。

本题答案为D。

下面对对象概念描述错误的是______。

A、任何对象都必须有继承性

B、对象是属性和方法的封装体

C、对象间的通讯靠消息传递

D、操作是对象的动态性属性

对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系。

对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。

本题答案为A。

算法的空间复杂度是指______。

A、算法程序的长度

B、算法程序中的指令条数

C、算法程序所占的存储空间

D、算法执行过程中所需要的存储空间

一个算法的空间复杂度,一般是指执行这个算法所需的内存空间。

一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。

本题答案是D。

在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。

其中数据独立性最高的阶段是______。

A、数据库系统

B、文件系统

C、人工管理

D、数据项管理

在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。

其中数据独立性最高的阶段是数据库系统。

本题答案为A。

在深度为5的满二叉树中,叶子结点的个数为______。

A、32

B、31

C、16

D、15

所谓满二叉树是指这样的一种二叉树:

除最后一层外,每层上的所有结点都有两个子结点。

这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第K层上有2K-1个结点,且深度为m的满二叉树有2m个结点。

在满二叉树中,最后一层的结点个数就是叶子结点的个数,本题中深度为5,故叶子结点数为25-1=24=16。

本题答案是C。

关系数据库管理系统能实现的专门关系运算包括______。

A、排序、索引、统计

B、选择、投影、连接

C、关联、更新、排序

D、显示、打印、制表

关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算。

本题答案为B。

下列关于栈的叙述中正确的是______。

A、在栈中只能插入数据

B、在栈中只能删除数据

C、栈是先进先出的线性表

D、栈是先进后出的线性表

栈是限定在一端进行插入与删除的线性表。

栈是按照"先进后出"的或后进先出的原则组织数据的,因此,栈也被称为"先进后出"表或"后进先出"表。

本题答案是D。

对建立良好的程序设计风格,下面描述正确的是______。

A、程序应简单、清晰、可读性好

B、符号名的命名要符合语法

C、充分考虑程序的执行效率

D、程序的注释可有可无

要形成良好的程序设计风格,主要应注重和考虑下述一些因素:

符号名的命名应具有一定的实际含义,以便于对程序功能的理解;正确的注释能够帮助读者理解程序;程序编写应优先考虑清晰性,除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。

本题答案为A。

对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是______。

classMyClass

{

public:

MyClass(intx){n=x;}

voidSetNum(intn1){n=n1;}

private:

intn;

}

intf()

{

MyClass*ptr=newMyClass(45);

_________;

}

A、MyClass(50)

B、SetNum(50)

C、ptr->SetNum(50)

D、ptr->n=50

本题考查的对象指针的使用。

对象指针存放的是对象的地址,要访问对象指针所指向对象的成员。

可以通过两种方式。

(*指针).成员,或者,指针->成员。

故本题选C。

执行下列程序后,输出的结果是______。

floata=1.1234;

doubleb=1.1234;

if(a==b)

cout<<"equal\n";

else

cout<<"notequal\n";

A、equal

B、notequal

C、equalnotequal

D、notequalequal

本题考查的是if--else基本语句和浮点数在计算机中的存放。

浮点数在计算机中是不能够精确存放的,只能存放其近似的值,所以当两个变量的精度不一样时,虽然他们的字面量一样,但是他们在计算机中表现出来是不等的。

故本题选B。

设有如下程序:

#include

usingnamespacestd;

intmain()

{

int**x,*y,z=10;

y=&z;

x=&y;

cout<<**x+1<

return0;

}

以上程序的输出结果是______。

A、y的地址

B、z的地址

C、11

D、运行错误

本题考查的是指针应用。

解题思路为:

x为一个二级指针,其存放的是指针变量y的地址,而y存放的又是z的地址。

故式子**x相当于对z的引用。

所以最后输出的结果为11。

故本题选C。

下列说法中错误的是______。

A、公有继承时基类中的public成员在派生类中仍是public的

B、公有继承时基类中的private成员在派生类中仍是private的

C、私有继承时基类中的public成员在派生类中是private的

D、保护继承时基类中的public成员在派生类中是protected的

本题考查的是继承的类型。

类的继承方式有公有继承、保护继承和私有继承三种方式。

对于公有继承基类中的成员访问属性不变,对于保护和私有继承基类中的成员转换为相应的访问类型。

但是如果基类成员的访问属性为private的,则不能被继承。

故本题选B。

下面程序的输出结果是______。

#include

usingnamespacestd;

voidadd()

{

staticinta;

a++;

cout<

}

intmain()

{

for(inti=0;i<3;i++)

add();

return0;

}

A、111

B、123

C、222

D、333

本题考查的是静态变量的用法。

静态变量在整个程序的运行过程中,一直占有其分配的空间。

每次运行的结果将被保留。

故本题选B。

假定MyClass为一个类,则该类的拷贝构造函数的声明语句为______。

A、MyClass&(MyClassx)

B、MyClass(MyClassx)

C、MyClass(MyClass&x)

D、Myclass(MyClass*x)

本题考查的是拷贝构造函数的声明。

拷贝构造函数是用一个已知的对象初始化一个正在创建的同类对象。

拷贝构造函数的一般格式如下:

〈类名〉:

:

〈类名〉(const〈类名〉&<引用对象名〉);其中const可以省略。

故本题选C。

执行下列程序后,输出的结果是______。

#include

usingnamespacestd;

template

Ttotal(T*data){

Ts=0;

while(*data)s+=*data++;

returns;

}

intmain()

{

intx[]={2,4,6,8,0,12,14,16,18};

cout<

return0;

}A、20

B、60

C、40

D、80

本题考查的是函数模板和数组的结合。

解题的思路是:

如果模板实参表的实际参数都被省略了那么〈〉也可以省略。

当x传递给total的时候其条件变为*x,而数组x的第五个值为0,所以程序最后是前4个元素相加,得20。

故本题选A。

在进行任何C++流的操作后,都可以用C++流的有关成员函数检验流的状态;其中只能用于检测输入操作的函数名是______。

A、fail()

B、eof()

C、bad()

D、good()

本题考查了C++中流的函数。

可以用文件对象的下列成员函数来判别文件流的当前状态:

good():

刚进行的操作成功则返回true,否则返回false;

fail():

与good()相反;

bad():

如果进行了非法操作返回true,否则返回false。

eof():

进行输入操作时,若达到文件尾则返回true,否则返回false;

故本题选B。

执行下列语句后,输出的结果是______。

#include

usingnamespacestd;

intmain()

{

inta=3,b=5;

floatc=b/a;

cout<

return0;

}

A、1.66666

B、1

C、1.0

D、1.7

本题考查的是基本数据之间的运算。

C++中两个同种类型的变量之间进行运算,得到的结果还是同类型的。

所以b/a最后得到是1。

所以最后屏幕输出的结果是1。

故本题选B。

下列哪个不属于C++的预定义的流对象______。

A、cin

B、cerr

C、clog

D、iostream

本题考查的是C++基本流对象的概念。

C++中预定了四个流对象,cout,cin,cerr,clog。

故本题选D。

执行下列语句后,输出的结果是______。

#include

usingnamespacestd;

intmain()

{

intj;

intm[3][2]={10,20,30,40,50,60};

for(j=0;j<2;j++)

cout<

return0;

}

A、1030

B、2040

C、5040

D、6040

本题考查的是二维数组的使用。

解题思路是:

j的初始值为0所以第一次输出m[2][0],即50,第二次j变为1输出m[1][1],即40。

所以最后输出结果是5040。

故本题选C。

执行下列程序后,输出结果是______。

#include

usingnamespacestd;

voidf(intx)

{

if(x)

{

cout.put('0'+x%10);

f(x/10);

}

}

intmain()

{

f(11001);

return0;

}

A、11001

B、10001

C、11100

D、10011

本题考查的是递归函数。

解题的思路是:

函数每次将x%10得到的数转换成相应的字符输出。

直到x为0为止。

所以本题选D。

执行下面程序后,输出的结果是______。

#include

usingnamespacestd;

char*x[]={"First","Second","Third"};

voidf(char*z[])

{

cout<<*++z<

}

intmain()

{

char**y;

y=x;

f(y);

return0;

}A、First

B、Second

C、Third

D、S

本题考查的是字符指针的用法。

解题思路如下:

x是一个指针数组,当将y传递给函数f时,便将x的地址传递给f,式子*++z中,++的优先级更高一点。

所以执行完后,z是指向“second”的。

故最后输出结果是“Second”。

故本题选B。

下列说法错误的是______。

A、构造函数可以设置默认参数

B、构造函数可以在说明类变量时自动执行

C、构造函数可以对静态数据成员进行初始化

D、构造函数可以重载

本题考查的是类的一些基本概念。

构造函数的作用是在对象被创建时利用特定的值构造对象,将对象初始化为一定的状态。

构造函数将在对象被创建的时候由系统自动调用。

缺省构造函数它的参数表或者为空或者它的所有参数都具有默认值。

静态数据成员不可以在构造函数内被初始化。

所以本题选C。

关于虚函数,下列表述正确的是______。

A、如果在重定义虚函数时使用了保留字virtual,则该重定义函数仍然是虚函数

B、虚函数不能声明为静态函数

C、虚函数不得声明为另一个类的友元函数

D、派生类必须重新定义基类的虚函数

本题考查的是虚函数的一些基本概念。

在成员函数前加上virtual修饰,即把该函数声明为虚函数。

虚函数可以是另一个类的友元函数,但不得是静态成员函数。

故本题选B。

下列语句将输出字符'*'的个数为______。

inti=100;

while

(1)

{

i--;

if(i==0)

break;

cout<<'*';

}

A、101

B、100

C、99

D、98

本题考查的是while循环语句和break语句。

解题的思路是:

i的初始值为100,循环的条件永远为真。

但是当i为0是循环就结束。

这样循环共进行99次,所以最后输出99个‘*’;

故本题选C。

下列函数原型的声明语法不正确的是______。

A、int&func(int,int);

B、int&func(inta=3,intb);

C、voidfunc(int&);

D、char*func(charch[10]);

本题考查的是函数的定义。

函数原型的形式为:

〈返回值类型〉〈函数名〉(〈形参列表〉);

其中形参列表的形参名可以省略。

对于函数有多个参数,如果提供默认的参数应遵循从右至左的顺序。

故本题选B。

对于函数int&add(int*pa,intb);的重载函数,不正确的是______。

A、int&add(inta,intb);

B、floatadd(int*pa);

C、floatadd(int*pb,intc);

D、floatadd(intc);

本题考查的是函数的重载。

函数重载是用同一个函数名在不同的参数上做不同的事情。

对于仅仅是函数的返回值不同,其它参数全部相同,不是重载。

如果出现这种情况,会在编译产生错误。

故本题选C。

下列字符串可以用做C++标识符的是______。

A、_123

B、foo~bar

C、case

D、3var

本题考查的是C++标识符的定义。

标识符是用户为程序中各种需要命名的“元素”所起的名字。

标识符的组成要符合一定的规则:

(1)以字母或下划线开头,由字母、下划线、数字组成。

(2)区分大小写。

(3)不能与C++中关键字重名。

故本题选A。

正确的定义一个整型数指针的语句是______。

A、int*pa;

B、int&pa;

C、intpa*;

D、intpa&;

本题考查的是指针的定义。

指针是用来存放其它变量地址的数据类型。

定义一个指针的格式如下:

类型*指针名。

所以本题选A。

下列十六进制常量的写法中,错误的是______。

A、0xaf

B、2f0x

C、0x1b

D、0xAE

本题考查的是十六进制数在C++中的表示。

对于十六进制数在C++中的表示,可以在前面加上0x。

故本题选B。

关于C++的特点下列说法不正确的是______。

A、C++是C语言的超集,大多数C程序在不用修改的情况下就可以在C++的集成环境下运行或调试

B、C++是面向对象的程序设计语言

C、C++的执行效率很高

D、C++中没有结构化编程的语句

本题考查的是C++的基本概念。

C++是从C语言发展起来的一种面向对象的高级语言,具有了面向对象程序设计语言的几乎所有特征。

但是几乎每一种面向对象的程序设计语言,都有结构化编程的思想在里面。

故本题选D。

执行下列语句后,程序的输出结果是______。

#include

usingnamespacestd;

intmain()

{

intn=10;

while(n>7){

n--;

cout<

}

cout<

}

A、10,9,8

B、9,8,7

C、10,9,8,7

D、9,8,7,6

本题考查的是while循环语句的使用。

解题思路是:

n的初始值是10,循环条件是是n>7而循环体是n--,cout<

故本题选B。

关于函数模板,下列表述不正确的是______。

A、用类模板定义一个对象时,不能省略实参

B、类模板只能有虚拟类型参数

C、类模板本身在编译中不会产生任何代码

D、类模板的成员函数都是模板函数

本题考查的是类模板的一些基本概念。

类模板本身在编译时是不产生代码的,只有在其实例化以后才会产生代码。

定义一个对象时,其实参是不能省略的。

故本题选B。

软件的需求分析阶段的工作,可以概括为四个方面:

______、需求分析、编写需求规格说明书和需求评审。

软件的需求分析阶段的工作,可以概括为四个方面:

需求获取、需求分析、编写需求规格说明书和需求评审。

需求获取的目的是确定对目标系统的各方面需求。

涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。

需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。

编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进度的依据。

需求评审是对需求分析阶段的工作进行的复审,验证需求文档的一致性、可行性、完整性和有效性。

在最坏情况下,冒泡排序的时间复杂度为______。

冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。

假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。

设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。

所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。

具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。

本题n=500,故父结点数等于int(500/2)=250,叶子结点数等于500-250=250。

面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。

面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。

______是数据库应用的核心。

数据库设计是数据库应用的核心。

在数据库应用系统中的一个核心问题就是设计一个能满足用户要求,性能良好的数据库,这就是数据库设计。

下面程序的功能是将形参x的值转换为二进制数,所得二进制数的每一位数放在一维数组y中返回,二进制的最低位放在放在下标为0的元素中。

请填空。

voidf(intx,inty[])

{

inta=0,b;

do

{

b=x%______;

y[a++]=b;

x/=2;

}while(x);

}

本题考查的是二进制转换的基本算法。

解题思路为:

把十进制转换为二进制每次把十进制数对2求余,然后将其整除2。

所以答案为2。

类继承中,缺省的继承方式是______。

本题考查的是继承的基本概念。

类的继承方式有公有、保护、私有三种。

默认的继承方式为私有继承。

在面向结构程序设计语言中,______是程序组成的基本单位。

本题考查的是面向对象和面向结构两种程序实际方法的区别。

在面向对象程序设计语言中,类是程序组成的基本单位。

面向结构程序设计语言以函数作为程序组成的基本单位。

C++中的多态性分为编译时的多态性和运行时的多态性,其中运行时的多态性是通过______实现的。

本题考查的是多态性的基本概念。

多态性分为编译时多态性和运行时多态。

编译时多态性是通过函数重载实现的,运行时多态性是通过虚函数实现的。

经常和一个运算符连用,构成一个运算符函数名的C++关键字为______。

本题考查的是操作符重载的一些概念。

运算符重载一般是和operator结合使用的。

执行下列程序后,写出程序的输出结果______。

#include

usingnamespacestd;

intmain()

{

inta=3;

int&b=a;

b++;

cout<

return0;

}

本题考查的是引用的使用。

引用实际上是为一个为变量起个别名,其后对其的任何操作都相当于对原变量的操作。

所以最后输出4。

C++中预定义标准输入流对象是______。

本题考查的C++的预定义流对象。

C++中有4个标准的流对象。

cin,cout,cerr,clog。

故本题填"cin"。

若要把类FriendClass定义为类MyClass的友元类,则应该在类MyClass的定义中加入语句______。

本题考查的是友元类的声明。

要把一个类声明为另外一个类的友元类,只要在另外一个类中添加如下语句:

friendclass类名;所以本题答案为:

“friendclassFriendClass”。

写出执行完下列程序段以后指定的变量的值:

boolx=true,y=false,z=false;

x=x&&y||z;

y=x||y&&z;

z=!

(x!

=y)||(y==z);

已知x=false,z=true,则y=______。

本题考查的是逻辑变量的运算以及他们之间的优先级关系。

C++语言提供了三种逻辑运算符,它们是:

!

(逻辑非)、&&(逻辑与)、||(逻辑或)。

其中!

为单目运算符,&&和||为双目运算符。

它们之间优先级从高到低依次为:

!

,&&,||。

执行下列语句后,输出结果为______。

intx=0,y=2,z=3;

switch(x)

{

case0:

switch(y)

{

case1:

cout<<'*';break;

case2:

cout<<'%';break;

}

case1:

switch(z)

{

case1:

cou

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1