Java面向对象编程(16)

简介: Java面向对象编程(16)

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

A. 其中一个DELETE操作,一个是SELECT操作

B. 其中两个都是UPDATE

C. 其中一个是SELECT,一个是UPDATE

D. 其中一个SELECT

E. 其中一个是DELETE,另一个是UPDATE

F. 两个都是DELETE

答案:F

计算每位学生的多学科加总成绩的SQL是_____

A. select sum(score) as total,stud_name from [成绩表](nolock)

B. select count(score) as total,stud_name from [成绩表](nolock)

C. select sum(score) as total,stud_name from [成绩表](nolock) group by stud_name

D. select count(score) as total,stud_name from [成绩表](nolock) group by stud_name

答案:C

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

A. TCP/IP

B. UDP

C. 共享内存

D. Socket

答案:B

公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是()

A. 1:1联系

B. m:1联系

C. 1:m联系

D. m:n联系

答案:C

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

A. 该操作不能重复读

B. 该操作不存在问题

C. 该操作读"脏"数据

D. 该操作丢失修改

答案:D

mysql 数据库有选课表 learn(student_id int,course_id int),字段分别表示学号和课程编号, 现在想获取每个学生所选课程的个数信息,请问如下的 sql 语句正确的是()

A. select student_id,sum(course_id)from learn

B. select student_id,count(course_id)from learn group by student_id

C. select student_id,count(course_id)from learn

D. select student_id,sum(course_id)from learn group by student_id

答案:B

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

A. 只能读不能写

B. 只能写不能读

C. 既可读又可写

D. 不能读不能写

答案:C

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

A. 候选键

B. 主键

C. 外键

D. 超键

答案:C

学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性“年龄”,可选用的SQL语句是()

A. ALTER TABLE S DROP Age

B. ALTER TABLE S ‘Age’

C. UPDATE S Age

D. DELETE Age from S

答案:A

下列选项中,不属于SQL约束的是:

A. UNIQUE

B. PRIMARY KEY

C. FOREIGN KEY

D. BETWEEN

答案:D

完全数计算

题目描述:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

输入n,请输出n以内(含n)完全数的个数。

数据范围:1<=n<=5*10^5

输入描述:输入一个数字n

输出描述:输出不超过n的完全数的个数

输入:1000

输出:3

方法1:


public class Main7 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNext()){
            int n=scanner.nextInt();
            int count=0;
            for (int i = 2; i <= n ; i++) {
                int sum=0;
                for (int j = 2; j*j <= i ; j++) {
                    if (i%j==0){
                        if (i/j==i){
                            sum=sum+j;
                        }else {
                            sum=sum+j+i/j;
                        }
                    }
                }
                if (sum+1==i){
                    count++;
                }
            }
            System.out.println(count);
        }
    }
}

方法2


public class Main8 {
    //完全数计算
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int count=0;
        for (int i = 1; i < n; i++) {
            if (find(i)){
                count++;
            }
        }
        System.out.println(count+1);
    }
    public static Boolean find(int n){
        Stack<Integer> stack=new Stack<>();
        for (int i = 1; i < n; i++) {
            if (n % i==0){
                stack.push(i);
            }
        }
        int sum=0;
        while (!stack.isEmpty()){
            sum=sum+stack.pop();
        }
        if (sum==n){
            return true;
        }
        return false;
    }
}

扑克牌大小

扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示 小王,大写JOKER表示大王):

3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER

输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4 4 4 4-joker JOKER。

请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。

基本规则:

(1)输入每手牌可能是个子、对子、顺子(连续5张)、三个、炸弹(四个)和对王中的一种,不存在其他情况,由输入保证两手牌都是合法的,顺子已经从小 到大排列;

(2)除了炸弹和对王可以和所有牌比较之外,其他类型的牌只能跟相同类型的存在比较关系(如,对子跟对子比较,三个跟三个比较),不考虑拆牌情况 (如:将对子拆分成个子);

(3)大小规则跟大家平时了解的常见规则相同,个子、对子、三个比较牌面大小;顺子比较最小牌大小;炸弹大于前面所有的牌,炸弹之间比较牌面大小;对 王是最大的牌;

(4)输入的两手牌不会出现相等的情况。

数据范围:字符串长度:3<=length<=10

输入描述:输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如 4 4 4 4-joker JOKER。

输出描述:输出两手牌中较大的那手,不含连接符,扑克牌顺序不变,仍以空格隔开;如果不存在比较关系则输出ERROR。

输入:4 4 4 4-joker JOKER

输出:joker JOKER

public class Main9 {
    //扑克牌大小
    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 (p.indexOf(p1[0].substring(0,1))>p.indexOf(p2[0].substring(0,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");
        }
    }
}
相关文章
|
6天前
|
设计模式 安全 Java
面向对象编程的精髓:Java设计模式 - 原型模式(Prototype)完全参考手册
【4月更文挑战第7天】原型模式是OOP中的创建型设计模式,用于通过复制现有实例创建新实例,尤其适用于创建成本高或依赖其他对象的情况。它包括Prototype接口、ConcretePrototype实现和Client客户端角色。优点是性能优化、避免子类化和动态增加产品族。实现包括定义原型接口、实现具体原型和客户端调用克隆方法。最佳实践涉及确保克隆正确性、选择深拷贝或浅拷贝及考虑线程安全。但需注意克隆方法管理、性能开销和循环引用等问题。在Java中,实现Cloneable接口和覆盖clone方法可实现原型模式。
|
6天前
|
安全 Java 数据安全/隐私保护
|
6天前
|
Java
04|零基础玩转面向对象编程:Java OOP
04|零基础玩转面向对象编程:Java OOP
7 0
|
6天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
6天前
|
存储 Java 程序员
Java面向对象编程的基础概念解析
Java面向对象编程的基础概念解析
17 0
|
6天前
|
Java
Java一分钟之-类与对象:面向对象编程入门
【5月更文挑战第8天】本文为Java面向对象编程的入门指南,介绍了类与对象的基础概念、常见问题及规避策略。文章通过代码示例展示了如何定义类,包括访问修饰符的适当使用、构造器的设计以及方法的封装。同时,讨论了对象创建与使用时可能遇到的内存泄漏、空指针异常和数据不一致等问题,并提供了相应的解决建议。学习OOP需注重理论与实践相结合,不断编写和优化代码。
31 1
|
6天前
|
Java
Java从入门到精通:1.1.2深入理解Java的面向对象编程概念
Java从入门到精通:1.1.2深入理解Java的面向对象编程概念
|
6天前
|
Java Scala C#
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
Java 17 新特性揭秘:密封类的华丽登场,面向对象编程再进化
28 0
|
6天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
95 3
|
6天前
|
Java
Java面向对象编程
Java面向对象编程