




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机二级C+ 笔试一、选择题1、有如下程序: #ncludeiostream using namespace Std; Class MyClass public: MyClass(int i=0)cout1; MyClass(constMyClass&x)cout2; MyClass& operator=(const MyClass&x)cout3;return*this; MyClass()cout4; ; int main() MyClass obj1(1),obj2(2),obj3(obj1); return 0: 运行时的输出结果是( )。 A) 112444 B) 11114444 C) 121444 D) 113144442、如果有以下定义及初始化: int a=3,*p:&a; 则由此可以推断,*p的值是( )。 A变量a的值,即3 B变量a的地址值 C变量p的地址值 D无意义3、对于常数据成员,下面描述正确的是( )。 A常数据成员可以不初始化,并且不能更新 B常数据成员必须被初始化,并且不能更新 C常数据成员可以不初始化,并且可以被更新 D常数据成员必须被初始化,并且可以被更新4、在C+语言中,main函数默认返回一个( )类型的值。 Aint Bfloat Cchar Dvoid5、下列叙述中正确的是 A) 为了建立一个关系,首先要构造数据的逻辑关系 B) 表示关系的二维表中各元组的每一个分量还可以分成若干数据项 C) 一个关系的属性名表称为关系模式 D) 一个关系可以包括多个二维表6、下列运算符中哪些是不能够被重载的? A) ,*, *,?: B)+,new,delete, C)sizeof,new,delete,+, D)sizeof,flew,delete,7、下列数据结构中,能够按照“先进后出”原则存取数据的是( )。 A循环队列 B栈 C队列 D二叉树8、下列关于运算符重载的描述中,正确的是_。 A运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符 B一元运算符只能作为成员函数重载 C二元运算符重载为非成员函数时,参数表中有一个参数 DC+中可以重载所有的运算符9、在进行了任何C+流的操作后,都可以用C+流的有关成员函数检测流的状态,其中只能用于检测刚进行的操作是否失败函数名是 A) fail B) eof C) bad D) good10、下列模板声明中,有语法错误的是( )。 A) templatetypename TT fun(T x)return x; B) templatetypename TT fun(T x,int n)return x*n; C) templateclass TT fun(T*p)return *p; D) templateclass TT ClassAT n;11、 有如下类定义: class XX int xx; public: XX( ):xx(0) coutA; XX(int n):xx(n) coutB;) ; class YY:public XX int yy; public: YY( ):yy(0) coutyy; YY(int n):XX(n+1),YY(n) coutyy; YY(int m,int n):XX(m),YY(n)coutyy; ; 下列选项中,输出结果为A0的语句是 A) YY y1(0,0); B) YY y2(1); C) YY y3(0); D) YY y4;12、下面有关重载函数的描述中正确的是 A) 重载函数必须具有不同的返回值类型 B) 重载函数形参个数必须不同 C) 重载函数必须具有不同的形参列表 D) 重载函数名可以不同13、在语句cindata;中,cin是 A) C+的关键字 B) 类名 C) 对象名 D) 函数名14、在深度为7的满二叉树中,叶子结点的个数为( )。 A32 B31 C64 D6315、数据的逻辑结构是指( )。 A存储在外存中的数据 B数据所占的存储空间量 C数据元素之间的逻辑关系 D数据的逻辑结构在计算机中的表示16、下列选项中不属于软件生命周期开发阶段任务的是( )。 A软件测试 B概要设计 C软件维护 D详细设计17、有如下程序: #includeiostream using namespace std; Class TestClass private: int x,y; public: TestClass(int i,int j) xi; yj; void print() cout“print1”endl; void print()const cout”print2”(endl; ); Int main() const TestClass a(1,2); a.print(); return 0; 该程序运行后的输出结果是( )。 Aprintl Bprint2 Cprintl print2 D程序编译时出错。18、在深度为7的满二叉树中,叶子结点的个数为 A) 32 B) 31 C) 64 D) 6319、必须用一对大括号括起来的程序段是 A) switch语句中的case标号语句。 B) if语句的分支。 C) 循环语句的循环体。 D) 函数的函数体。20、有如下程序: #include iostream using namespace std; class MyClass public: MyClass(int x):val(x) void Print() const coutconst:val=valt; void Print() coutval=valt; private: int val; ; int main() const MyClass obj1 (10); MyClass obj2(20); obj1.Print(); obj2,Print(); return 0; 程序的输出结果是 A) val=10 const:val=20 B) const:val=10 const:val=20 C) const:val=10 val=20 D) val=10 val=2021、下列叙述中正确的是( )。 A) 一个逻辑数据结构只能有一种存储结构 B) 数据的逻辑结构属于线性结构,存储结构属于非线性结构 C) 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 D) 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率22、在数据流图(DFD) 中,带有名字的箭头表示_ 。 A) 控制程序的执行顺序 B) 模块之间的调用关系 C) 数据的流向 D) 程序的组成成分23、下列关于运算符重载的描述中,错误的是_。 A) 运算符重载不能改变操作数的个数、优先级、结合性和运算符的语法结构 B) 不是所有的运算符都可以重载 C) 运算符函数的调用必须使用关键字operator D) 在C+语言中不可以通过运算符重载创造出新的运算符24、 算法分析的目的是( )。 A) 找出数据结构的合理性 B) 找出算法中输入和输出之间的关系 C) 分析算法的易懂性和可靠性 D) 分析算法的效率以求改进25、通过指针访问类对象成员的方法是 _。 A) : B) ; C) D) -26、友元的作用是( )。 A提高程序的运用效率 B加强类的封装性 C实现数据的隐藏性 D增加成员函数的种类27、决定C+语言中函数的返回值类型的是( )。Areturn语句中的表达式类型B调用该函数时系统随机产生的类型C调用该函数时的主调用函数类型D在定义该函数时所指定的数据类型28、关于read()函数的下列描述中,( )是对的。 A该函数是用来从键盘输入中获取字符串 B该函数所获取的字符的多少是不受限制的 C该函数只能用于文本文件的操作中 D该函数只能按规定读取所指定的字符数29、以下各项说法中,正确的是( )。 A) 当通过引用传递参数时,函数创建一个变量以存储参数的值 B) 当通过引用传递参数时,函数无法访问参数的值 C) 当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值 D) 当通过引用传递参数时,函数访问调用程序中参数的原始值30、定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为( )。 A) 私有继承 B) 非私有继承 C) 保护继承 D) 公有继承31、若有以下定义和语句 int a4,b=3,*p, *q, *w; p=&a; q&b; w=q; qNULL;则以下选项中错误的语句是 A) *q=0 B) w=p C) *p=a; D) *p=*w;32、下列关于模板的叙述中,错误的是( )。 A) 模板声明中的第一个符号总是关键字template B) 在模板声明中用“”和“”括起来的部分是模板的形参表 C) 类模板不能有数据成员 D) 在一定条件下函数模板的实参可以省略33、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是_。 A10 B8 C6 D434、对表达式for(表达式1;表达式3)可理解为 A) for(表达式1;0;表达式3) B) for(表达式1;1;表达式3) C) for(表达式1;表达式3;) D) for(;表达式3)35、语句ofstream f(DATA. DAT, ios _base: applios_ lios_ base: binary);的功能是建立流对象f,并试图打开文件DATA. DAT 并与之连接,而且( )。 A若文件存在,将文件指针定位于文件首,若文件不存在,建立一个新文件 B若文件存在,将其截为空文件;若文件不存在,打开失败 C若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 D若文件存在,打开失败;若文件在,建立一个新文件二、填空题36、 根据下面的主程序,完成类的一种构造函数的最简单形式。#includeiostream. hclass baseprivate: int num;public: 【10】 ;void main() base try(6);37、有以下程序: #includeiostream using namespace std; class Base public: Base() x=0; int x; ; class Derivedl:virtual public Base public: Derivedl() x=10; ; class Derived2:virtual public Base public: Derived2() x=20; ; class Derived:public Derivedl,protected Derived2 ; int main() Derived obj; coutobj.xendl; return 0; 该程序运行后的输出结果是_。38、下列程序将x、y和z按从小到大的顺序排列,请将下面的函数模板补充完整。 templateclass T void order(_) T a; if(xy) a=x;x=y;y=a; if(yz) a=y;y=z;z=a; if(xy) a=x;x=y;y=a; 39、为 int *p; 动态分配内存空间并且赋初始值0的语句是 【7】 。40、 已知程序的结果为1 2 3,请填空。 #includeiostream.h templateclass T class A public: T X, y, z; void display( ) cout x y z; ; void main( ) Ainta1; 12 13 14 a1.display( ) ; 41、用以下语句调用库函数malloc,使字符指针st指向具有11字节的动态存储空间,请填空。st=(char*)_;42、派生类构造函数的执行顺序是先执行【12】的构造函数,然后执行成员对象的构造函数,最后执行【13】的构造函数。43、 友元类的所有成员函数都是另一个类的【10】。44、设一棵完全二叉树共有839个结点,则在该二叉树中有_个叶子结点。45、在C+中,打开一个文件,就是将这个文件与一个 【8】 建立关联,关闭一个文件,就是取消这种关联。46、 如果一个派生类只有一个直接基类,则该类的继承方式称为 (6) 继承;如果一个派生类同时有多个直接基类,则该类的继承方式称为 (7) 继承。47、重载的流运算符函数应该被定义为类的_函数。48、一个关系表的行称为 【3】 。49、以下程序的输出结果是 【8】 。 #includeiostream using namespace std; int main() int sum,i; for(sum=0,i=1;i5;i+)sum+=i; coutsumendl; return 0; 50、软件工程研究的内容主要包括_技术和软件工程管理。答案:一、选择题1、A解析 此题考查的是函数重载。从主函数入手,定义了MyClass类的对象obj1(1),obj2(2)和obj3(obj1)。其中对象obj1和obj2中的参数为整型,因此调用构造函数MyClass(int i=O)cout1小输出11;对象obj3中的参数为对象obj1,所以调用构造函数MyClass(const MyClass&x)cout2;,输出2。在主函数退出时,调用析构函数MyClassOcout4;,清除对象。obj1,obj2和obj3,因此输出444,即答案为选项A)。2、A 3、B 4、A 5、C解析 本题考查数据库的关系模型。关系模型的数据结构是一个“二维表”,每个二维表可称为一个关系,每个关系有一个关系名。表中的一行称为一个元组;表中的列称为属性,每一列有一个属性名。表中的每一个元组是属性值的集合,属性是关系二维表中最小的单位,它不能再被划分。关系模式是指一个关系的属性名表,即二维表的表框架。因此,选项C的说法是正确的。6、A解析 考查C+语言中不能够重载的操作符。解题要点 C+语言中的不能重载的操作符是,*,- *, 和?:。7、B解析 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。8、A运算符重载为成员函数时,会省略一个参数,如果无参数,表明是一元运算符。一元运算符既可以作为成员函数重载,也可以作为非成员函数重载。二元运算符如果作为非成员函数,则参数表中必须有两个参数。C+有5个运算符不能重载,它们是:.(成员访问运算符)、.*(成员指针访问运算符)、:(域运算符)、sizeof(长度运算符)和?:(条件运算符)。故本题答案为A。9、A解析 C+中可以用文件流对象的下列成员函数来判别文件流的当前状态。函数is_ open()判定流对象是否与一个打开的文件相联系,若是,返回true,否则返回false;函数good()刚进行的操作成功时返回true,否则返回false;函数fail()与good()相反,刚进行的操作失败时返回 true,否则返回false;函数bad()如果进行了非法操作返回true,否则返回false;函数eof()进行输入操作时,若到达文件尾返回true,否则返回false。其中,eof函数只能用于输入流操作。10、D解析 此题考查的是函数模板的声明。声明一个函数模板的格式为:template模板形参表声明函数声明,其中的模板形参表声明是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename参数名;class参数名;类型修饰参数名。而选项D)为定义类模板的格式,即template类型形参表,class类模板名;。11、D 12、C解析 所谓函数重载,是指同一个函数名可以对应多个函数的实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。即重载函数具有不同的形参列表。13、C解析 cin是istream输入流类的派生类istream_withassign对象。cout是ostream输出流类的派生类ostream_withassign对象。 14、C 15、C 16、C 17、B解析 本题定义TestClass型的常对象a,然后调用对象a中的成员函数print()。因为在C+中,如果一个对象被声明为常对象,则不能调用镇对象中的非const型的成员函数。所以,这里调用的是对象中的const型成员函数“void print()const”,输出为print2。18、C解析 在二叉树的第k层上,最多有2k-1(k1)个结点。对于满二叉树来说,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点。因此,在深度为7的满二叉树中,所有叶子结点在第7层上,即其结点数为 2k-1=27-1=64 因此,本题的正确答案为C。19、D解析 本题考查的知识点是;语句块和函数。if语句的分支和循环语句的循环体可以是一条语句也可以是一个语句块,所以不是必须用一对大括号括起来;switch语句中的case标号语句可以是一系列语句,也可以包含语句块,也不是必须用一对大括号括起来:函数的函数体必须使用一对大括号括起来。故本题应该选择D。20、C解析 本题考查的知识点是:常成员函数的重载。使用const关键字说明的成员函数称为常成员函数。const关键字可以用于参与对重载函数的区分。重载的原则是:常对象调用常成员函数,一般对象调用一般成员函数。题目中的Print()就是通过const重载的两个成员函数,主函数中声明的obj1是常对象,而obj2是一般对象。故输出结果为const:val=10 val=20,应该选择C。21、D 22、C解析 在数据流图(DFD) 中,带有名字的箭头表示数据的流向。23、C解析 运算符重载不能改变运算符的语法规则、优先级、结合性和操作数个数。运算符重载不能创造新的运算符。不能重载“,”.“:”、“.*”、“-*”和“?:”5个运算符。运算符重载函数在定义的时候必须使用关键字operator,调用时可直接使用运算符。24、D解析 算法是指对解题方案准确而完整的描述,而对算法进行分析的目的,是为了在原有的基础上,对算法进行改进,从而提高对数据的处理效率。25、D 26、A 27、D 28、D 29、D解析 本题考核函数参数传递中的引用传递。先来理解引用的概念: “引用”实际上是给一个已知变量起个别名,对引用的操作也就是对被它引用的变量的操作。 C+中的变量名对应着内存的存储位置,可以使用一个特定的内存地址访问到它,引用则引入变量的另一个名字,它和这个变量具有同一内存地址。 当通过引用传递参数时,只是把请求调用的程序中实参的引用传递给函数(实际上是实参的内存地址被传递了)。30、A解析 此题考查的是派生类的基本知识。在声明派生类时,如果不显式地给出继承万式,缺省的类继承方式是私有继承private。31、D解析 指针是一个既强大又危险的技术,C/C+语言之所以灵括高效,原因之一就是采用了指针技术,所以c/C+特别适合开发系统软件和工具软件在C#语言中已经取消了指针,而且全部属于托管代码。而在dotnet框架中,为了保持兼容性,仍然可以使用C+,但分托管和非托管代码。本题实际上有个圈套,只要注意到题干中“语句”,而且注意到各个选项中都有分号结尾,就可以判断选项D是正确的:语句不是以逗号结尾的。32、C解析 类模板不是一个实实在在的类,本身在编译中不会生成任何代码;用类模板定义一个对象时,不能省略实参;类模板的成员函数都是模板函数。C+中可以为类模板的参数设置默认值,可以有数据成员,选项C)错误。33、C根据二叉树的基本性质3:在任意一颗二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。34、B解析 本题中,若要保证for表达式能正常进行,首先要保证第2个表达式的条件判断值应该为真,从而保证循环进行。35、C 二、填空题36、base(int n)解析 注意,根据main函数中对类base的使用情况可知,base类必须提供整型单参构造函数,同时要求构造其最简单的形式,故函数体为空。37、20解析 本题考核虚基类。本题中,虽然Derived1和Derived2都是由共同的基类 x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员x只存在一份拷贝,不论在类Derived1中修改,还是在类Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obJ;”时,就会先调用虚基类 Base的构造函数,使得x=0,然后执行类Derived1的构造函数使得x=10,再执行类Derived2的构造函数,使得x=20。最后输出x的值为20。38、Tx,Ty,Tz解析 本题要填入的是函数的形参表,此函数的功能是使x、y和z按从小到大的顺序排列,那么就涉及改变传入的实参值的情况,因此要采用引用传递的方式。所以本题空白处应填入;Tx,Ty,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育赛事取消保险行业跨境出海项目商业计划书
- 高科技保鲜技术水果罐头行业深度调研及发展项目商业计划书
- 高端家庭影院设计服务企业制定与实施新质生产力项目商业计划书
- 创意家居设计市场行业深度调研及发展项目商业计划书
- 软件即服务 (SaaS) 在企业项目管理中的深度应用、定制化开发策略及企业数字化转型赋能与管理效率提升可行性研究报告
- 2025年乡村文化旅游产业政策与文化旅游产业投资环境关系报告
- 中小微企业供应链金融创新实践与金融科技应用研究报告
- 2025年金融市场量化投资策略在债券市场的风险控制与收益优化研究与实践报告
- 甘肃省天水市秦安县第四中学2022-2023学年高二上学期期中物理(原卷版)
- 药剂科对患者教育的职责
- 安徽省历年中考地理试卷真题合集(共3套)
- 孔融让梨(故事PPT)
- 2022-2023学年云南省保山市隆阳区部编版五年级下册期末考试语文试卷(解析版)
- 质量管理制度
- 《月光下的中国》赏析
- 土壤地下水专项应急预案
- 白塞氏病护理病例讨论
- 刑事案件模拟法庭剧本完整版五篇
- 中药材种植加工项目可行性报告
- 安全风险评价风险矩阵法LEC法
- 空调维保服务投标方案(技术标)
评论
0/150
提交评论