二级C++选择题专项强化真题试卷8
选择题
1.有如下程序:
#include<iostream>
using namespace std;
class XA{
int a;
public:
static int b;
XA(int a
A) : a(aA) {b++;}
~XA(){}
int get(){return a;}
};
int XA::b=0;
int main(){
XA d1(2), d2(3);
cout<<d1. get()+d2. get()+XA::b<<end1;
return 0;
}
运行时的输出结果是( )。A) 5
B) 6
C) 7
D) 8(C)
A.
B.
C.
D.
解析:
2.生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。
A) 无需任何条件
B) 基类中显示定义了构造函数
C) 派生类中显式定义了构造函数
D) 派生类构造函数明确调用了基类构造函数(A)
A.
B.
C.
D.
解析:
3.关系表中的每一横行称为一个(A)
A. 元组
B. 字段
C. 属性
D. 码
解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。
4.对于语句cout<<setfill(’*’)<<setw(10)<<1<<setfill(’*’)<<setw (2)<<2;的输出结果是(A)
A. *********1*2
B. ********12
C. *******1*2
D. 12********
解析:C++语言中setfill的意思是在空格的地方填上setfill函数中的参数字符,setw的意思是设置整个输出字符串的字符个数,本题中用*来代替空格。
5.有类定义如下:
class Type{
public:
Type(int i=0);
Type operator-(int);
friend Type operator+(Type,Type);
private:
int val;
};
若有对象定义Type c1;则下列语句序列中,错误的是(C)
A. Type(3)+c1;
B. c1+Type(3);
C. 3-c1;
D. c1-3;
解析:
6.有以下类定义 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],由于指针没有实例话,所以不会调用构造函数。
7.在下面的运算符重载函数的原型中,错误的是(A)
A. Volume operator-(double,double);
B. double Volume::operator-(double);
C. Volume Volume::operator-(Volume);
D. Volume operator-(Volume,Volume);
解析:本题考核运算符重载。C++把重载的运算符视为特殊的函数,称为运算符函数,函数名就是在运算符前加上保留字operator。运算符重载的定义格式:<返回类型>operator <运算符号>(参数说明);
运算符“一”是二元运算符,A选项中重载函数的形参列表都double,而重载函数的返回类型为类Volume,显然是错误的。
8.执行语句序列 ofstream outfile(”DATA.DAT\\(C)
A. outfile.fail()或 outfile
B. outfile.good()或 !outfile
C. outfile.good()或 outfile
D. outfile.fail()或 !outfile
解析:本题考核C++的文件I/O操作。函数good()表示刚进行的操作成功时返回 true,否则返回false,所以可以通过类ofstream的对象outfile调用good()函数来检测刚才文件打开是否成功。题中在建立文件流对象的同时打开文件,若打开失败则返回 fail。所以“outfile”也可以用作判断打开文件成功与否的条件。
9.若语句: cout<<setfill(’>’)<<setw(5)<<3141512<<setw(5)<<\\(A)
A. 3141512>>OK!
B. 31415120K!>>
C. 414150K!>>
D. 31415>>OK!
解析:
10.有如下程序: #include<iostream> using namespace std; class Demo { public: Demo(){ cout<<\\(C)
A. 1和1
B. 1和2
C. 2和3
D. 2和4
解析:
11.下列关于C++函数的叙述中,正确的是(C)
A. 每个函数至少要具有一个参数
B. 每个函数都必须返回一个值
C. 函数在被调用之前必须先声明
D. 函数不能自己调用自己
解析:从函数的形式看,函数分两类:无参函数:有参函数。当调用无参函数时,主调函数并不将数据传送给被调用函数,且可以带回或不带回函数值。当调用有参函数时,在主调函数和被调用函数之间有参数传递。在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。C++允许函数的递归调用。
12.下列字符串中,正确的C++标识符是(D)
A. foo-1
B. 2b
C. new
D. -256
解析:标识符只能由大小写字母,下划线和数字组成,只允许字母或下划线开头,不允许使用系统的关键字作为标识符。
13.下列关于虚函数的说明中,正确的是(B)
A. 从虚基类继承的函数都是虚函数
B. 虚函数不得是静态成员函数
C. 只能通过指针或引用调用虚函数
D. 抽象类中的成员函数都是虚函数
解析:本题考查的是虚函数的概念。在成员函数声明的前面加上virtua
本文档预览:3600字符,共8414字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载