第 1 页:选择题 |
第 3 页:基本操作题 |
第 4 页:简单应用题 |
第 5 页:综合应用题 |
21继承机制的作用是( )。
A.信息隐藏B.数据封装C.定义新类D.数据抽象
参考答案:C
参考解析:数据封装就是数据抽象,即信息隐藏;而继承是实现程序复用的基础。
)22模板对类型的参数化提供了很好的支持,因此( )。
A.类模板的主要作用是生成抽象类
B.类模板实例化时,编译器将根据给出的模板实参生成一个类
C.在类模板中的数据成员都具有同样类型
D.类模板中的成员函数都没有返回值
参考答案:B
参考解析:本题考查类模板的基本概念。类模板的定义和声明都以关键字template开头。关键字后面是一个用逗号分隔的模板参数表,用尖括号“<>”括起来,这个表被称为类模板的模板参数表。类模板是类的抽象,类是类模板的实例。类模板使类中的一些数据成员和成员函数的参数或返回值可以取任意的数据类型。所以B选项正确。
23if语句的语法格式可描述为:
格式l:if(<条件>)<语句>
或
格式2:if(<条件>)<语句l>
else<语句2>
关于上面的语法格式,下列表述中错误的是( )。
A.<条件>部分可以是一个if语句,例如if(if(a==0)…)…
B.<语句>部分可以是一个if语句,例如if(…)if(…)…
C.如果在<条件>前加上逻辑非运算符!并交换<语句l>和<语句2>的位置,语句功能不变
D.<语句>部分可以是一个循环语句,例如if(…)while(…)…
参考答案:A
参考解析:本题考查if语句,if语句的条件部分不能嵌套if语句,所以A选项错误;B选项就是if语句嵌套;C选项其实就是将判断条件颠倒,然后执行语句也颠倒,所以效果一样;D选项也正确。
24下面的程序中,错误的语句是( )。
①#inClude
②void main()
③{
④ int *p=new int[1];
⑧P=9;
⑥cout<<.*P<
⑦delete[]p;
⑧}
A.④B.⑤C.⑥D.⑦
参考答案:B
参考解析:本题考查的是指针的使用,P是指向int 型的指针,若想给它指向的元素赋值,应使用*符号,赢接赋值相当于改变了原来P存储的地址。
25下面有关for循环的正确描述是( )。
A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.在for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
参考答案:D
参考解析:选项A中for循环可以用于循环次数不确定的情况;选项8中for循环是先判断表达式,后执行循环体语句;选项c中for循环可以用break语句跳出循环体,从而接着执行循环体后面的语句。
26下列叙述中正确的是( )。
A.算法就是程序
B.设计算法时只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性
D.以上三种说法都不对
参考答案:D
参考解析:算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。
27由于常对象不能被更新,因此( )。
A.通过常对象只能调用它的常成员函数
B.通过常对象只能调用静态成员函数
C.常对象的成员都是常成员
D.通过常对象可以调用任何不改变对象值的成员函数
参考答案:A
参考解析:本题考查常对象的基本知识,常对象只能调用它的常成员函数,而不能调用非const函数,常对象的成员函数不一定都是常成员函数,只需保证其数据成员是常数据成员即可。所以本题选A。
28有如下程序:
#include
using namespace std;
class MyClass{
public:
MyClass(){cout<<’A’;}
MyClass(char C.{cout<
~MyClass(){cout<<’B’;}
};
int main(){
MyClass pl,+p2;
p2=new MyClass(’X’);
delete p2;
return 0;
}
执行这个程序的输出结果是( )。
A.ABXB.ABXBC.AXBD.AXBB
参考答案:D
参考解析:构造函数和析构函数的调用顺序为先构造的后析构,后构造的先析构。所以本题答案为D。
29有如下程序:
#include
using namespace std;
class Pair{
int m,n;
public:
Pair(int j,int k):m(j),n(k){}
int get(){return m;}
int get()const{return m+n;}
};
int main(){
Pair a(3,5);
const Pair b(3,5);
tout<
return U:
}
执行这个程序的输出结果是( )。
A.33B.38C.83D.88
参考答案:B
参考解析:本题考查常对象、常成员函数及构造函数。常对象只能调用常成员函数,所以本题中,对象a为普通对象,执行a.get()后,会执行默认构造函数,输出3;对象b为常对象,执行b.get()后,会执行常构造函数,输出8。
30执行下列语句段后,输出字符“*”的个数是( )。
for(int i=50;i>1;--i) Cout<<'*':
A.48B.49C.50D.51
参考答案:B
参考解析:本题考查for循环语句,--i表示用之前先减1,那么这个for循环语句只有50到2时才会输出“*”,所以总共输出49次。
31有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是( )。
A.自然连接B.交C.投影D.并
参考答案:A
参考解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和S做的是自然连接操作。
32软件测试的目的是( )。
A.评估软件可靠性
B.发现并改正程序中的错误
C.改正程序中的错误
D.发现程序中的错误
参考答案:D
参考解析:软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能。不是为了评估软件或改正错误。
33软件设计中划分模块的一个准则是( )。
A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合
参考答案:B
参考解析:一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
34下列数据结构中,能够按照“先进后出”原则存取数据的是( )。
A.循环队列B.栈C.队列D.二叉树
参考答案:B
参考解析:栈是按先进后出的原则组织数据的。队列足先进先出的原则组织数据。
35有如下程序:
#inClude using namespaCe std; Class Base{
publiC:
Base(int x=0){Cout<
Class Derived:publiC Base{ publiC:
Derived(int X=0){Cout<
Base val; };
int main() {
Derived d(1); return 0;
}
执行这个程序的输出结果是( )。
A.0B.1C.01D.001
参考答案:D
参考解析:本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数,对象释放时,先执行派生类的析构函数,再执行基类的析构函数。所以本题中定义了一个对象d,先执行基类的构造函数输出0,因为派生类中的私有数据成员为Base,所以还会执行一次基类的构造函数输出0,最后执行派生类的构造函数输出1,所以本题答案为D。
36已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是( )。
A.Value operator+(Value v,int i);
B.Value operator+(Value v=value,int i);
C.Value operator+(Value v,inl:i=0):
D.Value operator+(Value v=vallle,int i=0);
参考答案:A
参考解析:本题考查运算符重载,其中重载运算符的函数不能有默认的参数,所以本题答案为A。
点击查看试题笔记(3)37有如下程序段:
int i=0,J=1;
nt&r=i;//④ ’ r=j;//②
int * P=&i;//③ * P=&r;//④
其中会产生编译错误的语句是( )。
A.④B.③C.②D.①
参考答案:A
参考解析:本题考查指针和引用。①为引用,使用正确;④中&r表示一个地址,而*P已经是-一个值了,不能将一个指针赋值给一个值,所以编译错误。
38有如下程序:
﹟nclude
using namespace std;
int main()
{
int*P;
*P=9:
cout<<”The value at p:”<< *p;
return 0;
}
编译运行程序将出现的情况是( )。
A.编译时出现语法错误,不能生成可执行文件
B.运行时一定输出:l'lle value at P:9
C.运行时一定输出:llle value at P:*9
D.运行时有可能出错
参考答案:D
参考解析:先定义指针变量,然后给指针变量赋初值有三种情况:①用取地址运算符“&”将变量地址赋给指针变量,如P=&a;②将一个指针变量中的地址赋给另一个指针变量,如P=p1;③给指针变量赋空值0,如q=0,表示该指针变量不指向任何变量。而不能用一个常量给指针变量赋初值,所以本题选D。
39在软件设计中不使用的工具是( )。
A.系统结构图B.PAD图C.数据流图(DFD图)D.程序流程图
参考答案:C
参考解析:系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C。
40C++中的模板包括( )。
A.对象模板和函数模板B.对象模板和类模板C.函数模板和类模板D.变量模板和对象模板
参考答案:C
参考解析:本题考查函数模板和类模板.所以答案为C。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |