国家二级C++机试(选择题)模拟试卷404
选择题
1.下列字符串中,不可以用作C++标识符的是( )。(D)
A. y_2006
B. ____TEST__H
C. Return
D. switch
解析:此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过31个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。
2.下列描述中正确的是( )。(D)
A. 数据的逻辑结构与存储结构必定是一一对应的
B. 由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C. 程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构
D. 以上三种说法都不对
解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。
3.下列叙述中正确的是(D)
A. 栈是一种先进先出的线性表
B. 队列是一种后进先出的线性表
C. 栈与队列都是非线性结构
D. 以上三种说法都不对
解析:栈是先进后出的线性表,队列是先进先出的线性表,二者均为线性结构。
4.下列叙述中正确的是( )。(A)
A. 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B. 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C. 顺序存储结构能存储有序表,链式存储结构不能存储有序表
D. 链式存储结构比顺序存储结构节省存储空间
解析:链式存储结构既可以针对线性结构也可以针对非线性结构,所以B与c错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D错误。
5.下列叙述中正确的是( )。(A)
A. 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B. 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C. 顺序存储结构能存储有序表,链式存储结构不能存储有序表
D. 链式存储结构比顺序存储结构节省存储空间
解析:顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。而链式存储结构的存储空间不一定是连续的。
6.若有以下程序:
#include<iostream>
using namespace std;
class A
{
public:
A(int i,int j)
{
a=i:
b=j;
}
void move(int x,int y)
{
a+=x;
b+=y;
}
void show()
{
cout<<a<<\\(C)
A. 3,4
B. 6,8
C. 6,9
D. 4,3
解析:此题的执行过程如下:首先Bd(3,4);语句调用B类的构造函数:B(int i,int j),B的构造函数中调用基类A的构造函数,使得a=3,b=4;d.fun()会调用函数move(3,5),使得(3,4)和(3,5)的对应部分分别相加,最后输出6,9。
7.下列情况中,不会调用拷贝构造函数的是( )。(B)
A. 用一个对象去初始化同一类的另一个新对象时
B. 将类的一个对象赋值给该类的另一个对象时
C. 函数的形参是类的对象,调用函数进行形参和实参结合时
D. 函数的返回值是类的对象,函数执行返回调用时
解析:拷贝构造函数是一个特殊的构造函数,它用一个己知的对象初始化一个正在创建的同类对象,它的一般格式是:类名::类名(const类名&引用对象名)。当一个类的对象赋值给该类的另一个对象时,是赋值而不是创建对象,所以不会调用拷贝构造函数。
8.有如下程序:
#include
using namespace std;
int main()
{
int*p;
*P=9;
cout<<\\(D)
A. 编译时出现语法错误,不能生成可执行文件
B. 运行时一定输出:The value at p:9
C. 运行时一定输出:The value at p:*9
D. 运行时有可能出错
解析:此题考查的是指针的使用。本题中,在给*p赋值前,指针p并没有指向一个具体的对象。此时可以通过编译,但运行时由于p中为随机值,该赋值可能会破坏内存中某个重要的地址空间的内容,导致程序出错。
9.存在定义int a[10],x,*pa;,若pa=&a[0],下列的哪个选项和其他3个选项不是等价的( )?(A)
A. x=*pa;
B. x=*(a+1);
C. x=*(pa+1);
D. x=a[1];
解析:选项B、C、D都是获取a(1)元素,而选项A是获取a(0)的元素。
10.下面关于构造函数和析构函数的描述中,错误的是( )。(D)
A. 析构函数可以声明为虚函数
B. 对虚析构函数的调用可以采用动态联编
C. 一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响
D. 构造函数可以声明为虚函数
解析:析构函数可以声明为虚函数,但是构造函数不能声明为虚函数;类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响。
11.下面不能作为结构化方法软件需求分析工具的是( )。(A)
A. 系统结构图
B. 数据字典(D)
C. 数据流程图(DFD图)
D. 判定表
解析:按照DeMarco的定义,“结构化分析就是使用数据流图(DFD图)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。”系统结构图不能作为结构化方法软件需求分析工具。
12.下面描述中错误的是( )。(A)
A. 系统总体结构图支持软件系统的详细设计
B. 软件设计是将软件需求转换为软件表示的过程
C. 数据结构与数据库设计是软件设计的任务之一
D. PAD图是软件详细设计的表示工具
解析:软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一;PAD图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。
13.下列关于运算符重载的叙述中,错误的是( )。(B)
A. 有的运算符可以作为非成员函数重载
B. 所有的运算符都可以通过重载而被赋予新的含义
C. 不得为重载的运算符函数的参数设置默认值
D. 有的运算符只能作为成员函数重载
解析:重载运
本文档预览:3600字符,共10980字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载