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

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

1、国家二级( C+)笔试模拟试卷 93及答案与解析 1 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要的比较次数为 ( A) log2n ( B) n2 ( C) O(n1.5) ( D) n(n-1)/2 2 算法分析的目的是 ( A)找出数据结构的合理性 ( B)找出算法中输入和输出之间的关系 ( C)分析算法的易懂性和可靠性 ( D)分析算法的效率以求改进 3 线性表 L=(a1, a2, a3, ai , an) ,下列说法正确的是 ( A)每个元素都有一个直接前件和直接后件 ( B)线性表中至少要有一个 元素 ( C)表中诸元素的排列顺序必须是由小到大或由大到小 ( D)除第一个

2、元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件 4 在单链表中,增加头结点的目的是 ( A)方便运算的实现 ( B)使单链表至少有一个结点 ( C)标识表结点中首结点的位置 ( D)说明单链表是线性表的链式存储实现 5 软件工程的出现是由于 ( A)程序设计方法学的影响 ( B)软件产业化的需要 ( C)软件危机的出现 ( D)计算机的发展, 6 软件开发离不开系统环境资源的支持,其中必要的测试数 据属于 ( A)硬件资源 ( B)通信资源 ( C)支持软件 ( D)辅助资源 7 在数据流图 (DFD) 中,带有名字的箭头表示 ( A)模块之间的调用关系 ( B)程序的

3、组成成分 ( C)控制程序的执行顺序 ( D)数据的流向 8 分布式数据库系统不具有的特点是 ( A)数据分布性和逻辑整体性 ( B)位置透明性和复制透明性 ( C)分布性 ( D)数据冗余 9 关系表中的每一横行称为一个 ( A)元组 ( B)字段 ( C)属性 ( D)码 10 下列数据模型中,具有坚实理论基础的是 ( A)层次模型 ( B)网状模型 ( C)关系模型 ( D)以上 3个都是 11 C+语言中标点符号中表示一条预处理命令开始的是 ( A) # ( B) ; ( C) * ( D) 12 每个 C+程序中都必须有且仅有一个 ( A)类 ( B)预处理命令 ( C)主函数 (

4、D)语句 13 sizeof(float)是 ( A)一个双精度型表达式 ( B)一个整型表达式 ( C)一种函数调用 ( D)一个不合法的表达式 14 设有 int x=11;,则表达式 (x+*2/3)的值是 ( A) 7 ( B) 8 ( C) 11 ( D) 12 15 设有程序段 int k=10; while(k=0)k=k 1; 则下面描述中正确的是 ( A)循环执行 10次 ( B)无限循环 ( C)循环体语句一次也不执行 ( D)循环体语句执行一次 16 对表达式 for(表达式 1;表达式 3)可理解为 ( A) for(表达式 1;0;表达式 3) ( B) for(表达

5、式 1;1;表达式 3) ( C) for(表达式 1;表达式 3;) ( D) for(;表达式 3) 17 以下不正确的定 义语句是 ( A) double x5=2.0, 4.0, 6.0, 8.0, 10.0; ( B) int y5=0, 1, 3, 5, 7, 9; ( C) char c1 =1, 2, 3, 4, 5; ( D) char c2 =x10, xa, x8; 18 有如下说明 int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, *p=a; 则数值为9的表达式是 ( A) *p+9 ( B) *(p+8) ( C) *p+=9 ( D) p

6、+8 19 下列函数的运行结果是 #include iostream.h int f(int a, int B) int c; if(a b) c=1 else if(a b) c=0; else c=-1; return(c) ; void main( ) int i=2, j=3; int p=f(i,j); cout ( A) -1 ( B) 1 ( C) 2 ( D)编译出错,无法运行 20 以下对 C+语言函数的有关描述中,正确的是 ( A)在 C+语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参 ( B) C+语言函数既可以嵌套定义又可以递归调用 ( C)函数必须无

7、返回值,否则不能使用函数 ( D)函数必须有返回值,返回值类型不定 21 关于静态数据成员的描述中正确的是 ( A)类的静态数据成员不是类的所有对象共享的数据 ( B)类的静态数据成员不能被类的成员函数调用 ( C)类的静态数据成员不能被 类的构造函数调用 ( D)类的静态数据成员必须进行初始化 22 拷贝构造函数的参数一般是 ( A)某对象名 ( B)某对象成员名 ( C)某对象的引用名 ( D)指向对象的指针名 23 下表正确的是 在父类中的访问属性 访问修饰符 在子类中的访问属性 ( A) public private 不能直接访问 ( B) protect public public

8、( C) private public 不能直接访问 ( D) protect private protect 24 下面这个程序的结果是 #include iostream.h class A private: int a; public: void seta( ); int geta( ); ; void A:seta( ) a = 1; int A:geta( ) return a; class ( A) 1 ( B) 2 ( C)随机输出 1或 2 ( D)程序有错 25 下列运算符中全都可以被友元函数重载的是 ( A) =, +, - , ( B) , +, ( ), new ( C

9、) - ,+ , * , ( D) , , +, * 26 对于模板定义关键字 class和 typename说法不正确的是 ( A)程序中的 class并不能都替换为 typename ( B) class和 typename都可互相替换 ( C)程序中的 typename都能替换为 class ( D)程序中的部分 class可以替换为 typename 27 对于下面的程序 ifstream fin(c: test.txt); if(fin) cout “ok“; else cout “wrong“; 对于 if语句中的内容可以换为 ( A) fin.fail( ): ( B) fin.

10、bad( ); ( C) fin.good( ); ( D) fin.eof( ); 28 以下程序的输出结果是 #include iostream.h long fun(int n) long s; if(n=1|n=2)s=2; else s=n-fun(n-1); return s; void main( ) cout fun(3); ( A) 1 ( B) 2 ( C) 3 ( D) 4 29 不合法的 main函数命令行参数表示形式是 ( A) main(int a, char*c ) ( B) main(int arc, char*arv) ( C) main(int argc,

11、char*argv) ( D) main(int argv, char*argc ) 30 有如下程序 #include iostream.h void main( ) char ch25=“6937“, “8254“,*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0; i 2;i+) for(j=0; pij 0;j+=2) s=10*s+pij 0; ( A) 69825 ( B) 63825 ( C) 6385 ( D) 693825 31 下面叙述不正确的是 ( A)基类的保护成员在派生类中仍然是保护的成员 ( B)基类的保护成员在公有派生

12、类中仍然是保护的 ( C)基类的保护成员在私有派生类中仍然是私有的 ( D)对基类成员的访问必须是无二义性 32 以下程序的输出结果是 #include iostream.h void main( ) char x=040; cout (X 1) ; ( A) 100 ( B) 80 ( C) 64 ( D) 32 33 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的选项是 #include iostream.h void main( ) int a, b, t; cin a b; f while(_) if(a b) t=a; a=b;

13、b=t; cout a “ “ b ( A) !a=b ( B) a!=b ( C) a=b ( D) a=b 34 对以下说明语句的正确理解是 int a10=6, 7, 8, 9, 10; ( A)将 5个初值依次赋给 s 1至 a 5 ( B)将 5个初值依次赋给 a 0至 a 4 ( C)将 5个初值依次赋给 a 6至 a l0 ( D)因为数组长度与初值的个数不相同,所以此语句不正确 35 类 A是类 B的友元,类 B是类 C的友元,则下列说法正确的是 ( A)类 B是类 A的友元 ( B)类 C是类 A的友元 ( C)类 A是类 C的友元 ( D)以上都不对 36 在树形结构中,树

14、根结点没有【 】。 37 Jackson结构化程序设计方法是英国的 M Jackson提出的,它是一种面向【 】的设计方法。 38 面向对象的模型中,最基本的概念 是对象和【 】。 39 软件设计模块化的目的是【 】。 40 数据模型按不同应用层次分成 3种类型,它们是概念数据模型、【 】和物理数据模型。 41 C+中封装性、继承性和【 】是面向对象思想的主要特征。 42 下面程序的结果为 【 】 。 #include iostream.h void main( ) int a=1, b=2; bool c=1; if(a b) |c) cout “true“ end1; else cout

15、“false“ end1; 43 下列 for语句的循环次数为【 】。 for (int a=0, b=1; bi+) cout ai “ “; cout end1; 45 C+程序是从【 】函数开始执行的。 46 假定 A为一个类,则语句 A(A i2;i+)pi=chi;的作用是使指针数组的 P0元素 (它本身是一个指针 )指向了二维数组 ch的第一行字符串,并使指针数组的 p1元素指向了二维数组 ch的第二行字符串,这样,就使指针数组 p和二维数组 ch建立起了一种对应关系,以后对二维数组 ch的某个元素的引用就有两种等价的形式: chij或 pij。 对二维数组 ch的初始化,使其第一

16、行 ch0中存入了字符串 “6937”,第二行 chl中的内容为字符串 “8254”。 程序中第二个循环中的循环体 s=s*10+pij-0;的功能是这样的,每执行一次,将 s中的值乘以 10(也即,将 s中的数值整体向左移动一位,并在空出来的个位上添一个 o),再将当前 Pij中的字符量转换为相应的数字,然后把这个数字加到 s的个位上。 注意到内层循环的循环条件 pij 0是指 pij中的字符只要不是字符串结束标志 0就继续循环,语句j+=2;是使下标 j每次增加 2,也即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p 0所指向的字符串 “6937”

17、中一个隔一个地取出字符,分别 是 “6”和 “3”,然后从 p1所指向的字符串 “8254”中一个隔一个地取出字符,分别是 “8”和 “5”,同时经过转换和相加运算后,结果 s中的值应该是 6385。 31 【正确答案】 A 【试题解析】 C+语言中如果基类的成员是保护的,它被继承后在子类中该成员可能是保护的,也可能不是,主要看继承的权限是 public还是 protected或 private的。 32 【正确答案】 C 【试题解析】 左移 1位,相当于乘以 2,题中的 x的值是一个八进制数,转换为十进制数是 32,再乘以 2, x的值 为 64。 33 【正确答案】 B 【试题解析】 根据

18、本题提出的条件可知,控制循环的表达式应该是所输入的两数互不相等,也即只有满足这一条件时,两数才能进行排序输出的操作,由此得出循环的控制表达式应该为 a!=b。 34 【正确答案】 B 【试题解析】 本题中,表达式将 5个初值赋给 a0至 a4,后面的部分,将自动会被依次补零处理。 35 【正确答案】 D 【试题解析】 选项 A、选项 B和选项 C都不正确,因为友元关系是单项的,并且没有交换性、传递性。 36 【正确答案】 前件 【试题解析】 在树形结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点;每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结

19、点称为叶子结点。 37 【正确答案】 数据结构 【试题解析】 结构化分析方法主要包括:面向数据流的结构化分析方法 (SA-Structured analysis),面向数据结构的 Jackson方法 (JSD-Jackson system development methoD和面向数据结构的结构化数据系统开发方法 (DSSD -Data structured system development methoD。 38 【正确答案】 类 【试题解析】 面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。 39 【正确答案

20、】 降低复杂性 【试题解析】 模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程,由此分解来降低复杂性。 40 【正确答案】 逻辑数据模型 【试题解析】 数据是现实世界符号的抽象,而数据模型 (data model)则是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束行为,为数据库系统的信息表示与操作提供一个抽象的框架。数据模型按不同的应用层次分成 3种类型,它们是概念数据模型 (conceptual data model)、逻辑数据模型 (logic data model)、物理数据模型 (physical data model)。 41 【正确答案】

21、多态性 【试题解析】 面向对象系统包含了三个特征 -封装性、继承性和多态性,这三个特征可以很好的实现数据抽象,进行行为共享, 完成进化求解和描述一个系统的确定行为。 42 【正确答案】 真 【试题解析】 本题考查的是对于逻辑运算符号的理解, “|”运算符的任何一边取值为真,则整个运算结果为真。 43 【正确答案】 5 【试题解析】 因为 b的值为 1,所以 b&a 5相当于 a 5,当 a=5时退出循环,一共进行 5次循环。 44 【正确答案】 1 2 3 4 5 【试题解析】 本题考查的是考生使用简单循环输出数组元素的能力,因为结束条件是 i 5,而 i初始值为 0,所以只会输出前 5个元素

22、。 45 【正确答案 】 main 【试题解析】 所有的 C+语言程序都是从 main函数开始执行,而普通函数的存在是为了简化 main函数的复杂程度。 46 【正确答案】 拷贝构造 【试题解析】 本题考查的是拷贝构造函数的定义,它是一种特殊的成员函数,作用是使用一个已知的对象来初始化一个被创建的同类的对象,定义格式是类名 :拷贝构造函数名 (类名 &引用名 )。 47 【正确答案】 类 【试题解析】 本题考查的是类模板的定义, C+语言中模板分为两种:类模板和函数模板,类模板只能用于类型参数,函数模板可以重载。 48 【正确答案】 *hello 【试题解析】 本题考查的是 C+语言的流输出操作, cout中包括的函数 fill()和width()分别实现填充和设定显示长度的功能。 49 【正确答案】 基类 派生类 【试题解析】 本题主要考查的是派生类构造函数的执行顺序,在 C+语言中构造函数的执行顷序是先基类后派生类,而析构函数的执行顷序正好相反,是先调用派生类后调用基类。

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

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

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