[计算机类试卷]国家二级(C++)笔试模拟试卷139及答案与解析.doc
《[计算机类试卷]国家二级(C++)笔试模拟试卷139及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)笔试模拟试卷139及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)笔试模拟试卷 139及答案与解析 1 算法的时间复杂度是指 ( A)执行算法程序所需要的时间 ( B)算法程序的长度 ( C)算法程序中的指令条数 ( D)算法执行过程中所需要的基本运算次数 2 设栈 S的初始状态为空。元素 a, b, c, d, e, f依次通过栈 S,若出栈的顺序为b, d, c, f, e, a,则栈 S的容量至少应该为 ( A) 3 ( B) 4 ( C) 5 ( D) 6 3 在最坏情况下,下列排序方法中时间复杂度最小的是 ( A)冒泡排序 ( B)快速排序 ( C)插入排序 ( D)堆排序 4 在模块化程序设计中,按功能划分模块的原则是 ( A)
2、各模块的功能尽量单一,且各模块之间的联系尽量的少 ( B)各模块的功能尽量单一,且各模块之间的联系尽量紧密 ( C)各模块应包括尽量多的功能 ( D)各模块应包括尽量多的输入输出操作 5 数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是 ( A)线性链表 ( B)二叉链表 ( C)栈与队列 ( D)循环队列 6 下列叙述中正确的是 ( A)软件就是程序清单 ( B)软件就是存放在计算机中的文件 ( C)软件 应包括程序清单以及运行结果 ( D)软件包括程序、数据和文档 7 在结构化方法中,软件功能分解属于下列软件开发中的阶段是 ( A)概要设计 ( B)需求分析 ( C)详细设
3、计 ( D)编程调试 8 下列叙述中正确的是 ( A)程序设计过程中的主要工作是编制程序 ( B)程序设计的主要目标是编制出运行结果正确的程序 ( C)不良的程序设计风格会增加程序的复杂性 ( D)上述三种说法都不对 9 下列叙述中正确的是 ( A)用 E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系 ( B) 用 E-R图只能表示实体集之间一对一的联系 ( C)用 E-R图只能表示实体集之间一对多的联系 ( D)用 E-R图表示的概念数据模型只能转换为关系数据模型 10 关系表中的每一横行称为一个 ( A)元组 ( B)字段 ( C)属性 ( D)码 11 一个函数为 vo
4、id f(int, charch=a),另一个函数为 void f(int),则它们 ( A)不能在同一程序中定义 ( B)可以在同一程序中定义并可重载 ( C)可以在同一程序中定义,但不可以重载 ( D)以上说法均不正确 12 下面关于对 象概念的描述中,错误的是 ( A) C+中的对象就是 C语言中的结构变量 ( B)对象代表着正在创建的系统中的一个实体 ( C)对象是一个状态和操作 (或方法 )的封装体 ( D)对象之间的信息传递是通过消息进行的 13 实现运行时的多态性要使用 ( A)重载函数 ( B)析构函数 ( C)构造函数 ( D)虚函数 14 若有定义: int k, *q;,
5、则下列各选项中赋值表达式正确的是 ( A) q=(void sub(int x, int y, int *z) *z = y+x;int main () int a,b, c; sub8,4. sub (6, a, sub (a.b, cout a “ , “ b “, “ c end1; return 0; 程序运行后的输出结果是 ( A) 12,18,30 ( B) -12,6,8 ( C) 6,8,10 ( D) 12,-18,16 22 在下面的类定义中,错误的语句是 class Sample public: Sample(int val); / Sample(): / private
6、: int a=2.5; / Sample(); / ; ( A) ( B) ( C) ( D) 23 下面的描述中表达错误的是 ( A)公有继承时基类中的 public成员在派生类中仍是 public的 ( B)公有继承时基类中的 private成员在派生类中仍是 private的 ( C)公有继承时基类中的 protected成员在派生类中仍是 protected的 ( D)私有继承时基类中的 public成员在派生类中是 private的 24 运算符函数调用格式的表达式: y/x+与表达式: y. operator/(operator+(x,0)含义相同,由此可看出 ()。 ( A)
7、“/”和 “+”都是作为成员函数重载的 ( B) “/”和 “+”都是作为非成员函数重载的 ( C) “/”是作为成员函数重载的, “+”是作为非成员函数重载的 ( D) “/”是作为非成员函数重载的, “+”都是作为成员函数重载的 25 有如下函数模板定义: template typename T1, int a2, int a3 T1 sum(T1 a1) return(a1+a2+a3); 则以下调用中正确的是 ( A) sum int,4,3 (5); ( B) sum 4,3 (5); ( C) sum int,int,int (5); ( D) sum(5); 26 有如下程序:
8、#include iostream using namespace std; int main() cout. fill(*); cout. width(5); cout scientific 314.15 926535 end1; return 0; 程序运行后,输出的结果是 ( A) 3.141593e+002 ( B) 3.1416e+002 ( C) *3.14e+002 ( D) 314.16 27 假定 MyClass为一个类,那么下列的函数说明中, ( )为该类的析构函数。 ( A) void MyClass(); ( B) MyClass(int n); ( C) MyClas
9、s(); ( D) MyClass(); 28 有以下程序: #include iostream using namespace std;class sampleprivate: int n;public: sample() sample(int m) n=m; sample add(sample s1,sample s2) this- n-s1.n+s2.n; return (*this); void disp() cout “n=“ n end1; ;int main ( sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp (); return 0
10、;程序运行后,输出的结果是 ( A) n=10 ( B) n=5 ( C) n=20 ( D) n=15 29 有以下程序: #include iostream using namespace std;class sampleprivate: int x; static int y;public: sample(int a) ; static void print(sample s);sample: sample(int a) x=a; y+=x;void sample:print(sample s) cout “x=“ s. x “, y=“ y end1;int sampte:y=0;in
11、t main() sample s1(10); sample s2(20); sample:print(s2); return 0;程序运行后的输出结果是 ( A) x=10,y=20 ( B) x=20,y=30 ( C) x=30,y=20 ( D) x=30,y=30 30 若有以下程序: #include iostream using namespace std; class A private: int x;public: int z; void setx(int i) x=i; int getx () return x; :class B : public Aprivate: in
12、t m;public: int p; void setvalue(int a, int b, int c) setx(a) ; z=b; m=c; void display) cout getx () “, “ z “, “ m end1; ;int main() B obj; obj. setvalue(2,3,4); obj.display(); return 0; 程序运行以后的输出结果是 ( A)产生语法错误 ( B) 2,3,4 ( C) 2,2,2 ( D) 4,3,2 31 为完成下面的程序,应在划线处填入的语句是 #include iostream using namespac
13、e std; class Base private: int x; public: Base(int i) x=i; Base() ; class Derived: public Base public: _ /完成类 Derive构造函数的定义 ; int main() Derived obj; return 0; ( A) Derived(int i): Base(i) ( B) Derived() ( C) Void Derived (int i): Base(i) ( D) Denved(int i)Base(i); 32 若有以下程序: #include iostream using
14、 namespace std; class A private: int a; public: void seta(int x) a=x; void showa() cout a “, “; ; class B private: int b; public: void setb (int x) b=x; void showb() cout b “, “; ; class C : public A, private B private: int c; public: void setc(int x, inc y, int z) c=z; seta (x); setb (y); void show
15、c() showa (); showb (); cout c end1; ; int main () C c; c. setc(1,2,3); c.showc(); return 0; 程序执行后的输出结果是 ( A) 1,2,3 ( B) 1, 1, 1 ( C) 2,2,2 ( D) 3,3,3 33 以下运算符中不能重载的运算符是 ( A) new ( B) sizeof ( C) .* ( D) + 34 执行语句序列 ofstream outfite(“data.dat“); if(.)cout “ok“; else cout“fail“; 后,如果文件打开成功,显示 “ok”,否则
16、显示 “fail”。由此可知,上面 if语句的 “” 处的表达式是 ( A) outfile.fail()或 outfile ( B) outfile.good()或 !outfile ( C) outfile.good()或 outfile ( D) outfile.fail()或 !outfile 35 有如下程 序: #include iostream using namespace std; class sample private: int x,y; public: sample(int i,int j) x=i; y=j; void disp () cout “disp1“ end
17、1; void disp() const cout “disp2“ end1; ;int main () const sample a(1,2); a.disp(); return 0; 该程序运行后的输出结果是 ( A) disp1 ( B) disp2 ( C) disp1 disp2 ( D)程序编译时出错 36 某二叉树中度为 2的结点有 18个,则该二叉树中有 _个叶子结点。 37 在面向对象方法中,类的实例称为 _ 。 38 软件生命周期包括 8个阶段。为了使各时期的任务更明确,又可分为 3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于 _期。 39 一棵二叉树第六层
18、(根结点为第一层 )的结点数最多为 _个。 40 数据库系统中实现各种数据管理功能的核心软件称为 _。 41 下面程序的输出结果是 _。 #include iostream using namespace std; int x; void funA(int return m; 48 下列程序的输出结果是 _。 #include iostream using namespace std; class base public: int n; base(int x) n=x; virtual void set(int m) n=m; cout n ; ; class deriveA: public
19、base public: deriveA(int x): base(x) void set(int m) n += m; cout n ; ; class deriveB: public base public: deriveB(int x): base(x) void set(int m) n + m; cout n ; ; int main() deriveA d1(1); deriveB d2(3); base *pbase; pbase= for(j-;i j i+,j-); return i_j; 50 在下面程序的横线处填上适当的内容,使程序执行后的输出结果为 1/2005。 #i
20、nclude iostream.h using namespace std: class Date public: Date (int m=1,int y=0):month(m .year(y void Print() cout month “/“ year end1; _operator+(const Date private: int month year; ; _operaror+(const Date year=d1.year+d2.year; month=d1.month+d2.month; year+=(month-1)/12; month=(month-1)%12+l; retu
21、rn Datemonth, year: void main() Date d1(3,2004),d2,d3(10); d2=d3+d1; d2.Print(); 51 在下面程序的横线处填上适当的内容,使程序执行后的输出结果为 ABCD。 #include iostream.h using namespace std; class A public: A() cout A; ; class B:_ public: B() cout B; ; class C:_ public: C( cout C; ; class D:public B, public C public: D()cout D;
22、; void main()D obj; 国家二级( C+)笔试模拟试卷 139答案与解析 1 【正确答案】 D 【试题解析】 算法的时间复杂度实际上就是执行算法程序所 需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算工具以及程序员的水平无关。选项 A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项 B错误。算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同选项 C错误,因为根据一个算法所编
23、制出的程序中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指 令条数来度量算法的时间复杂度。所以,本题的正确答案为 D。 2 【正确答案】 A 【试题解析】 根据题中给定的条件,可以作如下的模拟操作: 元素 a, b进栈,栈中有 2个元素,分别为 a, b; 元素 b出栈后,元素 c, d进栈,栈中有 3个元素,分别为 a, c, d; 元素 d, c出栈后,元素 e, f进栈,栈中有 3个元素,分别为 a, e, f; 最后,元素 f, e, a出栈,栈为空。可以看出,进栈的顺序为 a, b, c, d, e, f,出栈的顺序为 b, d, c, f, e, a,满足
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 笔试 模拟 139 答案 解析 DOC
