国家二级C++机试(选择题)模拟试卷478
选择题
1.有如下类定义:
class MyClass
{
public:
private:
int data;
};
若要为MyClass类重载流输入运算符“>>”,使得程序中可以“cin>>obj;”的形式改变MyClass类的对象obj中数据成员data的值,则横线处的声明语句应为( )。(A)
A. friend istream&operator>>(istream&is,MyClass&a;
B. friend istream&operator>>(istream&is,MyClassa);
C. istream&operator>>(istream&is,MyClass&a;
D. istream&operator>>(istream&is,MyClassa;
解析:本题考查重载流运算符“>>”,根据重载规则,本题答案为A。
2.下列叙述中正确的是( )。(A)
A. 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化
B. 循环队列中的元素个数随队头指针的变化而动态变化
C. 循环队列中的元素个数随队尾指针的变化而动态变化
D. 循环队列中的元素个数不会变化
解析:所谓循环结构就是将队列存储空间的最后一个位置绕到第一个位置上,形成逻辑上的环状空间,循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针from指向队头元素的前一个位置,因此,队列中的元素数等于从队头指针舶nt指向的后一个位置与队尾指针rear指向位置之间的元素数量。
3.执行下列语句段后,输出字符“*”的个数是( )。
for(int i=50;i>1:一i)cout<<‘*’;(B)
A. 48
B. 49
C. 50
D. 51
解析:此题考查的是for循环语句。Fol循环中 i从50开始逐渐递减,直到i:1时退出,而此时没有机会执行到循环体,因此一共执行了49次循环体,所以最终输出的是49个字符‘*’。
4.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。(C)
A. O(n)
B. O(n2)
C. O(log2n)
D. O(nlog2n)
解析:对于长度为n的有序线性表,在最坏情况下,二分法查找只需比较log2n次,而顺序查找需要比较n次。
5.在带链队列中,经过一系列正常的操作后,如果front=rear,则队列中的元素个数为(A)
A. 0或1
B. 0
C. 1
D. 队列满
解析:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列的链式存储也称为链队列。为了便于操作,可给链队列添加1个头结点,并令头指针指向头结点。队列为空的判断条件是头指针和尾指针的值相同,且均指向头结点。当队列为空(0)或1时,front=rear。
6.数据流图中带有箭头的线段表示的是( )。(D)
A. 控制流
B. 事件驱动
C. 模块调用
D. 数据流
解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程.其中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。
7.下列选项中不属于结构化程序设计原则的是( )。(A)
A. 可封装
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
8.软件测试的目的是( )。(D)
A. 评估软件可靠性
B. 发现并改正程序中的错误
C. 改正程序中的错误
D. 发现程序中的错误
解析:软件测试的目的是为了发现程序中的错误,而软件调试是为了更正程序中的错误。
9.下面属于黑盒测试方法的是( )。(C)
A. 语句覆盖
B. 逻辑覆盖
C. 边界值分析
D. 路径覆盖
解析:采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
10.下面属于白盒测试方法的是( )。(B)
A. 等价类划分法
B. 逻辑覆盖
C. 边界值分析法
D. 错误推测法
解析:白盒测试的主要方法有逻辑覆盖、基本路径测试等。
11.关于函数重载,下列叙述中错误的是( )。(C)
A. 重载函数的函数名必须相同
B. 重载函数必须在参数个数或类型上有所不同
C. 重载函数的返回值类型必须相同
D. 重载函数的函数体可以有所不同
解析:所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相同,其参数类型或个数不同,但不能出现函数返回值类型不同而参数类型和个数完全相同的重载。所以本题答案为C。
12.已知类IMS中两个成员函数的声明为“void listen()const;”与“void speak();”,另有两个对象的定义为“IMS obj1;”与“const IMS obj2;”,则下列语句中,产生编译错误的是( )。(D)
A. obj1.1isten();
B. obj1.speak();
C. obj2.1isten();
D. obj2.speak();
解析:函数listen()作为类IMS的常成员函数,一般对象obj1和常对象obi2都可以调用它,而函数speak()作为IMS的一般成员函数,则只有一般对象obj1可以调用,而常对象obj2调用会产生编译错误。
13.有如下程序:
#include<iostream>
using namespace std;
class A
{
public:
A(){cout<<\\(D)
A. CBA
B. BAC
C. ACB
D. ABC
解析:此题中,语句C obj对象初始化首先调用基类的构造函数A(),输出“A”,其次是C类中对象的构造函数的调用,即调用B(),输出“B”;最后是调用自身的构造函数C(),输出“C”。
14.有三个关系R、S和T如下:
(D)
A. 并
B. 自然连接
C. 笛卡尔积
D. 交
解析:关系R与S经交运算后所得到的关系是由那些既在R内又在S内的有序组组成的,记为RnS。
15.
本文档预览:3600字符,共6127字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载