【Java笔试强训 17】
🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!欢迎志同道合的朋友一起加油喔🤺🤺🤺
目录
一、选择题
二、编程题
🔥杨辉三角的变形
🔥 计算某字符出现次数
一、选择题
1、一个查询语句执行后显示的结果为:
1班 80
2班 75
3班 NULL
,则最有可能的查询语句是()
A SELECT AVG(成绩) FROM 成绩表 WHERE class<=3
B SELECT AVG(成绩) FROM 成绩表 WHERE class<=3 GROUP BY class
C SELECT AVG(成绩) FROM 成绩表 WHERE class<=3 order by class
D SELECT AVG(成绩) FROM 成绩表 HAVING class <=3 GROUP BY class
正确答案: B
2、下列sql语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限()。
A grant select,insert on userdb.userinfo to'zhangsan'@'localhost'
B grant'zhangsan'@'localhost'to select,insert for userdb.userinfo
C grant select,insert on userdb.userinfo for'zhangsan'@'localhost'
D grant'zhangsan'@'localhost'to userdb.userinfo on select,insert
正确答案: A
常用的管理权限的命令有:
授予用户某张表查询数据的权限:grant select on 数据库名表名to用户名@该用户允许访问的ip授予用户某张表插入数据的权限:grant insert on 数据库名表名 to 用户名@该用户允许访问的ip授予用户某张表修改数据的权限:arant update on 数据库名,表名 to 用户名@该用户允许访问的ip授予用户某张表删除数据的权限:grant delete on 数据库名表名 to 用户名@该用户允许访问的ip
3、下列对于数据库索引的说法一定是错误的()
A 索引可以提升查询,分组和排序的性能
B 索引不会影响表的更新、插入和删除操作的效率
C 全表扫描不一定比使用索引的执行效率低
D 对于只有很少数据值的列,不应该创建索引
正确答案: B
A 创建索引:根据一列,或多列来创建,查询条件依赖的列,分组列,排序列,都可以使用这些列上的索引
B 数据量越大,数据更新的操作(插入,修改,删除)对索引的效率影响越大
C 数据量很少,全表扫描(一行一行的遍历)可能比根据索引来检索数据更快
D 复引比如性别,只有男和女,索引就不太有必要(索引后续的维护效率会比较低)
4、下面哪个SQL命令用来向表中添加列()
A MODIFY TABLE TableName ADD COLUMN ColumnName
B MODIFY TABLE TableName ADD ColumnName
C ALTER TABLE TableName ADD COLUMN ColumnName
D ALTER TABLE TableName ADD ColumnName Type
正确答案:D
修改表结构的关健字都是alter table 夫名,再跟具体修改的语句,如:添加表字段
alter table table_name add 字段名称字段类型
删除表字段
alter table table_name drop 字段名称
修改表宁段
alter table table name change 旧字段名称 新字段名称字段炎型
alter table table name modify字段名称字段类刑
5、有订单表orders,包含字段用户信息userid,字段产品信息productid,以下语句能够返回至少被订购过两次的productid?
A select productid from orders where count(productid)>1
B select productid from orders where max(productid)>1
C select productid from orders where having count(productid)>1 group by productid
D select productid from orders group by productid having count(productid)>1
正确答案: D
参考答案:
group by 通常和集合函数SUM(),AVG().MAX(),MIN(),COUNT()等结合在一起,后接限制条件语句 having,不可用where语句
6、在手机开发中常用的数据库是 ___
A sqlLite
B Oracle
C Sql Server
D Db23
正确答案: A
参考答案:
A是内存数据库、B C D是企业级的大型数据库
7、下列哪个特性与此事相关:已落实的事务会保证所有操作均已完成,并且在事务回滚中,所有操作产生的影响均已得到恢复?
A 隔离性
B 原子性
C 一致性
D 持久性
正确答案: B
8、athletes 表包含运动员姓名,年纪和代表国家。下面哪个查询可以找出代表每个国家最年轻的运动员情况?
A SELECT name, country, age FROM athletes WHERE (country, age) IN (SELECT country, min(age) FROM athletes GROUP BY country)
B SELECT name, country, age FROM athletes WHERE (country, age) IN (SELECT min(age), country FROM athletes GROUP BY country)
C SELECT name, country, age FROM athletes WHERE (country, age) IN (SELECT country, min(age) FROM athletes) GROUP BY country
D SELECT name, country, age FROM athletes WHERE age IN (SELECT country, min(age) FROM athletes GROUP BY country)
正确答案: A
9、执行以下 SQL ,下面哪个名字会被查询出来()
SELECT FirstName FROM StaffList WHERE FirstName LIKE’_A%
A Allen
B CLARK
C JACKSON
D David
正确答案: C
10、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
二、编程题
🔥杨辉三角的变形
杨辉三角的变形_牛客题霸_牛客网
【解题思路】:
按照题目意思,可以发现第n行有2n - 1个元素,第i,j元素等于上一行第j - 2,j - 1,j三列元素之和,每一行的第
一列和最后一列都为1,如果是第二列,则只是两个元素之和。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int num = sc.nextInt();
if(num == 1 || num == 2){
System.out.println(-1);
}else {
if(num % 2==1){
System.out.println(2);
}else if(num %4 == 2){
System.out.println(4);
}else {
System.out.println(3);
}
}
}
}
}
🔥 计算某字符出现次数
计算某字符出现次数__牛客网
import java.util.*;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
String all="";
String one="";
char[] ac;
char temp;
int num=0;
while(s.hasNext())
{
//s.toUpperCase(),String 转化为大写
//s.toLowerCase(),String 转化为小写
//String字符转换,s.toCharArray()与s.charAt(index)
//char字符转换,String.valueOf(c)转化为String
all=s.nextLine();
one=s.nextLine();
//存放原来所有的
ac=all.toCharArray();
//存放要的字符
//temp=one.charAt(0);
for(int i=0;i<ac.length;i++)
{
if(one.equalsIgnoreCase(String.valueOf(ac[i])))
num++;
}
System.out.println(num);
}
}
}