国家二级C++机试(选择题)模拟试卷362
选择题
1.对于循环队列,下列叙述中正确的是( )。(D)
A. 队头指针是固定不变的
B. 队头指针一定大于队尾指针
C. 队头指针一定小于队尾指针
D. 队头指针可以大于队尾指针,也可以小于队尾指针
解析:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。循环队列的主要操作是:入队运算和退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,队头指针就进一。当rear或front等于队列的长度加1时,就把rear或front值置为1。所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。
2.若X和v是程序中的两个整型变量,则下列if语句中正确的是( )。(A)
A. if(x=0)y=l;else y=2;
B. if(x=0)then y=l else Y=2;
C. if(x=0)y=l else y=2;
D. if(x==0)y=1;else y=2;
解析:ifelse语句的彤式为:
if() else
所以符合以上形式的ifelse语句为选项A)。
3.某二叉树中度为2的结点有10个,则该二叉树中有( )个叶子结点。(C)
A. 9
B. 10
C. 11
D. 12
解析:根据二叉树的性质3:对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。
4.下列数据结构中,能用二分法进行查找的是( )。(A)
A. 顺序存储的有序线性表
B. 线性链表
C. 二叉链表
D. 有序线性链表
解析:二分法查找只适应于顺序存储的有序表。有序表是指线性表中的元素按值非递减排序(即从小到大,但允许相邻元素值相等)的表。
5.关于关键字class和typename,下列表述中正确的是( )。(A)
A. 程序中的typename都可以替换为class
B. 程序中的class都可以替换为typellame
C. 在模板形参表中只能用typename来声明参数的类型
D. 在模板形参表中只能用class或typename来声明参数的类型
解析:程序中的typename都可以替换为class,但程序中的class不可以全部替换为typename。在模板类型形参中除了typename和class以外,也可以用常规类型来声明参数的类型,所以C、D选项错误。
6.在对函数进行原型声明时,下列语法成分中,不需要的是( )。(D)
A. 函数返回类型
B. 函数参数列表
C. 函数名
D. 函数体
解析:在c十+中函数在使用之前要预先声明,这种声明在标准C++中称为函数原型。函数给出了函数名、返回类型以及在调用函数时必须指明参数个数和类型。
7.以下关键字不能用来声明类的访问权限的是( )。(B)
A. public
B. static
C. protected
D. private
解析:类的成员访问权限有3种:public(公用)、protected(保护)、private(私有)。
8.建立一个类对象时,系统自动调用( )。(B)
A. 析构函数
B. 构造函数
C. 静态函数
D. 友元函数
解析:建立一个类的对象时,编译程序需要为对象分配存储空间,进行必要的初始化。在c++中,这项工作是由构造函数来完成。
9.阅读下面的程序:
#include<iostream.h>
void main()
{
int x;
cin>>x;
if(x++>5)
cout<<x<<end1;
else
cout<<x–<<end1;
}
如果两次执行上述程序,且键盘输入分别为4和6,则输出结果分别是( )。(D)
A. 4,6
B. 3,6
C. 4,7
D. 5,7
解析:此题首先读入数值4赋给变量x,因为x++>5不成立,因为“++”后缀,之后x的值变为5,执行语句cout<<x-<<end1;输出:5,之后x的值变为4。当读入的数值是6时,因为x++>》5成立,所以执行语句cout<<x<<end1;输出7。
10.数据库管理系统是( )。(B)
A. 操作系统的一部分
B. 在操作系统支持下的系统软件
C. 一种编译系统
D. 一种操作系统
解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
11.有如下程序:
#include
#include
using std∷cout;
class Point{
public:
friend double distance(const Point&p); ∥p距原点的距离
Point(int xx=0,int yy=0):x(xx),y(yy)} ∥①
private:
int x,y;
};
double distance(const Point&p){ ∥②
return sqrt(p.XP.x+p.yP.y);
}
int main(){
Point p1(3,4);
cout<<distance(p 1); ∥③
return 0;
}
下列叙述中正确的是( )。(A)
A. 程序编译正确
B. 程序编译时语句①出错
C. 程序编译时语句②出错
D. 程序编译时语句③出错
解析:这段程序是正确的,计算p距离原点的距离。语句①是类Point的构造函数,在构造函数中给变量xx和yy赋初值0。语句②是计算点p距原点的距离的函数distance。语句③是计算点p1距离原点的距离并输出。
12.负责数据库中查询操作的数据库语言是( )。(C)
A. 数据定义语言
B. 数据管理语言
C. 数据操纵语言
D. 数据控制语言
解析:负责数据库中查询操作的数据库语言是数据操纵语言。
13.下列字符串中可以用作C++标识符的是( )。(D)
A. 2009var
B. goto
C. test—2009
D. _123
解析:标识符是用户为程序中
本文档预览:3600字符,共9193字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载