[计算机类试卷]国家二级(C++)笔试模拟试卷47及答案与解析.doc
《[计算机类试卷]国家二级(C++)笔试模拟试卷47及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)笔试模拟试卷47及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)笔试模拟试卷 47及答案与解析 1 算法的空间复杂度是指 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 下列关于队列的叙述中正确的是 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 3 在深度为 5的满二叉树中,叶子结点的个数为 ( A) 31 ( B) 32 ( C) 16 ( D) 15 4 下列叙述中正确的是 ( A)在模 块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息 ( B)在自顶向下、逐步细化的
2、设计过程中,首先应设计解决问题的每一个细节 ( C)在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则 ( D)在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法 5 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上三种说法都不对 6 在软件生存周期中,能准确地 确定软件系统必须做什么和必须具备哪些功能的阶段是 ( A)概要设计 ( B)详细设计 ( C)可行性分析 ( D)需求分析 7 软件需求分析阶段的工作,可以分为四个方面:需求获取,需求
3、分析,编写需求规格说明书,以及 ( A)阶段性报告 ( B)需求评审 ( C)总结 ( D)都不正确 8 在关系数据库中,用来表示实体之间联系的是 ( A)树结构 ( B)网结构 ( C)线性表 ( D)二维表 9 在面向对象的程序设计中,下列叙述中错误的是 ( A)任何一个对象构成一个独立的模块 ( B)一个对象 不是独立存在的实体,各个对象之间有关联,相互依赖 ( C)下一层次的对象可以继承上一层次对象的某些属性 ( D)上述三种说法都正确 10 将 E-R 图转换到关系模式时,实体与联系都可以表示成 ( A)属性 ( B)关系 ( C)键 ( D)域 11 若有以下定义: int a=1
4、, 2, 3, 4, 5, 6, 7; char c1=b,C2=2; 则数值不为 2的表达式是 ( A) a1 ( B) d-c1 ( C) a3-c2 ( D) c2-0 12 面向对 象程序设计思想的主要特征中不包括 ( A)继承性 ( B)功能分解,逐步求精 ( C)封装性和信息隐藏 ( D)多态性 13 下面关于虚函数的描述中正确的是 ( A)虚函数是一个静态成员函数 ( B)虚函数是一个非成员函数 ( C)虚函数既可以在函数说明时定义,也可以在函数实现时定义 ( D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 14 下列运算符中不能在 C+中重载的是 ( A) ?:
5、 ( B) + ( C) - ( D) = 15 模板函数的真正代码是在 ( )时候产生。 ( A)源程序中声明函数时 ( B)源程序中定义函数时 ( C)源程序中调用函数时 ( D)运行执行函数时 16 若执行语句: cout setfill(*) setw(10) 123 OK end1后将输出 ( A) *123OK ( B) 123*OK ( C) *123*OK ( D) 123*OK* 17 C+语言中 while循环和 do-while循环的主要区别是 ( A) do-while的循环体至少无条 件执行一次 ( B) while的循环控制条件比 do-while的循环控制条件严格
6、 ( C) do-while允许从外部转到循环体内 ( D) do-while的循环体不能是复合语句 18 设有以下程序段: int a5=0,*p,*q; p=a; q=a; 则下列选项中,合法的运算是 ( A) p+q ( B) p-q ( C) p*q ( D) P q 19 已知: int n=10;那么下列语句中错误的是 ( A) int*p=new longn; ( B) int pn; ( C) int*p=new long(n); ( D) int p10; 20 以下程序执行后的输出结果是 #include iostream using namespace std; void
7、 try(int,int,int,int); int main() int x,y,z,r; x=1; y=2; try(x,y,z,r); cout r end1; return 0; void try(int x,int y, int z,int r) z = x+y; x = x*x; y = y*y; r = z+x+y; ( A) 18 ( B) 9 ( C) 10 ( D)不确定 21 若有如下程序: #include iostream using namespaces std; int s=0; class sample static iht n; public: sample(
8、int i) n=i; static void add() s+=n; ; int sample:s=0; int main() sample a(2),b(5); sample:add(); cout s endl; return 0; 程序运行后的输出结果是 ( A) 2 ( B) 5 ( C) 7 ( D) 3 22 下列类的定义中,有 ( )处语法错误。 class Base public: Base() Base(int i) data=i; private: int data; ; class Derive: public Base public: Derive(): Base(0
9、) Derive(int x) d=x; void setvalue(int i) data=i; private: d; ( A) 1 ( B) 2 ( C) 3 ( D) 4 23 C+流中重载了运算符,它是一个 ( A)用于输出操作的成员函数 ( B)用于输入操作的成员函数 ( C)用于输入操作的非成员函数 ( D)用于输出操作的非成员函数 24 有如下函数模板定义: template typename T1,typename T2,typename T3 T2 plus(T1 t1,T3 t3)return t1+t3; ( A) plus(3,5L); ( B) plus (3,5L
10、); ( C) plus int (3,5L); ( D) plus int, double (3,5L); 25 下列打开文件的表达式中,错误的是 ( A) ofstream ofile; ofile.open(“C:vcabc.txt“,ios:binary); ( B) fstream iofile; iofile.open(“abc.txt“,ios:ate); ( C) ifstream ifile(“C:vcabc.txt“); ( D) cout,open(“C:vcabc.txt“,ios:binary); 26 假定 MyClass为一个类,则该类的拷贝构造函数的声明语句为
11、( A) MyClass 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; 程序运行后,输出的结果是 ( A) n=10 ( B) n=5 ( C) n=20 ( D) n=15 29 若有以下程序: #include iostream using namespace std; class data public
12、: int x; data(int x) data: :x=x; ; class A private: data d1; public: A(int x): d1(x) void dispa() cout d1.x “,“; ; class B: public A private: data d2; public: B(int x): A(x-1),d2(x) void dispb() cout d2.x end1; ; class C: public B public: C(int x): B(x-1) void disp() dispa(); dispb(); ; int main() C
13、 obj(5); obj.disp(); return 0; 程序执行后的输出结果是 ( A) 5,5 ( B) 4,5 ( C) 3,4 ( D) 4,3 30 下列对派生类的描述中,错误的是 ( A) 一个派生类可以作为另一个派生类的基类 ( B)派生类至少有一个基类 ( C)派生类的成员除了它自己的成员外,还包含了它的基类的成员 ( D)派生类中继承的基类成员的访问权限到派生类中保持不变 31 若有以下程序: #include iostream using namespace std; class Base public: Base() x=0; int x; ; class Deriv
14、edl: virtual public Base public: Derivedl() x=10; ; class Derived2: virtual public Base public: Derived2() ( x=20; ; class Derived: public Derivedl,protected Derived2 ; int main() Derived obj; cout obj.x end1; return 0; 该程序运行后的输出结果是 ( A) 20 ( B) 30 ( C) 10 ( D) 0 32 如果表达式 y*x+十中, “*”是作为成员函数重载的运算符, “
15、+”是作为友元函数重载的运算符,采用运算符函数调用格式, 该表达式还可表示为 ( A) x.operator+(0).operator *(y); ( B) operator * (x.operator+(0),y); ( C) y.operator * (operator+(x,0) ( D) operator * (operator+(x,0),y) 33 关于类模板,下列表述不正确的是 ( A)用类模板定义一个对象时,不能省略实参 ( B)类模板只能有虚拟类型参数 ( C)类模板本身在编译中不会生成任何代码 ( D)类模板的成员函数都是模板函数 34 有以下程序 #include ios
16、tream using namespace std; static int days= 31,28,31,30,31,30,31,31,30,31,30,31 ; class date private: int month, day, year; public: date( int m, int d, int y ) month = m; day = d; year = y; date() void disp() cout year “-“ month “-“ day end1; date operator+( int day ) date dt = *this; day+= dt.day;
17、while ( day daysdt.month - 1 ) day -= days dt.month - 1 ; if ( +dt.month = 13 ) dt.month = 1; dt.year+; dt.day = day; return dt; ; int main() date d1( 6, 20, 2004 ), d2; d2: d1 + 20; d2.disp(); return 0; 执行后的输出结果是 ( A) 2004-7-10 ( B) 2004-6-20 ( C) 2004-7-20 ( D)程序编译时出错 35 若有以下程序: #include iostream
18、using namespaces std; class A public: A() A(int i) x1=i; void dispa() cout x1=“ x1 “,“; private: int x1; ; class B: public A public: B() B(int i):A(i+10) x2=i; void dispb() dispa(); cout“x2=“ x2 end1; private: int x2; ; int main() B b(2); b.dispb(): return 0; 程序运行后的输出结果是 ( A) x1=10,x2=2 ( B) x1=12,x
19、2=10 ( C) x1=12,x2=2 ( D) x1=2,x2=2 36 在一个容量为 25的循环队列中,若头指针 front=16,尾指针 rear=9,则该循环队列中共有【 】个元素。 37 在面向对象方法中,属性与操作相似的一组对象称为【 】。 38 Jackson方法是一种面向【 】的结构化方法。 39 一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集 “项目主管 ”与实体集 “项目 ”的联系属于【 】的联系。 40 数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻 辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为【 】。 41 写出执行完
20、下列代码段之后指定变量的值: bool x=true, y=false,z=false; x=x p+; cout MyClass:s endl; return 0; 运行后的输出结果是【 】。 46 有以下程序 #include iostream using namespace std; class MyClass public: MyClass(); MyClass(); Static int s; void SetValue (int val); ; int MyClass:s=0; MyClass:MyClass() s+; void M 47 有以下面程序: #include ios
21、tream using namespace std; long fib(int n) if (n 2) return(fib(n-1)+fib(n-2); else return 2; int main() cout fib(3) end1; rcturn 0; 则该程序的输出结果应该是【 】。 48 已知 int DBL(int n)return n+n; 和 long DBL(long n)return n+n)是一个函数模板的两个实例,则该函数模板的定义是【 】。 49 有以下程序 #include iostream using namespace std; class Base int
22、 a; public: Base(int x) a=x; vuid show()cout a; ; class DeriVed: public Base int b; public: Derived (int i): Base(i+1), b(i) void show()cout b; ; int main() Base b(5), *pb; Derived d(1); pb=&d; pb- show(); return 0; 运行后的打印结果是【 】。 50 有如下程序: #inClude iostream using namespace std; class AA public: vilt
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 笔试 模拟 47 答案 解析 DOC
