首页 > 全部 > 二级C++ > 二级C++选择题专项强化真题试卷1

二级C++选择题专项强化真题试卷1

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

二级C++选择题专项强化真题试卷1

选择题

1.有如下程序:

#include<iostream>

using namespace std;

int main(){

int a[6]={23, 15, 64, 33, 40, 58};

int s1, s2;

s1, s2=a[0];

for(int*p=a+1; p<a+6; p++) {

if(s1>*p)s1=*p;

if(s2<*p)s2=*p;

}

cout<<s1+s2<<end1;

return 0;

}

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

A) 23

B) 58

C) 64

D) 79

(D)

A.

B.

C.

D.

解析:变量s1和s2的初值都等于23,那么在执行第一次for循环时,*p的值等于15,它小于23,所以把15赋给变量s1;执行第二次for循环时,*p的值等于64,它大于23,所以把64赋给变量s2;而数组a中a[2]后面的元素的值都大于15,小于64,因而变量s1,s2的值不会再发生变化,最终值为15+6=79,所以程序输出79。

2.有如下类模板定义:

template<typename T>

class BigNumber{

long n;

public:

BigNumber(T i):n(i){}

BigNumber operator+(BigNumber B) {

return BigNumber(n+b.n);

}

}

已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是( )。

A) b1+b2

B) b1+3

C) 3+b1

D) 3+3(C)

A.

B.

C.

D.

解析:

3.已知主函数中通过如下语句序列实现对函数模板swap的调用:

int a[10], b[10];

swap(a, b, 10);

下列对函数模板swap的声明中,会导致上述语句序列发生编译错误的是( )。

A) template<typename T>

void swap(T a[], T b[], int size);

B) template<typename T>

void swap(int size, T a[], T b[]);

C) template<typename T1, typename T2>

void swap(T1 a[], T2 b[], int size);

D) template<class T1, class T2>

void swap(T1 a[], T2 b[], int size);(B)

A.

B.

C.

D.

解析:

4.判断char型变量c是否为小写字母的正确表达式是(D)

A. a’<=c<=’z’

B. (c>=A) &&(c<=z)

C. (’a’>=c)||(’z’<=c)

D. (c>=’a’)&&(c<=’z’)

解析:字符型数据在计算机内部是以ASCII码存储的,英文大写字母和小写字母在ASCII码表中都是连续的。大写字母A~Z是从65~90,小写字母a~z是从97~122。所以只要变量c大于等于a并且等于小于z就能保证其为小写字母。

5.下列关于模板的叙述中,正确的是(C)

A. 如果一个类中存在纯虚函数,这个类就是类模板

B. 函数模板不能有形式参数表

C. 类模板是一种参数化类型的类,是类的生成器

D. 类模板中不能包含构造函数

解析:

6.下列选项中,正确的C++表达式是(C)

A. counter++3

B. element3+

C. a+=b

D. ‘a’=b

解析:

7.有以下类定义    clas sMyClass    {    public:       My Class() { cout<<1;}    };    则执行语句MyClassa,b[2],*p[2];后,程序的输出结果是(B)

A. 11

B. 111

C. 1111

D. 11111

解析:本题考核构造函数和析构函数。题中定义了类MyClass的对象a,对象数据 b,所以调用了构造函数3次,输出111。然后定义了对象指针*p[2],由于指针没有实例话,所以不会调用构造函数。

8.有以下程序    #include<iostream>    using namespace std;    class MyClass    {    public:       MyClass(intn) {number=n;}      //拷贝构造函数      MyClass (MyClass& other) {number=other.number;}      ~MyClass(){}    private:      int number;    };    MyClass fun (MyClass p)    {      MyClass temp(p);      return temp;    }    intmain()    {      MyClass obj1(10),obj2(0);      MyClass obj3(obj1);      obj2=fun(obj3);    return0;    }    程序执行时,MyClass类的拷贝构造函数被调用的次数是(B)

A. 5

B. 4

C. 3

D. 2

解析:本题考核C++的拷贝构造函数。调用拷贝构造函数的情况为:一个新对象被另一个已存在的同类型对象初始化:当一个对象作为实参传递给函数时为初始化形参,要调用拷贝构造函数。在函数值返回时形参的生命期结束时它的结构函数被调用;在函数返回一个对象时调用拷贝构造函数。符合以上条件的有:用对象。obj1来初始化。obj3;obj3作为实参被传入;函数fun返回一个对象时;系统用返回值初始化一个匿名对象时调用了拷贝构造函数。总共调用4次。

9.C++流中重载的运算符>>是一个(B)

A. 用于输出操作的非成员函数

B. 用于输入操作的非成员函数

C. 用于输出操作的成员函数

D. 用于输入操作的成员函数

解析:本题考核运算符重载。C++中重载输入流运算符>>和输出流运算符<<只能作为非类成员函数重载,且必须使用如下原形:

istream& operator>>(istream&.<类名>&);

ostream& operator<<(ostream&,<类名>);

10.下列关于虚函数的描

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

剩余未完,查看全文
收藏
二级C++选择题专项强化真题试卷1

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号