试题 百分网手机站

计算机二级C++模拟试题二答案及解析

时间:2020-11-07 11:06:54 试题 我要投稿

2015年计算机二级C++模拟试题(二)答案及解析

  一、选择题

2015年计算机二级C++模拟试题(二)答案及解析

  (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

  解析: a[i][j]元素之前有i行元素(每行有m个元素),在a[i][j]的前面还有j个元素,因此a[i][j]之前共有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("test.dat")② ifstream fin;fin.open("test.dat");。

  (26)B

  解析: C++中纯虚函数的定义与虚函数的关键字一样,在函数末尾要加上"=0"。

  (27)A

  解析: 首先,当i=0时,数组中的位置是a[0][0]=1,当然,如果用排除法的话,就不用考虑后面的循环了,因为在4个选项中,第1个数为1的选项只有A)。本题执行第2次循环时,i的值为1,则cout函数中的数组指向为a[1][1]=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循环,但要分清楚,第一个是单独的给三个元素赋值,赋完值后三个a[0]=0,a[1]=1,a[2]=2;后面的两个for是嵌套循环,对数组元素的赋值,但由于k=2,初值已定for里的条件是小于k,所以不管怎么处理都影响不到a[2],故答案为2。

  二、填空题

  (1)边值分析法

  解析: 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法4种。

  (2)调试

  解析: 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。

  (3)完善性

  解析: 软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。

  (4)消息

  解析: 在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。

  (5)升序排列和降序排列

  解析: ASC表示升序排列,DESC表示降序排列,多用在索引定义和SELECT语句中的ORDER子句中。

  (6)double

  解析: C++语言中基本的数据类型关键字,有int, float, double。

  (7)0

  解析: 在赋值运算中,如果表达式中变量和常量的数据类型不一致就会自动进行类型转换。系统会计算1.0/c2,由于1.0是实型,所以均先转化为双精度型0.500000,再与c1转化后的双精度数相乘得0.500000。但其要赋值给整型变量c3,故要进行强制转换,得c3的值为0。

  (8)707070

  解析: 本题考查对if语句的掌握,当输入70以后,程序中的3个if语句都成立,所以分别输出70。

  (9)abc

  解析: 本题中,给数组s中的第4个元素s[3]赋以′\0′,则s数组中只有前3个元素有效,输出结果为abc。

  (10)3,2,2,3

  解析: main函数和fun函数中的变量x和y都是局部变量,它们各自独立,在本题fun函数中:接入实参的值传递: x=2,y=3,执行:x=x+y后,x=5,y=3,执行:x=x-y后,x=5,y=3,执行:y=x-y后,x=3,y=2。所以,第一次执行cout显示结果是3和2返回到main函数中,输出main函数中的x和y的值2,3。

  (11)初始化

  解析: C++语言中常数据成员和静态数据成员都要进行初始化,只是初始化的方法不一样。

  (12)构造函数

  解析: 构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。

  (13)x+y++`x+(y++)

  解析: 因为y.operator++(0)是对成员y重载运算符,所以是成员重载,在参数表中又有一个参数,所以是重载后缀++,所以是x+(y++)。

  (14)iostream.h

  解析: iostream.h是与输入输出有关的类文件。

  (15)类

  解析: C++语言中的构造函数就是在类中定义的和类名一样的函数。

【2015年计算机二级C++模拟试题(二)答案及解析】相关文章:

1.计算机二级c++试题及答案

2.2015计算机二级《JAVA》全真模拟试题及答案

3.计算机二级C++强化试题及答案

4.计算机二级考试C++试题及答案

5.计算机二级《C++》上机试题及答案

6.计算机二级C++程序题及答案解析

7.2017年计算机二级JAVA考试模拟试题及答案

8.2017年计算机二级考试java模拟试题及答案

9.计算机二级C++考试试题及答案