国家二级(C++)机试模拟试卷121
选择题
1.在关系代数运算中,有5种基本运算,它们是( )。(D)
A. 并(∪)、差(—)、交(∩)、除(÷)和笛卡儿积(×)
B. 并(∪)、差(—)、交(∩)、投影(Ⅱ)和选择(σ)
C. 并(∪)、交(∩)、投影(Ⅱ)、选择(σ)和笛卡儿积(×)
D. 并(∪)、差(—)、投影(x)、选择(σ)和笛卡儿积(×)
解析:并、差、笛卡儿积、投影和选择是5种基本的运算,其他运算即交、连接和除,均可以通过5种基本的运算来表达。
2.在数据库系统的组织结构中,下列( )映射把用户数据库与概念数据库联系了起来。(A)
A. 外模式/模式
B. 内模式/外模式
C. 模式/内模式
D. 内模式/模式
解析:数据库有两层映像,即外模式/模式和模式/内模式映像。模式/内模式映像定义数据库全局逻辑结构与存储结构之间的对应关系。
3.下列关于线性链表的描述中,正确的是( )。
Ⅰ、只含有一个指针域来存放下一个元素地址
Ⅱ、指针域中的指针用于指向该结点的前一个或后一个结点(即前件或后件)
Ⅲ、结点由两部分组成:数据域和指针域。(D)
A. 仅Ⅰ、Ⅱ
B. 仅Ⅰ、Ⅲ
C. 仅Ⅱ、Ⅲ
D. 全部
解析:在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。
4.下面关于数据库三级模式结构的叙述中,正确的是( )。(B)
A. 内模式可以有多个,外模式和模式只有一个
B. 外模式可以有多个,内模式和模式只有一个
C. 内模式只有一个,模式和外模式可以有多个
D. 模式只有一个,外模式和内模式可以有多个
解析:数据库的三级模式结构是指数据库系统的外模式、模式和内模式。一个数据库可以有多个外模式,但只有一个模式和一个内模式。
5.设有关键码序列(66,13,51,76,81,26,57,69,23),要按关键码值递增的次序排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为( )。(A)
A. 23, 13, 51, 57, 66, 26, 81, 69, 76
B. 13, 23, 26, 51, 57, 66, 81, 76, 69
C. 23, 13, 51, 57, 26, 66, 81, 69, 76
D. 23, 13, 51, 57, 81, 26, 66, 69, 76
解析:快速排序是起泡排序的改进。在快速排序中,任取一个记录,以它为基准用交换的方法将所有的记录分成两部分,关键码值比它小的在一部分,关键码值比它大的在另一部分,再分别对两个部分实施上述过程,一直重复到排序完成。
6.下列哪一条不属于数据库设计的任务?( )(A)
A. 设计数据库应用结构
B. 设计数据库概论结构
C. 设计数据库逻辑结构
D. 设计数据库物理结构
解析:数据库设计工作量大而且过程复杂,既是一项数据库工程也是一项庞大的软件工程。考虑数据库及其应用系统开发全过程,将数据库设计分为以下6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库的运行和维护。
7.数据库技术的根本目标是( )。(B)
A. 数据存储
B. 数据共享
C. 数据查询
D. 数据管理
解析:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享,所以数据库技术的根本目标是解决数据共享问题。
8.需求分析阶段的任务是( )。(D)
A. 软件开发方法
B. 软件开发工具
C. 软件开发费用
D. 软件系统功能
解析:需求分析时软件定义时期的最后一个阶段,它的基本任务就是洋细调查现实世界要处理的对象,充分了解原系统的上作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。
9.关系数据库管理系统能实现的专门关系运算包括( )。(B)
A. 排序、索引、统计
B. 选择、投影、连接
C. 关联、更新、排序
D. 显示、打印、制表
解析:关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。
10.数据管理技术发展的三个阶段中,( )没有专门的软件对数据进行管理。
Ⅰ.人工管理阶段
Ⅱ.文件系统阶段
Ⅲ.数据库阶段(A)
A. 仅Ⅰ
B. 仅Ⅲ
C. Ⅰ和Ⅱ
D. Ⅱ和Ⅲ
解析:数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。
11.阅读以下程序:
#inc1ude<iostream.h>
void main()
{
static int a[][2]={5,3,1,2};
int i,j,s1=0;
for(i=0;i<2;j++)
for(j=0j<2;j++)
{
if(i=j)
s1=s1+a[i][j];
}
cout<<s1<<end1;
}
则该程序的输出结果为( )。(B)
A. 6
B. 7
C. 8
D. 9
解析:程序中“static int a[][2]={5,3,1,2};”定义了一个2*2的整型矩阵。两个for循环读取数组元素。“if(i=j)”语句中的条件是取矩阵的正对角线上的元素。对角线上的元素为5,2,所以“s1=s1+a[i][i]”的计算结果为7。
12.若有如下程序段:
#inc1ude<iostream>
using namespace std;
int main()
{
char*p=\\(A)
A. a
B. b
C. c
D. d
解析:字符指针p指向“abcdefgh”字符串,语句“r=p;”是r指向p指向的字符串,而*r则是指向字符串中的第一个字符。即a。
13.有如下程序:
#inc1ude<iostream>
using namespace std;
void fun(int&x,int y){int t=x;x=y;y=t;)
int main()
{
int a[2]={1,2};
fun(a[1],a[0]);
std:
本文档预览:3600字符,共16433字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载