国家二级C++机试(选择题)模拟试卷396
选择题
1.下列叙述中正确的是( )。(D)
A. 一个算法的空间复杂度大,则其时间复杂度也必定大
B. 一个算法的空间复杂度大,则其时间复杂度必定小
C. 一个算法的时间复杂度大,则其空间复杂度必定小
D. 算法的时间复杂度与空间复杂度没有直接关系
解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模:算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。
2.在下列字符中,不允许作为C++标识符的是( )。(D)
A. b
B. B
C. _
D. 2
解析:C++的标识符是一个以字母或F划线开头的,由字母、数字、下划线组成的字符串。
3.下面叙述中正确的是( )。(A)
A. 线性表是线性结构
B. 栈与队列是非线性结构
C. 线性链表是非线性结构
D. 二叉树是线性结构
解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。
4.下列各组类型声明符中,含义相同的一组是( )。(B)
A. unsigned long int和long
B. signed short int和short
C. unsigned short和short
D. short int和int
解析:此题考查的是基本类型和派生型。C++语言中,基本类型的字长及其取值范围可以放大和缩小,改变后的类型就叫做基本类型和派生类型。本题A选项中,unsigned long int的省略形式为 unsigned long:选项B中,signed short int的省略形式是short;选项C中,unsigned short的省略形式是unsigned short;选项D中,shortint的省略形式是short。
5.下列关于栈的描述中正确的是(C)
A. 在栈中只能插入元素而不能删除元素
B. 在栈中只能删除元素而不能插入元素
C. 栈是特殊的线性表,只能在一端插入或删除元素
D. 栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
解析:栈是限定在一端进行插入与删除的线性表,在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
6.下列循环语句中有语法错误的是( )。(D)
A. int i;for(i=l;i<10;i++)cout<<‘*’;
B. int i,j;for(i=1,j=0;i<10;i++,j++)cout<<‘*’;
C. int i=O;for(;i<10;i++)cout<<‘*’;
D. for(1)cout<<‘*’:
解析:这道题目主要考查for循环语句的语法。for循环语句的语法格式如下:for(;;),在二三个表达式都省略的情况下,其格式如F for(;;),这时for循环语句是一个死循环。
7.有如下语句序列:
char str[10];cin>>str;
当从键盘输入”I love this game”时,str中的字符串是( )。(D)
A. “I love this game”
B. “I love thi”
C. “I love”
D. “I”
解析:由于字符\0作为字符串的结束标志,所以当从键盘上输入“I love this game”时,只把字母I输入字符串str。
8.下列运算符函数中肯定不属于类FunNumber的成员函数的是( )。(D)
A. int operator一(FunNumber);
B. FunNumber operator一( );
C. FunNumber operator一(int);
D. int operator一(FunNumber,FunNumber);
解析:本题考查运算符重载的一些规则:①一般情况下,单目运算符最好重载为类的成员函数,双目运算符则最好重载为类的友元函数;②双目运算符=、()、[]、一>不能重载为类的友元函数;③类型转换函数只能定义为一个类的成员函数,而不能定义为类的友元函数;④若一个运算符的操作需要修改对象的状态,选择重载为成员函数较好;⑤若运算符所需的操作数(尤其是第一个操作数)希望有隐式类型转换,则只能选用友元函数;⑥当运算符函数是一个成员函数时,最左边的操作数(或者只有最左边的操作数)必须是运算符类的一个类对象(或者是对该类对象的引用);如果左边的操作数必须是一个不同类的对象,或者是一个内部类型的对象,该运算符函数必须作为一个友元函数来实现。所以答案为D。
9.在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(A)
A. auto
B. extern
C. register
D. static
解析:此题考查的是存储类型。C++语言变量的存储类型分为如下几种类型:auto一一函数内部的局部变量;static一一静态存储分配;extern——全局变量;register一一变量存储在硬件寄存器中。
10.有如下程序:
#include
using namespace std;
class Base{
protected:
Base(){cout<<‘A’;}
Base(charc{cout<<c;}
};
class Derived:public Base{
public:
Derived(charc{cout<<c;}
};
int main(){
Derived dl(‘B’);
return 0;
}
执行这个程序的输出结果是( )。(C)
A. B
B. BA
C. AB
D. BB
解析:本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数;对象释放时,先执行派生类的析构函数,再执行基类的析构函数。本题中定义了一个派生类对象d1,首先执行基类的构造函数,输出A;然后执行派生类的构造函数,输出B。所以答案为C。
11.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是( )。(B)
A. 编辑软件
B. 操作系统
C. 教务管理系统
D. 浏览器
解析:软件根据应用目标的不同,是多种多样的。软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服
本文档预览:3600字符,共11991字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载