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

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

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

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

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

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

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

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

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

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

数据库中的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的个数+手套+完全数计算+扑克牌大小】_第4张图片

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

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

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

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);
        }
    }

}

6.手套【编程题】

刷题日记【第八篇】-笔试必刷题【查找输入整数二进制中1的个数+手套+完全数计算+扑克牌大小】_第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;
        }
}
        


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

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

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

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

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

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

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

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

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.在关系模型中,实现“表示了两个关系之间的相关联系”的约束是通过()

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

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

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

11.完全数计算

刷题日记【第八篇】-笔试必刷题【查找输入整数二进制中1的个数+手套+完全数计算+扑克牌大小】_第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);
            
        
    }
}

12.扑克牌大小

刷题日记【第八篇】-笔试必刷题【查找输入整数二进制中1的个数+手套+完全数计算+扑克牌大小】_第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");
        }
    }
}

你可能感兴趣的:(刷题日记,数据库,mysql)