二级C++选择题专项强化真题试卷7
选择题
1.下列关于构造函数的描述中,错误的是( )。
A) 构造函数名与类名相同
B) 构造函数可以有返回值
C) 构造函数可以重载
D) 每个类都有构造函数(B)
A.
B.
C.
D.
解析:
2.下列关于派生类和基类的描述中,正确的是( )。
A) 派生类成员函数只能访问基类的公有成员
B) 派生类成员函数只能访问基类的公有和保护成员
C) 派生类成员函数可以访问基类的所有成员
D) 派生类对基类的默认继承方式是公有继承(B)
A.
B.
C.
D.
解析:
3.有如下类定义:
class Sample {
public;
Sample(int x):ref(x){} //①
private:
Sample():ref(0){) //②
static int val=5; //③
const int ref; //④
};
上述程序段中,错误的语句是( )。
A) ①
B) ②
C) ③
D) ④(C)
A.
B.
C.
D.
解析:
4.算法分析的目的是(D)
A. 找出数据结构的合理性
B. 找出算法中输入和输出之间的关系
C. 分析算法的易懂性和可靠性
D. 分析算法的效率以求改进
解析:算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数量级,常用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。
5.软件工程的出现是由于(C)
A. 程序设计方法学的影响
B. 软件产业化的需要
C. 软件危机的出现
D. 计算机的发展
解析:软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。
6.下列语句的输出结果
cout<<strlen(\\(A)
A. 5
B. 14
C. 8
D. 输出项不合法,无正常输出
解析:该字符串中包含的字符是’\\\\t’(跳格符)、’\\\\\\
7.下列关于函数参数的叙述中,正确的是(D)
A. 在函数原型中不必声明形参类型
B. 函数的实参和形参共享内存空间
C. 函数形参的生存期与整个程序的运行期相同
D. 函数的形参在函数被调用时获得初始值
解析:
8.下列关于C++预定义流对象的叙述中,正确的是(A)
A. cin是C++预定义的标准输入流对象
B. cin是C++预定义的标准输入流类
C. cout是C++预定义的标准输入流对象
D. cout是C++预定义的标准输入流类
解析:C++流有4个预定义的流对象:cin标准输入;cout标准输出;cerr标准出错信息输出;clog带缓冲的标准出错信息输出。故选A。
9.若语句: cout<<setfill(’>’)<<setw(5)<<3141512<<setw(5)<<\\(A)
A. 3141512>>OK!
B. 31415120K!>>
C. 414150K!>>
D. 31415>>OK!
解析:
10.已知outfile是一个输出流对象,要想将outfile的文件指针定位到当前位置之前321字节处,正确的函数调用语句是(D)
A. outfile.seekp(321,ios_base::cur);
B. outfile.seekp(321,ios_base::bge);
C. outfile.seekp(-321,ios_base::beg);
D. outfile.seekp(-321,ios_base::cur);
解析:
11.下列关于C++函数的说明中,正确的是(C)
A. 内联函数就是定义在另一个函数体内部的函数
B. 函数体的最后一条语句必须是return语句
C. 标准C++要求在调用一个函数之前,必须先声明其原型
D. 编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
解析:本题考查了函数的一些概念。内联函数是在一般函数定义之前加上关键字 inline声明的函数,其作用类似于预处理宏函数,而不是定义在另一个函数体内部的函数,所以选项A不正确。在无返回值函数中,执行完最后一条语句后将自动返回,而不必加入return语句,所以选项B也是错误的。如果函数只是返回值类型不同,而其他完全相同(参数个数及类型),则不能作为重载函数宋使用,所以选项D不正确。故应该选择C。
12.由于常对象不能被更新,因此(A)
A. 通过常对象只能调用它的常成员函数
B. 通过常对象只能调用静态成员函数
C. 常对象的成员都是常成员
D. 通过常对象可以调用任何不改变对象值的成员函数
解析:本题考查了常对象与常成员函数的概念。使用const关键字修饰的对象称为常对象,它的特点是不能被更新;使用const关键字声明的成员函数称为常成员函数,它的特点也是不能更新对象的数据成员。因为其他成员函数没有这个限制,即可以更新对象的数据成员,所以通过常对象只能调用常成员函数而不能调用其他成员函数,而且常成员函数也只能调用常成员函数而不能调用其他成员函数,否则它们的特性就会被打破。故应该选择A。
13.以下关键字不能用来声明类的访问权限的是(B)
A. public
B. static
C. protected
D. private
解析:本题考查了类的访问权限。在C++中,类的访问权限一共有3种,分别是: public(公有)、protected(保护)和private(私有)。因此,本题应该选择B。
14.有如下程序 #include<iostream> #include<iomanip> using namespace std; int main(){ cout<<setprecision(3)<<fixed<<setfill(’*’)<<setw(8); cout<<12.345<<_______<<34.567; return 0; } 若程序的输出是: ** 12.345**34.567 则程序中下划线处遗漏的操作符是(D)
A. setprecision(3)
B. fixed
C. setfill(’*’)
D. setw(8)
解析:本题考查的是输出的格式控制。本例中,操作符setprecision的作用是设置浮点数的精度;操作符fixed的作用是让浮点数按定点格式输出;操作符setfill的作用是设置填充字符;操作符setw的作用是设置输入输出的宽度。
本文档预览:3600字符,共8351字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载