计算机二级C++笔试243Word下载.docx

上传人:b****5 文档编号:17703239 上传时间:2022-12-08 格式:DOCX 页数:19 大小:23.87KB
下载 相关 举报
计算机二级C++笔试243Word下载.docx_第1页
第1页 / 共19页
计算机二级C++笔试243Word下载.docx_第2页
第2页 / 共19页
计算机二级C++笔试243Word下载.docx_第3页
第3页 / 共19页
计算机二级C++笔试243Word下载.docx_第4页
第4页 / 共19页
计算机二级C++笔试243Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

计算机二级C++笔试243Word下载.docx

《计算机二级C++笔试243Word下载.docx》由会员分享,可在线阅读,更多相关《计算机二级C++笔试243Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

计算机二级C++笔试243Word下载.docx

B.软件工程主要解决软件产品的生产率问题

C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

D.软件工程只是解决软件开发中的技术问题

软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。

软件工程的目标是:

在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。

第6题:

下列对于软件的叙述中正确的是

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。

第7题:

为了使模块尽可能独立,要求

A.模块的内聚程序要尽量高,且各模块间的耦合程序要尽量强

B.模块的内聚程序要尽量高,且各模块间的耦合程序要尽量弱

C.模块的内聚程序要尽量低,且各模块间的耦合程序要尽量弱

D.模块的内聚程序要尽量低,且各模块间的耦合程序要尽量强

B

为了使模块尽可能独立,要求模块的内聚程度尽量高,且各模块之间的耦合程度要尽量弱。

第8题:

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据与相关文档的集合

软件是一系列按照特定顺序组织的计算机数据和指令的集合。

软件并不只是包括在计算机上运行的程序,与这些程序相关的文档也被认为是软件的一部分。

简单地说,软件就是程序加文档和数据的集合体。

第9题:

数据独立性是数据库技术的重要特点之一。

所谓数据独立性是指

A.数据与程序独立存放

B.不同的数据被存放在不同的文件中

C.不同的数据只能被对应的应用程序所使用

D.以上3种说法都不对

数据独立性是指建立在数据的逻辑结构和物理结构分离的基础上,用户以简单的逻辑结构操作数据而无须考虑数据的物理结构,转换工作由数据库管理系统实现。

数据独立性分为数据的物理独立和数据的逻辑独立。

第10题:

用树状结构表示实体之间联系的模型是

A.关系模型

B.网状模型

C.层次模型

D.以上3个都是

实体之间的关系模型包括层次模型、网状模型和关系模型,其中,层次模型可以由树状结构来表示。

第11题:

为了取代C中带参数的宏,在C+十中使用

A.重载函数

B.内联函数

C.递归函数

D.友元函数

内联函数是inline,当程序中出现对该函数的调用时,编译器使用函数体中的代码插入到调用该函数的语句处,同时用实参代替形参。

一般在程序运行时不再进行函数调用,代替了C语言中的宏定义。

第12题:

下列关于类定义的叙述中,正确的是

A.类定义中包括数据成员和函数成员的声明

B.类成员的缺省访问权限是保护的

C.数据成员必须被声明为私有的

D.成员函数只能在类体外进行定义

在类的定义中,类的数据成员和成员函数可在类中声明,在类中或者类外定义均可。

在类外定义成员函数时,要加上类名和域作用符,类名:

:

为前缀,在类中的成员的默认访问权限为私有的。

第13题:

下列关于派生类构造函数和析构函数的叙述中,错误的是

A.派生类的构造函数会隐含调用基类的构造函数

B.如果基类中没有默认构造函数,那么派生类必须定义构造函数

C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

在通常情况下,派生类和基类的构造函数的执行顺序为:

先执行基类的构造函数,然后执行派生类的构造函数;

当撤销派生类对象时,先执行派生类的析构函数,随后再执行基类的析构函数。

第14题:

通过运算符重载,可以改变运算符原有的

A.操作数类型

B.操作数个数

C.优先级

D.结合性

运算符重载不能改变运算符原有的优先级、结合特性和操作数个数。

运算符重载不能创建新的运算符,运算符重载可以改变运算符参数的类型和返回值的类型。

第15题:

有如下函数模板:

templateTsouare(Tx)(returllx*x;

) 其中T是

A.函数形参

B.函数实参

C.模板形参

D.模板实参

函数模板定义的一般格式为:

Template<typename类型参数>返回类型 函数名(模板形参表){函数体}

第16题:

使用输入/输出操作符setw,可以控制

A.输出精度

B.输出宽度

C.对齐方式

D.填充字符

setw(n)设置域宽为n,用于输出。

第17题:

下列字符串中,不可以用作C++标识符的是

A.y_2006

B._FEST_H

C.Return

D.switch

在C++中,变量标识符必须是以大小写字母、下画线开始,由数字或者字母下画线等组成的一个字符串,其中C++关键字不能作为标识符,不能包含-、+、*、/等运算符号。

C++变量区分大小写,所以Retrun不是关键字,而是一个合法变量;

swith为关键字,所以不能定义为标示符。

第18题:

字面常量42、4.2、42L的数据类型分别是

A.long、double、int

B.long、float、int

C.int、double、long

D.int、float、long

根据题干可知,分别为整型、浮点型和长整型。

第19题:

执行下列语句段后,输出字符“*”的个数是for(inti=50;

i>l;

--i)cout<<”*”

A.48

B.49

C.50

D.51

for(inti=50;

i>1;

--i),i为50~2,故打印49个*。

第20题:

有如下程序段,其中会产生编译错误的语句是inti=0,j=1;

int&r=i;

//①r=j;

//②int*p=&i;

//③*p=&r;

//④

A.④

B.③

C.②

D.①

赋值运算符不能将int地址(指针)赋值给int变量。

第21题:

在下面的定义语句中,画线处应填入的内容是classFred{public:

voidprint(){cout<<data<<endl;

}voidsetData(doubleD.{data=d;

}staticintcount;

private:

doubledata;

};

______count=0;

//静态数据成员的定义

A.int

B.staticint

C.intFred:

D.staticintFred:

静态数据成员在类中声明,对它的访问可通过类名进行。

第22题:

有如下程序:

#include<iostream>usingnamespacestd;

classBase{protected:

inti;

public:

intj;

classDerived:

publicBase{intm;

intn;

intmain(){Derivedd;

d.i=0;

//[1]d.j=0;

//[2]d.n1=0;

//[3]d.n=0;

//[4]return0;

} 其中主函数中有两个赋值语句有错,这两个错误的赋值语句是

A.[1]和[2]

B.[1]和[3]

C.[2]和[3]

D.[2]和[4]

基类被派生类公有派生时,可以在派生类中访问基类中的公有数据成员和保护数据成员,私有数据成员在派生类中不能被直接访问,保护数据成员和私有数据成员均不能被派生类对象直接访问。

如果一个类的数据成员没有被限定就会被默认为私有数据成员,私有数据成员不能直接被类对象访问。

第23题:

在表达式x-y中,“-”是作为非成员函数重载的运算符。

若使用显式的函数调用代替直接使用运算符“-”,这个表达式还可以表示为

A.x.operator-(y)

B.operator-(y,x)

C.yoperator-(x)

D.operator-(x,y)

非成员函数重载的运算符的显示调用格式为:

aa.operator@bb,其中@是重载运算符号。

第24题:

下列函数模板定义中错误的是

A.template<classQ>

B.template<classQ>QF(Qx){returnQ+x;

}QF(Qx){returnx+x;

}

C.template<classT>

D.template<classT>TF(Tx){returnx*x;

}boolF(Tx){returnx>1;

在函数模板定义中,类型参数不能参与运算。

第25题:

已知outfile是一个输出流对象,要想将outfile的文件指针定位到当前位置之前321字节处,正确的函数调用语句是

A.outfile.seekp(321,ios_base:

cur);

B.outfile.seekp(321,ios_base:

beg);

C.outfile.seekp(-321,ios_base:

D.outfile.seekp(-321,ios_base:

在文件中偏移定位时的初始值ios:

base_beg将指针定位在文件的开始位置;

ios:

base_cur将指针定位在文件的当前位置;

base_end将指针定位在文件的结束位置。

从当前位置往后偏移量为正,从当前位置往前偏移,偏移量为负。

第26题:

#include<cstring>#include<iostream>usingnamespacestd;

classMyString{public:

MyString(constchar*s);

 ~MyString(){delete[]data;

}protected:

unsignedlen;

char*data;

MyString:

MyString(constchar*s){len=strlen(s);

data=newchar[1en+1];

strcpy(data,s);

}intmain(){MyStringa("

C++Progreanfing"

);

MyStringb(A);

return0;

} 在运行上面的程序时出错,错误的原因是

A.构造函数的实参不允许是本类的对象

B.没有定义实现深层复制(深复制)的复制构造函数

C.构造对象a时实参与形参类型不符

D.系统不能生成缺失的复制构造函数

当类中的数据成员有指针时,必须使用深层复制构造函数,否则会发生指针悬挂。

在进行函数析构时,会出现指针丢失现象。

第27题:

#include<iostream>usingnamespaeestd;

classDemo{public:

Demo(){cout<<"

defaultconstructor\n"

}Demo(constDemo&x){cout<<"

copyconstructor\n"

}};

DernouserCore(DemoB.{Democ(B.;

returnc;

}intmain(){Demoa,d;

cout<<"

callinguserCode()\n"

d=userCode(A);

} 执行上面程序的过程中,构造函数Demo()和Demo(constDemo&

x)被调用的次数分别为

A.1和1

B.1和2

C.2和3

D.2和4

无参构造函数调用和复制构造函数调用的Demoa,d;

调用2次无参构造函数Demo(),在DemouserCore(DemoB.{Democ(B.;

}函数中,Demob调用一次复制构造函数,Democ(B.调用一次复制构造函数,在函数返回值时还要调用一次复制构造函数,故Demo(constDemo&x)的调用次数为3次。

第28题:

已知在函数func中语句this->ff=0;

与语句ff=0;

的效果完全相同。

对于这一现象,下列叙述中错误的是

A.ff是某个类的数据成员,func是该类的友元函数

B.ff是某个类的数据成员,func是该类的成员函数

C.this->ff和ff是同一个变量

D.func不是一个静态成员函数

类的静态数据成员和友元函数,不能拥有this指针。

第29题:

如下程序的输出是#include<iostream>usingnamespacestd;

classBase{public:

Base(){cout<<"

BB"

f();

}voidf(){cout<<"

Bf"

publicBase{public:

Derived(){eout<<"

DD"

Df"

intmain(){Derivedd;

return0;

A.BBBff)D

B.BBDfDDDf

C.DD

D.DDBBBf

当创建派生类对象时,首先调用基类的构造函数,最后调用派生类的构造函数。

第30题:

下列叙述中错误的是

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

B.私有继承时基类中的protected成员在派生类中仍是protected成员

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

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

在私有继承方式下,所有的类成员都继承为私有成员。

第31题:

下列是关于派生类声明的开始部分,其中正确的是

A.classvirtualB:

publiceA

B.virtualclassB:

C.classB:

publicAvirtal

D.classB:

virtualpublicA

派生类的声明格式如下:

class派生类名:

[继承方式]基类名{派生类的数据成员和成员函数}virtual为虚继承,是继承方式,所以应该放在派生类名后面。

第32题:

在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是

A.后缀一元运算符

B.前缀一元运算符

C.无操作数的运算符

D.二元运算符

在成员函数重载中,一元函数重载在函数声明中可以没有任何形参,操作数就是对象本身;

但是作为后缀运算符重载时,则必须在形参中添加参数。

第33题:

关于关键字class和typename,下列说法中正确的是

A.程序中所有的typename都可以替换为class

B.程序中所有的class都可以替换为typename

C.A和B都正确

D.A和B都不正确

只有在目标声明中,typename和class才可以相互替换,即typename可以被class替换,而有的class,不一定能被typename替换。

第34题:

如下程序的输出结果是#include<iostream>#include<iomanip>usingnamespacestd;

classCSum{intx,y;

CSum(intx0,inty0):

X(x0),y(y0){}friendostream&

operator<<(ostream&

os,constCSum&

xA){os<<setw(5)<<xa.x+xa.y:

returnos;

}};

intmain(){CSumy(3,5);

cout<<setfill('

*'

)<<8;

cout<<y;

}

A.88

B.****88

C.****8****8

D.8****8

输出流控制中,如果没有指定对齐方式,则默认为左对齐、右填充,CSum类使“<<”运算符出栈,并将输出控制为宽度为5,cout<<setfill('

执行时就打印8****,然后执行cout<<y;

打印8,故答案为D。

第35题:

classStack{public:

Stack(unsignedn=10):

size(n){rep_=newint[size];

top=0;

}Stack(Stack&

s):

size(s.size){rep_=newint[size];

fbr(inti=0;

i<size;

i++)rep_[i]=s.rep_[i];

top=s.top;

} ~Stack(){delete[]rep_;

}voidpush(intA){rep一_top]=a;

top++;

}intpop(){--top;

returnrep_[top];

}b001isEmpty()const{returntop==0;

}private:

int*rep_;

unsignedsize,top;

intmain(){Stacksl;

for(inti=1;

i<5;

i++)s1.push(i);

Stacks2(s1);

for(i=1;

i<3;

i++)cout<-<s2.pop()<<'

,'

s2.pusl:

(6);

s1.push(7);

while(!

s2.isEmpty())cout<<s2.pop()<<'

return0:

} 程序的输出结果是

A.4,3,2,1,

B.4,3,6,7,2,1,

C.4,3,6,2,1,

D.1,2,3,4,

堆栈组织元素的原则是“先进后出”,Stacks2(s1);

使用复制构造函数新建s2,里面有元素1,2,3,4。

for(i=1;

i++)cout<<s2.pop()<<'

使栈顶元素4,3出栈,s2.push(6)将6压入栈顶。

while(!

s2.isEmpty())cout<<s2.pop()<<'

使元素6,2,1出栈,故答案为4,3,6,2,1。

二、填空题(每空2分,共30分)

第36题:

在深度为7的满二叉树中,度为2的结点个数为______。

 

63

详细解答:

第37题:

软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于______测试。

黑盒

等价类划分法是将所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每个子集中选择少数具有代表性的数据作为测试用例。

该方法是一种常用的黑盒用例分析方法。

第38题:

在数据库系统中,实现各种数据管理功能的核心软件称为______。

DBMS

一个完整的数据库系统(DBS)包括数据库(DB.和数据库管理系统(DBMs),其中,数据库管理系统实现各种数据管理功能,是数据库系统的核心。

第39题:

软件生命周期可分为多个阶段,一般分为定义阶段、开发和维护阶段。

编码和测试属于______阶段。

开发[解释]软件的生命周期一般包括3个阶段:

软件定义、软件开发及软件维护阶段。

软件定义阶段包括:

可行性研究与计划制定和需求分析阶段;

软件的开发阶段包括了软件设计、软件实现软件的编码和测试等内容;

在软件维护阶段,主要是对软件的运行和维护。

第40题:

在结构化分析使用的数据流图(DFD.中,利用______对其中的图形元素进行确切解

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

当前位置:首页 > 职业教育 > 中职中专

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

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