欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    全国计算机等级考试二级C++历年真题及答案.doc

    • 资源ID:17479003       资源大小:362.50KB        全文页数:61页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    全国计算机等级考试二级C++历年真题及答案.doc

    【精品文档】如有侵权,请联系网站删除,仅供学习与交流全国计算机等级考试二级C+历年真题及答案.精品文档. 公共基础知识及C+语言程序设计 (考试时间90分钟,满分100)分)一、选择题(1)(35)每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1) 下面叙述正确的是 A)算法的执行效率与数据的存储结构无关 B)算法的空间复杂度是指算法程序中指令(或语句)的条数 C)算法的有穷性是指算法必须能在执行有限个步骤之后终止 D)以上三种描述都不对(2)以下数据结构中不属于线性数据结构的是 A)队列 B)线性表 C)二叉树 D)栈(3)在一棵二叉树上第5层的结点数最多是 A)8 B)16 C)32 D)15(4)下面描述中,符合结构化程序设计风格的是 A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B)模块只有一个入口,可以有多个出口 C)注重提高程序的执行效率 D)不使用goto语句(5)下面概念中,不属于面向对象方法的是 A)对象 B)继承 C)类 D)过程调用(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是 A)可行性分析 B)需求分析 C)详细设计 D)程序编码(7)在软件开发中,下面任务不属于设计阶段的是 A)数据结构设计 B)给出系统模块结构 C)定义模块算法 D)定义需求并建立系统模型(8)数据库系统的核心是 A)数据模型 C)软件工具B)数据库管理系统 D)数据库(9)下列叙述中正确的是 A)数据库系统是一个独立的系统,不需要操作系统的支持 B)数据库设计是指设计数据库管理系统 C)数据库技术的根本目标是要解决数据共享的问题 D)数据库系统中,数据的物理结构必须与逻辑结构一致(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是A)内模式 B)外模式 C)概念模式 D)逻辑模式(11)关于面向对象的程序设计方法,下列说法正确的是 A)“封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理 B)“多态性”指的是对象的状态会根据运行时要求自动变化 C)基类的私有成员在派生类的对象中不可访问,也不占内存空间 D)在面向对象的程序设计中,结构化程序设计方法仍有着重要作用(12)判断字符型变量ch是否为大写英文字母,应使用表达式A ) ch>='A' & ch<='Z' B ) ch<='A' |ch>='Z'C ) 'A'<=ch<='Z' D ) ch>='A' && ch<='Z'(13)已知下列语句中的x和y都是int型变量,其中错误的语句A ) x=y+; B ) x=+y; C ) (x+y)+; D ) +x=y;(14)执行语句序列int n;cin >> n;switch(n) case 1: case 2: cout << '1' case 3: case 4: cout << '2' break;default: cout << '3'时,若键盘输入1,则屏幕显示A)1 B)2 C)3 D)12(15)下列程序的输出结果是#include <iostream>using namespace std;int main() char a = "Hello, World" char *ptr = a; while (*ptr) if (*ptr >= 'a' && *ptr <= 'z') cout << char(*ptr + 'A' -'a'); else cout << *ptr; ptr+; return 0;A ) HELLO, WORLD B ) Hello, WorldC ) hELLO, wORLD D ) hello, world(16)已知:int m=10;在下列定义引用的语句中,正确的是A ) int &x=m; B )int y=&m; C )int &z; D ) int &t=&m;(17)下列函数原型声明中错误的是A ) void Fun(int x=0, int y=0); B ) void Fun(int x, int y);C ) void Fun(int x, int y=0);D ) void Fun(int x=0, int y);(18)已知程序中已经定义了函数test,其原型是int test(int, int, int);,则下列重载形式中正确的是A ) char test(int,int,int);B ) double test(int,int,double);C ) int test(int,int,int=0);D ) float test(int,int,float=3.5F);(19)有以下程序#include<iostream>int i = 0;void fun() static int i = 1; std:cout<<i+<<','std:cout<<i<<','int main() fun(); fun(); return 0;程序执行后的输出结果是A)1,2,1,2, B)1,2,2,3, C)2,0,3,0, D)1,0,2,0,(20)已知函数f的原型是:void f(int *a, long &b); 变量v1、v2的定义是:int v1;long v2;,正确的调用语句是A) f(v1, &v2); B) f(v1, v2); C) f(&v1, v2); D) f(&v1, &v2);(21)有以下类定义class MyClasspublic: MyClass()cout<<1;则执行语句MyClass a, b2, *p2;后,程序的输出结果是A)11 B)111 C)1111 D)11111(22)关于友元,下列说法错误的是A)如果类A是类B的友元,那么类B也是类A的友元B)如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C)友元关系不能被继承D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元(23)关于动态存储分配,下列说法正确的是A)new和delete是C+语言中专门用于动态内存分配和释放的函数B)动态分配的内存空间也可以被初始化C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new(24)有以下程序#include<iostream>using namespace std;class MyClasspublic:MyClass(int n)number = n;/拷贝构造函数MyClass(MyClass &other) number=other.number;MyClass()private: int number;MyClass fun(MyClass p)MyClass temp(p);return temp;int main()MyClass obj1(10), obj2(0);MyClass obj3(obj1);obj2=fun(obj3);return 0;程序执行时,MyClass类的拷贝构造函数被调用的次数是A)5 B)4 C)3 D)2(25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的 A)公有成员和私有成员 B)私有成员和保护成员 C)公有成员和保护成员 D)私有成员、保护成员和公有成员(26)在C+中用来实现运行时多态性的是 A)重载函数 B)析构函数 C)构造函数 D)虚函数(27)一个类可以同时继承多个类,称为多继承。下列关于多继承和虚基类的表述中,错误的是 A)每个派生类的构造函数都要为虚基类构造函数提供实参 B)多继承时有可能出现对基类成员访问的二义性问题 C)使用虚基类可以解决二义性问题并实现运行时的多态性 D)建立最派生类对象时,虚基类的构造函数会首先被调用(28)在一个类体的下列声明中,正确的纯虚函数声明是A) virtual void vf()=0; B) void vf(int)=0;C) virtual int vf(int); D) virtual void vf(int) (29)在下面的运算符重载函数的原型中,错误的是A) Volume operator - (double, double);B) double Volume:operator- (double);C) Volume Volume: :operator - (Volume);D) Volume operator - (Volume, Volume);(30)下列是模板声明的开始部分,其中正确的是A) template<T>B) template<class T1,T2>C) template<class T1, class T2>D) template<class T1;class T2>(31)执行语句序列ofstream outfile("DATA.DAT");if(.) cout << "OK" else cout << "FAIL"后,如果文件打开成功显示“OK”,否则就显示“F厶n。”。由此可知,上面if语句的处的表达式应是A )outfile.fail() 或 outfile B )outfile.good() 或 !outfileC )outfile.good() 或 outfile D )outfile.fail() 或 !outfile(32)C+流中重载的运算符>>是一个( ) A)用于输出操作的非成员函数 B)用于输入操作的非成员函数 C)用于输出操作的成员函数 D)用于输入操作的成员函数(33)有以下类定义class Point public: Point(int x = 0, int y = 0) _.x = x; _.y = y; void Move(int xOff, int yOff) _x += xOff; _.y += yOff; void Print() const cout << '(' << _x << ',' << _y << ')' << endl; private: int _x, _y;下列语句中会发生编译错误的是A) Point pt; pt.Print();B) const Point pt; pt.Print();C) Point pt; pt.Move(l, 2); D) const Point pt; pt.Move(l, 2);(34)有以下类定义class MyClassprivate: int id; char gender, char *phone;public: MyClass():id(0),gender('#'),phone(NULL) MyClass(int no, char ge='#', char *ph= NULl.) id=no;gende=ge;phone=ph; 下列类对象定义语句中错误的是A) MyClass myObj;B) MyClass myObj(11, "13301111155");C) MyClass myObj(12, 'm');D) MyClass myObj(12);(35)有以下程序#include <iostream>using namespace std;class Complexpublic: Complex(double r =0, double i =0):re(r), im(i) double real() const return re; double imag() const return im; Complex operator +(Complex c) const return Complex(re+c.re, im+c.im); private: double re, im;int main() Complex a = Complex(l, 1) + Complex(5);cout << a.real() << '+' << a.imag() <<'i' << endl;return 0;程序执行后的输出结果是A) 6+6i B) 6+1i C) 1+6i D) 1+1i二、填空题(每空2分,共30分) 请将每一个空的正确答案写在答题卡1-15序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须拼写完整。(1)算法的复杂度主要包括 1 复杂度和空间复杂度。(2)数据的逻辑结构在计算机存储空间中的存放形式称为数据的 2 。(3)若按功能划分,软件测试的方法通常分为白盒测试方法和 3 测试方法。(4)如果一个工人可管理多个设备,而一个设备只被一个工人管理,则实体“工人”与实体“设备”之间存在 4 的联系。(5)关系数据库管理系统能实现的专门关系运算包括选择、连接和 5 。(6)设有定义语句:int a=12;,则表达式a*=2+3的运算结果是 6 。(7)从实现的角度划分,C+所支持的两种多态性分别是 7 时的多态性和运行时的多态性。(8)将个函数声明为一个类的友元函数必须使用关键字 8 。(9)请按下面注释的提示,将类B的构造函数定义补充完整。class A int a;public: A(int aa=0) a=aa; class B: public A int b; A c;public:/用aa初始化基类A,用aa+1初始化类对象成员cB(int aa): 9 b=aa+2; (10)下列程序的输出结果是 10 。#include <iostream>using namespace std;int main() int i = 5; int &r = i; r = 7; cout << i << endl; return 0;(11)下列程序的输出结果是 11 。#include <iostream>using namespace std;class Test public: Test() cnt+; Test() cnt-; static int Count() return cnt;private: static int cnt;int Test:cnt = 0;int main() cout << Test:Count0 <<' ' Test tl, t2; Test* pT3 = new Test; Test* pT4 = new Test; cout << Test:Count0 <<' ' delete pT4; delete pT3; cout << Test:Count() << endl;return 0;(12)下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!=n*(n-1)*.*2*1)unsigned fact(unsigned n)if ( n<= 1) return 1; return 12 ;(13)下列程序的输出结果是 13 。#include <iostream>using namespace std;template<tytename T>T fun(T a, T b) return (a<=b)?:b;int main() cout << fun(3, 6) << ',' << fun (3.14F, 6.28F) << endl; return 0;(14)与成员访问表达式p->name等价的表达式是 14 。(15)下列程序的输出结果是 15 。#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 base public: deriveA(int x):base(x) void set(mt 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 dl(1); deriveB d2(3); base *pbase; pbase = &dl; pbase->aet(1); pbase = &d2; pbase->set(2); return 0;2004年9月全国计算机等级考试二级笔试试卷公共基础知识及C+语言程序设计答案及评分标准选择题(1)(35)每小题2分,共70分)(1) C (2) C (3) B (4) A (5) D (6) B (7) D (8) B (9) C (10)A (11)D (12)D (13)C (14)D (15)A (16)A (17)D (18)B (19)D (20)C (21)B (22)A (23)B (24)B (25)C (26)D (27)C (28)A (29)A (30)C (31)C (32)B (33)D (34)B (35)B二、填空题(每空2分,共30分) (1)1 时间 (2)2 存储结构 或 物理结构 或 物理存储结构 (3)3 黑盒 或 黑箱 (4)4 一对多 或 1对多 或 I:M 或 I:N(其中M、N大小写均可) (5)5 投影 (6)6 60 (7)7 编译 (8)8 friend (9)9 A(aa),c(aa+1) 或 c(aa+1),A(aa) (10)10 7 (11)11 042 (12)12 n*fact(n-1) (13)13 3,3.14 (14)14 (*p).name (15)15 252010年3月计算机等级考试二级C+笔试试题一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n log2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系R得到关系T的操作是A)选择B)投影C)交D)并(11)下列关于函数的描述中,错误的是A)函数可以没有返回值B)函数可以没有参数C)函数可以是一个类的成员D)函数不能被定义为模板(12)若MyClass是一个类名,且有如下语句序列MyClass c1,*c2;MyClass *c3=new MyClass;MyClass &c4=c1;上面的语句序列所定义的类对象的个数是A)1B)2C)3D)4(13)下列关于继承方式的描述中,错误的是A)如果不显式地指定继承方式,缺省的继承方式是私有(private)B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员(14)将前缀运算符“-”重载为非成员函数,下列原型中,能正确用于类中说明的是A)Decr& operator -(int);B)Decr operator -( Decr&,int);C)friend Decr& operator -(Decr&);D)frlend Decr operator -(Decr&,int);(15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列MyTempp2;MyTempp32;编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是A)1B)2C)3D)0(16)在C+中,cin是个A)类B)对象C)模板D)函数(17)在下列字符中,不允许作为C+标识符的是A)bB)BC)_D)2(18)下列叙述中,错误的是A)false是一个逻辑型常量B)"b"是一个字符型常量C)365是一个int常量D)3.1415926是一个double常量(19)若x和y是程序中的两个整型变量,则下列if语句中正确的是A)if(x=0) y=1; else y=2;B)if(x=0) then y=1 else y=2;C)if(x=0) y=1 else y=2;D)if x=0 y=1; else y=2;(20)要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的是A)int x3=0,0,0;B)int x=0;C)static int x3=0;D)int x=0,0,0;(21)关于函数中的<返回类型>,下列表述中错误的是A)<返回类型>中有可能包含关键字intB)<返回类型>中有可能包含自定义标识符C)<返回类型>中有可能包含字符*D)<返回类型>中可能包含(22)要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是A)MyClass p=MyClass;B)MyClass p=new MyClass;C)MyClass &p=new MyClass;D) MyClass a,&p=a;(23)有如下两个类定义class XXprivate:double x1;protected:double x2;public:double x3;class YY:protected XXprivate:double y1;protected:double y2;public:double y3;在类YY中保护成员变量的个数是A)1B)2C)3D)4(24)下列关于运算符重载的描述中,错误的是A)可以通过运算符重载在C+中创建新的运算符B)赋值运算符只能重载为成员函数C)运算符函数重载为类的成员函数时,第一操作数是该类对象D)重载类型转换运算符时不需要声明返回类型(25)下列关于类模板的描述中,错误的是A)类模板的成员函数都是模板函数B)可以为类模板参数设置默认值C)类模板描述了一组类D)类模板中只允许有一个类型参数(26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是A)setprecisionB)setwC)setfillD)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是int fun1();class Testpublic:int fun2();friend int fun3();static int fun4();A)fun1B)fun2C)fun3D)fun4(28)有如下程序#include using namespace std;class Testpublic:Test() Test(const Test &t) cout<<1;Test fun(Test &u) Test t=u; return t;int main()Test x,y; x=fun(y); return 0;运行这个程序的输出结果是A)无输出B)1C)11D)111(29)有如下程序#include using namespace std;class Apublic:A(int i=0):r1(i) void print() cout<<'E<<R1<<'-'< p> void print() const cout<<'C'<<R1*R1<<'-'< p> void print(int x) cout <<'P'<<R1*R1*R1<<'-'< p> private:int r1;int main() A a1;const A a2(4);a1.print(2);a1.print();return 0;运行时的输出结果是A)P8-E4B)P8-C16-C)P0-E4-D)P0-C16-(30)下列代码声明了3个类class Person;class Student:public Person;class Undergraduate:Student;下列关于这些类之间关系的描述中,错误的是A)类Person是类Undergraduate的基类B)类Undergraduate从类Student公有继承C)类Student是类Person的派生类D)类Undergraduate是类Person的派生类(31)有如下程序#include using namespace std;Class Basepublic:Base(int x=0):valB(x) cout<<VALB;< p> Base() cout<<VALB;< p> private:int valB;class Derived:public Basepublic:Derived(int x=0,int y=0):Base(x),valD(y)cout<<VALD;< p> Derived() cout<<VALD;< p> private:int valD;int main()Derived obj12(2,3);retuen 0;运行时的输出结果是A)2332B)2323C)3232D)3223(32)下面是类Shape的定义:class Shapepublic:virtual void Draw()=0;下列关于Shape类的描述中,正确的是A)类Shape是虚基类B)类Shape是抽象类C)类Shape中的Draw函数声明有误D)语句“Shape s;”能够建立Shape的一个对象s(33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是A)MyClock operator + (MyClock,long);B)MyClock operator + (MyClock,MyClock);C)MyClock operator + (long,long);D)MyClock operator + (long,MyClock);(34)打开文件时可单独或组合使用下列文件打开模式ios_base:app ios_base:binaryios_base:in ios_base:out若要以二进制读方式打开一个文件,需使用的文件打开模式为A)B)C)D)(35)有如下程序:#include using namespace std;Class Bpublic:B(int xx):x(xx) +cout; x+=10;virtual void show() constcout<<COUNT<<'_'<<X<<ENDL;< p> protected:static int count;private:int x;class D:public Bpublic:D(int xx,int yy):B(xx),y(yy) +count; y+=100;virtual void show() constcout<<COUNT<<'_'<<Y<<ENDL;< p> private:int y;int B:count=0;int main()B *ptr=new D(10,20);ptr->show();delete ptr;return 0;运行时的输出结果是A)1_120B)2_120C)1_20D)2_20二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【l】【15】序号的横线上,答在试卷上不得分。(1)一个队列的初始状

    注意事项

    本文(全国计算机等级考试二级C++历年真题及答案.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开