笔试强训(十六)

一、选择题

(1)在关系型数据库中,有两个不同的事务同时操作数据库中同一表的同一行,不会引起冲突的是(D)
A.delete和select
B.两个update
C.select和update
D.两个delete

一个操作属于一个会话
冲突:两个会话的操作,同时执行时,是否会互相影响
因此只有两个操作都是delete操作的时候不会产生影响

(2)以下哪个不是于MySQL服务器相互作用的通讯协议(B)
A.TCP/IP
B.UDP
C.共享内存
D.Socket

TCP/IP协议:用来连接MySQL,各种主要的编程语言都根据这个协议实现了连接模块
Unix Socket协议:登录MySQL服务器中使用这个协议,因为要使用这个协议连接MySQL需要一个物理文件,文件的存放位置在配置文件中有定义,这是所有协议中最高效的一个
Share Memory协议:该协议只有在windows中使用,使用这个协议需要在配置文件中在启动的时候使用-shared-memory参数,注意,使用该协议,一个host上只能有一个server,所以这个东西一般没啥用,实际上SQL Server也支持这个协议
Named Pipes协议:只有在windows才能使用,同shared memory 一样,一个host上只能有一个server,是为局域网开发的协议。内存的一部分被某个进程用来向另一个进程传递信息,因此一个进程的输出就是另一个进程的输入。第二个进程可以是本地的(位于同一主机上),也可以是远程的(位于互联网的计算机上),正因为如此,假如你的环境中没有或者禁用TCP/IP,而且是windows服务器,数据库还是能正常工作的,使用这个协议时,需要在启动的时候添加-enable-named-pipe选项

(3)设有两个事务T1,T2,其并发操作如下所示,下面评价正确的是(D)
在这里插入图片描述
A.该操作不能重复读
B.该操作不存在问题
C.该操作读"脏数据"
D.该操作丢失修改

T1修该后的数据被T2给覆盖掉了,属于丢失更新
不能重复读:事务t1修改,事务t2分别在t1前后读取两次,两次读取到的数据不同
“脏读”:事务t1将A修改为110,事务t2读取数据A,读到的是110,然后事务t1回滚操作,数据A重新变为100,此时t2读到的就是"脏数据"

(4)如果事务T获得了数据Q上的排他锁,则T对Q(C)
A.只能读不能写
B.只能写不能读
C.既可读又可写
D.不能读不能写

如果某个事务获得了某个数据项的排他锁,那么该事务能对该数据进行任何操作,其他事务不能对该数据进行任何操作

(5)学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学号、姓名、性别、年龄。要在表S中删除一个属性"年龄",可选用的SQL语句是( A)
A.alter table S drop Age
B.alter table S ‘Age’
C.update S Age
D.delete Age from S

修改表结构的关键字都是alter table 表名,再跟具体的修改的语句
添加表字段:alter table table_name add 字段名称 字段类型
删除表字段:alter table table_name drop 字段名称
修改表字段:alter table table_name change 旧字段名称 新字段名称 字段类型 或 alter table table_name modify 字段名称 字段类型

二、编程题

2.1 扑克牌大小

2.1.1 题目

在这里插入图片描述

2.1.2 题解

思路分析题目我们能得到的信息是,大致分为以下三种情况

  1. 两个人手中的其中一个有对王,此时输出结果一定是对王
  2. 两个人手中的牌类型相同(类型相同,长度肯定也是相同的),此时只要比较两个人手中的第一张牌的大小即可
  3. 两个人手中的牌类型不同,根据题意,如果两个人手中牌的类型不同,只有一种情况就是其中一个人手中有炸弹

具体步骤:

step1:根据"-“,将两副牌分开
step2:根据” ",将每个手中的牌分开
step3:判断手中是否有对王的情况
step4:判断长度是否相同,如果相同,输出较大牌
step5:长度不同,输出有炸弹的牌,否则输出ERROR

代码:

 public static void main(String[] args) {
           Scanner scanner=new Scanner(System.in);
           String str=scanner.nextLine();
           String[] p=str.split("-");
           String[] p1=p[0].split(" ");
           String[] p2=p[1].split(" ");
           String tmp="34567891JQKA2";
           if(p[0].equals("joker JOKER")||p[1].equals("joker JOKER")){
               System.out.println("joker JOKER");
           }else if(p1.length==p2.length){
               if(tmp.indexOf(p[0].substring(0,1))>tmp.indexOf(p[1].substring(0,1))){       
                   System.out.println(p[0]);

               }else {
                   System.out.println(p[1]);
               }
           }else if(p1.length==4 ){
            System.out.println(p[0]);
           }else if(p2.length==4){
               System.out.println(p[1]);
           }else {
               System.out.println("ERROR");
           }

        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值