国家二级C++机试(选择题)模拟试卷209
选择题
1.下列描述中正确的是( )。(D)
A. 一个逻辑数据结构只能有一种存储结构
B. 数据的逻辑结构属于线性结构,存储结构属于非线性结构
C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
解析:数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构;而采用不同的存储结构,其数据处理的效率是不同的。
2.在数据库设计中,将E-R图转换成关系数据模型的过程属于( )。(C)
A. 需求分析阶段
B. 概念设计阶段
C. 逻辑设计阶段
D. 物理设计阶段
解析:E―R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。
3.下列描述中正确的是( )。(D)
A. 一个逻辑数据结构只能有一种存储结构
B. 数据的逻辑结构属于线性结构,存储结构属于非线性结构
C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
解析:数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构;而采用不同的存储结构,其数据处理的效率是不同的。
4.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(D)
A. 15
B. 16
C. 20
D. 0或35
解析:循环队列的队头指针和尾指针都等于15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达15,此时元素个数为0;第二种情况是队头指针第一次到达15,而尾指针第二次到达15,此时元素个数为35。
5.下列叙述中正确的是( )。(A)
A. 对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2 n)
D. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog 2 n)
解析:本题主要考查的知识点为查找技术。顺序查找的使用情况:①线性表为无序表;②表采用链式存储结构。二分法查找只适用于顺序存储的有序表,并不适用于线性链表。
6.结构化程序设计的基本原则不包括( )。(A)
A. 多元性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。
7.下列给字符数组进行初始化中,正确的是( )。
C
解析:在C++中定义二维数组时并赋值,则数组的行数可以省略不写。选项A)、B)、D)均是字符字符串初始化。。
8.下面描述中不属于数据库系统特点的是( )。(C)
A. 数据共享
B. 数据完整性
C. 数据冗余度高
D. 数据独立性高
解析:数据系统的基本特点有数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。
9.下列叙述中,错误的是( )。(B)
A. false是一个逻辑型常量
B. b是一个字符型常量
C. 365是一个int常量
D. 3.1415926是一个double常量
解析:字符常量简称字符,它以单引号作为起止符号,中间有一个或若干个字符。或者以“\”开头的包括多个字符的字符序列也符合规定的字符常量。
10.有如下函数模板:
template<class T>T square(T x){return x*x;}
其中T是( )。(C)
A. 函数形参
B. 函数实参
C. 模板形参
D. 模板实参
解析:此题考查的是函数模板。声明一个函数模板的格式是:template函数声明,{函数体}其中的是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename参数名;class参数名;类型修饰参数名。
11.下列语句中,错误的是( )。(B)
A. const int buffer=256;
B. const int temp;
C. const double*point;
D. const double*rt=new double(5.5);
解析:此题考查的是符号常量的概念。符号常量必须在声明的同时赋初值,故选项B错误;选项c定义的是一个指向常量的指针变量,即通过指针不能改变它所指向的内容,而它自己的内容是可以改变的,C选项正确。
12.有如下程序:
#include<iostream>
using namespace std;
int main() {
int a[6]={23,15,64,33,40,58};
int s1,s2;
s1=s2=a[0];
for(int*p=al+1;p<a+6;p++) {
if(s1>*p)s1=*p;
if(s2<*p)s2=*p;
}
cout<<s1+s2<<end1;
return 0;
}
运行时的输出结果是( )。(D)
A. 23
B. 58
C. 64
D. 79
解析:变量s1和s2的初值都等于23,那么在执行第一次for循环时,*p的值等于15,它小于23,所以把15赋给变量s1;执行第二次for循环时,*p的值等于64,它大于23,所以把64赋给变量s2;而数组a中a[2]后面的元素的值都大于15,小于64,因而变量s1,s2的值不会再发生变化,最终值为15+64=79。
13.在语句cin>>data;中,cin是( )。(C)
A. C++的关键字
B. 类名
C. 对象名
D. 函数名
解析:此题考查的是预定义流对象。C++有4个预定义的流对象:cin一标准输入;cout一标准输出;cer卜_标准出错信息输出;clog一带缓冲的标准出错信息输出。
14.有如下程序:
#inc1ude <iostream>
#inc1ude <cmath>
using std::cout;
<本文档预览:3600字符,共5698字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载