• 刷题日记【第八篇】-笔试必刷题【查找输入整数二进制中1的个数+手套+完全数计算+扑克牌大小】


    刷题日记【第八篇】-笔试必刷题【查找输入整数二进制中1的个数+手套+完全数计算+扑克牌大小】

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

    在这里插入图片描述

    我们知道 join可以自交(自连接), 比如 select * from studentId a inner join studentid b on a.studentid=b.student所以此处问最少涉及几张表,就是1张喽!

    2.在下面的两个关系中,职工号和部门号分别为职工关系和部门关系的主键(或称主码)职工(职工号、职工名、部门号、职务、工资) 部门(部门号、部门名、部门人数、工资总额) 在这两个关系的属性中,只有一个属性是外键(或称外来键、外码、外来码),它是 ______

    在这里插入图片描述

    外键即另一张表中的主键
    职工关系的主键是职工号,包括但不限于两个数据项:职工号、部门号…
    所以在职工关系表中,部门号为外键
    部门关系表中主键是部门号,其他数据项不明,但肯定不包括职工号

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

    在这里插入图片描述

    数据库中的if函数就是我们常用到的三目运算符
    if(条件,表达式1,表达式2)
    如果条件为真(即不为0),执行表达式1,否则,执行表达式2.
    所以此处选D

    4.设有一个数据库mydb中有一个表tb1,表中有六个字段,主键为ID,有十条记录,ID从0到9,以下代码输出结果是()

    
        $link = mysql_connect('localhost', 'user', 'password')
        or die('Could not connect '.mysql_error());
        $result = mysql_query("SELECT id, name, age FROM mydb.tb1 WHERE id <'5'")
        or die('Could not query: '.mysql_error());
        echo mysql_num_fields($result);
        mysql_close($link);
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    mysql_num_fields():返回查询结果集的总列数;mysql_num_rows():返回查询结果集的总行数

    5.查找输入整数二进制中1的个数【编程题】

    在这里插入图片描述

    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
                int n =  sc.nextInt();
                int count = 0;
                while(n!=0){
                    if((n&1)==1){
                        count++;
                    }
                      n>>=1;              
                }
                System.out.println(count);
            }
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    6.手套【编程题】

    在这里插入图片描述

    import java.util.*;
    
    public class Gloves {
        public int findMinimum(int n, int[] left, int[] right) {
            // write code here
            int sum  = 0;
            int  leftSum = 0;
            int rightSum = 0;
            int leftMin = 26;
            int  rightMin = 26;
            for(int i =0;i<n;i++){
                if(left[i]==0||right[i]==0){
                    sum+=left[i]+right[i];
                }else{
                    if(left[i]<leftMin){
                        leftMin=left[i];
                    }
                    if(right[i]<rightMin){
                        rightMin=right[i];
                    }
                    leftSum+=left[i];
                    rightSum+=right[i];
                }
            }
            return sum+Math.min(leftSum-leftMin+1,rightSum-rightMin+1)+1;
            }
    }
            
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    7.在关系型是数据库中,有两个不同的事务同时操作数据库中同一表的同一行,不会引起冲突的是:

    在这里插入图片描述

    当要删除的记录在数据库中不存在的时候,是不会报错的。
    此题选择D

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

    在这里插入图片描述

    UDP是无连接,不可靠传输,对于数据库来说是不安全的,所以选B

    9.如果事务T获得了数据项Q上的排它锁,则T对Q______。

    在这里插入图片描述

    T获得了数据Q的排它锁,T对Q应该既可以读又可以写

    排他锁【X锁】
    又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。

    共享锁【S锁】
    又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

    10.在关系模型中,实现“表示了两个关系之间的相关联系”的约束是通过()

    在这里插入图片描述

    关系与关系间的相关联系就是表和表之间的连接,那就是外键.

    超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
    候选键(candidate key):不含有多余属性的超键称为候选键
    主键(primary key):用户选作元组标识的一个候选键程序主键

    11.完全数计算

    在这里插入图片描述

    import java.util.Scanner;
    
    // 注意类名必须为 Main, 不要有任何 package xxx 信息
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
                int num = in.nextInt();
                int count = 0;
                for(int i=1;i<num;i++){
                    int sum  = 0;
                    for(int j=1;j<=i/2;j++){
                        if(i%j==0){
                            sum+=j;
                        }
                    }
                    if(sum ==i){
                        count++;
                    }
                }
                System.out.println(count);
                
            
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    12.扑克牌大小

    在这里插入图片描述

    思路:
    若有一方为大小王,则输出大小王;
    若牌面个数相等,判断第一个牌在p中出现的位置,若靠后则更大;
    若有一方为炸弹,则输出炸弹;
    在牛客的链接里面还有一种可能 如果牌数相等,且对手是一张大王或者小王,则输出大王或者小王
    其他情况输出ERROR。

    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String str = scanner.nextLine();
            String[] pp  = str.split("-");
    
            String[] p1 = pp[0].split(" ");
            String[] p2 = pp[1].split(" ");
    
            String p = "34567891JQKA2";
    
            if (pp[0].equals("joker JOKER") || pp[1].equals("joker JOKER")) {
                System.out.println("joker JOKER");
            } else if (p1.length == p2.length) {
                if (p1[0].equals("joker") || p1[0].equals("JOKER")) {
                    if (p1[0].equals("joker") && p2[0].equals("JOKER")) {
                        System.out.println(pp[1]);
                    } else {
                        System.out.println(pp[0]);
                    }
                } else if (p2[0].equals("joker") || p2[0].equals("JOKER")) {
                    if (p2[0].equals("joker") && p1[0].equals("JOKER")) {
                        System.out.println(pp[0]);
                    } else {
                        System.out.println(pp[1]);
                    }
                } else  if (p.indexOf(p1[0].substring(0, 1)) > p.indexOf(p2[0].substring(0,
                            1))) {
                    //如果是10 substring 截取成1
                    System.out.println(pp[0]);
                } else {
                    System.out.println(pp[1]);
                }
            } else if (p1.length == 4) {
                System.out.println(pp[0]);
            } else if (p2.length == 4) {
                System.out.println(pp[1]);
            } else {
                System.out.println("ERROR");
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
  • 相关阅读:
    Django(二)精美博客搭建(11)实现文章列表分页查询及首页简单优化
    ABC310F Make 10 Again
    医者无疆 | AI赋能大医精诚,医疗&制药的进阶与突破
    金仓数据库 KingbaseES 插件参考手册 plsql_pldbgapi
    如何编辑扫描的PDF文件?
    C++ Qt开发:QUdpSocket网络通信组件
    Python网站的搭建和html基础
    #WEB前端(JS基础语法)
    图像处理:单通道转为3通道
    摸鱼有理:大脑一思考就在积累毒素,必须休息才能清除|Cell子刊
  • 原文地址:https://blog.csdn.net/weixin_53939785/article/details/127629211