首页 > 全部 > 二级C++ > 国家二级C++机试(选择题)模拟试卷228

国家二级C++机试(选择题)模拟试卷228

本单篇文档共8187字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 章节练习 1832人下载
价格: 0.60 原价:¥8.00
收藏

国家二级C++机试(选择题)模拟试卷228

选择题

1.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。(D)

A. 快速排序

B. 冒泡排序

C. 直接插入排序

D. 堆排序

解析:除了堆排序算法的比较次数是O(nlog2n),其他的都是n(n一1)/2。

2.如果有以下定义及初始化:

int a=3,*p=&a;

则由此可以推断,*p的值是( )。(A)

A. 变量a的值,即3

B. 变量a的地址值

C. 变量P的地址值

D. 无意义

解析:题目中的定义初始化是定义一个整型变量a,初始化为3。而“int*p=&a;”是定义一个整型指针变量p,将变量a的地址作为指针变量p的初值。木p是指针变量p指向的存储单元的内容,即变量值。所以木p指向a的值3。

3.软件是指( )。(D)

A. 程序

B. 程序和文档

C. 算法加数据结构

D. 程序、数据与相关文档的完整集合

解析:计算机软件是计算机系统中与硬件相互依存的另一部分。是包括程序、数据与相关文档的完整集合。软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。

4.假定a=3,下列程序的运行结果是( )。

#include<iostream.h>

int fun(int n);

void main()

{cout<<’’Please input a number:’’;

int a,result=0;

cin>>a;

result=fun(a);

cout<<result<<end1;

}

int fun(int n)

{iIlt p=1,result=0;

tbr(int i=1;i<=n;i++)

{

p*=i;

result+=p;

}

return result;

}(C)

A. 4

B. 8

C. 9

D. 20

解析:由程序main主函数入手,调用fun函数获得返回值result输出。题目中假定a=3,即调用语句fun(a.)中的输入参数为a,进入fun函数,在for循环中当i小于等于n,即输入参数3时,循环3次执行“p*=i;result+=p;”语句。即执行三次p=p*i,result=result+p,result的结果为9。返回的fun函数结果为9,即“cout<<result<<end1;”输出9。

5.有如下程序:

#include

using namespace std;

class Point{

public:

static int number;

public:

Pointo{number++;}

~Point(){number–;}

};

int Point∷number–0:

void mainO{

Point*ptr;

PointA,B;

{

Point*ptr_point=new Point[3];

ptx=ptr_point;

}

Point C:

Gout+Point∷number+end1;

delete[]ptr;

}

运行时输出的结果是( )。(C)

A. 3

B. 4

C. 6

D. 7

解析:此题是静态成员、对象的构造和对象的生存期等知识点的综合考查。此题定义了一个静态成员变量number,初始值为0。主函数中第2行定义了2个Point对象,此时nunlber变为2;随后new运算符又定义了一个包含3个Point对象元素的数组,其通过delete结束后number的值变为5;然后又定义了一个Point对象C,number变为6;最后输出number的内容。

6.有如下程序:

#include

using namespace std;

class Obj{

static hat i;

public:

Obj(){i++;}

~bj(){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 Ohj;cout<getVal();

delete ob3;cout<<Obj∷getVal();

return 0;

}

程序的输出结果是( )。(D)

A. 232

B. 231

C. 222

D. 221

解析:此题考查的是静态成员。本题中,Obj类定义了一个静态数据成员i,并初始化为0.在主函数中,首先定义了1个该类对象ob1,所以构造函数被调用1次,i加1;然后调用函数f(),该函数中又定义了一个对象ob2,此时i再次加1变为2,然后通过函数getVal()输出i的值2。f()函数结束,oh2变量被释放,故析构函数被调用了1次,i变成1:回到主函数中,又动态创建了1个对象并让oh3指向它,此后i变成2并输出。最后释放动态创建的对象i变为1,输出1。故最终的输出结果是221。

7.有三个关系R、S和T如下:

(B)

A. 自然连接

B. 差

C. 交

D. 并

解析:由三个关系R、S和T的结构可以知道,关系T是由关系R、S经过差运算得到的。

8.下列关于继承的描述中,错误的是( )。(D)

A. 析构函数不能被继承

B. 派生类是基类的组合

C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员

D. 派生类中继承的基类成员的访问权限到派生类保持不变

解析:派生类中继承的基类成员的访问权限到派生类会发生变化,例如:私有继承时,派生类不能访问基类的成员,所以选项D)错误,其他选项均正确。

9.必

本文档预览:3600字符,共8187字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C++机试(选择题)模拟试卷228

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号