【nowcoder】笔试强训Day16
创始人
2024-05-04 13:19:10
0

目录

一、选择题

二、编程题

2.1扑克牌大小

2.2完全数计算


一、选择题

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

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

B. 其中两个都是UPDATE

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

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

F. 两个都是DELETE

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

所以正确答案是 F 

2.计算每位学生的多学科加总成绩的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 

从成绩表中搜索from [成绩表](nolock)

查询学科总成绩则需要按照学生名字来分组 group by stud_name 

则检索就是select count(score) as total,stud_name

所以正确答案是 C 

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

A. TCP/IP

B. UDP

C. 共享内存

D. Socket 

MySQL实现了四种通信协议 :
TCP/IP协议,通常我们通过来连接MySQL,各种主要编程语言都是根据这个协议实现了连接模块

Unix Socket协议,这个通常我们登入MySQL服务器中使用这个协议,因为要使用这个协议连接MySQL需要一个物理文件,文件的存放位置在配置文件中有定义,值得一提的是,这是所有协议中最高效的一个。

Share Memory协议,这个协议一般人不知道,肯定也没用过,因为这个只有windows可以使用,使用这个协议需要在配置文件中在启动的时候使用–shared-memory参数,注意的是,使用此协议,一个host上只能有一个server,所以这个东西一般没啥用的,除非你怀疑其他协议不能正常工作,实际上微软的SQLSever也支持这个协议

Named Pipes协议,这个协议也是只有windows才可以用,同shared memory一样,使用此协议,一个host上依然只能有一个server,即使是使用不同的端口也不行,Named Pipes是为局域网而开发的协议。内存的一部分被某个进程用来向另一个进程传递信息,因此一个进程的输出就是另一个进程的输入。第二个进程可以是本地的(与第一个进程位于同一台计算机上),也可以是远程的(位于联网的计算机上)。正因为如此,假如你的环境中没有或者禁用TCP/IP环境,而且是windows服务器,那么好歹你的数据库还能工作。使用这个协议需要在启动的时候添加–enable-named-pipe选项
所以正确答案是 B 

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

A. 1:1联系

B. m:1联系

C.1:m联系

D. m:n联系

一个部门对应的是多个职员,一个职员对应一个部门,所以实体部门和职员间的联系是1:m联系。

所以正确答案是 C 

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

 A. 该操作不能重复读

B. 该操作不存在问题

C. 该操作读"脏"数据

D. 该操作丢失修改

这两个事务的问题出在,原本两个事务的目的是T1先把A的值加10,A变为110,。然后T2把A的值再减10,即A变回100。

但是根据题目中的执行顺序,A的值变为90,即T2的修改覆盖了T1的修改,这种现象叫做丢失修改。

所以正确答案是 D 

6.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 

获取每个学生所选课程的个数信息 select student_id,sum(course_id)

从课程表中检索from learn

课程个数信息需要通过分组 group by student_id 

所以正确答案是 B 

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

A. 只能读不能写

B. 只能写不能读

C. 既可读又可写

D. 不能读不能写 

排它锁意味着只有T能对Q进行操作,其他的事务都不可以对Q进行操作。

所以正确答案是 C 

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

A. 候选键

B. 主键

C. 外键

D. 超键

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key):不含有多余属性的超键称为候选键 主键(primary key):用户选作元组标识的一个候选键程序主键。外键(foreign key)实现“表示了两个关系之间的相关联系”的约束

所以正确答案是 C 

9.关系的键与完整性 学生关系模式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

删除属性使用的关键字是drop,更改表使用的是alter,所以是 ALTER TABLE S DROP Age

所以正确答案是 A 

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

A. UNIQUE

B. PRIMARY KEY

C. FOREIGN KEY 

D.BETWEEN

unique是不能重复独一无二的约束,primarykey是主键约束,foreignkey是外键约束,between是where语句中的操作符 BETWEEN ... AND会选取介于两个值之间的数据范围。

所以正确答案是 D 

二、编程题

2.1扑克牌大小

扑克牌游戏大家应该都比较熟悉了,一副牌由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

 首先我们要把两组牌分割,然后再分别把两组牌中的每张牌都分割。

然后第一种情况就是两组排中有一组是joker JOKER,那么就直接输出即可。

第二种情况就是两种牌长度相等,这其中有两种情况,就是当有一组牌是JOKER那么比其他所有牌都大所以直接输出,除他之外就是joker,也是直接输出。然后其次就是比较两组牌的第一个元素,哪个大就输出哪一个。

第三种情况就是一组有炸弹时,一组有炸弹另一组正常并且非王炸,则直接输出炸弹那一组。

剩下的情况就是不合法情况输出ERROR即可。

public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();String[] s = str.split("-");String[] s1 = s[0].split(" ");String[] s2 = s[1].split(" ");String str2 = "34567891JQKA2";if(s[0].equals("joker JOKER")||s[1].equals("joker JOKER")){System.out.println("joker JOKER");}else if(s1.length==s2.length){if(s[1].equals("JOKER")||s[0].equals("JOKER")){System.out.println("JOKER");return;}else if(s[1].equals("joker")||s[0].equals("joker")){System.out.println("joker");return;}int num1 = str2.indexOf(s1[0].charAt(0));int num2 = str2.indexOf(s2[0].charAt(0));if(num1>num2){System.out.println(s[0]);}else{System.out.println(s[1]);}}else if(s2.length==4){System.out.println(s[1]);}else if(s1.length==4){System.out.println(s[0]);}else{System.out.println("ERROR");}}
}

2.2完全数计算

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

 创建嵌套循环,在第一层循环遍历小于n大于等于2的每个数,嵌套的循环用于将i的真因子全部想加起来。然后判断加起来的真因子和i是否相等,相等就有一个完全数。

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

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...