国家二级(C++)机试模拟试卷258
选择题
1.下面程序的运行结果是( )。
#include
int x=5;
int fun(imt a)
{
int e;
c=x*a;
return c;
}
void main()
{
int x=3,a=4;
X=X+fun(a);
cout<<\\(C)
A. x=15
B. x=17
C. x=23
D. x=25
解析:由主函数main入手,首先x被赋值为3,a被赋值为4。然后调用fun函数,参数为4,所以在fun函数中的a=4。而主程序中的x作用域是由它定义开始到cout输出,在tan函数中无效。而在fun函数定义前的变量x作用域是整个程序,所以fun函数中的x值为5,这样c的值就为20。在主函数中的x+fun(a)中的x为靠近这条语句的x定义,即3,所以最后x的值为20+3=23。
2.在数据管理技术发展的三个阶段中,数据共享最好的是( )。(C)
A. 人工管理阶段
B. 文件系统阶段
C. 数据库系统阶段
D. 三个阶段相同
解析:数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择C。
3.下列选项中不属于软件生命周期开发阶段任务的是( )。(C)
A. 软件测试
B. 概要设计
C. 软件维护
D. 详细设计
解析:软件生命周期分为软件定义、软件开发及软件运行维护三个阶段,其中开发阶段包括概要设计、详细设计、实现和测试。
4.有如下程序:
int x=3;
do{x-=2:
cout<<x:
}while(!(一x));
执行这个程序的输出结果是( )。(C)
A. 1
B. 30
C. 1-2
D. 死循环
解析:第一次循环输出1,第二次循环输出是一2。在输出二次循环后!(-x)为0条件不满足。停止循环。
5.有如下程序:
#include
using namespace std;
int main()
{
void function(double val);
double val;
function(val);
cout<<val;
return 0;
}
void function(double val)
{ val=3;}
编译运行这个程序将出现的情况是( )。(D)
A. 编译出错,无法运行
B. 输出:3
C. 输出:3.0
D. 输出一个不确定的数
解析:本题考查函数调用及传值方式传递参数,执行函数function时,并没有将3的值传回来,而val又没有初始化,所以会输出一个不确定的值,D选项正确。
6.有如下程序:
#include<iostream>
using namespaee std;
class Obj {
static int i;
public:
obj() {i++;}
-obj() {i--;}
static int getVal() {return i;}
};
int obj∷i=0:
void f() {obj oh2;cout<<ob2.getVal();}
int main() {
obj ob1;
f();
Obj * ob3=new obj;cout<<oh3->getVal();
delete ob3;cout<<obj∷getVal();
return 0;
}
执行这个程序的输出结果是( )。(D)
A. 232
B. 231
C. 222
D. 221
解析:本题考查构造函数和析构函数的调用顺序,调用顺序为先构造的后析构,后构造的先析构。本题中先定义了一个对象ob1,会执行构造函数,那么i就变为了1;再执行函数f后,由于又定义了一个对象ob2,所以再次执行构造函数,i就变为了2,输出了2。函数执行完后执行析构函数,i变为了1,然后又定义了对象指针,i变为了2。释放ob3后,i变为了1,所以答案为D。
7.下列有关继承和派生的叙述中,正确的是( )。(D)
A. 如果一个派生类公有继承其基类,则该派生类对象可以访问基类的保护成员
B. 派生类的成员函数可以访问基类的所有成员
C. 基类对象可以赋值给派生类对象
D. 如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
解析:私有继承方式为基类的公用成员和保护成员在派生类中成了私有成员,其私有成员仍为基类私有,但派生类对象可以访问基类的保护成员,所以基类对象不能赋值给派生类对象。抽象类是指含有纯虚拟函数的类,所以选项D正确。
8.有以下程序:
#include
using namespace std;
class R
{
public:
R(int r1,int r2)
{
R1=r1;
R2=r2;
}
voidprint();
void print()const;
private:
int R1,R2;
};
void R::print0
{
cOut<<R1<<“(C )
A. 5,4
B. 4,5
C. 20,52
D. 52,20
解析:此题中,语句R a(5,4)调用构造函数R(int r1,int r2)但未有输出结果;b.print();调用常成员函数(因为b是常对象)voidprint()const,输出结果是20,52。
9.数据结构主要研究的是数据的逻辑结构、数据的运算和( )。(B)
A. 数据的方法
B. 数据的存储结构
C. 数据的对象
D. 数据的逻辑存储
解析:数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包含3个方面的内容,即数据的逻辑结构、存储结构和数据的
本文档预览:3600字符,共18069字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载