java实现dbms_Java基础笔试练习(十六)

ddcff7e8fe01ecb7a32294ae37891f29.png

Java基础笔试练习(十六)

1.所谓静态链表就是一直不发生变化的链表()

A.对

B.错

答案:

B

解析:

静态链表,数组描述的链表。也有插入和删除操作

2.哈希函数越复杂越好,因为这样随机性好,冲突概率小()

A.对

B.错

答案:

B

解析:

哈希函数越复杂,则时间就会越多,因此不是哈希函数越复杂越好,还需要考虑下时间方面

3.二叉树中每个结点有两棵非空子树或有两棵空子树()。

A.对

B.错

答案:

B

解析:

二叉树中每个结点有:①两棵非空子树;②两棵空子树;③一棵子树。

4.关系模型中,一个关键字是 ( )。

A.可由多个任意属性组成 性组

B.至多由一个属性组成

C.可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成

D.以上都不是

答案:

C

解析:

数据库关键字可由一个或多个其值能唯一标示该关系模式中任何元组的属性组成

5.完全二叉树中编号为 i 的结点存在右孩子,右孩子结点的编号为()。设根结点的编号为 1

A.2i-1

B.2i

C.2i+1

D.2i+2

答案:

C

解析:

左孩子2i 右孩子2i+1, C

6.限制输入到列的值的范围,应使用( )约束。

A.CHECK

B.PRIMARY KEY

C.FOREIGN KEY

D.UNIQUE

答案:

A

解析:

数据库的检查约束,可以在插入值的时候检查是否符合设定的取值区域

7.深度为k的二叉树至多有几个结点()

A.2^k

B.2^(k-1)

C.2^k-1

D.2^k+1

答案:

C

解析:

一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树。

这种树的特点是每一层上的节点数都是最大节点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则此二叉树为完全二叉树。

具有n个节点的完全二叉树的深度为floor(log2n)+1。

深度为k的完全二叉树,至少有2k-1个叶子节点,至多有2k-1个节点。

8.事务日志的用途是?

A.事务处理

B.完整性约束

C.数据恢复

D.安全性控制

答案:

C

解析:

SQL Server使用各数据库的事务日志来恢复事务。

事务日志是数据库中已发生的所有修改和执行每次修改的事务的一连串记录。事务日志记录每个事务的开始。它记录了在每个事务期间,对数据的更改及撤消所做更改(以后如有必要)所需的足够信息。

主要是恢复时用到数据,所以对日志文件不能轻易删除!

9.如果一个堆栈的入栈序列是A,B,C,D,E,则堆栈的不可能输出顺序是()。

A.EDCBA

B.DECBA

C.DCEAB

D.ABCDE

答案:

C

解析:

A 可行,ABCDE依次入栈,然后再依次出栈

B 可行,A入栈,B入栈,C入栈,D入栈,D出栈,E入栈,E出栈,CBA依次出栈

C 不可行,A入栈,B入栈,C入栈,D入栈,D出栈,C出栈,E入栈,E出栈,此时只能B先出栈,得不到AB

D 可行,A入栈,A出栈,B入栈,B出栈,C入栈,C出栈,D入栈,D出栈,E入栈,E出栈

10.根据关系数据库规范范理论,关系数据库中的关系要满足第一范式,在部门关系中,因哪个属性而使它不满足第一范式?()

A.部门号

B.部门名

C.部门总经理

D.部门成员

答案:

D

解析:

针对数据库范式的理解,可以关注我的公众号Coder编程,其中就有文章详细介绍了数据库的三范式。

11.把对关系SC的属性GRADE的修改权授予用户ZHAO的T-SQL语句是()

A.GRANT GRADE ON SC TO ZHAO

B.GRANT UPDATE ON SC TO ZHAO

C.GRANT UPDATE (GRADE) ON SC TO ZHAO

D.GRANT UPDATE ON SC (GRADE) TO ZHAO

答案:

C

解析:

GRANT UPDATE (COLUMN_NAME) ON TABLE_NAME TO USER_NAME

12. 由计算机、操作系统、 DBMS 、数据库、应用程序及用户等组成的一个整体叫做 ( ) 。

A.文件系统

B.数据库系统

C.软件系统

D.数据库管理系统

答案:

B

解析:

数据库系统:数据库、数据库管理系统、硬件、操作人员的合在一起的总称。

数据库管理系统:用来管理数据及数据库的系统。

数据库系统包含数据库管理系统、数据库及数据库开发工具所开发的软件(数据库应用系统)

13.以下正确定义一维数组的选项是( )

A.int a[5] = {0, 1, 2, 3, 4, 5};

B.char a[] = {0, 1, 2, 3, 4, 5};

C.char a = {'A', 'B', 'C'};

D.int a[5] = "0123";

答案:

B

解析:

【A】数组越界。所以错误。 【B】声明char类型,传入了数值数组,而数值会以char类型的ASCII编码写入。所以正确。

【C】数组声没明显不符合规范,左侧声明名后应加上[]。所以错误。 【D】这种声名只能用字符型char等。所以错误。

14. 具有 n 个结点的连通图至少有()条边?

A.n-1

B.n

C.n(n-1)/2

D.2n

答案:

A

解析:

具有 n 个结点的无向连通图至少有 n-1 条边

具有 n 个结点的有向连通图至少有 n 条边。

15.MYSQL实现主从复制的日志是哪种?

A.READ LOG

B.UNDO LOG

C.BINLOG

D.GENERAL LOG

答案:

C

解析:

MySQL5.6开始主从复制有两种方式:基于日志(binlog);基于GTID(全局事务标示符)

16. 给出数据表 score(stu-id,name,math,english,Chinese), 下列语句正确的是( )

A.Select sum(math),avg(chinese) from score

B.Select *,sum(english) from score

C.Select stu-id, sum(math) from score

D.Delete * from score

答案:

A

解析:

B中对英语成绩求和,无法再与id 名字 其他成绩进行一一对应,因此无法这样选择

C中同样对数学成绩求和后无法与id一一对应不能这样选择

D删除整个表可以用delete table score,无该用法

17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是()

A.cedba

B.cedab

C.cebad

D.cebda

答案:

A

解析:

可以关注我的公众号Coder编程,里面有前中后遍历序列的相关文章。

18.The initial insert of new data into the table will leave most of its large columns NULL, to be filled in later by subsequent updates.记录重未更新. PCTFREE 和 PCTUSED取值多少合适?

A.PCTUSED = 99, PCTFREE = 1

B.PCTUSED = 40, PCTFREE = 30

C.PCTUSED = 40, PCTFREE = 10

D.PCTUSED = 80, PCTFREE = 10

答案:

B

解析:

(1)PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert。

(2)PCTUSED:是指当块里的数据低于多少百分比时,又可以重新被insert。

形象举例说明:

假如:一个杯子一共可装10分水:

PCTFREE = 10,说明杯子装到9分水,就不能再装了,即:不能进行insert操作,但可以进行update操作。

PCTUSED = 40,说明杯子中的水喝到4分一下,就可以往里面装水,即:进行insert操作。

可是为什么是40和30? pctfree这个参数定义了一个块保留空间的百分比,保留空间是为了将来可能发生的更新操作,因为更新可能增大被更新行占用的空间,如果此时该块没有可利用空间,那么只有发生row migrate了,从而会降低I/O性能。换句话说,就是当一个块的利用率达到1-pctfree的时候,oracle就将该块从freelist中移除,不再向该块插入数据。所以说pctfree是控制什么时候将块从freelist中移除的。 pctused这个参数控制一个块什么时候被重新启用来插入数据,例如当一个块达到1-pctfree利用率的时候,oracle停止向该块插入数据,同时从freelist移除该块,但是后来发生一些删除操作,使得该块的利用率下降,当该块的利用率降到pctused以下的时候该块就被重新启用来插入数据了,也即是将该块重新加入到freelist列表中,所以说pctused是控制什么时候将一个块重新加入freelist的。 举个例子:比如一个块的pctfree定为10%,pctused定为40%(oracle默认设置)。那么一个块的使用率达到90%(即1-10%)的时候,oracle将该块从freelist中移除,停止使用该块来插入数据(但可更新)。后来该块上发生了一些删除操作,使得该块的利用率下降,当使用率下降到40%以下的时候,oracle重新将该块加入freelist,可用于新的插入。

19.java8中,下面哪个类用到了解决哈希冲突的开放定址法

A.LinkedHashSet

B.HashMap

C.ThreadLocal

D.TreeMap

答案:

C

解析:

ThreadLocalMap中使用开放地址法来处理散列冲突,而HashMap中使用的是分离链表法。之所以采用不同的方式主要是因为:在ThreadLocalMap中的散列值分散得十分均匀,很少会出现冲突。并且ThreadLocalMap经常需要清除无用的对象,使用纯数组更加方便。

20.关于链表,正确的是()

A.无需实现估计空间

B.支持随机访问

C.增删不必挪动元素

D.所需空间与线性表长度成正比,并且地址连续

E.插入一个元素所需挪动元素的平均个数为n/2

答案:

A C

解析:

链表是一种物理存储单元上非连续、非顺序的存储结构。每一个节点里会存到下一个节点的指针。

推荐

笔试内容集合 持续更新中….

文末

欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~

2fc3eb78a1fb415529e698cb426de430.png

微信公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值