1、计算机二级(C+)6 及答案解析(总分:1765.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:25,分数:1750.00)1.C+语言中标点符号中表示一条预处理命令开始的是( )。(分数:70.00)A.#B.;C.2.与 y=(x0? 1:x0? -1:0);的功能相同的 if 语句是( )。(分数:70.00)A.字符串 a 的长度B.字符串 b 的长度C.字符串 a 和 b 的长度之差D.字符串 a 和 b 的长度之和3.有如下程序 #includeiostreamh #define N2 #define M N+1 #define NUM 2
2、 * M+1 void main( ) int i; for(i=1;i =NUM;i+) cout i 该程序中的 for 循环执行的次数是( )。 (分数:70.00)A.5B.6C.7D.84.只能作为成员函数重载的是( )。(分数:70.00)A.=B.+C.*D.new5.下列运算符中全都可以被友元函数重载的是( )。(分数:70.00)A.0B.1C.2D.36.对于模板定义关键字 class 和 typename 说法不正确的是( )。(分数:70.00)A.程序中的 class 并不能都替换为 typenameB.class 和 typename 都可互相替换C.程序中的 ty
3、pename 都能替换为 classD.程序中的部分 class 可以替换为 typename7.对于下面的程序 ifstreamfin(c:/testtxt); if(fin) cout“ok“; else cout“wrong“; 对于 if 语句中的内容可以换为( )。 (分数:70.00)A.classB.privateC.extendsD.public8.下面程序的运行结果为( )。 #include iostreamh void swap(int a,int b) int temp; temp=a+; a=b; b=temp; void main( ) int a=2,b=3; s
4、wap(a,b); couta“,“ ,+,*,D.,+,*16.设以下变量均为 int 类型,则值不等于 7 的表达式是( )。(分数:70.00)A.字节数据来自于二进制文件B.DataOutStream 的方法 flush( )的功能是清空输出流,并把缓冲全部内容写入输出流中C.字节输入流首先要实现 Datalnput 接口D.所有的字节输出流都继承于 Writer 类17.以下程序中调用 cin 函数给变量 a 输入数值的方法是错误的,其错误原因是( )。 #includeiostreamh void main( ) int *p,*q,a,b; p=;)i=i+1;解析:选项 A)中
5、 i 自减到 1 时就会执行 break 语句跳出循环,选项 B)中 i 10 永远成立不会跳出循环,选项 C)中第一次进入循环体后 i0 永远不会跳出循环, 选项 D)中未给出结束循环的条件。21.下列程序的运行结果为( )。 # include iostreamh int i=0; classA public: A( ) i + + ; ; void main( ) A a,b3,* c; C=b; cout i endl; (分数:70.00)A.2B.3C.4 D.5解析:外部变量 i 实际上记录的是调用构造函数的次数。22.下列关于模板的说法正确的是( )。(分数:70.00)A.模
6、板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数 解析:在 C+中规定如果一个类被声明为类模板,那么其中的所有成员函数就都成为了模板函数。23.下列程序的运行结果为( )。 #includeiostream.h template class FF TT al,a2,a3; public: FF(TT b1,TT b2,TT b3)a1=b1;a2=b2;a3=b3; TT Sum( )return al+a2+a3; void main( ) FFx(int(1.1),2,3),y(int(4.2),5,6);
7、 cout A.6.1 15.2B.6 15 C.6 15.2D.6.1 15解析:本题考查模板函数的应用,表达式 int(11)和 int(42)是将 11 和 4.2 强制转换为整型。24.下面程序的运行结果为( )。 # include iostreamh void main( ) for(int a = 0,x =0;! xa = 10;a+) a+; cout a endl; (分数:70.00)A.10B.11C.12 D.0解析:在进入最后一次循环时 a=10,在循环体内执行“a+;”后 a=11,执行完 该次循环体计算 for 循环的增量部分后 a=12 小于 10,循环结束。
8、25.下列程序的运行结果是( )。 #include iostreamh class Location private: int X,Y; public: void init(int=0,in=0); Void valueX(int val) X=val; int valueX( ) return X; void valueY(int val) Y=val; int valueY( ) return Y; ; void Location:init(int initX,int initY) X=initX; Y=initY; void main( ) Location A,B; Ainit( )
9、; AvalueX(5); cout AvalueX( ) end1 AvalueY( ) end1; Binit(6,2);BvaleY(4); cout BvalueX( ) end1 BvalueY( ) end1; (分数:70.00)A.A(A * B);B.A(A B);C.A(A & B); D.A(A);解析:javaawtColor 提供了颜色的构造方法 Color(int,r,int,B) ,其中 r,g 和 b 代表了红绿蓝的 0255 之间的整数值。 26.NULL 是指 ( )。(分数:-1.00)A.0B.空格C.未知的值或无任何值 D.空字符串解析:此题属于记忆性
10、的题目,NULL 是指未知的值或无任何值。27.结构化程序设计的 3 种结构是( )。(分数:-1.00)A.顺序结构、选择结构、转移结构B.分支结构、等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构、选择结构、循环结构 解析:顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的 3 种基本结构。28.视图设计一般有 3 种设计次序,下列不属于视图设计的是( )。(分数:-1.00)A.自顶向下B.由外向内 C.由内向外D.自底向上解析:视图设计一般有 3 种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活
11、掌握,可以单独使用也可混合使用。注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后对局部视图进行集成得到概念模式。 29.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为( )。(分数:-1.00)A.PAD 图B.N-S 图 C.结构图D.数据流图解析:常见的过程设计工具有:程序流程图,N-s 图、PAD 图和 HIPO 图。其中,为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 N-S 图。30.下列选项中,不属于模块间耦合的是( )。(分数:-1.00)A.数据耦合B.同构
12、耦合C.异构耦合 D.公用耦合解析:模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成 5 级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项 C),没有这种耦合方式。31.软件工程的出现是由于( )。(分数:-1.00)A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现 D.计算机的发展解析:软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。32.下列有关数据库的描述,正确的是( )。(分数:-1.00)A
13、.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 解析:数据处理是指将数据转换成信息的过程,故选项 A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项 B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项 C)叙述错误。33.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常
14、也把这种图称为( )。(分数:-1.00)A.PAD 图B.N-S 图 C.结构图D.数据流图解析:常见的过程设计工具有:程序流程图,N-s 图、PAD 图和 HIPO 图。其中,为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 N-S 图。34.结构化程序设计的 3 种结构是( )。(分数:-1.00)A.顺序结构、选择结构、转移结构B.分支结构、等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构、选择结构、循环结构 解析:顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的 3 种基本结构。35.非空的循环单链表 hea
15、d 的尾结点(由 p 所指向),满足( )。(分数:-1.00)A.pnext=NULLB.p=NULLC.pnext=head D.p=head解析:循环链表就是将链表的最后一个结点指向链表头结点(或第一个结点),即 Pnext=head。三、填空题(每空 2 分,共 30 分)(总题数:10,分数:30.00)36.下面程序的运行结果是 1 和 2。 #includeiostreamh #define N 10 #define s(x)x * x #define f(x)(x * x) void main3 int i1,i2; i1=1000/s(N);i2=1000/f(N); cou
16、t i1 “ “ i2; (分数:3.00)填空项 1:_ (正确答案:1000)解析:对于 define 宏定义语句,系统会在编译前进行替换。本题替换过程如下: i1=1000/s(N) i1=1000/s(10) i1=1000/10*10 i1=1000 i2=1000/f(N) i2=1000/f(10) i2=1000/(10*10) i2=10 37.C+语言提供的基本控制结构可以分为 3 种类型:顺序结构、 1 和循环结构。(分数:3.00)填空项 1:_ (正确答案:选择结构)解析:顺序结构(也叫连续结构)和循环结构是经常被使用的,不过选择结构(if 和 switch)也是一种
17、重要的流程控制结构。38.表达式 xoperator+(yoperator+(0) )还可以写成 1。(分数:3.00)填空项 1:_ (正确答案:x+y+或 x+(y+))解析:因为 yoperator+(0)是对成员 y 重载运算符,所以是成员重载,在参数表中又有一个参数,是重载后缀+,即是 x+(y+)。39.假设 fin 是一个文件流对象,则关闭文件的语句是 1。(分数:3.00)填空项 1:_ (正确答案:fin)解析:如果程序没有用 close-|_|-主动关闭文件,则在文件流对象退出作用域时,被调用的析构函数会关闭对象所联系的文件。但应及时关闭,以便尽早释放占用的系统资源并将文件
18、置于更安全的状态。40.函数重载要求重载的函数必须有和原函数一样的 1。(分数:3.00)填空项 1:_ (正确答案:函数名)解析:重载函数的函数名应和原函数一致。41.已知程序的结果为 123,请填空。 #includeiostream.h templateclassT classA public: Tx,y,z; voiddisplay( )coutx“y“z; ; voidmain( ) Aintal; 1 2 3 al.display( ); (分数:3.00)填空项 1:_ (正确答案:a1.x=1;)解析:通过程序的结果知道数据类型是 int,所以调用时声明模板实参为 int 的,
19、再对 x,y,z 进行赋值。42.C+语言中的多态性是在编译时通过 1 和模板体现的,在运行时是通过 2 体现的。(分数:3.00)填空项 1:_ (正确答案:函数重载)解析:C+中的多态性是在编译时通过函数重载和模板体现的,在运行时是通过虚函数体现的。 43.在 C+语言中,访问一个对象的成员所用的运算符是 1,访问一个指针所指向的对象的成员所用的运算符是 2。(分数:3.00)填空项 1:_ (正确答案:成员选择运算符(或“))解析:本题考查的是使用对象和对象指针访问成员所使用的符号的不同,请注意它们的区别。 44.C+语言中表示双精度浮点数的关键字是 1。(分数:3.00)填空项 1:_
20、 (正确答案:double)解析:C+语言中基本的数据类型关键字,有 int,float,double。 45.将以下程序写成三目运算表达式是 1。 if(a B) max=a; else max=b; (分数:3.00)填空项 1:_ (正确答案:max=(aB) ?a:b;)解析:条件运算符要求有三个操作对象,称三目(元)运算符,它是 c+语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式 1?表达式 2:表达式 3。所以我们可以写成(aB) ?a:b,它是一个“条件表达式”。执行顺序是如果(aB) 条件为真,则条件表达式取值 a 作为整个表达式的值,否则取值 b作为整个表达式的值
21、。46.常用的黑箱测试有等价分类法、 1、因果图法和错误推测法 4 种。(分数:-1.00)填空项 1:_ (正确答案:边值分析法)解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法 4 种。47.在面向对象的程序设计中,类描述的是具有相似性质的一组 1。(分数:-1.00)填空项 1:_ (正确答案:对象)解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。48.测试的目的是暴露错误,评价程序的可靠性;而 1 的目的是发现错误的位置并改正错误。(分数:-1.00)
22、填空项 1:_ (正确答案:调试)解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。 49.当线性表采用顺序存储结构实现存储时,其主要特点是 1。(分数:-1.00)填空项 1:_ (正确答案:逻辑结构中相邻的结点在存储结构中仍相邻)解析:顺序存储结构的主要特点是数据元素按线性表的逻辑次序,依次存放在一组地址连续的存储单元中。在存储单元中各元素的物理位置和逻辑结构中各结点间的相邻关系是一致的。50.关系数据库的关系演算语言是以 1 为基础的 DML 语言。(分数:-1.00)填空项 1:_ (正确答案:谓词演算)解析:关系数据库中的关系演算包括元组关系演算和域关系演算。二者都是由原子公式组成的公式。而这些关系演算都是以数理逻辑中的谓词演算为基础的。