国家二级C++机试(选择题)模拟试卷174
选择题
1.支持子程序调用的数据结构是( )。(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。
2.下列关于栈的叙述正确的是( )。(B)
A. 栈按“先进先出”组织数据
B. 栈按“先进后出”组织数据
C. 只能在栈底插入数据
D. 不能删除数据
解析:栈是限定在一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。栈是按照“先进后出”的原则组织数据的。
3.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。(C)
A. log2n
B. n/2
C. n
D. n+1
解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。
4.下列有关继承和派生的叙述中,正确的是( )。(D)
A. 如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员
B. 派生类的成员函数可以访问基类的所有成员
C. 基类对象可以赋值给派生类对象。
D. 如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
解析:如果派生类私有继承基类,不能访问基类中的私有成员,所以A)、B)是错误的。派生类是对基类的具体化,所以C)错误的。如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类,即选择D)。
5.关于运算符重载,下列表述中正确的是( )。(C)
A. C++已有的任何运算符都可以重载
B. 运算符函数的返回类型不能声明为基本数据类型
C. 在类型转换符函数的定义中不需要声明返回类型
D. 可以通过运算符重载来创建C++中原来没有的运算符
解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的c++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为c。
6.下列关于数据库设计的叙述中,正确的是( )。(A)
A. 在需求分析阶段建立数据字典
B. 在概念设计阶段建立数据字典
C. 在逻辑设计阶段建立数据字典
D. 在物理设计阶段建立数据字典
解析:数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段。分别是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。数据字典是对系统中数据的详尽描述,是各类数据属性的清单。对数据设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。
7.下列关于数据库设计的叙述中,正确的是( )。(A)
A. 在需求分析阶段建立数据字典
B. 在概念设计阶段建立数据字典
C. 在逻辑设计阶段建立数据字典
D. 在物理设计阶段建立数据字典
解析:数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段。分别是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。数据字典是对系统中数据的详尽描述,是各类数据属性的清单。对数据设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。
8.有两个关系R和S如下:
(B)
A. 选择
B. 投影
C. 插入
D. 连接
解析:一个关系R通过投影运算后仍为一个关系R’,R’是由R中投影运算所指出的那些域的列所组成的关系。所以题目中关系S是由关系R经过投影运算所得(选择运算主要是对关系R中选择由满足逻辑条件的元组所组成的一个新关系)。
9.下列叙述中,错误的是( )。(B)
A. false是一个逻辑型常量
B. ”b”是一个字符型常量
C. 365是一个int常量
D. 3.1415926是一个double常量
解析:字符常量简称字符,它以单引号作为起止符号,中间有一个或若干个字符。或者以“\”开头的包括多个字符的字符序列也符合规定的字符常量。
10.有如下程序:
#include<iostream>
using namespace std;
class MyClass {
public:
MyClass(int x):val(x){}
void Print()const{cout<<’’const:val=’’<<val<<’\t’;}
void Print(){cout<<’’val=’’<<val<<’t’;}
private:
int val;
};
int main(){
const MyClass obj 1(10);
MyClass obj2(20);
obj1.Print();
obj2.Print();
return 0;
}
程序的输出结果是( )。(C)
A. val=10 const:val=20
B. const:val=10 const:val=20
C. const:val=10 val=20
D. val=10 val=20
解析:此题考查的是常成员函数的重载。常成员函数是使用const关键字说明的函数。const关键字可用于区分重载函数。此时,常对象调用常成员函数,一般对象调用一般成员函数;题目中的Print()就是通过const重载的两个成员函数,主函数中声明的obi1是常对象,obj2是一般对象。故输出结果是const::val=10 val=20。
11.下列选项中,正确的C++标识符是( )。(D)
A. 6_group
B. group-6
C. age+3
D. _group_6
解析:C++中标识符的命名遵循如下规则:不能是C++关键字,第一个字母必须是字母或下划线,中间不能有空格,变量名中不能包括“.”、“;”、“,”、“’”、“’’”+-之类的特殊符号。总之标识符中除了能使用26个英文大小写字母和数字外,只能使用下划线“__”。
12.有如下程序:
#inc1ude <iostream>
using
本文档预览:3600字符,共6075字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载