Java经典笔试题—day13

news2024/11/20 9:43:08

Java经典笔试题—day13

  • 🔎选择题
  • 🔎编程题
    • 🍭参数解析
    • 🍭跳石板
  • 🔎结尾

🔎选择题

(1)一个关系数据库文件中的各条记录 ()

A. 前后顺序不能任意颠倒,一定要按照输入的顺序排列
B. 前后顺序可以任意颠倒,不影响库中的数据关系
C. 前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同
D. 前后顺序不能任意颠倒,一定要按照关键字字段值的顺序排列

B

关系数据库的逻辑性强而物理性弱
物理性表示数据存储在硬盘上的顺序
关系型数据库依赖的是逻辑性, 意味着对于存储在硬盘上的数据, 只要不影响查询结果即可(前后顺序可以颠倒)

(2)一名员工可以使用多台计算机,每台计算机只能由一名员工使用,则实体员工和计算机间的联系是 ( )

A. 一对多
B. 多对多
C. 多对一
D. 一对一

A

一名员工可以使用多台计算机(1 : n)
每台计算机只能由一名员工使用(1 : 1)
实体员工与计算机之间的关系(1 : n)

(3)下列关于视图的说法错误的是:

A. 视图是从一个或多个基本表导出的表,它是虚表
B. 视图一经定义就可以和基本表一样被查询、删除和更新
C. 某一用户可以定义若干个视图
D. 视图可以用来定义新的视图

B

  • 视图是指计算机数据库中的视图, 是一个虚拟表
  • 视图同真实的表一样, 包含一系列带有名称的列和行, 行和列数据用于自定义视图的查询, 删除
    视图一经定义无法更新(修改)
  • 用户可以定义若干视图
  • 视图可以用来定义新的视图
    • 定义视图 name1 (create view name1 as select …)
    • 利用视图 name1 定义新的视图 newName (create view newName as select … from name1)

(4)在 SQL Server 中,订单表 ( 订单号,雇员代号,地区代号,订购日期 ) 中订单号为主键,要删除订单中前三年以前的信息, SQL 为:

A. delete from 订单表 where 订购日期<getdate()+3
B. delete from 订单表 where 订购日期<DATEADD(yy,3,getdate())
C. delete from 订单表 where 订购日期<getdate()-3
D. delete from 订单表 where 订购日期<DATEADD(yy,-3,getdate())

D

  • DATEADD() 表示函数在日期中添加或减去指定的时间间隔
    • DATEADD(datepart, number, date)
    • datapart 参数的取值范围是 {yy/yyyy, mm/m, dd/d}
    • number 要添加的间隔数
    • date 合法的日期表达式
  • GETDATE() 表示返回当前的时间和日期


    排除A, C, 返回当前的日期 + / - 3, 无法判断当前日期 + / - 3年还是3月还是3天
    B. 利用 getdate() 返回当前的日期和时间, yy 表示年, 因此表示函数在日期中添加3年, 题目要求是3年之前

(5)负责数据库中查询操作的数据库语言是( )

A. 数据定义语言
B. 数据管理语言
C. 数据操纵语言
D. 数据控制语言

C

A. 数据定义语言(DDL), 用于创建数据库中的各种对象: 表, 视图, 索引, 同义词…
C. 数据操纵语言(DML), 主要负责数据的基本操作(增加, 删除, 修改, 查询…)
D. 数据控制语言(DCL), 用于授权或回收访问数据库的某种特权, 并控制数据库操纵事务发生的时间及效果, 对数据库实行监视等

(6)数据库管理系统是( )

A. 操作系统的一部分
B. 在操作系统支持下的系统软件
C. 一种编译系统
D. 一种操作系统

B

数据库属于系统软件

(7)SQL 语句中修改表结构的命令是()

A. MODIFY TABLE
B. MODIFY STRUCTURE
C. ALTER TABLE
D. ALTER STRUCTURE

C

修改表结构的关键字是 ALTER TABLE

  • 例如
    • 添加表字段 alter table 表名称 add 字段名称 字段类型
    • 删除表字段 alter table 表名称 drop 字段名称
    • 修改表字段 alter table 表名称 change 旧字段名称 新字段名称 字段类型
    • 修改表字段 alter table 表名称 modify 字段名称 字段类型

(8)在sql数据库中,哪个语句能校验整数列 i 的值不小于 1 不大于 10 ?

A. i BETWEEN 1 AND 10
B. i BETWEEN 0 AND 11
C. i IN INTERVAL(0,11)
D. i IN INTERVAL(1,10)

A

B. [0, 11]
C, D. INTERVAL() 表示比较函数
例如 INTERVAL(4, 0, 1, 2, 3 ,4 ,5 ,6) , 以第一个数字 4 作为被比较数, 后面的0, 1, 2, 3, 4, 5, 6 作为比较数, 分别与第一个数字4进行比较, 返回小于等于4的个数

(9)在学生表 Student 的系别 (Sdept) 属性中查询信息系 (IS) 、数学系 (MA) 和计算机系 (CS) 的学生姓名 (Sname) 和性别 (Ssex) ,正确的命名格式应为:

A. SELECT Student FROM Sname, Ssex WHERE Sdept IN (‘IS’, ’MA’, ‘CS’)
B. SELECT Sname, Ssex FROM Student WHERE Sdept IN (‘IS’, ’MA’, ‘CS’)
C. SELECT Sname, Ssex FROM Student WHERE Sdept (IS, MA, CS)
D. SELECT Sname, Ssex FROM Student WHERE Sdept LIKE IS, MA, CS

B

查询学生表(Stundent)中的学生姓名(Sname), 性别(Ssex) SELECT Sname, Ssex FROM Student
条件是系别(Sdept)来自信息系(IS), 数学系(MA), 计算机系(CS) WHERE Sdept IN ('IS', 'MA', 'CS')
组合在一起 SELECT Sname, Ssex FROM Student WHERE Sdept IN ('IS', 'MA', 'CS')

(10)SQL 查询语句中 WHERE 、 GROUP BY 、 HAVING 这些关键字区别和用法总结错误的是()

A. HAVING在查询语句中必须依赖于GROUP BY
B. WHERE子句用来限制SELECT语句从表中指定选取的行
C. GROUP BY子句用来分组WHERE子句的输出结果集
D. HAVING子句用来从分组的结果中筛选列

D

条件: WHERE, HAVING
WHERE 在分组之前使用, HAVING 在分组之后使用
分组: GROUP BY
A. HAVING 在分组之后才能使用, 因此 HAVING 依赖于 GROUP BY 进行分组
B. WHERE 条件筛选的是行
C. GROUP BY 用于分组
D. HAVING 条件筛选的是行

🔎编程题

🍭参数解析


题目描述

在命令行输入如下命令:

xcopy /s c:\ d:\e,

各个参数如下:

参数1:命令字xcopy

参数2:字符串/s

参数3:字符串c:\

参数4: 字符串d:\e

请编写一个参数解析程序,实现将命令行各个参数解析出来。

解析规则:

1.参数分隔符为空格

2.对于用""包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy /s “C:\program files” "d:“时,参数仍然是4个,第3个参数应该是字符串C:\program files,而不是C:\program,注意输出参数时,需要将”"去掉,引号不存在嵌套情况。

3.参数不定长

4.输入由用例保证,不会出现不符合要求的输入

数据范围:
字符串长度:1≤s≤1000
进阶:时间复杂度:O(n) ,空间复杂度:O(n)

输入描述

输入一行字符串,可以有空格

输出描述

输出参数个数,分解后的参数,每个参数都独占一行

在这里插入图片描述

解题思路

根据题意进行简单模拟即可

注意
对于用""包含起来的参数,如果中间有空格,不能解析为多个参数

  • list.add(s.substring(begin + 1,i - 1)) 处理 “” 包裹的内容(例如 “ab” )
  • list.add(s.substring(begin,i)) 处理未被 “” 包裹的内容(例如 ab )
//参数解析
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.nextLine();

        print(s);
    }
    private static void print(String s) {
        int n = s.length();
        // flg 判断是否处在 "" 中
        int flg = 1;
        // begin 截取字符串的起始位置
        int begin = 0;
        List<String> list = new ArrayList<>();

        char[] chs = s.toCharArray();
        for (int i = 0; i < n; i++) {
            if(chs[i] == '"') {
                flg = ~flg + 1;
            }
            if(chs[i] == ' ' && flg == 1) {
                if(chs[i - 1] == '"') {
                    list.add(s.substring(begin + 1,i - 1));
                } else {
                    list.add(s.substring(begin,i));
                }
                begin = i + 1;
            }
        }

        if(chs[n - 1] == '"') {
            list.add(s.substring(begin + 1,n - 1));
        } else {
            list.add(s.substring(begin,n));
        }

        System.out.println(list.size());

        for (String str : list) {
            System.out.println(str);
        }
    }
}

📢题目链接
链接:link


🍭跳石板


题目描述

小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3…
这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。

例如:
N = 4,M = 24:
4->6->8->12->18->24
于是小易最少需要跳跃5次,就可以从4号石板跳到24号石板

输入描述

输入为一行,有两个整数N,M,以空格隔开。 (4 ≤ N ≤ 100000) (N ≤ M ≤ 100000)

输出描述

输出小易最少需要跳跃的步数,如果不能到达输出-1

在这里插入图片描述

解题思路

  • 定义整型数组 int[] steps, 下标表示石板的编号, 对应的值表示到达第 i 块石板的最小步数
  • 从第 n 块石板跳跃到第 n 块石板所需的步数为0, steps[n] = 0
  • 将 steps[] 的其他位置初始化为 Integer.MAX_VALUE, 值为 Integer.MAX_VALUE 表示无法到达该石板
  • 从第 i(i = n) 块石板出发, 根据题意计算出当前石板的约数
    • j 表示当前石板的约数
    • 判断第 i + j 块石板是否为 Integer.MAX_VALUE
      • 如果是, 在前一块的石板的步数上 + 1, 表示从前一块石板跳跃到当前石板的步数为1步
      • 如果不是, 表示第 i + j 块石板可以被其他的 i + j 组合到达, 比较 steps[i + j] 与 steps[i] + 1的值即可
//跳石板
import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = scan.nextInt();

        calc(n, m);
    }

    private static void calc(int n,int m) {
        // 定义石板(下标表示石板编号, 值表示到达第 i 块石板的最小步数)
        int[] steps = new int[m + 1];
        // 初始化
        for(int i = 0; i < m + 1; i++) steps[i] = Integer.MAX_VALUE;
        // 定义第 n 块石板值为0(到达第 n 块石板的最小步数为0 --> 初始就站在第 n 块石板)
        steps[n] = 0;
        // 从第 n 块石板开始跳跃
        for(int i = n; i < m; i++) {
            // Integer.MAX_VALUE 表示无法跳跃到该位置
            if(steps[i] == Integer.MAX_VALUE) continue;

            List<Integer> temp = getPrime(i);
            // i --> 当前石板的编号
            // j --> 一次可以跳多少块石板
            for(int j : temp) {
                if(i + j <= m && steps[i + j] != Integer.MAX_VALUE) {
                    steps[i + j] = Math.min(steps[i] + 1, steps[i + j]);
                } else if(i + j <= m) {
                    steps[i + j] = steps[i] + 1;
                }
            }
        }
        System.out.println(steps[m] == Integer.MAX_VALUE ? -1 : steps[m]);
    }
    // 求约数
    private static List<Integer> getPrime(int num) {
        List<Integer> temp = new ArrayList<>();
        // num = 24
        // num % 4 == 0 temp.add(4)
        // num / 4 = 6 6 != 4 temp.add(6)
        // num = 9
        // num % 3 == 0 temp.add(3)
        // num / 3 = 3 3 == 3
        for(int i = 2; i * i <= num; i++) {
            if(num % i == 0) {
                temp.add(i);
                if(num / i != i) temp.add(num / i);
            }
        }
        return temp;
    }
}

📢题目链接
链接:link


🔎结尾

创作不易,如果对您有帮助,希望您能点个免费的赞👍
大家有什么不太理解的,可以私信或者评论区留言,一起加油

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/568777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试4-数据库设计

测试4-数据库设计 目录 测试4-数据库设计选择题简答题1. 画E-R图并将其转换为适当的关系模型题目E-R图关系模型 2. 画E-R图并将其转换为关系模型题目E-R图关系模型 选择题 下列关于数据库运行和维护的叙述中&#xff0c;正确的是D。 A &#xff0e;只要数据库正式投入运行&…

网狐大联盟服务端源码分析之服务核心-ServiceCore-Base64编解码实现

工程属性分析: 1.工程属性->动态链接库 2.dll类型->MFC共享DLL 3.字符集->Unicode 4.库导出类型->使用模块定义文件def 5.生成的导出模块函数与对应的地址定义lib文件 源码分析: 头文件分析: 头文件与对应含义表示如下:

shell变量类型含义 长方形面积计算 截取相应字段方法

1.总结变量的类型及含义&#xff1f; 2.实现课堂案例计算长方形面积&#xff1f;&#xff08;6种方式&#xff09; 3.定义变量urlhttps://blog.csdn.net/weixin_45029822/article/details/103568815&#xff08;通过多种方法实现&#xff09; 1&#xff09;截取网站访问的协议 …

spring之spring入门程序

1.创建Maven Module 2.pom.xml引入依赖 此图引用于https://www.cnblogs.com/Zz-maker/p/11199331.html Maven种的依赖的传递性&#xff0c;spring-context依赖于core,beans,aop,expression等模块&#xff0c;但是在pom.xml中只引用spring-context即可&#xff1a; <?xml v…

WhatsApp与电子商务,最佳拍档

您可以通过将 WhatsApp 整合到您的电子商务业务策略中。首先&#xff0c;您可以从将WhatsApp集成到您的客服渠道&#xff0c;与您的其他客户沟通渠道形成交互&#xff0c;并统一进行客户管理与回复&#xff0c;您需要一个工具做到——SaleSmartly&#xff08;ss客服&#xff09…

UI自动化测试、接口测试等自动化测试详解

今天跟大家介绍UI测试、接口测试、单元测试主要内容&#xff0c;以及每种测试花费时间讨论。 一.UI测试【Selenium】 UI测试是最接近软件真实用户使用行为的测试类型。通常是模拟真实用户使用软件的行为&#xff0c;即模拟用户在软件界面上的各种操作&#xff0c;并验证这些操…

030:Mapbox GL设置渐变矢量矩形

第030个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载数据,构成渐变的矩形。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共109行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:…

第十三章 常用类(包装类和 String 相关类)

一、包装类 1. 包装类的分类 &#xff08;1&#xff09;针对八种基本数据类型相应的引用类型—包装类 &#xff08;2&#xff09;有了类的特点&#xff0c;就可以调用类中的方法。 2. 包装类和基本数据类型的转换 &#xff08;1&#xff09;jdk5 前的手动装箱和拆箱方式 publi…

html面试复习

目录 网页的显示过程 浏览器的渲染引擎 不同浏览器的内核 什么是标记语言&#xff08;markup language &#xff09; 什么是超文本&#xff08; HyperText &#xff09; 完整的html结构 文档声明 html元素 head元素 body元素 html元素 img标签 a标签 锚点链接 i…

链接投票二维码制作投票的链接制作投票链接的制作

用户在使用微信投票的时候&#xff0c;需要功能齐全&#xff0c;又快捷方便的投票小程序。 而“活动星投票”这款软件使用非常的方便&#xff0c;用户可以随时使用手机微信小程序获得线上投票服务&#xff0c;很多用户都很喜欢“活动星投票”这款软件。 “活动星投票”小程序在…

ACS Cent. Sci 2018 | 数据驱动的分子连续表征的自动化学设计

原文标题&#xff1a;Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules 代码&#xff1a;https://github.com/aspuru-guzik-group/chemical_vae 原文链接&#xff1a;https://pubs.acs.org/doi/10.1021/acscentsci.7b00572 Automatic…

涨点神器:基于Yolov5/Yolov7的小目标性能提升

1.小目标介绍 目标检测近十年涌现了一大批如Faster R-CNN、RetinaNet、YOLO等可以在工业界实用的目标检测方法,但小目标检测性能差的问题至今也没有被完全解决。因为Swin Transformer的提出,COCO test-dev上的 AP 已经刷到64 ,但小目标检测性能(即APS )和大目标检测性能(…

什么是MQTT?mqtt协议和http协议区别

摘要&#xff1a; 什么是MQTT&#xff1f;MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;译为&#xff1a;消息队列遥测传输&#xff0c;是一种轻量级的通讯协议&#xff0c;用于在网络上传输消息。MQTT 最初由 IBM 发布&#xff0c;后来成为 OASIS&#xf…

图解LeetCode——138. 复制带随机指针的链表

一、题目 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值。…

研报精选230525

目录 【行业230525中泰证券】半导体行业深度报告&#xff1a;解析英伟达成长的核心战略&#xff1a;研发为底、生态为径、AI为翼 【行业230525西南证券】医药行业周报&#xff1a;行情回暖&#xff0c;持续精选个股 【行业230525国元证券】2023年中期军工行业投资策略&#xff…

2023最系统的网络安全学习路线

什么是网络安全 网络安全是指保护计算机网络及其系统和应用程序的安全性和完整性&#xff0c;防止未经授权的访问、攻击、病毒、恶意软件和其他安全威胁。它是通过技术、管理和教育等综合手段来确保网络信息安全。网络安全包括网络防火墙、入侵检测系统、数据加密、网络访问控…

STM8、STM8S003F3P6 双机串口通信(片上串口)

背景 这里为什么要写串口通信&#xff0c;因为实际项目上使用了串口&#xff0c;STM8S003F3P6的串口简单啊&#xff0c;不值得一提。本文写的串口确实简单&#xff0c;因为这里我想先从简单的写起来&#xff0c;慢慢的把难的引出来。这里呢&#xff0c;做个提纲说明&#xff0…

基于SSM+HTML5的网上跳蚤市场系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;HTML 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 前言…

数据结构-查找(顺序查找与二分查找的讲解与代码实现)

顺序查找概念&#xff1a;从表的另一端开始&#xff0c;一次将记录的关键字和给定值进行比较&#xff0c;若某个记录的关键字和给定的值相等&#xff0c;则查找成功&#xff0c;反之则查找失败。 ASL:平均查找长度 pi查找概率&#xff0c;ci查找次数 eg&#xff1a;序列1&…

kubelet源码分析 status_manager状态管理器篇

kubelet源码分析 status_manager状态管理器篇 右上方的statusManager就是本篇要介绍的内容。上一篇kubelet的sync同步函数也介绍过&#xff0c;这篇内容详细介绍状态管理器的作用。 一、简介 status_manager&#xff08;状态管理器&#xff09;是 Kubernetes 中的一个组件&am…