Day15-Day21

简介: Day15-Day21

一. Day15

1.1 选择题

(1) 数据库做join操作时,至少要涉及到几张表?()

A. 3

B. 1

C. 2

D. 4

答案: B

数据库查询语句可以自连接

例:

select s1.* from score s1 ,score s2 where s1.student_id= s2.student_id and s1.score<s2.score and s1.course_id=1 and s2.course_id=3;

(2) 下面哪一个命令为删除 sample 数据库的 tb_name 表()


A. delete from tb_ame


B. delete from sample.tb_ame


C. drop table sample.tb_ame


D.  drop table sample.tb_ame


答案: D


当在table 数据库中(使用过use table后),可以使用drop table sample.tb_ame,否则,不可以.


而 D 选项不在该数据库中仍可以删除该表.


(3) 在 Myaql 中,语句 SELECT IF(-1,5,2)的返回值是:


A. 2


B. 6


C. -1


D. 5


答案: D


if() 函数的具体语法如下: if( expr1, expr2, expr3), 如果 expr1 的值为真(boolean值true, 或不为 0 的数值),则返回expr2的值,否则返回 expr3的值

二. Day 16

2.1. 选择题

(1)下列sql 语句中那条语句可为用户zhangsan 分配数据库userdb表userinfo的查询和插入数据权限()


A. grant select , insert on userdb.userinfo to 'zhangsan'@'localhost'


B. grant 'zhangsan'@'localhost' to select ,insert for userdb.userinfo


C. grant select, insert on userdb.userinfo for 'zhangsan' @ 'localhost'


D. grant 'zhangsan'@'localhost' to userdb.userinfo on select ,insert


答案:A


常用的管理权限的命令有:


授予用户某张表查询数据的权限: grant select on 数据库名.表名 to 用户名@'该用户允许访问的IP'


授予用户某张表插入数据的权限: grant insert on 数据库名.表名 to 用户名@'该用户允许访问的IP'


授予用户某张表修改数据的权限: grant update on 数据库名.表名 to 用户名@'该用户允许访问的IP'


授予用户某张表删除数据的权限: grant delete on 数据库名.表名 to 用户名@'该用户允许访问的IP'


可以同时赋予多种权限,权限之间使用' , ' 隔开.


(2) 下列那个特性与此时相关: 已落实的事务会保证所有操作均已完成, 并且在事务回滚中,所有操作产生的影响均已得到恢复?


A. 隔离性


B. 原子性


C. 一致性


D. 持久性


答案:B


(3) athletes 表包含运动员姓名, 年级和代表国家. 下面哪个查询可以找出代表每个国家最年轻的运动员的情况?


A. select name, country ,age from athletes where (country, age) in (select country, min(age) from athletes group by country)


B. select name, country ,age from athletes where (country, age) in (select min(age), country from athletes group by country)


C. select name,country ,age from athletes where(country,age) in (select country , min(age) from athletes) group by country


D. select name,country, age from athletes where age in (select country, mn(age) from athletes group by country


答案: A


字段 in (子查询)


字段可以有1 个或多个, 但字段需要和子查询结果集的树亮,顺序一致

三 Day 17

3.1 选择题

(1) 以下哪个不是与Mysql 服务器相互作用的通讯协议()


A. TCP/IP


B. UDP


C. 共享内存


D. Socket


答案: B


(2) 设有两个事务T1,T2,其并发操作如下所示,下面评价正确的是()


步骤          T1               T2


1          读A=100


2                              读A=100


3          A=A+100写回


4                               A=a-10写回


A. 读操作不能重复读


B. 该操作不存在问题


C. 该操作读"脏" 数据


D.  该操作丢失修改


答案: D


(3) 如果事务获得了数据项Q上的排它锁,则T对Q().


A. 只能读不能写


B. 只能写不能读


C. 即可读又可写


D.  不能读不能写


答案:C


获取到排它锁的事务可以对数据进行任何操作,但其他未获得的事务,不能进行任何操作.

四. Day 18

4.1 选择题

(1) 解决散列法中出现冲突问题常采用的方法是()


A. 数字分析法, 除余法, 平方取中法


B. 数字分析法, 除余法, 线性探测法


C. 数字分析法, 线性探测法, 多重散列法


D. 线性探测法, 多重散列法, 链地址法


答案:D


(2)以下哪种排序算法对{1,3,2,4,5,6,7,,8,9}进行的排序最快()


A. 冒泡


B. 快排


C. 归并


D. 堆排


答案: A


以下数据结构中, ()是非线性数据结构


A. 树


B. 字符串


C. 队


D. 栈

五. Day 19

5.1 选择题

(1) 设一个有序的单链表中有n 个结点,现要求插入一个新结点后使得单链表任然保持有序,则该操作的时间复杂度()


A. O(log2n)


B. O(1)


C. O(n^2)


D. O(n)


答案: D


假若有序单链表:1,2,3,4,5 现在对其进行头插 6. 最坏情况下为 O(n).


(2)下列叙述中错误的是()


A. 二叉链表是二叉树的存储结构


B. 循环链表是循环队列的存储结构


C. 栈是线性结构


D.  循环队列是队列的存储结构


答案: B


数组是循环队列的存储结构


(3) 下述二叉树中, 哪一种满足性质: 从任一节点出发到根的路径上所经过的节点序列按其关键字有序()


A. 二叉排序树


B. 哈夫曼树


C. AVL树


D. 堆


答案: D


(4) 下列各排序法中, 最坏情况下的时间复杂度最低的是()


A. 希尔排序


B. 快速排序


C. 堆排序


D. 冒泡排序


答案: C


希尔排序: 是插入排序的变形,时间复杂度最大为 O(N^2)


快速排序: 当出现大量重复元素或者数组几乎有序时,递归树退化为链表,时间复杂度有O(NlogN) 变为 O(N^2)


堆排序: 堆排序是非常稳定的 O(NlogN)


冒泡排序: O(N^2)

5.2 编程题

MP3 光标位置

import java.util.Scanner;
 
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void func(int n,String str){
        //初始时光标所在位置
        int first=1;
        int mouse=1;
        char []index=str.toCharArray();
        if(n<=4){
            for(int i=0;i<index.length;i++){
                //光标在第一首歌曲上时,按Up键光标挪到最后一首歌曲
                if(mouse==1&&index[i]=='U'){
                    mouse=n;
                }
                //光标在最后一首歌曲时,按Down键光标挪到第一首歌曲
                else if(mouse==n&&index[i]=='D'){
                    mouse=1;
                }
                //用户按Up键,光标挪到上一首歌曲
                else if(index[i]=='U'){
                    mouse--;
                }
                //用户按Down键,光标挪到下一首歌曲
                else{
                    mouse++;
                }
            }
            for(int i=1;i<n;i++){
                System.out.print(i+" ");
            }
            System.out.println(n);
            System.out.println(mouse);
        }else{
            for(int i=0;i<index.length;i++){
                // 屏幕显示的是第一页(即显示第1 – 4首)时,光标在第一首歌曲上,用户按Up键后,屏幕要显示最后一页(即显示第7-10首歌),同时光标放到最后一首歌上
                if(first==1&&mouse==1&&index[i]=='U'){
                    mouse=n;
                    first=n-3;
                }
                // 同样的,屏幕显示最后一页时,光标在最后一首歌曲上,用户按Down键,屏幕要显示第一页,光标挪到第一首歌上。
                else if(first==mouse-3&&mouse==n&&index[i]=='D'){
                    first=1;
                    mouse=1;
                }
                //屏幕显示的不是第一页时,光标在当前屏幕显示的第一首歌曲时,用户按Up键后,屏幕从当前歌曲的上一首开始显示,光标也挪到上一首歌曲。
                else if(first!=1&&mouse==first&&index[i]=='U'){
                    first--;
                    mouse--;
                }
                // 光标当前屏幕的最后一首歌时的Down键处理也类似
                else if(mouse!=n&&first==mouse-3&&index[i]=='D'){
                    mouse++;
                    first++;
                }
                // 其他情况,不用翻页,只是挪动光标就行
                else if(index[i]=='U'){
                    mouse--;
                }
                else if(index[i]=='D'){
                    mouse++;
                }
            }
            for(int i=first;i<first+3;i++){
                System.out.print(i+" ");
            }
            System.out.println(first+3);
            System.out.println(mouse);
        }
    }
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        // String tmp=in.next();
        String str=in.next();
        func(n,str);
    }
}

六. Day 20

6.1 选择题

(1) 下列数据结构具有记忆功能的是()

A. 队列

B. 循环队列

C. 栈

D. 顺序表

答案: C


记忆功能: 浏览器的回退功能, 文本编辑器的撤退操作都属于记忆性功能


栈(此处的栈是指Java 虚拟机栈): 栈的LIFO 特性, A函数调用 B函数, B函数调用C函数,C函数执行完后再回退到B的栈区,B函数执行完后再回退到A的栈区.


(2) 对递归程序的优化的一般手段为()


A. 尾递归优化


B. 循环优化


C. 堆栈优化


D.  停止值优化


答案: A


比如 快速排序和归并排序, 在递归的终止条件l 是区间最左侧, r 是区间的最右侧.


//终止条件


(l>=r){


 return


}


//在递归终止条件处进行优化

//当区间个数较小时,采用插入排序来优化:(r-l<=15)

七. Day 21

7.1 编程题

计算字符串的编辑距离

import java.util.Scanner;
 
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static int fidMin(String s1,String s2){
        char[] word1=s1.toCharArray();
        char[] word2=s2.toCharArray();
        int len1=word1.length;
        int len2=word2.length;
        int [][]words =new int[len1+1][len2+1];
        for(int i=0;i<=len2;i++){
            words[0][i]=i;
        }
        for(int i=0;i<=len1;i++){
            words[i][0]=i;
        }
        for(int i=1;i<=len1;i++){
            for(int j=1;j<=len2;j++){
                //增加元素或删除元素的最小步数
                words[i][j]=Math.min(words[i-1][j]+1,words[i][j-1]+1);
                //判断是否需要替换元素
                if(word1[i-1]==word2[j-1]){
                    words[i][j]=Math.min(words[i][j],words[i-1][j-1]);
                }else{
                    words[i][j]=Math.min(words[i][j],words[i-1][j-1]+1);
                }
            }
        }
        return words[len1][len2];
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s1=in.nextLine();
        String s2=in.nextLine();
        System.out.println(fidMin(s1,s2));
    }
}
相关文章
|
1月前
|
存储 自然语言处理 开发者
【技术解析 | 实践】Havenask文本索引
本次分享内容为Havenask的文本索引,本次课程主要分为两部分内容,首先简要介绍倒排索引的数据结构和文本索引的特性,然后进行对文本索引配置不同分析器的实践,希望通过分享帮助大家更好了解和使用Havenask。
41793 3
|
28天前
|
NoSQL Linux API
|
29天前
|
网络协议 安全 程序员
网络原理-UDP/TCP详解
网络原理-UDP/TCP详解
网络原理-UDP/TCP详解
|
29天前
|
存储
树与二叉树
树与二叉树
|
28天前
|
Java 关系型数据库 MySQL
Spring 事务和事务传播机制
Spring 事务和事务传播机制
Spring 事务和事务传播机制
|
29天前
指针与数组笔试题解析
指针与数组笔试题解析
|
29天前
|
存储
数据的存储
数据的存储
|
28天前
|
存储 消息中间件 缓存