[计算机类试卷]国家二级(C++)笔试模拟试卷72及答案与解析.doc
《[计算机类试卷]国家二级(C++)笔试模拟试卷72及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)笔试模拟试卷72及答案与解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)笔试模拟试卷 72及答案与解析 1 软件详细设计的主要任务是 ( )。 ( A)确定每个模块的算法和使用的数据结构 ( B)确定每个模块外部的接口 ( C)确定每个模块的功能 ( D)编程 2 某二叉树 T有 n个节点,设按某种顺序对 T中的每个节点进行编号,编号值为1, 2, n ,且有如下性质: T中任一节点 v,其编号等于左子树上的最小编号减1,而 v的右子树的节点中,其最小编号等于 v左子树上的节点的最大编号加 1。此二叉树是按 ( )顺序编号的。 ( A)前序遍历 ( B)中序遍历 ( C)后序遍历 ( D)按层次遍历 3 对一个已经排好序的序列进行排序,采用 (
2、)比较适宜。 ( A)冒泡法 ( B)直接选择法 ( C)直接插入法 ( D)归并法 4 软件是一种 ( )。 ( A)程序 ( B)数据 ( C)逻辑产品 ( D)物理产品 5 下列关于链式存储的叙述中,错误的是 ( )。 ( A)链式存储结构的空间可以是不连续的 ( B)数据节点的存储顺序与数据元素之间的逻辑关系可以不一致 ( C)链式存储方式只可用于线性结构 ( D)链式存储也可用于非线性结构 6 关系表中的每一横行成为一个 ( )。 ( A)元组 ( B)字段 ( C)属性 ( D)码 7 在数据库设计的 4个阶段中,为关系模式选择存取方法 (建立存取路径 )的阶段是( )。 ( A)
3、需求分析 ( B)概念设计 ( C)逻辑设计 ( D)物理设计 8 下列说法中,正确的是 ( )。 ( A)在线性表中插入一个元素后,线性表长度不变 ( B)在线性表中删除一个元素后,线性表长度不变 ( C)在线性表中插入一个元素后,线性表长度加 1 ( D)在线性表顺序存储的情况下插入一个元素的 效率较高 9 下列关于队列的叙述中,不正确的是 ( )。 ( A)在队列中能插入数据 ( B)在队列中能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 10 在结构化程序设计使用 goto语句的原则是 ( )。 ( A)限制 ( B)鼓励 ( C)禁止 ( D)滥用 11
4、C+对 C语言作了很多改进,下列描述中, ( )使得 C+语言发生了质变,即从面向过程变成了面向对象。 ( A)增加了一些新的运算符 ( B)允许函数重载,并允许设置默认参数 ( C)规定 函数说明必须用原型 ( D)引进了类和对象的概念 12 下面不属于 C+语言的基本数据类型的是 ( )。 ( A)字符类型 ( B)整数类型 ( C)逻辑类型 ( D)枚举类型 13 若 a, b, c1, c2, x, y均是整型变量,正确的 switch语句是 ( )。 ( A) switch(a+b) ( B) switch(a*a+b*b) case: y=a+b; break; case 3: c
5、ase: y=a-b; break; case 1: y=a+b; break; case 3: y=b-a;break; ( C) switcha ( D) switch(a-b) casec1: y=a-b; break; default: y=a*b; break; casec2: x=a*b; break; case 3: case4: x=a+b; break; default:x=a+b; case 10: case 11: y=a-b; break; 14 C+语言的跳转语句中,对于 break和 continue说法正确的是 ( )。 ( A) break语句只使用于循环体中
6、( B) continue语句只应用于循环体中 ( C) break是无条件跳转语句, continue不是 ( D) break和 continue的跳转范围不够明确,容易产生问题 15 有以下程序: #include iostream #include string usxng namespace std; int main() char p = “abcdefgh“; cout strlen(strcpy(p,“12345“) end1; return 0; 执行后输出的结果是 ( )。 ( A) 8 ( B) 12 ( C) 5 ( D) 7 16 一个函数为 void f(int,
7、char ch=a),另一个函数为 void f(int),则它们 ( ) ( A)不能在同一程序中定义 ( B)可以在同一程序中定义并可重载 ( C)可以在同一程序中定义,但不可以重载 ( D)以上说法均不正确 17 在 C+语言中函数返回值的类型是由 ( )决定的。 ( A)调用该函数时系统临时 ( B) return语句中的表达式类型 ( C)定义该函数时所指定的函数类型 ( D)调用该函数时的主调函数类型 18 类 MyClass的定义如下: class MyClass public: MyClass() value=0; setVariable(int i) value=i; pri
8、vate: int value; ; 则以下各项对如下语句序列的描述中,正确的是 ( )。 MyClasS *p, my; p= class count static int n; public: count ( ) n+; static int test() for (int i = 0; i 4; i+ ) n+; return n; ; int count : n = 0; int main() cout count : test() “ “; count c1, c2; cout count : test() end1; return 0; 执行后的输出结果是 ( )。 ( A) 4
9、10 ( B) 1 2 ( C) 22 ( D) 24 25 有以下程序: #include iostream using namespace std; class myclass private: int a, b; public: void init( int i, int j ) a = i; b = j; friend int sum( myclass x ); ; int sum( myclass x ) return x.a + x.b; int main () myclass y; y.init( 15, 20 ); cout sum( y )end1; return 0; 执行
10、后的输出结果是 ( )。 ( A) 15 ( B) 20 ( C) 5 ( D) 35 26 有以下程序: #include iostream using namespace std; class CSample private: int i; public: CSample ( ); CSample( int val ); void Display(); CSample (); ; CSample: CSample () cout “C1“; i = 0; CSample: :CSample( int val ) cout “C2“; i = val; void CSample: :Disp
11、lay() cout i “: “; CSample: CSample ( ) cout “D“; int main ( ) CSample a, b( 10 ); return 0; 执行后的输出结果为 ( )。 ( A) ClC2DD ( B) DDC1C2 ( C) C2C1DD ( D) C1DC2D 27 下列类的定义中,有 ( )处语法错误。 class Base public: Base() Base(int i) data=i; private: int data; ; class Derive : public Base public: Derive() : Base(O)
12、Derive (int x) d=x; void setvalue(int i) data=i; private: int d; ; ( A) 1 ( B) 2 ( C) 3 ( D) 4 28 若有以下程序: #include iostream using namespace std; class A private: int a; public: A(int i) a=i; void disp() cout a “, “; ; class B private: int b; public: B(int j) b=j; void disp() cout b “, “; ; class C :
13、 public B,public A private: int c; public: C int k) :A(k-2),B(k+2) c=k; void disp() A: :disp (); B:disp(); cout c end1; ; int main () C ebj (10); obj .disp (); return 0; 程序执行后的输出结果是 ( )。 ( A) 10,10,10 ( B) 10,12,14 ( C) 8,10,12 ( D) 8,12,10 29 有以下程序: #include iostream using namespace std; template c
14、lass T class TAdd private: T x, y; public: TAdd( T a, T b ) x = a; y = b; T add() return x + y; ; int main () TAdd int A( 5, 6 ); TAdd double B( 2.4, 5.6 ); cout A, add () “, “ B. add () end1; return 0; 执 行后的输出结果是 ( )。 ( A) 11, 8 ( B) 5,6 ( C) 2.4,5.6 ( D) 8, 11 30 语句 “ofstream f(“DATA.DAT“,ios base
15、: applios base: binary); ”的功能是建立流对象 f,并试图打开文件 DATA DAT 与之连接,而且 ( )。 ( A)若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件 ( B)若文件存在,将其截为空文件;若文件不存在,打开失败 ( C)若文件存在,将文件指针定位于文件尾;若文件不存在, 建立一个新文件 ( D)若文件存在,打开失败;若文件不存在,建立一个新文件 31 在面向对象方法学中,直接反映了用户对目标系统的要求的模型是【 】。 32 软件测试的目的是尽可能发现软件中错误,通常【 】是在代码编写阶段可进行的测试,它是整个测试工作的基础。 33 一个
16、项目具有一个项目主管,一个项目主管可管理多个项目,则实体 “项目主管 ”与实体 “项目 ”的联系属于【 】的联系。 34 假定 w、 x、 y、 z、 m均为血型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(W X)?w: X; m=(m y)?m: y; m=(m z)?m: z; 则该程序运行后, m的值是【 】。 35 函数 swap(arr,n)可完成对 arr数组从第 1个元素到第 n个元素两两交换。在运行调用函数中的语句后, a0和 a1的值分别为【 】。 a0=1; a1=2; swap(a, 2); 36 以下程序的输出结果是【 】。 #include i
17、ostream using namespace std; int main() char S =“abcdef“; s3= 0; cout s end1; return 0; 37 要想把类的一般成员函数说明为类的常成员函数,则应该使用关键词【 】说明成员函数。 38 表达式 operator+(x,int)还可以表示为【 】。 39 下列程序将 x、 y和 z按从小到大的顺序排列,请将下面的函数模板补充完整。 template class T void order(【 】 ) T a; if(x y) a=x; x=y; y=a; if (y z) a=y; y=z; z=a; if (x
18、y) a=x; x=y; y=a; 40 以下程序运行后的输出结果 是【 】。 #include iostream #include string using namespace std; class Y; class X int x; char *strx; public: X(int a, char *str) x=a; strx=new charstrlen(str)+l; strcpy(strx,str); void show(Y ; class Y private: int y; char *stry; public: Y(int b,char *str) y=b; stry=new
19、 charstrlen(str)+l; strcpy(stry, str); friend void X:show(Y ; void X:show(Y cout ob.stry end1; int main() X a(10,“stringX“); Y b(20,“stringY“); a. show (B) ; return 0; 41 若有以下程序: #include iostream using namespace std; #define PI 3.14 class Point private: int x,y; public: Point (int a,int b) x=a; y=b
20、; int getx () return x; int gety() return y; ; class Circle : public Point int r; public: Circle(int a, int b,int C) : Point (a, b) r=c; int getr() return r; double area() return PI*r*r; ; int main() Circle c1(5,7,10); cout c1.area() end1; return 0; 程序执行后的输出结果是【 】。 42 下面是 “二维向量 ”vector2D的定义,其中作为成员函数
21、重载的运算符 “+”的功能是将两向量的分量 x和 y对应相加,然后返回作为相加结果的新对象。请填空补充完整。 class vector2D double x; x分量 double y; y分量 public: vector2D(double x0=0,double y0=0) :x(x0),y(y0) void show(cout ( , y ) ; vector2D operator + (vector2D) ; ; 【 】 operator + (vector2D a) return vector2D(【 】 ); 国家二级( C+)笔试模拟试卷 72答案与解析 1 【正确答案】 A 【
22、试题解析】 本题考核结构化设计方法的详细设计。从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是要决定各个模块的实现算法,并精确地表达这些算法。 2 【正确答案】 A 【试题解析】 根据节点 v的右子树的节点中,其最小编号等于 v左子树上的节点的最大编号加 1,可以断定是前序遍历。 3 【正确答案】 C 【试题解析】 若以排序所用的比较时间来看 ,直接插入法和归并法都比较少,对于 N个元素的序列,大约需要比较 N-1次:但归并法要占用较大的存储空间,所以用直接插入法比较好。 4 【正确答
23、案】 C 【试题解析】 计算机软件是计算机系统中与硬件互相依存的另一部分,是包括程序、数据及相关文档的完整集合。软件是一种逻辑实体,而不是物理实体,具有抽象性。 5 【正确答案】 C 【试题解析】 链式存储结构不同于顺序存储结构,它的存储空间可以是不连续的,并且数据节点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系是由指针域来确 定的。链式存储方式可用于线性结构链式存储也可用于非线性结构,在表示复杂的非线性结构时,指针域的个数要多一些。 6 【正确答案】 A 【试题解析】 本题考核关系表中的一些概念。元组是指一个实体的所有属性值的集合,关系表中的每一横行就是一个实体的所有
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 笔试 模拟 72 答案 解析 DOC
