国家二级(C++)机试模拟试卷240
选择题
1.下列方法中,不属于软件调试方法的是( )。(C)
A. 回溯法
B. 强行排错法
C. 集成测试法
D. 原因排除法
解析:软件调试主要采用以下三种方法:
强行排错法:作为传统的调试方法,其过程可概括为设置断点、程序暂停、观察程序状态、继续运行程序。
回溯法:该方法适合于小规模程序的排错、即一旦发现了错误,先分析错误征兆,确定最先发现“症状”的位置。
原因排除法:原因排除法是通过演绎和归纳,以及二分法来实现。
2.以下程序的执行结果是( )。
#include
int fun(mb[],intn).
{
int,r=1;
for(i=0;i<n;i++)
r=r*b[i];
return r;
}
Voidmain0
{
int x,a[]={1,2,3,4,5,6,7,8};
x=fun(a,3);
eout<<x<<endl;
}(B )
A. 5
B. 6
C. 7
D. 8
解析:由程序的main函数入手,调用fun函数,其中参数为数组a和3。fun函数的功能是for循环中由第一个数组元素开始到第三个元素进行累积。
3.时间复杂度和空间复杂度均属于( )。(A)
A. 算法复杂度
B. 编程复杂度
C. 公式复杂度
D. 数据复杂度
解析:算法复杂度主要包括时间复杂度和空间复杂度。
4.下列函数的运行结果是( )。
#include
int add(int a,int b);
void main()
{extem int x,y;
cout<<add(x,y)<<endl;
}
int x(20),y(5);
int add(int a,int b)
{int s=a+b;
retum S:
}(A)
A. 25
B. 30
C. 20
D. 15
解析:由主函数main入手,定义外部变量x和y,调用函数add。因为x,y为外部变量,所以“int x(20),y(5);”的赋值在add也是有效的,即add函数的运算结果为25。
5.有如下程序:
#include
using namespace std;
class Base
{
public:
void fun1(){cout<<\\(B)
A. Base
Base
B. Base
Derived
C. Derived
Base
D. Derived
Derived
解析:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,本题中定义了一个派生类对象obj,执行f函数后,将派生类对象obj转化为基类对象,由于fun1不是虚函数,所以输出基类的fun1;而fun2是虚函数,所以输出派生类的fun2,所以本题答案为B。
6.下列程序的输出结果是( )。
#include
void main()
{
int a[6]={1,2,3,4,5,6};
for(int i=0;i<5;i++)
cout<<a[i]<<\\(B)
A. 1 2 3 4 5 6
B. 1 2 3 4 5
C. 1 2 3 4
D. 1 2 3 4 6
解析:本题考查的是考生使用简单循环输出数组元素的能力,因为结束条件是i<5,而i初始值为0,所以只会输出前5个元素。
7.有如下说明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是( )。(B)
A. *p+9
B. *(p+8)
C. *p+=9
D. p+8
解析:本题考查指向数组的指针,本题中指针变量p指向数组a,那么*p的值就是1,即表示数组的第一个元素,那么数值为9的表达式就是将指针向后移动8个地址,即p+8指向的是数组元素值为9,所以数值为9的表达式是*(p+8)。
8.在公有派生时,派生类中定义的成员函数只能访问原基类的( )。(C)
A. 私有成员、保护成员和公有成员
B. 保护成员和私有成员
C. 公有成员和保护成员
D. 公有成员和私有成员
解析:派生类中的成员,一部分是从基类继承来的,另一部分是自己定义的新成员,所有的这些成员也分为公有、私有和保护三种访问权限。其中,从基类继承下来的全部成员构成派生类的基类,这部分的私有成员是派生类不能直接访问的,而公有成员和保护成员则是派生类可以直接访问的,但它们在派生类中的访问属性随着派生类对基类的继承方式而改变。
9.下列关于运算符重载的描述中,正确的是( )。(D)
A. 运算符重载可以改变运算符的操作数的个数
B. 运算符重载可以改变优先级
C. 运算符重载可以改变结合性
D. 运算符重载不可以改变语法结构
解析:重载的运算符仍要保持其原来的操作数、优先级和结合性不变。
10.有如下函数定义:
void func(int a, int& b) { a++; b++; }
若执行代码段:
int x = 0, y = 1;
func(x, y);
则变量x和y的值分别是( )。(C)
A. 0和1
B. 1和1
C. 0和2
D. 1和2
解析:函数参数的3种传递方式:①将变量名作为形参和实参,即传值方式;②传递变量指针;③引用形参。本题中实参x为传值方式,所以x的值不会改变;y为引用形参,所以会改变。故本题答案为C。
11.下列叙述中正确的是( )。(B)
A. 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B. 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C. 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D. 线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性
解析:线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。
12.数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的( )。(C)
A. 需求分析阶段
本文档预览:3600字符,共18707字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载