当前位置: 首页 > news >正文

Java经典笔试题—day14

Java经典笔试题—day14

  • 🔎选择题
  • 🔎编程题
    • 🍭计算日期到天数转换
    • 🍭幸运的袋子
  • 🔎结尾

🔎选择题

(1)定义学生、教师和课程的关系模式 S (S#,Sn,Sd,Dc,SA )(其属性分别为学号、姓名、所在系、所在系的系主任、年龄); C ( C#,Cn,P# )(其属性分别为课程号、课程名、先修课); SC ( S#,C#,G) (其属性分别为学号、课程号和成绩),则该关系为( )

A. 第二范式
B. 第一范式
C. 第三范式
D. BCNF范式

A

范式是符合某一种级别的关系模式的集合
关系数据库中的关系必须满足一定的要求, 满足不同程度要求的为不同范式

  • 目前关系数据库有六种范式
    • 第一范式(1NF)
    • 第二范式(2NF)
    • 第三范式(3NF)
    • Boyce-Codd范式(BCNF)
    • 第四范式(4NF)
    • 第五范式(5NF)
  • 满足最低要求的范式是第一范式(1NF)
  • 在第一范式基础上进一步满足更多要求的称为第二范式(2NF), 其余范式依次类推
    一般来说, 数据库只需满足第三范式(3NF)即可
  • 第一范式(1NF): 主属性(主键)不为空且不重复, 字段不可再分(存在非主属性对主属性的部份依赖)
  • 第二范式(2NF): 关系模式是第一范式, 且非主键完全依赖于主键
  • 第三范式(3NF): 关系模式是第二范式, 且非主键与非主键之间不存在依赖关系
  • BCNF: 所有属性都不传递依赖于关系的任何候选键


    对于 S 表, 主键为学号, 非主键为姓名, 所在系, 所在系系主任, 年龄
    满足第一范式(主键非空且不重复, 字段不可再分)
    满足第二范式(关系模式是第一范式, 且非主键完全依赖于主键)
    不满足第三范式(所在系所在系系主任 存在依赖关系, 通过 所在系 能确定 所在系系主任 )
    在这里插入图片描述
    对于 C 表, 主键为课程号, 非主键为课程名, 先修课
    满足第一范式(主键非空且不重复, 字段不可再分)
    满足第二范式(关系模式是第一范式, 且非主键完全依赖于主键)
    满足第三范式(关系模式是第二范式, 且非主键与非主键之间不存在依赖关系)
    在这里插入图片描述
    对于 SC 表, 主键为学号, 课程号(联合主键), 非主键为成绩
    满足第一范式(主键非空且不重复, 字段不可再分)
    满足第二范式(关系模式是第一范式, 且非主键完全依赖于主键)
    满足第三范式(关系模式是第二范式, 且非主键与非主键之间不存在依赖关系)
    在这里插入图片描述
    综上所述, 答案为第二范式

(2)下面不属于数据库系统特点的是( )

A. 数据冗余度高
B. 数据具有完整性
C. 数据共享性好
D. 数据独立性高

A

  • 数据库系统的特点
    • 数据共享性高, 冗余度低
    • 具有高度的物理独立性和逻辑独立性
    • 整体结构化, 用数据模型描述
    • 由数据库系统提供数据安全性, 完整性, 并发控制和恢复能力

(3)将实体-联系模型转换为关系模型时,实体之间多对多联系在关系模型中的实现方式是( )

A. 建立新的关系
B. 建立新的属性
C. 增加新的关键字
D. 建立新的实体

A

  • 实体-联系模型, 也成为实体-联系图(ER图)
  • ER图包含4个基本部分
    • 矩形框: 表示实体的类型
    • 菱形框: 表示联系的类型
    • 椭圆形框: 表示实体类型和联系类型的属性
    • 直线: 联系类型与其涉及的实体类型之间用直线连接

例如每个专业设置多门课程, 某些课程可被多个专业设置
专业(实体)与课程(实体)之间的联系在ER图中表示为多对多, 但在关系模型中, 需要通过中间表(建立新的关系)来表达多对多的关系

(4)关于求和函数,以下说法正确的是()

A. sum返回表达式中所有数的总和,因此只能用于数字类型的列
B. Avg返回表达式中所有数的平均值,可以用于数字型和日期型的列
C. Max和Min可以用于字符型的列
D. Count可以用于字符型的列

A

B. Avg 可以应用于数字型字段(列), 不能应用于日期型字段(列)
C. Max 和 Min 应用于数字型字段(列), 不能应用于字符型字段(列)
D. Count 可以应用于任意类型的字段(列), 但不属于求和函数

(5)有三个关系 R 、 S 和 T 如下:
则由关系 R 和 S 得到关系 T 的操作是( )

在这里插入图片描述

A. 自然连接
B. 交
C. 除
D. 并

C

  • 自然连接
    • 如果关系R与S具有相同的属性B, 且该属性组的值相等时的连接称为自然连接, 结果关系的属性集合为R的属性并上S减去属性B的属性集合.(自然连接也可以看作是在广义笛卡尔积R x S中选出同名属性上符合相等条件元组, 再进行投影, 去掉重复的同名属性, 组成新的关系)
    • 取出两个结果集中字段相同的部分
      在这里插入图片描述

  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    • 合并两个结果集中字段相同的部分
      在这里插入图片描述

(6)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为( )

A. 课号,成绩
B. 学号,成绩
C. 学号,课号
D. 学号,姓名,成绩

C

SC 表的学号作为外键关联 S 表的主键学号
SC 表的课号作为外键关联 C 表的主键课号
因此, SC 表的主键为学号, 课号(联合主键)

(7)关系数据库所采用的数据存放形式是()

A. 二维表
B. 链表
C. 网状
D. 二叉树

A

关系数据库存放数据形式类似于 Excel, 属于二维表的形式
在这里插入图片描述

(8)某关系表有:员工(部门编号,部门名称,员工编号,姓名,性别,年龄),则其主码为()

A. 部门编号、员工编号
B. 员工编号
C. 姓名
D. 部门编号

A

  1. 判断员工编号是否可以重复
    • 员工编号可以重复(需利用其他字段区分是否为同一员工)
      类似于 id = 1001, 部门编号分别为 dept = 1 和 dept = 2
    • 员工编号不可以重复(利用员工编号即可区分是否为同一员工)
      类似于 id = 1001, id = 1002
  2. 根据题目, 已经给出部门编号等其他信息, 表明员工编号可以重复
  3. 综上, 主键为部门编号, 员工编号

(9)在使用 limit 子句时,如果没有足够的行,则:

A. MySQL会报错
B. MySQL将只返回它能返回的那么多行
C. MySQL将不会返回任何行

B

(10)不属于SQL语句的是()

A. SELECT
B. CANCEL
C. UPDATE
D. ALTER

B

A. 查询的关键字
C. 修改的关键字
D. 管理表结构的关键字

🔎编程题

🍭计算日期到天数转换


题目描述

根据输入的日期,计算是这一年的第几天。
保证年份为4位数且日期合法。

进阶:时间复杂度:O(1) ,空间复杂度:O(1)

输入描述

输入一行,每行空格分割,分别是年,月,日

输出描述

输出是这一年的第几天

在这里插入图片描述

解题思路

  • 判断 year 是否为闰年
  • 注意给出的 month 表示计算到当月的天数, 因此加上给出的 day 即可
//计算日期到天数转换
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int year = scan.nextInt();int month = scan.nextInt();int day = scan.nextInt();calcDay(year, month, day);}private static void calcDay(int year,int month,int day) {// flag --> 判断是否为闰年boolean flag = false;if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) flag = true;//   month    1   2  3   4   5   6   7   8   9   10  11int[] days = {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30};days[1] = flag ? 29 : 28;int ret = 0;for(int i = 0; i < month - 1; i++) {ret += days[i];}System.out.println(ret + day);}}

📢题目链接
链接:link


🍭幸运的袋子


题目描述

一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。
例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3
你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的多少种不同的幸运的袋子。

输入描述

第一行输入一个正整数n(n ≤ 1000) 第二行为n个数正整数xi(xi ≤ 1000)

输出描述

输出可以产生的幸运的袋子数

在这里插入图片描述

解题思路

以 n = 5, xi 分别为 1, 5, 7, 3, 1为例

  • 先进行排序(下面解释)
    • 排序后的结果为 1, 1, 3, 5, 7
  • 定义 sum = 0(和), mul = 1(乘积), cnt = 0(产生的幸运袋子数)

在这里插入图片描述
在这里插入图片描述

  • 从1, 1 开始
    • 判断1, 1, 3 能否构成幸运袋子(√)
      • 判断1, 1, 3, 5 能否构成幸运袋子(x)
    • 判断1, 1, 5 能否构成幸运袋子(√)
      • 判断1, 1, 5, 7 能否构成幸运袋子(x)
    • 判断1, 1, 7 能否构成幸运袋子(√)
  • 从1, 3 开始
    • 判断1, 3, 5 能否构成幸运袋子(x)
    • 判断1, 3, 7 判断1, 1, 3 能否构成幸运袋子(x)
  • 从1, 5 开始


排序是为了当判断当前元素不能构成幸运袋子时, 不必再判断后面的数字
因为后面的数字 ≥ 前面的数字

//幸运的袋子
import java.util.Scanner;
import java.util.Arrays;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] nums = new int[n];for (int i = 0; i < n; i++) nums[i] = sc.nextInt();Arrays.sort(nums);System.out.println(count(nums, n, 0, 0, 1));}private static int count(int[] nums, int n, int pos, int sum, int multi) {int cnt= 0;for (int i = pos; i < n; i++) {sum += nums[i];multi *= nums[i];if (sum > multi) {cnt= cnt+ 1 + count(nums, n, i + 1, sum, multi);} else if (nums[i] == 1) {cnt= cnt+ count(nums, n, i + 1, sum, multi);} else {break;}sum = sum - nums[i];multi = multi / nums[i];// 拥有相同号码的球是无区别的while (i < n - 1 && nums[i] == nums[i + 1]) {i++;}}return cnt;}
}

📢题目链接
链接:link


🔎结尾

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

相关文章:

Java经典笔试题—day14

Java经典笔试题—day14 &#x1f50e;选择题&#x1f50e;编程题&#x1f36d;计算日期到天数转换&#x1f36d;幸运的袋子 &#x1f50e;结尾 &#x1f50e;选择题 (1)定义学生、教师和课程的关系模式 S (S#,Sn,Sd,Dc,SA &#xff09;&#xff08;其属性分别为学号、姓名、所…...

一个帮助写autoprefixer配置的网站

前端需要用到postcss的工具&#xff0c;用到一个插件叫autoprefixer&#xff0c;这个插件能够给css属性加上前缀&#xff0c;进行一些兼容的工作。 如何安装之类的问题在csdn上搜一下都能找到&#xff08;注意&#xff0c;vite是包含postcss的&#xff0c;不用在项目中安装pos…...

C语言中的类型转换

C语言中的类型转换 隐式类型转换 整型提升 概念&#xff1a; C语言的整型算术运算总是至少以缺省&#xff08;默认&#xff09;整型类型的精度来进行的为了获得这个精度&#xff0c;表达式中字符和短整型操作数在使用之前被转换为普通整型&#xff0c;这种转换成为整型提升 如…...

String底层详解(包括字符串常量池)

String a “abc”; &#xff0c;说一下这个过程会创建什么&#xff0c;放在哪里&#xff1f; JVM会使用常量池来管理字符串直接量。在执行这句话时&#xff0c;JVM会先检查常量池中是否已经存有"abc"&#xff0c;若没有则将"abc"存入常量池&#xff0c;否…...

C++ 里面lambda和函数指针的转换

问题说明 原始问题&#xff0c;代码如下会编译报错&#xff1a; using DecisionFn bool(*)();class Decide { public:Decide(DecisionFn dec) : _dec{dec} {} private:DecisionFn _dec; };int main() {int x 5;Decide greaterThanThree{ [x](){ return x > 3; } };retur…...

前端Rust开发WebAssembly与Swc插件快速入门

前言 现代前端对速度的追求已经进入二进制工具时代&#xff0c;Rust 开发成为每个人的必修课。 一般我们将常见的前端 Rust 开发分为以下几类&#xff0c;难度由上至下递增&#xff1a; 开发 wasm 。 开发 swc 插件。 开发代码处理工具。 我们将默认读者具备最简单的 Rus…...

【C++ 学习 ⑧】- STL 简介

目录 一、什么是 STL&#xff1f; 二、STL 的版本 三、STL 的 6 大组件和 13 个头文件 四、学习 STL 的 3 个境界 五、STL 的缺陷 参考资料&#xff1a; STL教程&#xff1a;C STL快速入门&#xff08;非常详细&#xff09; (biancheng.net)。 C STL是什么&#xff0c;有…...

论文笔记--Deep contextualized word representations

论文笔记--Deep contextualized word representations 1. 文章简介2. 文章概括3 文章重点技术3.1 BiLM(Bidirectional Language Model)3.2 ELMo3.3 将ELMo用于NLP监督任务 4. 文章亮点5. 原文传送门 1. 文章简介 标题&#xff1a;Deep contextualized word representations作者…...

【MySQL高级篇笔记-性能分析工具的使用 (中) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、数据库服务器的优化步骤 二、查看系统性能参数 三、统计SQL的查询成本&#xff1a;last_query_cost 四、定位执行慢的 SQL&#xff1a;慢查询日志 1、开启慢查询日志参数 2、查看慢查询数目 3、慢查询日志分析工具&#xf…...

大学生数学建模题论文

大学生数学建模题论文篇1 浅论高中数学建模与教学设想 论文关键词&#xff1a;数学建模 数学 应用意识 数学建模教学 论文摘要&#xff1a;为增强学生应用数学的意识&#xff0c;切实培养学生解决实际问题的能力&#xff0c;分析了高中数学建模的必要性&#xff0c;并通过对高中…...

论文阅读 —— 滤波激光SLAM

文章目录 FAST-LIO2FAST-LIOIMUR2LIVER3LIVEEKFLINS退化摘要第一句 FAST-LIO2 摘要&#xff1a; 本文介绍了FAST-LIO2&#xff1a;一种快速、稳健、通用的激光雷达惯性里程计框架。 FAST-LIO2建立在高效紧耦合迭代卡尔曼滤波器的基础上&#xff0c;有两个关键的新颖之处&#…...

JavaScript键盘事件

目录 一、keydown&#xff1a;按下键盘上的任意键时触发。 二、keyup&#xff1a;释放键盘上的任意键时触发。 三、keypress&#xff1a;在按下并释放能够产生字符的键时触发&#xff08;不包括功能键等&#xff09;。 四、input&#xff1a;在文本输入框或可编辑元素的内容…...

opengl灯光基础:2.1 光照基础知识

光照&#xff1a; 光照以不同的方式影响着我们看到的世界&#xff0c;有时甚至是以很戏剧化的方式。当手电筒照射在物体上时&#xff0c;我们希望物体朝向光线的一侧看起来更亮。我们所居住的地球上的点&#xff0c;在中午朝向太阳时候被照得很亮&#xff0c;但随着地球的自转…...

大屏时代:引领信息可视化的新潮流

在信息时代的浪潮下&#xff0c;数据已经成为推动各行各业发展的重要动力。然而&#xff0c;海量的数据如何快速、直观地呈现给用户&#xff0c;成为了一个亟待解决的难题。在这样的背景下&#xff0c;可视化大屏应运而生&#xff0c;以其出色的表现力和交互性成为信息展示的佼…...

ChatGTP全景图 | 背景+技术篇

引言&#xff1a;人类以为的丰功伟绩&#xff0c;不过是开端的开端……我们在未来100年取得的技术进步&#xff0c;将远超我们从控制火种到发明车轮以来所取得的一切成就。——By Sam Altman 说明&#xff1a;ChatGPT发布后&#xff0c;我第一时间体验了它的对话、翻译、编程、…...

计算机专业学习的核心是什么?

既然是学习CS&#xff0c;那么在这里&#xff0c;我粗浅的把计算机编程领域的知识分为三个部分&#xff1a; 基础知识 特定领域知识 框架和开发技能 基础知识是指不管从事任何方向的软件工程师都应该掌握的&#xff0c;比如数据结构、算法、操作系统。 特定领域知识就是你…...

基于springboot地方旅游系统的设计与实现

摘 要 本次设计内容是基于Springboot的旅游系统的设计与实现&#xff0c;采用B/S三层架构分别是Web表现层、Service业务层、Dao数据访问层&#xff0c;并使用Springboot&#xff0c;MyBatis二大框架整合开发服务器端&#xff0c;前端使用vue&#xff0c;elementUI技术&…...

一些学习资料链接

组件化和CocoaPods iOS 组件化的三种方案_迷曳的博客-CSDN博客 CocoaPods 私有化 iOS组件化----Pod私有库创建及使用 - 简书 CocoaPods1.9.1和1.8 使用 出现CDN: trunk URL couldnt be downloaded: - 简书 cocoapod制作私有库repo - 简书 【ios开发】 上传更新本地项目到…...

Webpack打包图片-JS-Vue

1 Webpack打包图片 2 Webpack打包JS代码 3 Babel和babel-loader 5 resolve模块解析 4 Webpack打包Vue webpack5打包 的过程&#xff1a; 在webpack的配置文件里面编写rules&#xff0c;type类型有多种&#xff0c;每个都有自己的作用&#xff0c;想要把小内存的图片转成bas…...

进程控制(Linux)

进程控制 fork 在Linux中&#xff0c;fork函数是非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 返回值&#xff1a; 在子进程中返回0&#xff0c;父进程中返回子进程的PID&#xff0c;子进程创建失败返回-1。 …...

C Primer Plus第十四章编程练习答案

学完C语言之后&#xff0c;我就去阅读《C Primer Plus》这本经典的C语言书籍&#xff0c;对每一章的编程练习题都做了相关的解答&#xff0c;仅仅代表着我个人的解答思路&#xff0c;如有错误&#xff0c;请各位大佬帮忙点出&#xff01; 由于使用的是命令行参数常用于linux系…...

又名管道和无名管道

一、进程间通信&#xff08;IPC&#xff0c;InterProcess Communication&#xff09; 概念&#xff1a;就是进程和进程之间交换信息。 常用通信方式 无名管道&#xff08;pipe&#xff09; 有名管道 &#xff08;fifo&#xff09; 信号&#xff08;signal&#xff09; 共…...

操作系统复习4.1.0-文件管理结构

定义 一组有意义的信息的集合 属性 文件名、标识符、类型、位置、大小、创建时间、上次修改时间、文件所有者信息、保护信息 操作系统向上提供的功能 创建文件、删除文件、读文件、写文件、打开文件、关闭文件 这6个都是系统调用 创建文件 创建文件时调用Create系统调用…...

【嵌入式烧录/刷写文件】-2.6-剪切/保留Intel Hex文件中指定地址范围内的数据

案例背景&#xff1a; 有如下一段HEX文件&#xff0c;保留地址范围0x9140-0x91BF内的数据&#xff0c;删除地址范围0x9140-0x91BF外的数据。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717273747576775F :2091200078797A7B7C7D7E7F808182838485868788898A…...

JavaScript表单事件(下篇)

目录 八、keydown: 当用户按下键盘上的任意键时触发。 九、keyup: 当用户释放键盘上的键时触发。 十、keypress: 当用户按下键盘上的字符键时触发。 十一、focusin: 当表单元素或其子元素获得焦点时触发。 十二、focusout: 当表单元素或其子元素失去焦点时触发。 十三、c…...

机器学习 | SVD奇异值分解

本文整理自哔哩哔哩视频&#xff1a;什么是奇异值分解SVD–SVD如何分解时空矩阵 &#x1f4da;奇异值分解是什么&#xff1f; M是原始矩阵&#xff0c;它可以是任意的矩阵&#xff0c;奇异值分解就是将它分解为三个矩阵相乘。U和V是方阵&#xff0c;∑是不规则矩阵&#xff0c;…...

chatgpt赋能python:Python取值:介绍

Python取值&#xff1a;介绍 Python是一种非常流行的高级编程语言&#xff0c;适用于各种任务&#xff0c;包括数据科学、机器学习、Web开发和自动化。它被广泛使用&#xff0c;因为它易于学习、易于使用、易于阅读和易于维护。Python中的取值对于程序员来说是一个极其有用的工…...

广播风暴的成因以及如何判断、解决

广播风暴&#xff08;broadcast storm&#xff09;简单的讲是指当广播数据充斥网络无法处理&#xff0c;并占用大量网络带宽&#xff0c;导致正常业务不能运行&#xff0c;甚至彻底瘫痪&#xff0c;这就发生了“广播风暴”。一个数据帧或包被传输到本地网段 &#xff08;由广播…...

Loki 日志收集系统

一.系统架构 二.组成部分 Loki 的日志堆栈由 3 个组件组成&#xff1a; promtail&#xff1a;用于采集日志、并给每条日志流打标签&#xff0c;每个节点部署&#xff0c;k8s部署模式下使用daemonset管理。 loki&#xff1a;用于存储采集的日志&#xff0c; 并根据标签查询日志流…...

uCOSii信号量的作用

uCOSii中信号量的作用&#xff1a; 在创建信号量时&#xff0c;Sem_EventOSSemCreate(1)用于分时复用共享资源&#xff1b; Sem_EventOSSemCreate(0)用于中断和任务间同步或任务之间的同步。 具体在使用时&#xff0c;需要灵活运用。在访问共享资源时&#xff0c;我喜欢用互…...