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

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

1、国家二级( C+)笔试模拟试卷 150及答案与解析 1 算法的空间复杂度是指 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)执行过程中所需要的存储空间 2 用链表表示线性表的优点是 ( A)便于随机存取 ( B)花费的存储空间较顺序存储少 ( C)便于插入和删除操作 ( D)数据元素的物理顺序与逻辑顺序相同 3 在数据结构中,与所使用的计算机无关的是数据的 ( A)存储结构 ( B)物理结构 ( C)逻辑结构 ( D)物理和存储结构 4 结构化程 序设计主要强调的是 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程

2、序易读性 5 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指 ( A)模块间的关系 ( B)系统结构部件转换成软件的过程描述 ( C)软件层次结构 ( D)软件开发过程 6 检查软件产品是否符合需求定义的过程称为 ( A)确认测试 ( B)集成测试 ( C)验证测试 ( D)验收测试 7 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符 不属于数据流图合法图符的是 ( A)控制流 ( B)加工 ( C)数据存储 ( D)源和潭 8 应用数据库的主要目的是 ( A)解决数据保密问题 ( B)解决数据完整性问题 ( C)解决数据共享问题

3、 ( D)解决数据量大的问题 9 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( A)需求分析阶段 ( B)逻辑设计阶段 ( C)概念设计阶段 ( D)物理设计阶段 10 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是 ( A)数据 库系统 ( B)文件系统 ( C)人工管 ( D)数据项管理 11 下面关于类和对象的描述中,错误的是 ( A)类就是 C语言中的结构体类型,对象就是 C语言中的结构体变量 ( B)类和对象之间的关系是抽象和具体的关系 ( C)对象是类的实例,一个对象必须属于一个已知的类 ( D)类是具有共同

4、行为的若干对象的统一描述体 12 以下各选项组中,均是 C语言关键字的组是 ( A) public operator this ( B) shod string static ( C) it while ( D) private cout printf 13 设 int a 10, b 11, c 12;,表达式 (a b) c while(1) i-; if(i 1) break; ( B) for(int i 1;i 10;i ) i-; ( C) int i 0; do i ; while(i 0) ; ( D) int i 1; for(;) i i 1; 16 下面关于 break语

5、句的描述中,不正确的是 ( A) break可以用于循环体内 ( B) break语句可以在 for循环语句中出现多次 ( C) break语句可以在 switch语句中出现多次 ( D) break语句可用于 if条件判断语句内 17 下面关于数组的描述错误的是 ( A)在 C语言 中数组的名字就是指向该数组第一个元素的指针 ( B)长度为 n的数组,下标的范围是 0 n 1 ( C)数组的大小必须在编译时确定 ( D)数组只能通过值参数和引用参数两种方式传递给函数 18 下面程序错误的语句是 #include iostream.h void main( ) int * p new int1

6、 ; p 9; cout * p endl; delete p; ( A) ( B) ( C) ( D) 19 下面的哪个选项不能作为函数的返回类型 ? ( A) void ( B) int ( C) new ( D) long 20 不能作为重载函数的调用的依据是 ( A)参数个数 ( B)参数类型 ( C)函数类型 ( D)函数名称 21 下列程序的输出结果为 #include iostream.h int func(int n) if(n 1) return 1; else retur n func(n 1) ; return 0; void main( ) cout func(5) e

7、ndl; ( A) 0 ( B) 10 ( C) 15 ( D) 16 22 在 C语言中,数据封装要解决的问题是 ( A)数据的规范化 ( B)便于数据转换 ( C)避免数据丢失 ( D)防止不同模块之间数据的非法访问 23 以下程序中,错误的行为 #include iostream.h class A public: int n 2; A(int val) cout val endl; A( ) ; ; void main( ) (11) A a (0) ; (12) ( A) ( B) ( C) ( D) 24 对类的构造函数和析构函数描述正确的是 ( A)构造函数可以重载,析构函数不能

8、重载 ( B)构造函数不能重载,析构函数可以重载 ( C)构造 函数可以重载,析构函数也可以重载 ( D)构造函数不能重载,析构函数也不能重载 25 下面程序的运行结果为 #include iostream.h class A int num; public: A(int) num i; A(A void print( ) cout num; ; void main( ) A a(1) ,b(a) ; a. print( ) ; b. print( ) ; ( A) 11 ( B) 12 ( C) 21 ( D) 22 26 下面对静态数据成员的描述中,正确的是 ( A)静态数据成员是类的所有

9、对象共享的数据 ( B)类的每个对象都有自己的静态数据成员 ( C)类的不同对象有不同的静态数据成员值 ( D)静态数据成员不能通过类的对象调用 27 如果类 A被说明成类 B的友元,则 ( A)类 A的成员即类 B的成员 ( B)类 B的成员即类 A的成员 ( C)类 A的成员函数不得访问类 B的成员 ( D)类 B不一定是类 A的友元 28 可以用 p a的形式访问派生类对象 p的基类成员 a,其中 a是 ( A)私有继承的公有成员 ( B)公有继承的私有成员 ( C)公有继承的保护成员 ( D)公有继承的公有成员 29 建立派生类对象时, 3种构造函数分别是 a(基类的构造函数 ) 、

10、b(成员对象的构造函数 ) 、 c(派生类的构造函数 ) ,这 3种构造函数的调用顺序为 ( A) abc ( B) acb ( C) cab ( D) cba 30 下面关于虚函数的描述,错误的是 ( A)在成员函数声明的前面加上 virtual修饰,就可把该函数声明为虚函数 ( B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数 ( C)虚函数可以是另一个类的友元函数,但不能是静态成员函数 ( D)基类中说明的纯虚函数在其任何派生类中都必须实现 31 下面关于模板的描述,错误的是 ( A)函数模板和类模板的参数可以是任意的数据类型 ( B)类模板不能直接使用,必须先实例化为相应

11、的模板类,然后定义了模板类的对象后才能使用 ( C)函数模板不能直接使用,需要实例化为模板函数后才能使用 ( D)类模板的成员函数都是模板函数 32 语句 ofstream f(“SALARY. DAT“, ios: :app | ios: :binary) ;的功能是建立流对象f,试图打开文件 SALARY.DAT并与之连接,并且 ( A)若文件存在,将文件写指针定位于文件尾 ;若文件不存在,建立一个新文件 ( B)若文件存在,将其置为空文件 ;若文件不存在,打开失败 ( C)若文件存在,将文件写指针定位于文件首 ;若文件不存在,建立一个新文件 ( D)若文件存在,打开失败 ;若文件不存在,

12、建立一个新文件 33 下面程序的运行结果是 #include iostream.h Void main( ) int num 1; int ref ref 2; cout num; num num 3; cout ref endl; ( A) 13 ( B) 16 ( C) 36 ( D) 33 34 下面程序的运行结果是 #include iostream.h void fun(int * a,int * b) int x * a; * a * b; * b X; cout * a * b “ “; void main( ) int x 1,y 2; fun( cout X y endl;

13、( A) 12 12 ( B) 12 21 ( C) 21 12 ( D) 21 21 35 下列程序的运行结果为 #include iostream.h int i 0; class A public: A( ) i ; ; void main( ) A a,b 3 , * c; c b; cout i endl; ( A) 2 ( B) 3 ( C) 4 ( D) 5 36 长度为 n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 _。 37 用树结构表示实体类型及实体间联系 的数据模型称为 _。 38 类是一个支持集成的抽象数据类型,而对

14、象是类的 _。 39 数据流图的类型有 _和事务型。 40 当数据的物理结构 (存储结构、存取方式等 )改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的 _。 41 逻辑表达式 x 3 ; class Derived:public Base public: void f(char*str)cout “Derived:“ str endl;) ; void main(void) Base*pd=new Base; pd=new Derived; pd- f(a); 47 下列程序的执行结果为 _。 #include iostream.h class Myclass pub

15、lic: void GetSum(int a); static int Sum; prtvate: int A; ; int Myclass:Sum=10;/必须在类外部对静态数据成员初始化 void Myclass:GetSum(int a) A=a; Sum+=A: vold PrintSum(Myclass void main( ) Myclass M,N; M.GetSum(3); N.GetSum(7); PrintSum(M); 48 下列程序的执行结果为 _。 #include iostream.h class Point public: Point(double i,doubl

16、e j)x=i;y=j; double Area( )constreturn 0.0; private: double x,y; ; class Rectangle:public Point public: Rectangle(double i,double J,double k,double 1); double Area( )const(return w*h; private: double w,h; ; Rectangle:Rectangle(double i,double j,double k,double 1):Point(i,j) w=k;h=l; void fun(Point v

17、oid main( ) Rectangle rec(3.0,5.2,15.0,25.0); fun(rec); 49 下列程序用于将源文件中的字母进行大小写转换, while的条件是 _。 #include iostream.h #include fstream.h #include iomanip.h void main( ) char ch; fstream filel,file2; char fnl10,fn210; cout “输入源文件名: “; cin fn1; cout “输入目标文件名: “; cin fn2; filel.open(fnl,ios:in); file2.ope

18、n(fn2,ios:out); while(_) if(ch =a file2.put(ch); filel.close( ); file2.close( ); 50 以下程序的执行结果是 _。 #inelude iostream.h class Sample public: int x; int y; void disp( ) cout “x=“ x “,y=“ y endl; ; void main( ) int Sample:*pc; Sample s; pc= s.*pc=10; pc= s.*pc=20; s.disp( ); 国家二级( C+)笔试模拟试卷 150答案与解析 1 【

19、正确答案】 D 【试题解析】 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量 ;算法的空间复杂度一般是指执行这个算法所需要的内存空间。 2 【正确答案】 C 【试题解析】 链式存储结构克服了顺序存储结构的缺点 :它的节点空间可以动态申请和释放 ;它的数据元素的逻辑次序靠节点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。 3 【正确答案】 C 【试题解析】 数据结构概念一般包括 3个方面的内容,数据的逻辑结构、存 储结构及数据上的运算集合。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,而不管它在计算机

20、中的存储表示形式。 4 【正确答案】 D 【试题解析】 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用 goto语句,总的来说可使程序结构良好、易读、易理解、易维护。 5 【正确答案】 B 【试题解析】 软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中结构设计是定义软件系统各主要部件之间的关系 ;数据设计是将分析时创建的模型转化为数据结构的定义 ;接口设计是描述 软件内部、软件和操作系统之间及软件与人之间如何通信 ;过程设计则是把系统结构部件转换成软件的过程描述。 6 【正确答案】 A 【试题解析】 确认测试的任务是验证软件的功能和性能,以及其他特性是否

21、满足需求规格说明中确定的各种需求 ;集成测试的主要目的是发现与接口有关的错误。 7 【正确答案】 A 【试题解析】 数据流图包括 4个方面,即加工 (转换 ) (输入数据经加工变换产生输出 ) 、数据流 (沿箭头方向传送数据的通道,一般在旁边标注数据流名 ) 、存储文件 (数据源 ) (表示处理过程中存放各种数据的 文件 ) 、源和潭 (表示系统和环境的接口,属系统之外的实体 ) 。不包括选项中的控制流。 8 【正确答案】 C 【试题解析】 数据库中的数据具有 “集成 ”与 “共享 ”的特点,亦即是数据库集中了各种应用的数据,进行统一构造与存储,而使它们可以被不同应用程序所使用,故选项 C)

22、正确。 9 【正确答案】 B 【试题解析】 E-R模型即实体 -联系模型,是将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们之间的两种连接关系。数据库逻辑设计阶段包括以下几个过程 :从 E-R图向关系模式转换,逻辑模式 规范化及调整、实现规范化和 RDBMS,以及关系视图设计。 10 【正确答案】 A 【试题解析】 人工管理阶段是在 20世纪 50年代中期以前出现的,数据不独立,完全依赖于程序 ;文件系统是数据库系统发展的初级阶段,数据独立性差 ;数据库系统具有高度的物理独立性和一定的逻辑独立性。 11 【正确答案】 A 【试题解析】 在 C语言中,类和结构体有本质区别,类中包含

23、数据及操作函数,而结构体只包含有数据。 12 【正确答案】 A 【试题解析】 关键字是系统已预定义的单词,在程序中有不同的用 途,考生应该熟记。 13 【正确答案】 B 【试题解析】 本题考查的是运算符的优先级,应该先计算 a b的值为 21,然后与 c比较大小的值为 0,根据 “选项 B) 中 default语句可有可无 ;选项 C) 中订可以单独作为一条语句,不是必须和 else搭配。 15 【正确答案】 A 【试题解析】 选项 A) 中 i自减到 1时就会执行 break语句跳出循环,选项 B) 中i 10永远成立不会跳出循环,选项 C) 中第一次进入循环体后 i 0永远不会跳出循环,选

24、项 D) 中未给出结束循环的条件。 16 【正确答案】 D 【试题解析】 本题考查的是 break语句的使用, break可以结束 switch语句和for循环语句,但是不能使用在条件判断语句内。 17 【正确答案】 D 【试题解析】 本题考查的是数组的基本使用,数组还可以通过对应的指针调用传递参数,其余选项的说法都是正确的。 18 【正确答案】 B 【试题解析】 本题考查的 是指针的使用, p是指向 int型的指针,若想给它指向的元素赋值,应使用。符号,直接赋值相当于改变了原来 p存储的地址。 19 【正确答案】 C 【试题解析】 new是动态申请内存空间时使用的关键字,不能作为函数的返回类

25、型,选项 A) 为无返回值,选项 B) 为返回整型,选项 D) 为返回长整型。 20 【正确答案】 D 【试题解析】 所谓重载函数是指同一个函数名可以对应多个函数的实现,编译器会根据参数个数、参数类型和函数返回值类型不同而自动调用相应的函数。 21 【正确答案】 D 【试题 解析】 本题考查的是递归函数的使用,题中递归函数的结束条件为 n1,递推公式为 f(n) n f(n 1) ,所以计算结果为 5 4 3 2 1 1,最后一个 1为 n 0时的返回值。 22 【正确答案】 D 【试题解析】 数据封装为了防止不同模块间数据的非法访问及修改。 23 【正确答案】 A 【试题解析】 C什语言中规

26、定在类体中不允许对所定义的数据成员进行初始化。 24 【正确答案】 A 【试题解析】 一个类中只能定义一个析构函数,否则会造成对同一对象的多次删除 ;而构造函数可以 根据不同的参数个数和类型进行多次重载。 25 【正确答案】 C 【试题解析】 本题考查考生对拷贝构造函数的掌握。因为运算是右结合的,所以在使用 a对 b赋值时, b的 hum变为 1,而 a的 num变为 2(先赋值再自加 ) 。 26 【正确答案】 A 【试题解析】 静态数据成员是类的所有对象中共享的成员,而不是某个对象的成员。 27 【正确答案】 D 【试题解析】 本题考查的是友元类的定义 :类 A为类 B的友元类,则类 A的

27、所有成员函数都是类 B的友元函数,但反之则不一定成立。 28 【正 确答案】 D 【试题解析】 只有公有继承的公有成员才能被派生类的对象直接访问,其他的情况都会因为访问权限问题产生错误。 29 【正确答案】 A 【试题解析】 本题考查的是在继承中派生类的对象调用构造函数的顺序,应该是先调用基类的构造函数,然后是成员中的对象对应类的构造函数,最后是派生类自己的构造函数。 30 【正确答案】 B 【试题解析】 基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派生类中给出具体的实现 ;静态成员函数不能进行动态联编,所以虚函数不能是 静态的。 31 【正确答案】 A 【试题解

28、析】 类模板不能被重载,而函数模板可以,它们不能被未知的数据类型替换。 32 【正确答案】 A 【试题解析】 本题考查的是文件流的操作, app表示以追加方式打开文件 (即将指针移至文件尾 ) , binary表示以二进制方式打开文件。 33 【正确答案】 C 【试题解析】 本题考查的是考生对引用的掌握, ref实际上就是变量 num的别名,所以 ref ref 2时, num已经变成了 3。 34 【正确答案】 D 【试题解析】 本题考查 的是指针和引用,函数 fun完成把 x和 y互换的操作。 35 【正确答案】 C 【试题解析】 外部变量 i实际上记录的是调用构造函数的次数。 36 【正

29、确答案】 n/2 【试题解析】 在线性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为 E=1/(n+1) (n-i+1)=n/2。 37 【正确答案】 层次模型 【试题解析】 用树结构表示实体类型及实体间联系的数据模型称为层次模型,用有向图结构表示实体类型及实体间联系的数据模型称为 网状模型,用二维表格结构表示实体及其联系的数据模型称为关系模型。 38 【正确答案】 实例 【试题解析】 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。 39 【正确答案】

30、变换型 【试题解析】 典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种 作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。 40 【正确答案】 物理独立性 【试题解析】 数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。 41 【正确答案】

31、x =3 | x =10 【试题解析】 x 3&x 10为 x大于 3小于 10(3 x 10), x取反则为 x3或x10。 42 【正确答案】 基类成员类对象成员非类对象成员 【试题解析】 在派生类的初始化过程中,最先初始化的是基类对象,然后是其他类的对象成员,包括自身类对象的引用或指针,或其他类的对象,最后在是非类对象成员。析构的时候则反之。 43 【正确答案】 Sample( ) 【试题解析】 尽管系统可以做很多默认的工作,但只是满足了逻辑上的最低要求,其实就是一些空的框架,虽然没有什么实际使用意义,但却可以满足编译器的最低要求。 44 【正确答案】 ios 【试题解析】 ios是所有

32、输入输出 类的根基类。同时要知道, C+内置了四个输入输出流对象,可以不用实例化就可以直接使用,如 cin, cout, cerr, clog等。 45 【正确答案】 const 【试题解析】 const在实际编程中用的比较多,在防止无意中对变量或对象的修改,往往用 const进行限定,从而可以借助 C+的强大类型检查功能来防止在程序中带入错误。 46 【正确答案】 Base:97 【试题解析】 本题主要考察两个知识点,一是基类指针可以指向派生类对象,并可以访问派生类的所有成员。二是在函数重载中进行隐式类型 转换。如 pd-f(a);系统到底调用哪个重载函数呢 ?实参既不是派生类中的形参,也不

33、是基类中f函数的形参类型。此时系统根据就近原则和从高优先级到低优先级的规则尝试隐式转换。单字符更接近整数,故调用的是基类的 f函数。 47 【正确答案】 sum=20 【试题解析】 本题考察静态数据成员在同类的不同对象间的数据传递功能。 Sum为所有对象的公共数据, M对象和 N对象分别对 sum进行累加,故结果为 20。 48 【正确答案】 0 【试题解析】 注意本题不同于基类的指针指向派生类对象。 Fun函数的 形参是Point基类的引用。本题调用的是 Point类对象的面积函数,其值永远为 0。 49 【正确答案】 14 (ch=file1.get( )!=eof 【试题解析】 需要填空的内容是判断文件是否达到结尾,可以使用流输入的 get函数获得当前字符,然后判断该字符是否是 eof即可。 50 【正确答案】 x=10,y=20 【试题解析】 本题比较特殊,考察域作用符的使用规则。其实际含义是:指针先指向 x,然后指向 y,并利用该指针分别为 x和 y赋值。在使用过程中进行了作用域的限定。

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

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

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