国家二级C++机试(选择题)模拟试卷233
选择题
1.以下程序的输出的结果是( )。
#include<iostream.h>
int x=3;
void main()
{
void fun();
int i;
for(i=1;i<x;i++)
fun();
}
void fun()
{static int x=1;
x*=x+1;
cout<<x<<’’ ’’;
}(C)
A. 3,3
B. 2,2
C. 2,6
D. 2,5
解析:由主函数入手,在for循环中调用fun函数,其中调用次数为2次。fun中x为静态变量,有效到文件结束,所以第一次调用为x=x*(x+1)=1*(1+1)=2,第二次调用2*(2+1)=6。
2.下列方法中,属于白盒法设计测试用例的方法的是( )。(C)
A. 错误推测
B. 因果图
C. 基本路径测试
D. 边界值分析
解析:白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。
3.有如下类声明:
class SAMPLE
{
int n;
public:
SAMPLE(int i=0):n(i){}
void setvalue(int n0);
};
下列关于getValue成员函数的实现中,正确的是( )。
B
解析:此题考查了成员函数的定义格式。在类外部对成员函数定义时的一般格式为:返回类型类名∷成员函数名(参数表){函数体},故此题正确答案为选项B。
4.下列各选项中,不属乎序言性注释的是( )。(D)
A. 程序标题
B. 程序设计者
C. 主要算法
D. 数据状态
解析:注释一般为序言性注释和功能性注释。序言性注释常位于程序开头部分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。功能性注释一般嵌在源程序体之中,用于描述其后的语句或程序的主要功能。
5.软件测试的目的是( )。(D)
A. 评估软件可靠性
B. 发现并改正程序中的错误
C. 改正程序中的错误
D. 发现程序中7的错误
解析:软件测试的目的是为了发现程序中的错误,而软件调试是为了更正程序中的错误。
6.有如下程序
#include
using namespace std;
int i=1:
class Fun{
public:
static int i;
int value(){return i—l;}
int value()const{return i+l;)
);
int Fun::i=2;
int main(){
int i=3;
Fun funl;
const Fun fun2;
retum O;
)
若程序的输出结果是:
123
则程序中下划线处遗漏的语句是( )。(A)
A. cout<<funl.value()<<Fun::i<<fun2.value();
B. cout<<Fun::i<<funl.value0<<fun2.value();
C. cout<<funl.value()<<fun2.value()<<Fun::i;
D. cout<<fun2.value()<<Fun::i<<funl.value();
解析:此题考查的是常成员函数。const关键字可以用于参与重函数的区分,此时常对象调用常成员函数,一般对象调用一般成员函数,当类中只有一个常成员函数时,一般对象也可以调用该常成员函数。本题中,通过funl调用value(]函数时,是调用前一个,而通过fun2调用value()函数是调用后一个;另外,value()函数中访问的i是类中定义的数据成员i,全局变量i在类中被“屏蔽”。funl.value()输出i.1=2.1=l:fun2.value()调用后一个value()函数输出i+1=2+l=3;Fun::i是通过类名直接访问类的静态数据成员i的值,即2;所以正确的输出顺序是A选项。
7.下面属于白盒测试方法的是(B)
A. 等价类划分法
B. 逻辑覆盖
C. 边界值分析法
D. 错误推测法
解析:白盒测试的主要方法有逻辑覆盖、基本路径测试等。
8.在下列字符中,不允许作为C++标识符的是( )。(D)
A. b
B. B
C. _
D. 2
解析:C++的标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串。
9.若x和y是程序中的两个整型变量,则下列if语句中正确的是( )。(A)
A. if(x==0)y=1;else y=2;
B. if(x==0)then y=1 else y=2;
C. if(x==0)y=1 else y=2;
D. if(x==0)y=1;else y=2;
解析:ifelse语句的形式为:
if(<条件>) <语句1>else<语句2>
所以符合以上形式的ifelse语句为选项A。
10.已知函数fun的原型为
int fun(int,int,int);
下列重载函数原型中错误的是( )。(D)
A. char fun(int,int);
B. double fun(int,int,double);
C. int fun(int,char*);
D. float fun(int,int,int);
解析:重载函数至少要在参数个数或参数类型上不同。而选项D中的函数与原函数只是函数类型不同,而其他完全相同(参数个数及类型),则不能作为重载函数来使用。
11.下列关于C++流的描述中,错误的是( )。(A)
A. cout>>~A表达式可输出字符A
B. eof()函数可以检测是否到达文件尾
C. 对磁盘文件进行流操作时,必须包含头文件fstream
D. 以ios base::out模式打开的文件不存在时,将自动建立一个新文件
解析:cout是一个标准输出流对象。>>称之为提取运算符,它的功能是从输入流中提取数据赋值给一个变量。<<为插入运算符,其功能是把表达式的值插入到输出流中。
本文档预览:3600字符,共8655字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载