首页 > 全部 > 二级C++ > 国家二级(C++)机试模拟试卷273

国家二级(C++)机试模拟试卷273

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

国家二级(C++)机试模拟试卷273

选择题

1.执行语句序列

int x=1,&y=x;

cout<<x<<‘一’<<y<<endl;

输出结果为( )。(B)

A. X~x

B. 1~1

C. 1一0

D. 异常

解析:程序中的“int x=1”定义x为int型变量,并赋值为1。语句“&y=x”中“&”为引用运算符,&y=x语句可以理解为y具有x的地址,所以v的值也是1,即输出为:1-1。

2.有如下类定义:

class AA

{

int a;

public:

int getRef()const{return&a;}//①

int getValue()const{return a;}//②

void set(int n)const{a=n;}//③

friend void show(AA aa)const{cout<<a;}//④

};

其中四个函数的定义中正确的是( )。(B)

A. ①

B. ②

C. ③

D. ④

解析:本题考查常成员函数,常成员函数只能引用本类中的数据成员,而不能修改它。所以本题答案为B。

3.有如下程序:

#include<iostream>

using namespace std;

int main()

{

cout.fill(’*’);

cout.width(6);

cout.fill(’#’);

cout<<888<<endl;

return 0:

}

的执行结果是( )。(A)

A. ###888

B. 888###

C. ***888

D. 888***

解析:C++在流操作中,利用cout对象的width属性设置输出字符的宽度,用fill函数来设置需要填充的字符。题目程序中,首先设置填充字符为*,输出宽度为6,但在输出前又设置了填充字符为#,所以在输出时,其填充字符为#,由于888不足6个字符,所以在前面以三个“#”来填充。

4.下列程序的输出结果是( )。

#include

void main()

{int n[][3]={1 0,20,30,40,50,60};int(*p)[3];

p=n;cout<<p[0][0]<<“, ”<<*(p[0]+1)<<”, ”<<(*p)[2]<<endl;

}(B )

A. 10,30,50

B. 10,20,30

C. 20,40,60

D. 10,30,60

解析:如果数组元素都是相同类型的指针,则称这个数组为指针数组。指针数组一般用于处理二维数组。声明的格式为:。p表示指向数组n的行指针,初始化“(*p)[3]=n;”,地址的等价形式:p+i、p[i]、*p+i)都表示数组第i+1行的第1个元素的首地址。*(p+i)+j、p[i]+j、&p[i]D]都表示数组第i+1行、第.;+1列元素的地址。他的等价形式:+(+(p+i)+j)、*(p[i]+j)、p[i]D]都表示数组第i+1、第j+1列元素的值。所以本题中分别访问数组元素p[0][0],p[0][1],p[0][2]。

5.有如下程序:

#include<iostream>

using namespace std;

class Instrument{

public:

virtual void Display()=0;

};

class Piano:public Instrument{

public:

void Display(){/*函数体略*/}

};

int main(){

Instrument S;

Instrument*P=0;

//…;

return 0;

}

下列叙述中正确的是( )。(B)

A. 语句“Insturment*P=0;”编译时出错

B. 语句“Instrument s;”编译时出错

C. 类Piano中的Display函数不是虚函数

D. 类Instrument是一个虚基类

解析:本题考查纯虚函数和抽象类,纯虚函数是在声明虚函数时被“初始化”为0的函数,包含纯虚函数的类为抽象类,抽象类不能被实例化,所以语句“Instrument s;”在编译时出错。

6.有以下程序段:

#include

#define MAX(x,y)(x)>(y)?(x):(y)

void main()

{int i j,k;

i=10;

j=15;k=MAX(i,j)*10;

cout<<k<<end1;

}

程序执行后的输出结果是( )。(C)

A. 15

B. 100

C. 150

D. 10

解析:题目程序中的MAX函数是利用条件运算符为?:求最大值。即(x>y)?(x):(y)是当x大于y时取x,否则取y。当i=10,j=15时,“MAX(i,j)”的值为15,所以“k=MAX(ij)*10;”答案为:150。

7.关于运算符重载,下列表述中正确的是( )。(C)

A. C++已有的任何运算符都可以重载

B. 运算符函数的返回类型不能声明为基本数据类型

C. 在类型转换符函数的定义中不需要声明返回类型

D. 可以通过运算符重载来创建C++中原来没有的运算符

解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为C。

8.有如下程序:

#include

using namespace std;

class MyClass{

public:

MyClass(){++count;}

~MyClass(){–count;}

static int getCount(){return count;}

private:

<

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号