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

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

1、国家二级( C+)笔试模拟试卷 6及答案与解析 1 下列叙述中正确的是 ( )。 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)上述三种说法都不对 2 以下数据结构中不属于线性结构的是 ( )。 ( A)队列 ( B)线性表 ( C)二叉树 ( D)栈 3 在任意一棵二叉树中,度为 0的结点总是比度为 2的结点多 ( )。 ( A) 1个 ( B) 2个 ( C) 3个 ( D) 4个 4 在结构化方法中,用数据流程图 (DFC) 作为描述工具的软件开发阶段是 ( )。

2、 ( A)可行性分析 ( B)需求分析 ( C)详细设计 ( D)程序编码 5 设有两个串 p和 q,求 q在 p中首次出现位置的运算称作 ( )。 ( A)连接 ( B)模式匹配 ( C)求子串 ( D)求串长 6 在软件开发中,下面任务不属于设计阶段的是 ( )。 ( A)数据结构设计 ( B)给出系统模块结构 ( C)定义模块算法 ( D)定义需求并建立系统模型 7 下列叙述中正确的是 ( )。 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程牛需要应用工程化原则 ( D)软件工程只是解决软件开发中的

3、技术问题 8 下列对于软件测试的描述,正确的是 ( )。 ( A)软件测试的目的是证明程序是否正确 ( B)软件测试的目的是使程序运行结果正确 ( C)软件测试的目的是尽可能多地发现程序中的错误 ( D)软件测试的目的是使程序符合结构化原则 9 希尔排序法属于 ( )。 ( A)交换类排 序法 ( B)插入类排序法 ( C)选择类排序法 ( D)建堆排序法 10 设一棵完全二叉树共有 699个节点,则在该二叉树中的叶子节点数为 ( )。 ( A) 349 ( B) 350 ( C) 255 ( D) 351 11 C+源程序的扩展名为 ( )。 ( A) .CPP ( B) .C ( C) .

4、EXE ( D) .DLL 12 下列字符常量的写法中,错误的是 ( )。 ( A) 105 ( B) * ( C) 4f ( D) a 13 下列 C+运算符中,优先级最高的 是 ( )。 ( A) +(双目 ) ( B) *(单目 ) ( C) = ( D) *= 14 下列选项中属于 C+语句的是 ( )。 ( A); ( B) a=17 ( C) i+5 ( D) cout n 15 下面程序段的输出结果是 ( )。 int x=5; do cout -x; while(!x); ( A) 43210 ( B) 5 ( C) 4 ( D)无任何输出 16 下列语句段输出字符 *的个数为

5、 ( )。 int i=100; while(1) i-; if(i=0) break; cout *; ( A) 101个 ( B) 100个 ( C) 99个 ( D) 98个 17 下面对二维数组 s的初始化语句,正确的是 ( )。 ( A) int a23=1,2,3,4,5,6 ( B) int a23=1,2,3,4,5,6; ( C) int a2=1,2,3,4,5,6; ( D) int a=1,2,3,4,5,6; 18 以下定义: int(*p)4中,标识符 p是 ( )。 ( A)一个指向整型变量的指针 ( B)一个指针数组名 ( C)一个指针,它指向一个含有 4个整型

6、元素的一维数组 ( D)说明不合法 19 有以下程序,其输出结果是 ( )。 #include iostream using namespace std; int main() char a10=1,2,3,4,5,6,7,8,9,0,*p; int i=8; p=a+i; cout p-3 endl; return 0; ( A) 6789 ( B) 6 ( C) 789 ( D) 6 20 变量定义如下; int *p; 则下列不同于 *p=*p+1; 的是 ( )。 ( A) *p+; ( B) + *p; ( C) *p+=1; ( D) +( *p); 21 在函数定义前加上关键字

7、inline,表示该函数被定义为 ( )。 ( A)重载函数 ( B)内联函数 ( C)普通函数 ( D)构造函数 22 下列函数原型声明中错误的是 ( )。 ( A) void fuc(int x=0,int y=0) ( B) void fnc(int x,int y) ( C) void fuc(int x,int y=0) ( D) void fuc(int x=0,int y) 23 为了使类中的成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为 ( )。 ( A) public ( B) protected ( C) static ( D) private 24

8、下列有关析构函数的说法错误的是 ( )。 ( A)一个类中析构函数有且仅有一个 ( B)析构函数的作用是在对象被撤销时收回先前分配的内存空间 ( C)析构函数和构造函数一样可以有形参 ( D)析构函数无任何函数类型 25 下面对静态数据成员的描述中,正确的是 ( )。 ( A)静态数据成员可以在类体内进行初始化 ( B)静态数据成员不可以被类的对象调用 ( C)静态数据成员可以直接用类名调用 ( D)静态数据成员不能受 protected控制符的作用 26 类 MyClas定义如下: Class MyClas public: MyClas()value=0; setVariable(int i

9、)value=I; private: int value; 则以下对语句序列 MyClas *p,my;p= 的描述正确的是 ( )。 ( A)语句 p- setVariable(5) 与语句 my.setVariable(5) 等价 ( B)对语句 *p.setVariable(5)的调用是正确的 ( C)语句 MyClas *p,my; 会调用两次类 MyClas的构造函数 ( D)语句 p= 是把对象 my赋值给指针变量 p 27 下列关键字中,用来说明虚函数的是 ( )。 ( A) public ( B) protected ( C) private ( D) virtual 28 如

10、果一个类至少有一个纯虚函数,那么该类称为 ( )。 ( A)抽象类 ( B)虚基类 ( C)派生类 ( D)以上都不是 29 已知类 MyClas有一个只需要一个 double型参数的构造函数,其将运算符 “+”重载为友元函数。要使语句序列 MyClas x(1.2),y(2.3),z(0);z=x+y; 能够正常运行,运算符函数 operator+应在类中声明为 ( )。 ( A) friend MyClas operator+(int,MyClas ( B) friend MyClas operator+(MyClas,MyClas); ( C) friend MyClas operato

11、r+(MyClas,MyClas ( D) friend MyClas operator+(MyClas 30 C+本身没有定义 I/O操作,但 I/O操作包含在 C+实现中。 C+标准库iostream提供了基本的 I/O类,它包括类 iostream和 ( )。 ( A) fstream ( B) ostream ( C) iostream ( D) cin 31 下列打开文件的表达式中,错误的是 ( )。 ( A) ofstream ofile;ofile.open(“C:vca.txt“,ios:binary); ( B) fstream iofile;iofile.open(“a.t

12、xt“,ios:ate); ( C) ifstream ifile(“C:vca.txt“); ( D) cout.open(“C:vcs.txt“,ios:binary); 32 凡是函数中未指定存储类别的局部变量,其隐含的存储类型是 ( )。 ( A) auto ( B) static ( C) regiser ( D) extern 33 决定 C+语言中函数的返回值 类型的是 ( )。 ( A) return语句中的表达式类型 ( B)调用该函数时系统随机产生的类型 ( C)调用该函数时的主调用函数类型 ( D)在定义该函数时所指定的数据类型 34 有以下结构体说明和变量的定义,且指针

13、 p指向变量 a,指针 q指向变量 b,则不能把节点 b连接到节点 a之后的语句是 ( )。 struct node char data; struct node *next; a,b, *p= ( A) a.next=q; ( B) p.next= ( C) p- next= 35 设有数组定义 :char array=“China“;,则数组 array所占的空间为 ( )。 ( A) 6字节 ( B) 5字节 ( C) 4字节 ( D) 7字节 36 测试的目的是暴露错误,评价程序的可靠性;而发现错误的位置并改正错误的是【 】。 37 通常,将软件产品从提出、实现、使用维护到停止使用退役

14、的过程称为【 】。 38 在算法正确的前提下,评价一个算法的两个标准是【 】。 39 在长度为 n 的有序线性表中进行二分查找,最坏的情况下需要的比较次数为【 】。 40 需求分析的步骤是需求获取、需求描述、需求验证和【 】。 41 执行语句: int result=100; cout (result = 60)结果是【 】。 42 对于嵌套的 ifelse 语句, C+语法规定 else总是与【 】匹配。 43 以下程序的输出是【 】。 #include iostream using namespace std; fun(intm) static int n=1; n=m*n; return

15、(n); void main() int i; for(i=1;i =3;i+) cout fun(i); 44 当用数组元素作函数参数时,这属于【 】传递。 45 请填写空格: #include iostream using namespace std; void fun(int x,int y,int * z) *2 = x + y; void main() int a=100,b=100,c,*p= fun(a,b,p); 【 】 ; /输出调用 fun函数后返回 a、 b的和。 46 在类中定义和实现的函数称为【 】。 47 重载函数的函数名称相同,但函数的实现和功能不同,系统是靠【

16、】来决定采用哪个函数。 48 设置虚基类的目的是解决二义性问题,可通过【 】标识虚基类。 49 如果一个类中含有纯虚函数,则该类称为【 】。 50 模板是实现代码重用机制的一种工具,其中使一个函数可以定义成对许多不同数据类型完成同一个任务的是指【 】模板。 国家二级( C+)笔试模拟试卷 6答案与解析 1 【正确答案】 D 【试题解析】 算法的时间复杂度和空间复杂度之间没有必然联系。 2 【正确答案】 C 【试题解析】 线性表、栈和队列所表达和处理的数据都以线性结构为 组织形式。 3 【正确答案】 A 【试题解析】 根据二叉树的性质,叶子节点总是比度为 2的节点多一个。 4 【正确答案】 B

17、【试题解析】 数据流程图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,在需求分析时使用。 5 【正确答案】 B 【试题解析】 设有两个串 p和 q,求 q在 p中首次出现位置的运算称为模式匹配。 6 【正确答案】 D 【试题解析】 选项 D是需求分析阶段的任务。 7 【正确答案】 C 【试题解析】 软件工程是计算机软件开发和维护的工程 学科,它采用工程的概念原理、技术和方法来开发和维护软件,它把经过实践考验而证明正确的管理技术和当前能够得到的最好技术结合起来。 8 【正确答案】 C 【试题解析】 软件测试是为了发现错误而执行过程的过程,软件测试是以查找程序中的错误为中心,而不是为了

18、演示软件的正确功能。 9 【正确答案】 B 【试题解析】 希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。所以希尔排序法属于插入类排序。 10 【正确答案】 B 【试题解析】 所谓完全二叉树是指除最后一层 外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。具有 n个结点的完全二叉树,其父结点数为 int(n/2),而叶子结点数等于总结点数减去父结点数。本题 n=699,故父结点数等于 int(699/2)=349,叶子结点数等于 699-349=350。 11 【正确答案】 A 【试题解析】 本题考查 C+程序开发方面的知识点。 C+语言源程序的扩

19、展名为 .cpp, .c是 C语言源程序的扩展名, .dll是动态连接库文件的扩展名, .exe是可执行文件的扩展名。 12 【正确答案】 C 【试题解析】 选项 A、选项 B和选项 D的表示方法都符合规则。选项 C中是反斜线引导一个具有 1 2位的十六进制数;但是没有以字母 x作为开始标记。 13 【正确答案】 B 【试题解析】 在题中各选项中,只有选项 B是单目运算符,所以它是优先级最高的。 14 【正确答案】 A 【试题解析】 语句是 C+程序中的基本功能单元。 C+语句通常是以分号作为结束标记。选项 A是一个空语句。 15 【正确答案】 C 【试题解析】 根据 dowhile 循环语句

20、功能的特点可得:首先无条件执行循环体,表达式 -x的值为 4,输出为 4, x的值变为 4,然后检查条件 (!x)为假 (false),则循环结束。 16 【正确答案】 C 【试题解析】 本题中 while中的条件表达式永远为真,进入循环后先执行语句 “i-;”,然后再执行后面的语句。由于当 i的值变为 0时,执行跳转语句 break,即跳出 while循环体。所以 i的取值为 1 99,即循环 99次,输出 99个 “*”。 17 【正确答案】 B 【试题解析】 选项 A定义的是三行两列的数组,选项 C、 D错误地省略了第二维的长度声明。二维数组及多维数组定义的简化 形式中,可以省略一个或多

21、个括号,甚至只保留最外层的括号。因此正确答案是选项 B。 18 【正确答案】 C 【试题解析】 本题中相当于定义了一个二维数组 int p4,标识符 p是一个指针,指向一个含有 4个元素的一维数组。 19 【正确答案】 A 【试题解析】 没有下标的数组名是一个指向该数组首元素的指针,本程序实现的功能是将字符 “6”及其以后的字符按字符串形式输出。 20 【正确答案】 A 【试题解析】 *p=*p+1;是将指针变量 p所指向的存储单元的值加 1,然后放入p所指向 的存储单元中。而选项 A中最后是将 p的值加 1,即移动一个单位的存储单元。 21 【正确答案】 B 【试题解析】 内联函数的定义是在

22、一般函数的定义前加上 inline关键字。 22 【正确答案】 D 【试题解析】 C+允许在函数的说明或定义中给一个或多个参数指定默认值。但默认值必须从右向左定义,即在一个指定默认值的参数的右边,不能出现没有指定默认值的参数。 23 【正确答案】 A 【试题解析】 public允许类对象对类的属性和方法进行访问; private不允许类对象访问类的属性和 方法; protected不允许类及其子类的对象访问父类的属性和方法,但子类可以访问父类中定义的 protected属性和方法。 24 【正确答案】 C 【试题解析】 当对象被释放时,系统自动调用类的析构函数。一个类中只能定义一个析构函数,所

23、以析构函数不能被重载,并且析构函数中没有形参。 25 【正确答案】 C 【试题解析】 C+中,规定对静态数据成员的初始化应该在类体外进行初始化;静态数据成员可以被任意访问权限许可的函数或对象访问;静态数据成员也可以定义为私有的静态数据成员;静态数据成员 既可以通过类名访问,也可以通过对象访问。 26 【正确答案】 A 【试题解析】 选项 A中, p是对象指针,所以调用 p的成员要用符号 “- ”,而my是一般的类对象,所以调用 my的成员用 “.”;选项 B中正确的调用方式应该是(*p).set Variable;选项 C中仅调用一次类对象的构造函数;选项 D是把对象 my的地址赋值给指针变量

24、 p,而不是对象本身。 27 【正确答案】 D 【试题解析】 C+中说明虚函数的方法是: virtual 类型说明符函数名(参数表 );。其中被关键字 virtual说明的函数称为虚函数。 28 【正确答案】 A 【试题解析】 抽象类是指至少有一个纯虚函数的类。 29 【正确答案】 B 【试题解析】 由重载的定义格式可知运算符函数应在类中声明为: friend MyClas operator +(MyClas,MyClas); 30 【正确答案】 B 【试题解析】 C+中, istream类提供了向流中插入数据的有关操作, ostream类提供了从流中读取数据的有关操作。 31 【正确答案】

25、D 【试题解析】 选项 D中, open()函数并不是 cout对象中的成员函数,因此对open()函数的调用是非法的。 32 【正确答案】 A 【试题解析】 变量说明时使用 auto修饰的局部变量是自动变量, auto经常省略,在未指定存储类别时,默认为 auto。 33 【正确答案】 D 【试题解析】 C+中函数的返回值类型是由定义函数时所指定的函数类型决定的,而不是其他内容决定的。 34 【正确答案】 B 【试题解析】 对象成员有两种访问方式:一个是通过对象名,使用 “.”运算符来访问;另一个是通过指向对象的指针, 使用 “- ”运算符来访问其成员。因此,选项 B的访问方式是错误的。 3

26、5 【正确答案】 A 【试题解析】 在本题的定义方式中,系统会自动在数组最后加入一个 0,表示字符数组的结束,因此数组的长度是 6个字节。 36 【正确答案】 调试 【试题解析】 调试的目的是发现错误的位置并改正错误。 37 【正确答案】 软件生命周期 【试题解析】 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。 38 【正确答案】 时间复杂度和空间复杂度 【试题解析】 在算法正确的前提下,评价一个算法的两个标准是时间复杂度和空间复杂度。 39 【正确答案】 log2n 【试题解析】 在长度为 n的有序线性表中进行二分查找,最坏的情况下需要的比较次数为 log2n

27、。 40 【正确答案】 需求分析 【试题解析】 需求分析的步骤是需求获取、需求分析、需求描述和需求验证。 41 【正确答案】 good 【试题解析】 条件运算符中的条件表达式为真时取第一个表达式的值。 42 【正确答案】 离它最近的且尚未配对的订语句 【试题解析】 对于嵌套的 if.else语句, C+语法规定 else总是与离它最近的且尚未配对的 if语句匹配。 43 【正确答案】 126 【试题解析】 局部静态变量在离开作用域之后,并没有被销毁,而是仍然驻留在内存当中,直到程序结束。第一次调用 fun 函数时 n的值等于 1,第二次调用 fun 函数时 n的值等于 2,第三次调用 fun

28、函数时 n的值等于 6,每次调用 fun 函数时,保留上次调用时 n的值不变。 44 【正确答案】 数值 【试题解析】 当用数组元素作函数参数时是值传递方式。 45 【正确答案】 cout *p; 【试题解析】 函数 fun()通过指针可以带回返回值, a、 b的和存放在 *p中。 46 【正确答案】 内联函数 【试题解析】 在类中定义的函数称为内联函数,类外定义的函数默认情况下都是非内联函数。用关键字 inline 可以强制转换,对于内联成员函数,编译时在所有调用该函数的地方将装入实际的函数代码,内联成员函数的声明必须出现在对它的每个调用之前。 47 【正确答案】 参数个数或参数类型 【试题解析】 函数重载是指同一个函数名可以对应着多个函数的实现。函数重载要求编译器 能够唯一地确定调用一个函数时应执行哪个函数代码,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。 48 【正确答案】 virtual 【试题解析】 设置虚基类的目的是解决二义性问题,可通过 virtual 标识虚基类。 49 【正确答案】 抽象类 【试题解析】 类中一旦有纯虚函数的定义,那么这个类就再也不能创建此类的对象了,我们把这种类叫做抽象类。 50 【正确答案】 函数模板 【试题解析】 模板分为类模板和函数模板,函数模板使一个函数可以定义成对许多不同数据 类型完成同一个任务。

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

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

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