全国计算机等级考试 二级C++ 笔试模拟试题(一)及答案分.doc_第1页
全国计算机等级考试 二级C++ 笔试模拟试题(一)及答案分.doc_第2页
全国计算机等级考试 二级C++ 笔试模拟试题(一)及答案分.doc_第3页
全国计算机等级考试 二级C++ 笔试模拟试题(一)及答案分.doc_第4页
全国计算机等级考试 二级C++ 笔试模拟试题(一)及答案分.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试 二级C+ 笔试模拟试题(一)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)循环链表的主要优点是A)不再需要头指针了B)从表中任一结点出发都能访问到整个链表C)在进行插入、删除运算时,能更好的保证链表不断开D)已知某个结点的位置后,能够容易的找到它的直接前件 (2)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是A)ABCEDB)DCBEAC)DBCEAD)CDABE (3)n个顶点的强连通图的边数至少有A)n-1B)n(n-1)C)nD)n+1(4)在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的A)安全性B)一致性C)可理解性D)合理性(5)模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的A)抽象和信息隐蔽B)局部化和封装化C)内聚性和耦合性D)激活机制和控制方法(6)软件开发的结构化生命周期方法将软件生命周期划分成A)定义、开发、运行维护B)设计阶段、编程阶段、测试阶段C)总体设计、详细设计、编程调试D)需求分析、功能定义、系统设计(7)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是 A)路径的集合B)循环的集合C)目标的集合D)地址的集合 (8)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有A)特定的数据模型B)数据无冗余C)数据可共享D)专门的数据管理软件(9)数据库设计包括两个方面的设计内容,它们是A)概念设计和逻辑设计B)模式设计和内模式设计C)内模式设计和物理设计D)结构特性设计和行为特性设计(10)实体是信息世界中广泛使用的一个术语,它用于表示A)有生命的事物B)无生命的事物C)实际存在的事物D)一切事物(11)以下都是C+语言标识符的是A)dsfa,df4,f$B)huhj,a,k2C)3k,h,j_9D)_ok,jk,k8(12)C+语言中用于定义类的关键字是A)classB)structC)defaultD)sizeof(13)设以下变量均为int类型,则值不等于7的表达式是A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)(14)以下程序的输出结果是#includevoid main() int a=21,b=11;cout 0?1:x0)y=1;else if(x0)y=1;else if(x0)y=1; else if(x=0)y=0; else y=-1;D)y=0;if(x=0)if(x0)y=1;else y=-1;(17)若二维数组a有m列,则计算任一元素aij在数组中相对位置的公式为 (假设a00位于数组的第一个位置上)A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1(18)下面程序段的运行结果是#includevoid main() char *s=abcde;s+=2;cout &s;A)cdeB)字符cC)字符c的地址D)无确定的输出结果(19)下面叙述不正确的是A)派生类一般都用公有派生B)对基类成员的访问必须是无两义性的C)赋值兼容规则也适用于多重继承的组合D)基类的公有成员在派生类中仍然是公有的(20)下面程序应能对两个整型变量的值进行交换。以下正确的说法是#includevoid swap(int p,int q) int t;t=p;p=q;q=t;void main() int a=10,b=20;cout a b;swap(&a,&b);cout a b;A)该程序完全正确B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可D)以上说法都不对(21)关于友元的概念错误的是A)友元函数没有this指针B)调用友元函数时必须在它的实参中给出要访问的对象C)一个类的成员函数也可以作为另一个类的友元函数D)只能在类的公有段声明友元(22)关于抽象类下面说法正确的是A)抽象类就是其中有函数定义但没有实现的类B)抽象类是可以被实例化的C)派生类不能成为抽象类D)抽象类的子类必须实现父类中的纯虚函数(23)下面程序的结果是#includeclass test private:int num;public:test();int getint()return num;test();test : test() num =0;test:test() coutDestructor is activeendl;void main() test x3;coutExiting mainendl;A)Exiting mainDestructor is activeDestructor is activeDestructor is activeB)Exiting mainDestructor is activeDestructor is activeC)Exiting mainDestructor is activeD)Exiting main(24)如果表达式-x+y中,-是作为成员函数重载的, +是作为成员函数重载的,则该表达式还可为A)y.operator+(x.operator-(0)B)y.operator+(x.operator-()C)y.operator+(operator-(x,0)D)operator+(x.operator-()(25)下列语句不能够用于打开C根目录下文件test.txt的语句是A)ifstream fin; fin.open(C:test.txt);B)ifstream fin(C:test.txt);C)A)和B)D)ifstream fin; fin(C:test.txt);(26)以下哪个基类中的成员函数表示纯虚函数?A)virtual void vf (int)B)void vf (int)=0C)virtual void vf(=0)D)virtual void yf(int) (27)下面程序输出的结果是#includevoid main() int i;int a33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)cout aii ;A)1 5 9B)7 5 3C)3 5 7D)5 9 1(28)派生类继承基类的方式有A)publicB)privateC)protectedD)以上都对(29)下列程序的运行结果为#includeclass Location protected:int X, Y;public:void SetX(int myx)X=myx;void SetY(int myy)Y=myy;void showxy()cout X= X Y= Y endl;class Rectangle : public Location private:int H, W;public:void SetH(int myh)H=myh;void SetW(int myw)W=myw;void show() cout X= X Y= Y H= H W= W endl;void main() Rectangle r1;r1.SetX (3);r1.SetY (5);r1.SetH (4);r1.SetW (6);r1.showxy();r1.show();A)X=3 Y=5 X=3 Y=5 H=4 W=6B)X=3 Y=5 X=3 Y=5 H=3 W=6C)X=3 Y=5 X=3 Y=4 H=4 W=6D)X=3 Y=5 X=3 Y=3 H=4 W=6 (30)有以下程序#includevoid ss(char *s,char t) while(*s) if(*s=t)*s=t-a+A;s+;void main() char str1100=abcddfefdbd,c=d;ss(str1,c); cout str1;程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd(31)有以下程序#includevoid main() int a=5,b=0,c=0;if(a=b+c)cout *endl;else cout $1;i-)for(j=0;ji;j+)A)20B)261C)15D)25(34)对于下面的程序,说法正确的是#includevoid main() int x=3,y=4,z=2;if(x=y+z)cout x=y+z;else cout x!=y+z;A)不能通过编译B)输出6C)输出x!=y+zD)输出x=y+z(35)下列程序的输出结果是#includevoid main() int a3,i,j,k=2;for(i=0;i3;i+)ai=i;for(i=0;ik;i+)for(j=0;jk;j+)aj=ai;cout a2;A)2B)3C)1D)0二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。 (1)常用的黑箱测试有等价分类法、 1 、因果图法和错误推测法4种。(2)测试的目的是暴露错误,评价程序的可靠性;而 2 的目的是发现错误的位置并改正错误。 (3)软件维护活动包括以下几类:改正性维护、适应性维护、 3 维护和预防性维护。 (4)在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为 4 。(5)关键字ASC和DESC分别表示 5 的含义。 (6)C+语言中表示双精度浮点数的关键字是 6 。 (7)执行下列语句后,c3中的值为 7 int c1=1,c2=2,c3;c3=1.0/c2*c1;(8)若从键盘输入70,则以下程序输出的结果是 8 。#includevoid main() int a;cin a;if(a50)cout 40)cout 30)cout a; (9)以下程序的输出结果是 9 。#includevoid main() char s=abcdef;s3=0;cout s endl;(10)以下程序运行后的输出结果是 10 。#includevoid fun(int x,int y) x=x+y;y=x-y;x=x-y;cout x , y ,; void main() int x=2,y=3;fun(x,y);cout x , y endl;(11)常数据成员和静态数据成员在使用前共同的要求是要进行 11 。(12)在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是 12 。(13)表达式x.operator+(y.operator+(0)还可以写成 13 。(14)要采用cin,cout进行输入输出时,必须包含的头文件是 14 。(15)构造函数是和 15 同名的函数。参考答案及分析一、选择题 (1)B 解析: 循环链表就是将单向链表中最后一个结点的指针指向头结点,使整个链表构成一个环形,这样的结构使得从表中的任一结点出发都能访问到整个链表。(2)B 解析: 栈操作原则上后进先出,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。(3)C 解析: 在有向图中,若任意两个顶点都连通,则称该图是强连通图,这样的有向图的形状是环状,因而至少应有n条边。(4)C 解析: 结构化程序设计方法设计出的程序具有明显的优点。其一,程序易于理解、使用和维护;其二,提交了编程工作的效率,降低了软件开发成本。其中,人们更重视前者。(5)C 解析: 模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。 (6)A 解析: 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护3个阶段。(7)A 解析: 软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。 (8)A 解析: 在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。 (9)A 解析: 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的设计内容。(10)C 解析: 实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等。因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在的,而且可以相互区别。(11)D 解析: C+语言标识符只能由数字,字母和下划线组成,并且只能以字母和下划线为开头。(12)A 解析: C+中类定义的关键字是class。class不能大写。(13)C 解析: C+语言中逗号,也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。其一般形式为:表达式1, 表达式2,其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3,表达式n,它的值为表达式n的值。(14)B 解析: 自减运算符位于变量之前时,先使变量的值减1,再进行运算。(15)A 解析: while是先判断条件再执行语句;do-while则是先执行一次语句再判断条件,从而决定是否继续再执行循环体中的语句,这正是二者主要区别。(16)A 解析: 条件运算符要求有三个操作对象,它是C+语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式3,先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。本题中用了两次三目运算符。 (17)A 解析: aij元素之前有i行元素(每行有m个元素),在aij的前面还有j个元素,因此aij之前共有i*m+j个元素。(18)C 解析: 对于字符串指针,其保留的是整个串的首地址,即为第一个字符的起始地址,当该指针做算术运算时,就是该指针根据其类型向后移动相应的存储空间。(19)D 解析: C+语言中如果基类的成员是公有的,它被继承后在子类中该成员可能是公有的,也可能不是,主要看继承的权限。(20)D 解析: 本题应该把swap()函数改成这样:swap(int *p,int *q)int t; t=*p;*p=*q;*q=t;执行程序时,先将a的地址传递给指针变量p,b的地址传递给指针变量q,然后将*p(a的值)的值传递给t,将*q(b的值)传递给*p,将t的值传递给*q,从而将a值和b值互换。(21)D 解析: C+中的友元可以在一个类中的任何位置声明,不一定必须在公有段,友元没有自己的this指针,调用友元函数时必须在它的实参中给出要访问的对象,并且一个类的成员函数是可以作为另一个类的友元函数的。(22)D 解析: C+语言中的抽象类就是类中至少有一个纯虚函数的类,抽象类不能被实例化,继承抽象类的类必须实现抽象类中的纯虚函数。(23)A 解析: C+语言中析构函数是在程序退出不用该类的对象时进行调用。(24)B 解析: C+语言中用成员函数重载-x为:x. operator-(),用成员函数重载x+y为:x. operator+(y)。(25)D 解析: C+语言中打开文件有两种方式 ifstream fin(testdat) ifstream fin;finopen(testdat);。(26)B 解析: C+中纯虚函数的定义与虚函数的关键字一样,在函数末尾要加上=0。(27)A 解析: 首先,当i=0时,数组中的位置是a00=1,当然,如果用排除法的话,就不用考虑后面的循环了,因为在4个选项中,第1个数为1的选项只有A)。本题执行第2次循环时,i的值为1,则cout函数中的数组指向为a11=5,依次循环,可求出答案。 (28)D 解析: 派生类继承基类的方式有3种:public,private和protected,常用的是public.(29)A 解析: 本题是一道简单的成员函数应用题,考生只要按着主函数中生成的类Rectangle的对象r1进行成员函数的调用即可得到答案。(30)B 解析: 在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式相类似。C+语言使字符型数据和整型数据之间可以通用。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s+相当于s=s+1,即让s指向数组中的下一个元素。 (31)D 解析: 解答本题时,先判断if语句,因为a=b+c为零,则执行else语句。 (32)A 解析: 选项B)中a在运算前未赋初值,在C+语言里变量在运算前必须赋初值;选项C)中的模运算符%两侧均应为整型数据;选项D)应改为y=(float)i。(33)A 解析: 本题中第1个for循环执行5次后结束,第2个for循环执行5次。第2个for循环中第1次执行了6次,第2次执行了5次,第3次执行了4次,第4次执行了3次,第5次执行了2次,共20次。(34)D 解析: 解答本题关键是要理解if后面的括号里的是赋值语句而并非关系判断,赋完值后x不等于零,C+语言里非零都作真处理,所以输出结果为x=y+z,故答案为选项D),注意=与=的区别。 (35)A 解析: 本题里有三个for循环,但要分清楚,第一个是单独的给三个元素赋值,赋完值后三个a0=0,a1=1,a2=2;后面的两个for是嵌套循环,对数组元素的赋值,但由于k=2,初值已定for里的条件是小于k,所以不管怎么处理都影响不到a2,故答案为2。二、填空题 (1)边值分析法 解析: 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法4种。(2)调试 解析: 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。(3)完善性 解析: 软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。(4)消息 解析: 在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论