[计算机类试卷]国家二级(C++)笔试模拟试卷159及答案与解析.doc

上传人:progressking105 文档编号:502615 上传时间:2018-11-29 格式:DOC 页数:21 大小:62KB
下载 相关 举报
[计算机类试卷]国家二级(C++)笔试模拟试卷159及答案与解析.doc_第1页
第1页 / 共21页
[计算机类试卷]国家二级(C++)笔试模拟试卷159及答案与解析.doc_第2页
第2页 / 共21页
[计算机类试卷]国家二级(C++)笔试模拟试卷159及答案与解析.doc_第3页
第3页 / 共21页
[计算机类试卷]国家二级(C++)笔试模拟试卷159及答案与解析.doc_第4页
第4页 / 共21页
[计算机类试卷]国家二级(C++)笔试模拟试卷159及答案与解析.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、国家二级( C+)笔试模拟试卷 159及答案与解析 1 下面各项中不属于软件生存期中开发阶段的是 ( A)需求分析 ( B)程序设计 ( C)概要设计 ( D)软件测试 2 下面描述中属于软件测试目的的是 ( A)改正程序中的错误 ( B)发现程序中的错误 ( C)表明程序没有错误 ( D)验证程序的可靠性 3 下述各描述中不属于白盒测试法概念的是 ( A)至少执行一次模块中的所有独立路径 ( B)执行边界条件下的所有循环 ( C)所有判断的每一分支至少执行一次 ( D)执行边界条件下的所有接口 4 下列叙述中错误的是 ( A)软件不是自然界的有形物体,是一种逻辑实体 ( B)软件是程序、数据

2、及相关文档的集合 ( C)软件在运行、使用期间不存在磨损、老化问题 ( D)软件的运行仅对计算机硬件具有依赖性 5 与所使用的计算机无关的是数据的 ( A)物理结构 ( B)逻辑结构 ( C)存储结构 ( D)逻辑和物理结构 6 将 6个数据进行冒泡排序,在最坏情况下需要比较的次数是 ( A) 15 ( B) 5 ( C) 6 ( D) 30 7 设有如图所示的二叉树 则对该二叉树中序遍历的结果是 ( A) FCADBEG ( B) ACBDFGE ( C) ABDCGEF ( D) ACBDFEG 8 下列说法正确的是 ( A)一个关系可以有多个候选键 (码 ) ( B)一个关系只有一个候选

3、键 (码 ) ( C)一个关系所有属性是候选键 (码 ) ( D)一个关系所有属性都不是候选键 (码 ) 9 用树形结构来表示实体之间联系的模型称为 ( A)关系模型 ( B)层次模型 ( C)网状模型 ( D)数据模型 10 一个人有一个身份证号码,一个身份证号码对应一个人。实体 “人 ”和实体 “身份证号码 ”存在的联系是 ( A)一 对一 ( B)一对多 ( C)多对多 ( D)无定义 11 以下选项中,与 k=n+完全等价的表达式是 ( A) k=n,n=n+1 ( B) n=n+1,k=n ( C) k=+n ( D) k+=n+1 12 已知 char a;int b;float

4、c;double d;则表达式 a*b+c-d结果为 ( A) double ( B) int ( C) float ( D) char 13 假定有下列变量定义: int k=7,x=12; 则能使值为 0的表达式是 ( A) x*=k-k%5 ( B) x*=(k-k%5) ( C) x%=(k-=5) ( D) (x-=k)-(k+=5) 14 下面关于 for循环的正确描述是 ( A) for循环只能用于循环次数已经确定的情况 ( B) for循环是先执行循环体语句,后判断表达式 ( C)在 for循环中,不能用 break语句跳出循环体 ( D) for循环的循环体语句中,可以包含多

5、条语句,但必须用花括号括起来 15 在 int a=3,int*p=中, P的值是 ( A)变量 a的地址值 ( B)无意义 ( C)变量 P的地址值 ( D) 3 16 对 于 int a37;下列表示中错误的是 ( A) *(*a+3) ( B) *(a+1)5 ( C) *(*(a+1) ( D) *( c=(a-=a-5,a=b,b+3); cout a “,“ b “,“ c endl; 其输出结果是 ( A) 3,0,-10 ( B) 0,0,3 ( C) -10,3,-10 ( D) 3,0,3 19 下面的程序的结果是 main( ) int x=3,y=0, z=0; if(

6、x=y+z)cout “* * * *“; else cout “#“; ( A)有语法错误不能通过编译 ( B)输出 * ( C)可以通过编译,但是不能通过连接,因而不能运行 ( D)输出 # 20 下面程序的输出是 main( ) int x=100,a=10,b=20,ok1=5,ok2=0; if(a B) if(b!=15) if(!okl) x=1; else if(ok2)x=10; x=-1; cout x endl; ( A) -1 ( B) 0 ( C) 1 ( D)不确定的值 21 设有以下程序段: int a5=0,*p,*q; p=a; q=a; 则下列选项目,合法的

7、运算是 ( A) p+q; ( B) p-q ( C) p*q ( D) p%q 22 有以下程序 int*f(int*x,int*y) if(*x *y) return x; else return y; main( ) int a=7,b=8,*p,*q,*r; p=q= r=f(p,q); cout *p “,“ *q “,“ *r endl; 执行后输出结果是 ( A) 7,8,8 ( B) 7,8,7 ( C) 8,7,7 ( D) 8,7,8 23 设有定义: class C public: int value; ; int x,*p; 则以下引用形式中,正确的是 ( A) x=v

8、alue; ( B) x=C:value; ( C) p=A*const ptr=new A;则下列语句正确的是 A)ptr- a=100; ( A) ptr= ( B) ptr+; ( C) ptr=obj2; ( D) A 32 下面的描述中错误的是 ( A)调用函数时,实参可以是表达式 ( B)调用函数时,实参与形参可以共用内存单元 ( C)调用函数时,将为形参分配内存单元 ( D)调用函数时,实参与形参的类型必须一致 33 下列有关类和对象的叙述不正确的是 ( A)任何一个对象都归属于一个具体的类 ( B)类与对象的关系和数据类型与变量的关系相似 ( C)类的数据成员不允许是另一个类的

9、对象 ( D)一个类可以被实例化成多个对象 34 下列关于抽象类的叙述不正确的是 ( A)含有纯虚函数的类称作抽象类 ( B)抽象类只能是基类 ( C)抽象类不能被实例化 ( D)纯虚函数可以被继承 35 在表达式 x-y中, “-“是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符 “-“,这个表达式还可以表示为 ( A) x.operator-(y) ( B) operatot-(y,x) ( C) y.operator-(x) ( D) operator-(x,y) 36 在深度为 5的完全二叉树中,叶子结点的个数最多为 _。 37 在一个容量为 25的循环队列 中,若

10、头指针 front=15,尾指针 rear=6,则该循环队列中共有 _个元素。 38 符合结构化原则的三种基本控制结构为:顺序结构,选择结构和 _。 39 在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为_。 40 数据库管理最本质的特点是实现数据的共享。为了实现数据的共享,保证数据的独立性、完整性和安全性,需要有一组软件来管理数据库中的数据,处理用户对数据库的访问,这组软件称为 _。 41 C语言中关键字运算符有 new、 delete和 _。 42 将以下程序写成三日运算表达式是 _。 if(a b) max a; else max b; 43 以下程序的输出结果是 _。

11、 #include iostream.h class object private: int val; public: object( ) ; object(int i) ; object( ) ; object: :object( ) val 0; cout “Default constructor for object“ endl; object: :object(int i) val i; cout “Constructor for object“ val endl; object: : object( ) cout “Destructor for object“ val endl; c

12、lass container private: object one; object two; int data; public: container( ) ; container(int i,int j,int k) ; container( ) ; container: :container( ) data 0; cout “Default constructor for container“ endl; container: :container(int i,int j,int k) :two(i) ,one(j) data k; cout “Constructor for contai

13、ner“ endl; container: : container( ) cout “Destructor for container“ endl; void main( ) container anObj(5,6,10) ; 44 请定义一个函数名为 A,返回值为 int,没有参数的纯虚函数的定义是 _。 45 表达式 x. operator (y. operator (0) ) 还可以写成 _。 46 假设 fin是一个文件流对象,则关闭文件的语句是 _。 国家二级( C+)笔试模拟试卷 159答案与解析 1 【正确答案】 A 【试题解析】 在软件开发阶段中,包括系统设计 (也称概要设计

14、)、详细设计、编码和测试。系统设计的任务是划分出构成系统的各物理元素 (如程序、文件、数据库、人工过程与文档等 )以及设计出软件的结构 (如确定模块及模块间的关系 )。详细设计的任务是对系统作出精确的描述,以便在编码阶段可直接将这一描述用程序设计语言编制成程序。除了应该保证程序的可靠性外,此阶段最重要的目标是要保证将来的程序易读、易理解、易测试、易修改和易维护。因此,结构程序设计技术就成为实现上述目标的基本保证,并且也是详细设 计的逻辑基础。编码是将系统设计与详细设计阶段中的结果翻译成用某种程序设计语言书写的程序。由上所述,需求分析不属于开发阶段的任务。 2 【正确答案】 B 【试题解析】 软

15、件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷。有人将测试的挑剔性总结为以下三点: 测试是程序执行的过程,目的在于发现错误; 一个好的测试在于能发现至今未发现的错误; 一个成功的测试是发现了至今未 发现的错误。由于测试的这一特征,一般应当避免由开发者测试自己的程序。测试只能说明程序有错,而不能证明程序无错,希望通过有限次的测试就能发现程序中的所有错误是不可能的,即完全测试是不可能的。由此可知,选项 A、 C、 D都不属于软件测试目的。 3 【正确答案】 D

16、【试题解析】 白箱测试用例的设计准则有:语句覆盖,分支覆盖,条件覆盖和组合条件覆盖。语句覆盖准则是企图用足够多的测试用例,使程序中的每个语句都执行一遍,以便尽可能多地发现程序中的错误。分支覆盖准则也称为判定覆盖准则。它要求通过足够多的测试用例, 使程序中的每个分支至少通过一次。条件覆盖准则是通过执行足够多的测试用例,使每个判定中的每个条件都能取到两种不同的结果 (“真 ”与 “假 ”)。组合条件覆盖准则要求通过足够多的测试用例,使每个判定中各条件的各种可能组合至少出现一次。由此可知,选项 D不属于白盒测试法概念。 4 【正确答案】 D 【试题解析】 软件的运行不仅对计算机硬件具有依赖性,如果是

17、应用软件,还依赖于操作系统等系统软件。因此,选项 D是错误的,而其他三个选项是正确的。 5 【正确答案】 B 【试题解析】 数据的存储结构 (即物理结构 )是逻辑结构在计算机中的表示,因此,数据的存储结构 (即物理结构 )与所使用的计算机无关。而数据的逻辑结构与计算机无关,是客观存在的。 6 【正确答案】 A 【试题解析】 对长度为 n的线性表进行冒泡排序,在最坏情况下需要 n(n-1)/2次比较,现线性表的长度为 6,在最坏情况下需要比较的次数为 6(6-1)/2=15。 7 【正确答案】 D 【试题解析】 按照二叉树中序遍历的方法:在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子

18、树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树 时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。对本题中的二叉树进行中序遍历的结果应是 ACBDFEG。 8 【正确答案】 A 【试题解析】 一个关系可以有多个候选键 (码 ),但不能所有属性都是或都不是候选键 (码 )。 9 【正确答案】 B 【试题解析】 用树形结构来表示实体之间联系的模型称为层次模型。 10 【正确答案】 A 【试题解析】 一个人有一个身份证号码,一个身份证号码对应一个人。则实体“人 ”和实体 “身份证号码 ”之间存在一对一联系。 11 【正确答案】 A 【试题解析】 本题考察自增运算符和赋值运算符的运算顺

19、序。对于 n+,表达式的值为 n, n值为 n+1;对 +n来说,表达式和 n值均为 n+1。 12 【正确答案】 A 【试题解析】 本题考察混合运算表达式类型,由表达式中具有最高优先级的类型所确定,所以答案为 A。 13 【正确答案】 C 【试题解析】 A项: x=x*(7-7%5),x=7*5,x=35; B项: x=x*(7-7%5),x=35; D项: (x=x-k)-(k=k+5),5-12,-7; C项: x=x%(k=k-5),x-12%2,x=0。 故正确答案为 C项。 14 【正确答案】 D 【试题解析】 for循环作为 C语言中的一种重要的控制结构之一。 15 【正确答案】

20、 A 【试题解析】 本题实际是考察指针的含义。指针代表的是变量或函数等在内存的地址。 16 【正确答案】 B 【试题解析】 本题考察指针和数组的关系。其根本的联系在于数组名表示该数组的首地址,等同于指针,因此用数组名进行指针运算是正确的,并能够进行与整数的加减操作。考生要注意的是 *的运算优 先级和 的运算优先级的大小问题。本题正确答案为 B。 17 【正确答案】 D 【试题解析】 二维数组可以看作是一维数组的扩展。选项 D表示的是一个一维数组,里面每个元素是一个指针,而指针肯定指向某个地址,从而完成二维数组的扩展。考生要注意选项 C中 *和 的运算优先级。 18 【正确答案】 B 【试题解析

21、】 本题考察逗号表达式的使用规则。逗号表达式的求值步骤为:从左向右依次计算表达式的值,将最后一个表达式的值作为整个逗号表达式的值,本题中 C最后结果为 b+3的值即 3,a,b的值均不变为 0,故正 确答案为 B项。 19 【正确答案】 D 【试题解析】 注意本题本意是考察 x=y+z,但是少写了一个 =,因此逻辑表达式变成了赋值语句,故 x的值为 0,即假,因此程序执行 else部分。本题答案为 D。 20 【正确答案】 A 【试题解析】 本题考察 if语句的嵌套, else总是与最近的那个 if配对,只要考生按照逻辑表达式的值进行细心判断就可以得到正确的答案。考生需要注意的是,在 C+语言

22、中, 0表示假,非 0即为真,因此可以用数字作为逻辑判断的依据。 21 【正确答案】 B 【试题解析】 本题考核指针的运算。 C+语言中,指向同一字符串的指针之间可以,也只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。 22 【正确答案】 B 【试题解析】 value作为类的数据成员在引用时可以通过对象来引用,也可以通过域操作符引入类名来限定。因此选项 A和 C可以排除,由于选项 D中 p是指针,它对指针变量的赋值方式是错误的。 23 【正确答案】 A 【试题解析】 类中默认的类型是私有类型,除非特别指定为公有或保护类型。同时,并没有强制要求成员函数和数据成员的排列顺序,如

23、果类 的成员函数在类定义体内部定义,则为内联函数,一般类的成员函数都在类定义体的外部实现。 24 【正确答案】 A 【试题解析】 类中默认的类型是私有类型,除非特别指定为公有或保护类型。同时,并没有强制要求成员函数和数据成员的排列顺序,如果类的成员函数在类定义体内部定义,则为内联函数,一般类的成员函数都在类定义体的外部实现。 25 【正确答案】 D 【试题解析】 继承方式不同,派生类能够访问的基类的成员数量也不同。继承方式有三种:公有继承,私有继承和保护继承,每种继承方式结合成员函数的类型可以 组合成不同的访问级别,从而提供了灵活多样的派生类访问基类的权限。 26 【正确答案】 B 【试题解析

24、】 静态成员函数不能直接访问非静态数据成员。静态成员只有一份,供同一类的不同对象共享。友元函数对类的访问是完全开放的,从而增加了访问类的灵活性,但却破坏了类的封装性。 27 【正确答案】 D 【试题解析】 静态函数作为一种共享成份,过量使用或不当使用都可能造成程序间和对象间使用的混乱。而派生类,抽象类和虚函数则是构成了类层次和多态性的基础,是 C+中面向对象思想的重要实现方式。 28 【正确答案】 B 【试题解析】 本题考察的是流操作中的文件打开方式, in, out和 app分别表示读,写和追加。 29 【正确答案】 A 【试题解析】 析构函数不能有参数,是唯一的,没有返回类型,其主要工作就

25、是完成对象销毁前的资源回收等工作。 30 【正确答案】 B 【试题解析】 继承具有传递性,从而在类的层次结构中才表现出丰富多彩的特性,呈现出动态性。 31 【正确答案】 本题主要考察 const的使用, const根据其位置的不同修饰不同的成份,从而表现出灵活的特性,考生容易混淆 。此处 const修饰的是指针,即指针本身不能改变,故选项 B、 C和 D都是错误的。但是指针指向的地址里面的值确实可以改变的,因此选项 A是正确答案。 32 【正确答案】 B 【试题解析】 函数调用时,如果实参是表达式,则表达式的结果传入形参。形参和实参之间进行数据的拷贝,当然需要为形参临时分配内存单元,函数调用完

26、成之后,形参分配的单元被系统收回。因此选项 B为正确答案。 33 【正确答案】 C 【试题解析】 对象是类的实例,类的成员可以是其他类的对象。那么在该类实例化的时候,必须保证其他类的对象 已经生成,否则将会出现错误。 34 【正确答案】 B 【试题解析】 抽象类是指包含纯虚函数的类,基类和派生类都可以是抽象类,给其他派生类提供参考,由于含纯虚函数,故抽象类不能实例化。 35 【正确答案】 D 【试题解析】 本题考核运算符 l的重载。运算符函数有两种调用形式。第一种是像一般函数那样用函数名进行调用,如 c1.operator+(c2)或 operator+(c1,c2)。第二种是通过运算符构成表

27、达式的形式进行调用,如 c1+c2。所以选项 D的标书是正确的。 36 【正确答案】 16 【试题解析】 在深度为 5的完全二叉树中,就属深度为 5的满二叉树中的叶子结点的个数最多,这些叶子结点均在最后一层 (即第 5层 )上。又根据二叉树的性质1:在二叉树的第 k层上,最多有 2k-1(k1)个结点。因此,在第 5层上最多的结点数为 25-1=16。 37 【正确答案】 16 【试题解析】 设循环队列的容量为 m。 如果 rear front,则循环队列中的元素个数为 rear-front; 如果 rear front,则循环队列中的元素个数为 m+(rear-front)。 在本题 中,

28、front=15, rear=6,即 rear front,因此,循环队列中的元素个数为 m+(rear-front)=25+(6-15)=16。 38 【正确答案】 循环结构 (或重复结构 ) 【试题解析】 符合结构化原则的三种基本控制结构为:顺序结构、选择结构和循环结构 (或重复结构 )。 39 【正确答案】 数据字典 【试题解析】 在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为数据字典。 40 【正确答案】 数据库管理系统 (DBMS) 【试题解析】 数据库管理 最本质的特点是实现数据的共享。为了实现数据的共享,保证数据的独立性、完整性和安全性,需要有一组软件来管理数

29、据库中的数据,处理用户对数据库的访问,这组软件就是数据库管理系统 (DBMS)。 41 【正确答案】 sizeof 【试题解析】 C语言中关键字运算符有 3个,分别为 new、 delete和 sizeof。new是申请内存, delete是释放内存, sizeof是求字节数。 42 【正确答案】 max (a b) ?a: b; 【试题解析】 条件运算符要求有 3个操作对象 ;称三目 (元 ) 运算符,它是 C语言中唯一的一个三日运算符。条件表达式的一般形式为 :表达式 1?表达式 2:表达式 3。所以我们可以写成 (a b) ?a: b,它是一个 “条件表达式 ”。执行顺序是如果 (a b

30、) 条件为真,则条件表达式取值 a作为整个表达式的值,否则取值 b作为整个表达式的值。 43 【正确答案】 Constructor for object6 Constructor for object5 Constructor for container Destructor for container Destructor for object5 Destructor for object6 【试题解析】 C语言中的构造函数和析构函数分别是在声明对象时和对象调用完毕后调用,本题中的调用就是这样成对出现的。 44 【正确答案】 virtual int A( ) 0; 【试题解析】 C语言中的纯虚函数是一种特殊的函数,它没有自己的定义,只有声明,纯虚函数与虚函数声明的不同就在于在函数后面加上了 “ 0”。 45 【正确答案】 x y或 x (y ) 【 试题解析】 因为卜 operator (0) 是对成员 y重载运算符,所以是成员重载,在参数表中又有一个参数,是重载后缀,即 x (y ) 。 46 【正确答案】 fin 【试题解析】 如果程序没有用 close( ) 主动关闭文件,则在文件流对象退出作用域时,被调用的析构函数会关闭对象所联系的文件。但应及时关闭,以便尽早释放占用的系统资源并将文件置于更安全的状态。

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

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1