ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:25.73KB ,
资源ID:3431135      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3431135.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(全国计算机二级C++笔试试题解析.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

全国计算机二级C++笔试试题解析.docx

1、全国计算机二级C+笔试试题解析2010年9月全国计算机二级C+笔试试题解析一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)上述三种说法都不对答案:D解析:线性表的链式储存肯定要比顺序储存占据更多的空间(2)下列叙述中正确的是A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B

2、)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)上述三种说法都不对答案:D解析:C应该是:栈顶指针随栈中元素的变化而变化(3)软件测试的目的是A)评估软件可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错误(4)下面描述中,不属于软件危机表现的是A)软件过程不规范B)软件开发生产率低C)软件质量难以控制D)软件成本不断提高(5)软件生命周期是指A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程(6)面向对象方法中

3、,继承是指A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制(7)层次型、网状型和关系型数据库划分原则是A)记录长度B)文件的大小C)联系的复杂程度D)数据之间的联系方式(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是A)一对一B)一对多C)多对多D)多对一(9)数据库设计中反映用户对数据要求的模式是A)内模式B)概念模式C)外模式D)设计模式(10)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接B)交C)投影D)并(11)下列关于函数参数的叙述中,

4、正确的是A)在函数原型中不必声明形参类型B)函数的实参和形参共享内存空间C)函数形参的生存期与整个程序的运行期相向D)函数的形参在函数被调用时获得初始值答案:D解析:A不必声明的是形参,而不是其类型 B形参内存空间在栈上,实参则不一定 C仅仅在函数执行期内(12)下列关于对象初始化的叙述中,正确的是A)定义对象的时候不能对对象进行初始化B)定义对象之后可以显式地调用构造函数进行初始化C)定义对象时将自动调用构造函数进行初始化D)在一个类中必须显式地定义构造函数实现初始化答案:C解析:A可以而且必须对对象进行初始化,这就是为什么你自己不写构造函数系统都要硬给你整个默认的原因。B定义之后就不能再初

5、始化了。class A;int _tmain(int argc, _TCHAR* argv) A a; a.A(); return 1;如上例,编译器提示:error C2274: “函数样式转换”: 位于“.”运算符右边时非法D可以使用默认的构造函数。(13)下列关于基类和派生类关系的叙述中,正确的是A)每个类最多只能有一个直接基类B)派生类中的成员可以访问基类中的任何成员C)基类的构造函数必须在派生类的构造函数体中调用D)派生类除了继承基类的成员,还可以定义新的成员答案:D解析:A可以有多个。 B至少私有的是无论如何都访问不到的。 C恩街自动调用。(14)下列关于赋值运算符“=”重载的叙述

6、中,正确的是A)赋值运算符只能作为类的成员函数重载B)默认的赋值运算符实现了“深层复制”功能C)重载的赋值运算符函数有两个本类对象作为形参D)如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符答案:A解析:C1个形参。 D谁说不能?能的。(15)下列关于模板的叙述中,正确的是A)如果一个类中存在纯虚函数,这个类就是类模板B)函数模板不能有形式参数表C)类模板是一种参数化类型的类,是类的生成器D)类模板中不能包含构造函数答案:C解析:A那是抽象类,不是模板。 B我靠,形参都没有了么还搞啥模板啊,应该是模板参数表不能为空。 D呃这个确实能。(16)下列关于C+预定义流对象的叙述中,正确的是A

7、)cin是C+预定义的标准输入流对象B)cin是C+预定义的标准输入流类C)cout是C+预定义的标准输入流对象D)cout是C+预定义的标准输入流类答案:A解析:首先,cin,cout肯定是对象。(17)下列选项中,正确的C+标识符是A)6_groupB)group6C)age+3D)_group_6答案:D解析:不解释(18)下列选项中,正确的C+表达式是A)counter+3 B)element3+ C)a+=b D)a=b答案:C解析:不解释(19)下列循环语句中有语法错误的是A)int i; for( i=1; i10;i+)cout*;B)int i,j;for(i=1,j0;i1

8、0;i+,j+)cout*;C)int i=0;for(;i10;i+)cout *;D)for(1)cout*;答案:D解析:死循环是这样的:for(;1;)(20)下列定义语句中,错误的是A)int px*;B)char*acp10;C)char(*pac)10;D)int(*p)();答案:A解析:不解释(21)下列函数原型声明中,错误的是A)int fnction(int m,int n);B)int function(int,int);C)int function(int m=3,int n);D)int function(int &m,int&n);答案:C解析:不解释(22)若M

9、yClass为一个类,执行“MyClass a4,*p5;”语句时会自动调用该类构造函数的次数是A)2 B)5 C)4 D)9答案:C解析:不解释(23)若在表达式y/x中,“/”是作为成员函数重载的运算符,则该表达式还可以表示为A)x.Operator/(Y)B)operator/(x,Y)C)Y.operator/(x)D)operator/(y,x)答案:C解析:不解释(24)若要重载+、=、=和运算符,则必须作为类成员重载的运算符是A)+和=B)=和C)=和D)=和答案:D解析:至少+,可以这么重载:class Apublic: friend A operator +(A&,A&);f

10、riend A operator (A&,int); 借用马克思的一句话:C+认为=和运算符必须是非静态的。(25)有函数模板声明和一些变量定义如下:template T1 sum(T2,T3);double dl,d2;则下列调用中,错误的是A)sum(dl,d2);B)sum(d1,d2);C)sum(d1,d2);D)sum(d1,d2);答案:D解析:我也是第一次看到这种推演的办法,不过这道题似乎并不是考推演,因为D答案太明显了。扩展:本题提示了模板函数在实例化运行过程中,通过实参来对模板进行推演。形如下面代码段也是成立的。template double Func(V v,W w) d

11、ouble u = w + v; return u;int _tmain(int argc, _TCHAR* argv) double d1 = 1.2; double d2 = 2.2; double d = Func(1,d2); return 1;(26)有如下语句序列:char str10;cinstr;当从键盘输入”I love this game”时,str中的字符串是A)I love this gameB)I love thiC)I loveD)I答案:D解析:cin认为空格是一个结束符,这是我都没有想到的。至于你信不信,我不管,我反正是信了。 如果要获得带空格的字符串的话,用c

12、in.get() (27)有如下程序:#include#includeusing std:cout;class Pointpublic: friend double distance(const Point &p); /p距原点的距离 Point(int xx=0,int yy=0):x (xx),y(yy) /private: int x,y;double distance(const Point &p) /return sqrt(p.x*p.x+p.y*p.y);int main()Point p1(3,4);coutdistance(p1); /return 0;下列叙述中正确的是A)程

13、序编译正确B)程序编译时语句出错C)程序编译时语句出错D)程序编译时语句出错答案:C解析:sqrt调用不明确。(28)有如下程序:#includeusing namespace std;class CDpublic:CD()coutC;private:char name80;int main()CD a,*b,d2;return 0;运行时的输出结果是A) CCCC B) CCC C) CC D) C答案:B解析:*不创建自然不析构。(29)某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是A)const void Show();B)void const Show();

14、C)void Show()const;D)void Show(const);答案:C解析:常不常函数,表示在后头。(30)若已定义了类Vehicle,则下列派生类定义中,错误的是A)class Car:Vehicle/*类体略*/,B)class Car:public Car/*类体略*/;C)class Car:public Vehicle/*类体略*/;D)class Car:virtual public Vehicle/*类体略*/;答案:B解析:B这算啥啊?自己继承自己?(31)有如下程序:#includeusing namespace std;class Musicpublic: v

15、oid setTitle(char*str)strcpy(title,str);protected: char type10;private: char title20;class Jazz:public Musicpublic: void set(char* str) strcpy(type,Jazz); / strcpy(title,str); / ;下列叙述中正确的是A)程序编译正确一 B)程序编译时语句出错C)程序编译时语句出错 D)程序编译时语句和都出错答案:C解析:发现今年特别喜欢考继承的访问属性。(32)有如下程序:#includeusing namespace std;clas

16、s Instrumentpublic:virtual void Display()=0;class Piano:public Instrumentpublic:void Display()/*函数体程序略*/;int, main()Instrument s;Instrument *p=0;/.;return 0;下列叙述中正确的是A)语句“Insturment *p=0;”编译时出错B)语句“Instrument s;”编译时出错C)类Piano中的Display函数不是虚函数D)类Instrument是一个虚基类答案:B解析:虚基类声明指针不出错(所以A错),定义对象就有问题了(所以B对)。

17、Piano是虚函数,只不过没写virtual,父类写了,子类就不用写了(所以C错)。Instrument是个抽象类,不是虚基类,注意两者的区别哦!(33)有类定义如下:气class Type public:Type (int i)val = i;Type operator -(int);friend Type operator + (Type, Type );private:int val;若有对象定义Type cl;则下列语句序列中,错误的是A)Type(3) + c1; B)cl + Type(3);C)3 - cl; D)c1 - 3;答案:C解析:明年还考。(34)有如下程序:usin

18、g namespace std;#include#includeusing namespace std;int main()coutsetw(10)setfill(x)setprecision(8)left;cout12.3456793_98765;return 0;若程厚的输出是12.345679x98765xxxxx,则划线处缺失的部分是A)setw(10) B)setfill(x) C)setprecision(8) D)right答案:A解析:不解释。(35)有如下程序:#includeusing namespace std;class Bookpublic: Book(char* t

19、=)strcpy(title,t); private: char title40;class Novel:public Bookpublic: Novel(char *t=):Book(t) char* Category()constreturn 文学;int main() Book*pb; pb=new Novel(); coutCategory(); return 0;若程序运行时输出结果是“文学”,则划线处缺失的语句是A)char* Category();B)char* Category()const;C)virtual char* Category()const;D)virtual c

20、har* Category()const = 0;答案:D解析:如果是虚函数,那在Book里没有定义。二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】一【15】序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须拼写完整。(1)一个栈的初始状态为空。首先将元素5,4,3,2,1 依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为_【1】_。答案:1,D,C,B,A,2,3,4,5解析:不解释(2)在长度为n的线性表中,寻找最大项至少需要比较_【2】_次。答案:n-1(3)一棵二叉树有10个度

21、为1的结点,7个度为2的结点,则该二叉树共有_【3】_个结点。答案:17解析:分析法:7个度为2的节点,则叶子节点为8个,则还有2个不是叶子节点但是度为1的节点。所以总节点数为2+7+8=17. 利用特殊不成立则一般一定不成立的办法绘制一颗符合要求的二叉树,发现节点正好17个。(4)仅由顺序、选择(分支)和重复(循环)结构构成的程序是_【4】_程序。答案:结构化程序。解析:参见2011年3月选择题5(5)数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和_【5】_。(6)如果一个派生类只有一个直接基类,则该类的继承方式称为_【6】_继承;如果一个派生类同时有多个直接基类,则该类的继承方式称

22、为_【7】_继承。答案:单一、多重解析:我猜的。(7)运算符“+”允许重载为类成员函数,或者非成员函数。若用operator+(c1, c2)这样的表达式来使用运算符“+”,应将“+”重载为_【8】_函数。答案:友元(8)下列程序的输出是3,请填充程序中的空缺,使该行形成一个运算符重载函数的定义。#includeusing namespace std;class MyNumberint n;public:MyNumber(int k):n(k)_【9】_int()constreturn n,;int main()MyNumber numl(3);coutint(numl);return 0;答

23、案:operator解析:强制转化符重载,新鲜。(9)下列程序的输出结果是_【10】_。#includeusing namespace std;class Basepublic:int m,n;Base(int i,int j):m(i),n(j);class Derived:public Basepublic:int m,k;Derived(int i,int j):Base(i,j),m(i+1),k(j+1);int main()Derived d(1,5);coutd.md.kd.n;return 0;答案:265(10)根据程序中的注释将下列缺失部分补充完整。#includeusin

24、g namespace std;class Achar *a;public:A():a(0)A(char *aa)/把aa所指字符串复制给a所指向的存储空间a=_【11】_charstrlen(aa)+1;strcpy(a,aa);A()deletea; 答案:new(11)根据程序中的注释将下列缺失部分补充完整。class Pointint x, y; /点的x和y坐标public:Point(int xx=0,int yy=0):x(xx),y(yy);class CirclePoint center;/圆心位置int radius; /半径public: /利用cx和cy分别初始化圆心的

25、x和y坐标Circle(int cx,int cy,int r):_【12】_,radius(r)void area()cout3.14159*radius*radiusendl;答案:center(cx,cy)(12)下列程序的输出结果是_【13】_。#includeusing namespace std;class Baseint x;public:Base(int b):x(b)virtual void display()coutx;class Derived:public Baseint y;public:Derived(int d):Base(d),y(d)void display()coutdisplay();return 0;答案:122(13)一个双目运算符作为类的成员函数重载时,重载函数的参数表中有_【14】_个参数。答案:1(14)派生类中的成员函数可以直接访问基类中的公有成员和_【15】_成员。答案:保护

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1