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

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

1、国家二级( C+)笔试模拟试卷 123及答案与解析 1 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 数据的存储结构是指 ( )。 ( A)数据所占的存储空间 ( B)数据的逻辑结构在计算机中的存放形式 ( C)数据在计算机中的顺序存储方式 ( D)存储在计算机外存中的数据 3 有下列二叉树,对此二叉树前序遍历的结果为 ( )。( A) ACFHIBEDG ( B) ABCDEFGHI ( C) ABDEGCFHI ( D) ABCDEFHGI 4 下列描述中正确的是 ( )。

2、( A)程序就是软件 ( B)软件开发不受计算机系统的限制 ( C)软件既是逻辑实体,又是物理实体 ( D)软件是程序、数据和相关文档的集合 5 两个或两个以上模块之间联系的紧密程度称为 ( )。 ( A)耦合性 ( B)内聚性 ( C)复杂性 ( D)数据传输特性 6 数据库技术的根本目标是要解决数据的 ( )。 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 7 下列不属于 软件工程 3个要素的是 ( )。 ( A)工具 ( B)过程 ( C)方法 ( D)环境 8 关系数据库管理系统能实现的专门关系运算包括 ( )。 ( A)排序、索引、统计 ( B)选择、投影、

3、连接 ( C)关联、更新、排序 ( D)显示、打印、制表 9 将 E-R图转换到关系模式时,实体与实体间的联系可以表示成 ( )。 ( A)属性 ( B)关系 ( C)键 ( D)域 10 设计数据库的存储结构属于 ( )。 ( A)需求分析 ( B)概念设计 ( C)逻辑设计 ( D)物理设计 11 以 下叙述中正确的是 ( A)构成 C程序的基本单位是函数 ( B)可以在一个函数中定义另一个函数 ( C) main()函数必须放在其他函数之前 ( D)所有被调用的函数一定要在调用之前进行定义 12 以下选项中合法的实型常数是 ( A) 5E2.0 ( B) E-3 ( C) 2E0 ( D

4、) 1.3E 13 为了避免嵌套的 if.else语句的二义性, C+规定与 else配对的是 ( A)缩排位置相同的 if ( B)在其之前未配对时 if ( C)在其之前未配对的最近的 if ( D)同一行上的 if 14 若有以下宏定义: # define N 2 # define Y(n) (N+1)*n) 则执行语句 z 2*(N+Y(5);后的结果是 ( A)语句有错误 ( B) z=34 ( C) z 70 ( D) z无定值 15 在 “文件包含 ”预处理语句的使用形式中,当 #include后面的文件名用 ”括起时,寻找被包含文件的方式是 ( A)直接按系统设定的标准方式搜索

5、目录 ( B)先在源程序所在的目录搜索,再按系统设定的标准方式搜索 ( C)仅仅搜索源程序所在目录 ( D)仅仅搜索当前目录 16 假定其中的 x的单位是角度且不考虑 值的精度,则与数学公式 等价的 C+语言表达式是 ( A) sqrt(cos(x) ( B) sqrt(abs(cos(x* 3.14/180) ( C) sqrt(abs(cos(x*(/180) ( D) sqrt(fabs(cos(x* 3.14/180) 17 执行下面程序中的输出语句后, a的值是 main() int a; cout (a 3*5,a*4,a+5); ( A) 65 ( B) 20 ( C) 15 (

6、 D) 10 18 下列程序的运行结果是 main() int a 2,c=5; cout “a “ a “b=“ c endl ( A) a %2,b %5 ( B) a=2,b 5 ( C) a d,b d ( D) a %d,b=%d 19 下列程序的输出结果是 main() int x 1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; cout “a “ a “b “ bendl; ( A) a 2,b=1 ( B) a=1,b 1 ( C) a 1,b=0 ( D) a=2,b=2 20 以下循环体的执行次数是 m

7、ain() int i,j; for(i0,j=1;i j+1;i+=2,j-) cout i endl; ( A) 3 ( B) 2 ( C) 1 ( D) 0 21 有如下程序 main() int n 9; while(n 6) n-; cout n endl; 该程序段的辅出结果是 ( A) 987 ( B) 876 ( C) 8765 ( D) 9876 22 以下函数值的类型是 fun ( float x) float y; y 3*x-4; return y; ( A) int ( B)不确定 ( C) void ( D) float 23 以下程序的输出结果是 int a, b

8、; void fun() a100; b 200; main() int a=5, b=7; fun(); cout a b endl; ( A) 100200 ( B) 57 ( C) 200100 ( D) 75 24 设有如下说明 typedef struct int n;char c;double x;STD; 则有以下选项,能正确定义结构体数组并赋初值的语句是 ( A) STD tt2 1,A,62,2,B,75; ( B) STD tt2=“1,“A“,62,2,“B“,75; ( C) struc tt2 1,A,2,B; ( D) struct tt2= 1,“A“,62.5,

9、2,“B“,75.0; 25 有以下程序 main() union unsigned int n; unsigned char c; ul; u1.c A; cout u1.nendl; 执行后输出结果是 ( A)产生语法错 ( B)随机值 ( C) A ( D) 65 26 有以下程序 main() int i 1,j 1,k 2; if(j+|k+) 执行后输出结果是 ( A) 1,1,2 ( B) 2,2,1 ( C) 2,2,2 ( D) 2,2,3 27 有以下程序 main() int a 5,b=4,c=3,d=2; if(a b c) cout d endl; else if(

10、c-1 d) 1) cout d+1 endl; else cout d+2endl; 执行后输出结果是 ( A) 2 ( B) 3 ( C) 4 ( D)编译时有错,无结果 28 已知语句 int m 10;则下列引用的表示中正确的是 ( A) int ( B) int ( C) int ( D) float 29 若已定义 int a 1,2,3,4,5,6,7,8,9,10, *p a,i 5; 则对数组元素的不正确的引用是 ( A) ap-a ( B) * ( char a5,b; cin n a m b; 为了分别将 10和 20分别赋给 n和 m, look赋给 a, t赋给 b,

11、则正确的输入为 ( A) 10 “look“ 20 t CR ( B) 10 “look“ 10 ( C) 10 look 20 t ( D) 10 CR look20 CR t CR 33 对于以下带参数的 main()函数的第二形参, void main(int argc, _),不可能的形式是 ( A) char * argv ( B) char argv ( C) char * *a ( D) char * m 34 能保证对所有的参数能够结束的递归函数是 ( A) int f(int n) if(n 1) return 1; else return n*f(n+1); ( B) in

12、t f(int n) if(n 1) return 1; else return n*f(n-1); ( C) int f(int n) if(abs(n) 1) return 1; else relurn n* n/2); ( D) int f(int n) if(n 1) return 1; else return n*f(n*2); 35 执行完下列语句 int a,b, *c int * p 后 c指向 ( A) a ( B) b ( C) c ( D)无效地址 36 数据结构分为逻辑结构与存储结构,循环队列属于【 】。 37 在最坏情况下,冒泡 排序所需要的比较次数为【 】。 38

13、设一棵完全二叉树共有 839个结点,则在该二叉树中有【 】个叶子结点。 39 数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于【 】。 40 在关系模型中,把数据看成一个二维表,每一个二维表称为一个【 】。 41 假定要访问一个结构指针 p所指对象中的 b指针成员所指的对象,则表示方法为【 】。 42 设 px是指向一个类动态对象的指针变量,则执行 “delete px;“语句时,将自动调用该类的【 】。 43 若需要把一个函数 “void Func();“定义为一个类 Sample的友元函数,则应在类 Sample的定义中加入一条语句【 】。 44 类 class one 在声明

14、 func 成员函数时发生错误,出错原因是【 】。 Class one private: int a; public: void func(two class two private: int b; friend void one: :func(two ; void one: : func(two 45 下列程序从保存整数的文本文件 “c:Sample. dat“中依次取出每个数据并显示出来,同时统计并显示出所有数据的个数。程序划线处的表达式为【 】。 #include stream, h #include stdlib, h void main( ) ifstream fin (“c: Sa

15、mple. dat“ , ios: :nocreate); if( ! fin) cerr “文件无法打开 !“ end1; exit(1); int x,i=0; while(_) cout x “; i+; fin. close( ); cout endl “文件中所有整数个数 :“ i end1; 46 类中包含了一个静态成员函数,则 main函数中和 P. f1 (P); 语句具有同样功能的语句为【 】。 #include iostream. h class M public, M(int a) A=a; B+=a; static void f1(M m) private: int A

16、; static int B: void M: :f1(M m) cout “A=“ m. A endl; cout “B=“ m. B endl; int M: :B=10, void main( ) M P(5); P. f1(P); 47 main函数中发生 编译错误的语句是【 】。 # include iostream. h class A public: int a; const int b: A() :a(10) ,b(20) void fun() const cout “a=“ a “tb=“ b end1; ; void main( ) A obj1; const A * pt

17、r = new A: ptr = ptr- a=lO0; ptr- fun(), 48 下列程序中的重载函数 disp( )发生错误,错误原因是【 】。 # include iostream, h class Sample private: int m; static int sr; public: Sample(int a) m=a; st+=a; static void disp()cout m end1; static void disp(Sample input) cout input. m end1; ; int Sample: : st=2; void main() Sample

18、Eirst(2), Second(4) Sample: :disp( ); Sample: :disp (Second); 49 类 time可以输出 12小时或 24小时制的时间,现需要设计一个缺省构造函数,缺省值为 0时 0分 0秒。该缺省构造函数为【 】。 # include iostream. h class Time int h.m,s; public: Time(int hour=0 .int min=0 ,int sec=0) settime(hour,min,sec); void settime(int hour,int min,int sec) h=hour; m=min s

19、=sec; void show24() cout (h 1O?“0“:“) h “:“ (m 10?“0“:“) m “:“MM(s 10?“0“:“) s end1 void show12( ) int temp=(h=h=12)? 12:h%12; cout (temp 10?“0“:“) temp “:“ (m 10?“0“:“) m “:“ (s 10? “0“:“) s (temp 0 void main() Time t(15,43,21) t. show12(): t. show24() 50 在下列基类的定义中,有无 virtual修饰 use成员函数的结果将不同,其原因是【

20、】。 当 use()为虚拟函数时的程序执行结果: sizeof(A)=8 sizeof(B)=12 sizeof(C)=16 当 use()非虚拟函数时的程序执行结果: sizeof(A)=4 sizeof(B)=8 sizeof(C)=12 源程序如下: #include iostream. h class Grandad public: Grandad(): money(10) int money; virtual void use() , class Father: public Grandad public: Father( ), money(100) int money; void

21、use() ; class Son: public Father public: Son(): money(300) int money; void use() ; void main(void) Grandad A: Father B; Son C; cout “sizeof(A)=“ sizeof(A) end1; cout “sizeof(B)=“ sizeof(B) end1; cout “sizeof(C)=“ sizeof(C) end1 国家二级( C+)笔试模拟试卷 123答案与解析 1 【正确答案】 D 【试题解析】 一个算法的空间复杂度,一般是指执行这个算法所需的存储空间。

22、一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要 的额外空间。 2 【正确答案】 B 【试题解析】 数据的存储结构又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。 3 【正确答案】 C 【试题解析】 对二叉树的前序遍历是指,先访问根结点,然后访问左子树,最后访问右子树。并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。 4 【正确答案】 D 【试题解析】 软件是运行在计算机硬件之上的逻辑实体,包括程序、数据和相关的文档,软件的开发、运行对计算机 系统具有依赖

23、性,受计算机系统的限制。 5 【正确答案】 A 【试题解析】 耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。 6 【正确答案】 B 【试题解析】 在数据库系统中,需要对数据进行集中、统一的管理,以达到被多个应用程序共享的目标。 7 【正确答案】 D 【试题解析】 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理 。 8 【正确答案】 B 【试题解析】 关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。 9 【正确答案】

24、B 【试题解析】 将 E-R图转换成指定 RDBMS 中的关系模式是数据库逻辑设计的主要工作。从 E-R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。 10 【正确答案】 D 【试题解析】 物理设计阶段主要解决选择文件存储结构和确定文件存取方法的问题,包括选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。 11 【正确答案】 A 【试题解析】 构成 C语言的基本单位是函数,函数构成了程序;函数之间可以调用或被调用; main 函数在前的时候,其他函数需要在 main 函数前进行声明,以便于编译器为 main 函数所调用的子函数分配资源 12 【正确答案】 C 【试题解

25、析】 本题考查实型常数的指数表示法,可以肯定的是指数不能为小数即必须为整数,故排除 A由于符号 E 前面必须有数字,故 B 也是错误的。 D在指数符号后面没有数字,是错误的。答案为 C。 13 【正确答案】 C 【试题解析】 C+规定 else总是与之前未配对的最近的 if进行配对。这样可以避免二义性,也便于编译器分析。 14 【正确答案】 B 【试题解析】 本题考查宏定义的功能,可以把它看成一个函数,直接代入参数,可计算出结果为 34,故选 B。 15 【正确答案】 A 【试题解析】 本题考查在 include中采用不同的符号,如或 “,编译器搜索方式的不同。 16 【正确答案】 D 【试题

26、解析】 本题考查数学表达式的掌握,首先应转换为弧度,然后作为 COS函数的参数,求绝对值,最后是开方函数。考生需要掌握的是常用的数学函数。 17 【正确 答案】 B 【试题解析】 本题考查逗号表达式的运算特点。逗号表达式是所有表达式中优先级最低的,从左到右结合,其求解过程是:将逗号表达式各表达式按从左到右的顺序依次求值,并将最右边的表达式结果作为整个逗号表达式的结果。这里考生要注意的是,第二个表达式执行完后, n的值并没有发生变化,依然是 15,所以在执行 a+5的时候,结果是 20,而不是 65。有的考生可能误选 A。正确答案应是B。 18 【正确答案】 B 【试题解析】 本题非常简单,考查

27、 C+中基本的输出语句,注意不要与 C语言的输出控制字符混淆。 19 【正确答案】 A 【试题解析】 本题主要考查 switch 语句中, break 语句的作用。每个 case语句后面如果没有 break 语句,则程序的执行流程将发生变化,即顺序执行各个 case语句。这种情况一般不符合程序员的设计思路,但也可以用这种特性完成特殊控制。 20 【正确答案】 C 【试题解析】 本题考查考生对 for循环中三个表达式的执行顺序及使用方法。首先执行第一个表达式,然后根据第二个表达式判断是否成立,如果成立则执行循环体,然后执行第三个表达式,随后再去判断第二个表达式。根据这个 顺序,可以很容易的判断出

28、,循环体只执行了一次。 21 【正确答案】 B 【试题解析】 注意到 n-的运算顺序,知道第一次输出的应是 8,据此就可以很快排除 A和 D。然后判断循环几次结束,由于当 n=6时, while的条件判断已经不成立了,直接跳过循环体结束程序了。故当 n 9, 8, 7时执行了循环体,故答案为 B。 22 【正确答案】 A 【试题解析】 本题考查 C+当中函数的默认返回类型,这种类型与函数内部的局部变量的类型没有关系。如果不小心处理函数返回类型,可能造成数据丢失。本题答案为 A。 23 【正确答案】 B 【试题解析】 本题考查同名变量的作用域大小。考生应掌握,同名局部变量在函数内部将屏蔽全局同名

29、变量,因此, main 函数内部使用的局部变量 a和 b,即 5和 7,答案为 B。 24 【正确答案】 A 【试题解析】 本题考查结构体的基本知识。因为有了 typedef,故可以省略struct关键词而直接使用 STD名称。结构体数组中的元素在赋值时要求用大括号包含,故答案为 A。 25 【正确答案】 B 【试题解析】 本题考查联合这种特殊的数据结构的基本知识。联合的本质在于联合的成 员共事同一片连续的内存单元。本题中由于整型变量占两个字节,字符型变量占一个字节,而整型变量的一部分没有被赋值,故将输出随机值。本题答案为 B。 26 【正确答案】 C 【试题解析】 本题考查逻辑表达式及自增运

30、算符的联合使用。考生要注意本题里面隐藏的考点: 【试题解析】 注意 friend 关键词应加在函数的前面,表示该函数作为本类的 一个友元函数。 44 【正确答案】 class one前没有声明语句 class two; 【试题解析】 当一个类作为另一个类的成员函数、成员函数的参数或其他情况的时候,要确保编译器能正确解析。由于在 class one之前没有关于 class two的任何说明,而在 class one的 func函数中却用了 class two类的参数。因此是错误的。 45 【正确答案】 fin x 【试题解析】 while语句用于完成题目指定的功能,则 while的条件判断部分应

31、完成从文件读取字符的功能,并能够 判断出读入字符失败后的情况。 46 【正确答案】 M:f1(P); 【试题解析】 由于 f1是类 M的静态成员函数,即说明类 M的任何对象都共享一份 f1,因此,不仅可以从对象那里访问 f1,还可以用域操作符 :通过类名来访问。 47 【正确答案】 ptr- a=100; 【试题解析】 本题考察的是 const的使用。 const修饰的是指针变量的值,及指针本身是可变的,但指针所指对象的值是常量,即 ptr- a是不能被改变的。 48 【正确答案】 在静态成员函数的实现中不能直接引用类中说明的非 静态成员 49 【正确答案】 Time()h=0;m=0;s=0;) 50 【正确答案】 注意缺省构造函数为无参构造函数,且必须为私有数据成员赋初值。 【试题解析】 采用虚函数的每个派生类都含有一个指向虚函数表的指针,故多 4字节。

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

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

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