全国计算机等级考试二级C++全真模拟试卷.doc

上传人:wux****ua 文档编号:8970557 上传时间:2020-04-02 格式:DOC 页数:73 大小:320.50KB
返回 下载 相关 举报
全国计算机等级考试二级C++全真模拟试卷.doc_第1页
第1页 / 共73页
全国计算机等级考试二级C++全真模拟试卷.doc_第2页
第2页 / 共73页
全国计算机等级考试二级C++全真模拟试卷.doc_第3页
第3页 / 共73页
点击查看更多>>
资源描述
全真模拟试卷(1)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1) (1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素 D)没有共同点(2) (2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba(3)(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比(4) (4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构(5)(5)为了提高测试的效率,应该 A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序(6) (6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(7) (7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护(8) (8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为 A)CB)BasicC)DDLD)DML(9) (9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件(10)(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)(11)C+语言对C语言做了很多改进,C+语言相对于C语言的最根本的变化是A)增加了一些新的运算符B)允许函数重载,并允许设置缺省参数C)规定函数说明符必须用原型D)引进了类和对象的概念(12)(12)下列哪个是C+语言的有效标识符?A)_No1B)No.1C)12345D)int(13)(13)设有定义int x;float y;,则10+x+y值的数据类型是A)intB)doubleC)floatD)不确定(14)(14)下列程序的执行结果为#includevoid main() int a=3,b=0; int *p=&a; b=+a+; cout*p,bendl;A)3,4B)4,3C)3,4D)4,4(15)(15)下面程序的运行结果为#includevoid main() for(int a=0,x=0;!x&a=10;a+) a+; coutaendl;A)10B)11C)12D)0(16)(16)下列选项,不正确的是A) for(int a=1;a=10;a+);B) int a=1; do a+; while(a=10)C)int a=1; while(a=10) a+; D) for(int a=1;a=10;a+)a+;(17)(17)下面关于数组的初始化正确的是A)char str=a,b,cB)char str2=a,b,cC)char str23=a,b,c,d,e,f D)char str()=a,b,c(18)(18)下列程序的输出结果为#includevoid main() char *a=hello,the,world; char *pa=a; pa+; cout*paendl;A)helloB)theC)worldD)hellotheworld(19)(19)决定C+语言中函数的返回值类型的是A)return语句中的表达式类型B)调用该函数时系统随机产生的类型C)调用该函数时的主调用函数类型D)在定义该函数时所指定的数据类型(20)(20)下列程序的输出结果是#includeint min(int a,int b) if (ab)return a; else return b; return 0;void main() coutmin(1,min(2,3)endl;A)0B)1C)2D)3(21)(21)下列程序的运行结果为#include void print(double a) cout+a;void print(int a,int b) coutba;void main() print(1.2); cout ; print(3,4);A)1.234B)2.234C)1.243D)2.243(22)(22)对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是 A)公有类型B)私有类型C)保护类型D)友元类型(23)(23)在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是A)友元函数B)虚函数C)构造函数D)析构函数(24)(24)类的析构函数的作用是A)一般成员函数的初始化B)类的初始化C)对象的初始化D)删除类创建的对象(25)(25)下列说法正确的是A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C)类的内联函数必须在类体内定义D)类的内联函数必须在类体外通过加关键字inline定义(26)(26)下面对静态数据成员的描述中,正确的是 A)静态数据成员可以在类体内进行初始化 B)静态数据成员不可以被类的对象调用 C)静态数据成员不能受private控制符的作用 D)静态数据成员可以直接用类名调用(27)(27)下面对于友元函数描述正确的是 A)友元函数的实现必须在类的内部定义B)友元函数是类的成员函数C)友元函数破坏了类的封装性和隐藏性D)友元函数不能访问类的私有成员(28)(28)在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是A)派生类的对象可以赋给基类的对象B)派生类的对象可以初始化基类的引用C)派生类的对象可以直接访问基类中的成员D)派生类的对象的地址可以赋给指向基类的指针(29)(29)下面程序的运行结果为#includeclass Apublic: A()cout1; A()cout2;class B:public Apublic: B()cout3; B()cout=C):D)/(33)(33)当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为A)ios:inB)ios:out C)ios:in | ios:outD)以上都不对(34)(34)下列程序的运行结果是 #includeclass Aint a;public:A()a=0; A(int aa) a=aa; couta+; ;void main() A x,y (2),z (3); coutendl;A)00B)23C)34D)25(35)(35)下面程序的输出结果是#includeclass example int a;public: example(int b)a=b+; void print()a=a+1; couta ; void print()constcout afloat-double。(14)B 解析: *p为所指对象a的值,语句b=+a+;等价于b=b+a;a=a+1;。(15)C 解析: 在进入最后一次循环时a=10,在循环体内执行a+;后a=11,执行完该次循环体计算for循环的增量部分后a=12小于10,循环结束。(16)B 解析: 本题考察的是基本循环语句的使用,选项A),C)和D)都为正确的形式,在选项B)中的while(a=10)后缺少结束符分号;。(17)A 解析: 本题考察的是字符数组的初始化。选项B)中用3个元素初始化大小为2的数组,越界了;选项C)中应该是2行3列的数组,题中使用3行2列初始化;选项D)中数组合后应用方括号。(18)B 解析: 本题主要考察的是指针数组和指向指针的指针之间的关系,其中a是指针数组,pa是指向指针数组行的指针,所以pa自加1相当于指向下一行。(19)D 解析: C+语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。(20)B 解析:本题考察的是函数的调用,第一次调用min(2,3),因为23,所以返回值为2,第二次调用min(1,2),因为1*和?:。(33)D 解析: 使用fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。(34)B 解析: 本题考察的是对构造函数的掌握,另外+运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。(35)C 解析: +是右结合的,所以先赋值为3,最后输出3+1;常成员函数只有常对象才能调用,所以输出2。二、填空题(1)有穷性 解析: 算法是指解题方案的准确而完整的描述。它有4个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。(2)log2n 解析: 对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。(3)对象 解析: 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。(4)软件生命周期 解析: 软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。(5)关系模型 解析: 数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。(6)函数类 解析: 函数是程序功能实现的主要方式,是实现结构化设计(将程序分成若干个函数实现)的基本组成; 类是一种用户定义的类型,是实现数据封装和数据抽象的工具,是面向对象设计中的基本组成。(7)2 解析: 运算符+的优先级高于双目运算符/,所以括号中的运算为2/2,最后的结果为2/2*2。 (8)选择结构 解析: 顺序结构(也叫连续结构)和循环结构是经常被使用的,不过选择结构(if和switch)也是一种重要的流程控制结构。(9)改变 解析: 本题考察的是定义常量的关键字const,由const定义的变量的值不可以再改变,所以定义时必须进行初始化。 (10)传地址 解析: 本题考察的是传值调用和传址调用的区别-传值调用只是进行值的简单复制,返回之后不会改变原来的值;而传址调用是把参数的地址传入,会改变原来的值。 (11)ptr-SetNum(50); 解析: 本题考察的是考生使用对象指针调用成员函数的能力,指针调用成员函数应该使用符号-。(12)保护继承 解析: 继承性是面向对象程序设计中最重要的机制,用户可以根据不同的需要选择3种不同的继承方式。(13)x+y 解析: 本题考察的是运算符函数的调用,可以像一般函数那样用函数名进行调用,也可通过运算符构成表达式的形式进行调用。 (14)类 解析: 本题考察的是类模板的使用方式,就是把类模板的一般化定义实例化为一个真正的类。全真模拟试卷(2)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1) (1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为A)GEDHFBCAB)DGEBHFCAC)ABCDEFGHD)ACBFEDHG(2) (2)树是结点的集合,它的根结点数目是A)有且只有1B)1或多于1C)0或1D)至少2(3) (3)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意顺序(4) (4)在设计程序时,应采纳的原则之一是A)不限制goto语句的使用B)减少或取消注解行C)程序越短越好D)程序结构应有助于读者理解(5) (5)程序设计语言的基本成分是数据成分、运算成分、控制成分和A)对象成分B)变量成分C)语句成分D)传输成分(6) (6)下列叙述中,不属于软件需求规格说明书的作用的是A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析(7)(7)下列不属于软件工程的3个要素的是)工具)过程)方法)环境(8) (8)单个用户使用的数据视图的描述称为A)外模式B)概念模式C)内模式D)存储模式(9) (9)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(10)(10)SQL语言又称为 A)结构化定义语言B)结构化控制语言C)结构化查询语言D)结构化操纵语言(11)(11)下面关于类和对象的描述中,错误的是A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量B)类和对象之间的关系是抽象和具体的关系C)对象是类的实例,一个对象必须属于一个已知的类D)类是具有共同行为的若干对象的统一描述体(12)(12)以下各选项组中,均是C+语言关键字的组是 A)public operator thisB)shod string static C)it while =D)private cout printf(13)(13)设int a=10,b=11,c=12;,表达式(a+b)n为true或mn&mn B)switch语句结构中必须有default语句 C)if语句结构中必须有else语句 D)如果至少有一个操作数为true,则包含|运算符的表达式为true(15)(15)下列语句中不是死循环的是A)int i=10; while (1) i-; if(i=1)break; B)for(int i=1;i=0);D)int i=1; for(;)i=i+1;(16)(16)下面关于break语句的描述中,不正确的是A)break可以用于循环体内 B)break语句可以在for循环语句中出现多次C)break语句可以在switch语句中出现多次D)break语句可用于if条件判断语句内(17)(17)下面关于数组的描述错误的是 A)在C+语言中数组的名字就是指向该数组第一个元素的指针B)长度为n的数组,下标的范围是0n-1C)数组的大小必须在编译时确定D)数组只能通过值参数和引用参数两种方式传递给函数(18)(18)下面程序错误的语句是 #include void main() int *p=new int1; p=9; cout *pendl; delete p; A)B)C)D)(19)(19)下面的哪个选项不能作为函数的返回类型?A)voidB)intC)newD)long(20)(20)不能作为重载函数的调用的依据是A)参数个数B)参数类型C)函数类型D)函数名称(21)(21)下列程序的输出结果为 #include int func(int n) if (n1)return 1; else return n+func(n-1); return 0;void main() coutfunc (5)endl;A)0B)10C)15D)16(22)(22)在C+语言中,数据封装要解决的问题是A)数据的规范化 B)便于数据转换 C)避免数据丢失 D)防止不同模块之间数据的非法访问(23)(24)(24)对类的构造函数和析构函数描述正确的是A)构造函数可以重载,析构函数不能重载 B)构造函数不能重载,析构函数可以重载 C)构造函数可以重载,析构函数也可以重载 D)构造函数不能重载,析构函数也不能重载(25)(25)下面程序的运行结果为#includeclass A int num;public: A(int i)num=i; A(A &a)num=a.num+; void print()coutnum;void main() A a (1),b(a); a.print(); b.print();A)11B)12C)21D)22(26)(26)下面对静态数据成员的描述中,正确的是 A)静态数据成员是类的所有对象共享的数据B)类的每个对象都有自己的静态数据成员C)类的不同对象有不同的静态数据成员值D)静态数据成员不能通过类的对象调用(27)(27)如果类A被说明成类B的友元,则A)类A的成员即类B的成员B)类B的成员即类A的成员C)类A的成员函数不得访问类B的成员D)类B不一定是类A的友元(28)(28)可以用p.a的形式访问派生类对象p的基类成员a,其中a是A)私有继承的公有成员B)公有继承的私有成员C)公有继承的保护成员D)公有继承的公有成员 (29)(29)建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为A)abcB)acbC)cabD)cba(30)(30)下面关于虚函数的描述,错误的是A)在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数C)虚函数可以是另一个类的友元函数,但不能是静态成员函数D)基类中说明的纯虚函数在其任何派生类中都必须实现 (31)(31)下面关于模板的描述,错误的是A)函数模板和类模板的参数可以是任意的数据类型B)类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用C)函数模板不能直接使用,需要实例化为模板函数后才能使用D)类模板的成员函数都是模板函数(32)(32)语句ofstream f(SALARY.DAT,ios:appios:binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B)若文件存在,将其置为空文件;若文件不存在,打开失败C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D)若文件存在,打开失败;若文件不存在,建立一个新文件(33)(33)下面程序的运行结果是 #include void main() int num=1; int &ref=num; ref=ref+2; cout num; num=num+3; cout refendl; A)13B)16C)36D)33(34)(34)下面程序的运行结果是 #includevoid fun(int *a,int *b) int x=*a; *a=*b; *b=x; cout*a*b ;void main() int x=1, y=2; fun(&x,&y); coutxyendl;A)1212B)1221C)2112D)2121(35)(35)下列程序的运行结果为#includeint i=0;class Apublic: A()i+;void main() A a,b3,*c; c=b; coutiendl;A)2B)3C)4D)5二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1) (1)数据结构分为逻辑结构与存储结构,线性链表属于 【1】 。(2) (2)在面向对象方法中,类之间共享属性和操作的机制称为 【2】 。(3) (3)耦合和内聚是评价模块独立性的两个主要标准,其中 【3】 反映了模块内各成分之间的联系。(4) (4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体项目主管与实体项目的联系属于 【4】 的联系。(5) (5)数据库设计分为以下6个设计阶段:需求分析阶段、 【5】 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(6) (6)开发一个C+语言程序的步骤通常包括编辑、 【6】 、链接、运行和调试。 (7) (7)假设int a=1,b=2;则表达式a+-b的值为 【7】 。 (8)(8)下面程序的输出结果为 【8】 。#includevoid main() int num=0,i=8; do i-; num+; while(-i); coutnumendl;(9) (9)通过使用new和delete两个运算符进行的分配为 【9】 存储分配。(10)(10)下面程序的运行结果为 【10】 。#include void fun(int x=0,int y=0) coutxnmn;选项B)中default语句可有可无;选项C)中if可以单独作为一条语句,不必须和else搭配。(15)A 解析: 选项A)中i自减到1时就会执行break语句跳出循环,选项B)中i0永远不会跳出循环,选项D)中未给出结束循环的条件。(16)D 解析: 本题考察的是break语句的使用,break可以结束switch语句和for循环语句,但是不能使用在条件判断语句内。(17)D 解析: 本题考察的是数组的基本使用,数组还可以通过对应的指针调用传递参数,其余选项的说法都是正确的。(18)B 解析: 本题考察的是指针的使用,p是指向int型的指针,若想给它指向的元素赋值,应使用*符号,直接赋值相当于改变了原来p存储的地址。(19)C 解析: new是动态申请内存空间时使用的关键字,不能作为函数的返回类型,选项A)为无返回值,选项B)为返回整型,选项D)为返回长整型。(20)D 解析: 所谓重载函数是指同一个函数名可以对应多个函数的实现,编译器会根据参数个数、参数类型和函数返回值类型不同而自动调用相应的函数。(21)D 解析: 本题考察的是递归函数的使用,题中递归函数的结束条件为n 解析: 本题考察的是使用对象和对象指针访问成员所使用的符号的不同,考生请注意它们的区别。(12)运行时 解析: 本题考察的是多态的概念,多态性主要是指发出同样的消息而被不同类型的对象接收时导致完全不同的行为,它一般分为编译时的多态性和运行时的多态性,比如函数重载和虚函数。(13)操作符个数 解析: 本题考察的是运算符重载的概念,用户重新定义的运算符不改变原运算符的优先性和结合性,也不改变运算符的语法结构,也就是说重载运算符不会产生新的运算符。(14)coutA; 解析: 本题
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!