数字马力笔试编程题
SQL题:
给你如下表:让你查询出没有选小易老师课程的所有学生
CREATE TABLE `S` (
`SNO` varchar(100) COLLATE utf8mb4_bin DEFAULT '' COMMENT '学号',
`SNAME` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '姓名'
) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='学生关系';
CREATE TABLE `C` (
`CNO` varchar(100) COLLATE utf8mb4_bin DEFAULT '' COMMENT '课程号',
`CNAME` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '课程名',
`CTEACHER` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '老师'
) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='课程关系';
CREATE TABLE `SC` (
`SNO` varchar(100) COLLATE utf8mb4_bin DEFAULT '' COMMENT '学号',
`CNO` varchar(100) COLLATE utf8mb4_bin DEFAULT '' COMMENT '课程号',
`SCORE` bigint(100) NOT NULL DEFAULT '0' COMMENT '成绩'
) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='选课关系';
INSERT INTO `SC` (`SNO`, `CNO`, `SCORE`) VALUES ( '2', '11', 120);
INSERT INTO `S` (`SNO`, `SNAME`) VALUES ('2', '小易');
INSERT INTO `C` (`CNO`, `CNAME`, `CTEACHER`) VALUES ('11', '小易', '物理老师');
Java题:给你一个字符串让你将他反转并转成大写,但“ali”这个单词不做反转。
例如:
"welcome to alibaba!" -> "!ABABali OT EMOCLEW"
"ali all in, Ali ilA" -> "ALI ILA ,NI LLA ali"
"keep ali" -> "ali PEEK"
题解:
SQL题:两个子查询即可:
select SNAME from S where SNO not in(
select SNO FROM SC where CNO in(
select CNO from C where CTEACHER = '小易'
)
);
Java题:
import java.util.Scanner;
public class Main {
/**
* 思路:先将所有的ali替换成特殊字符。然后正常反转,反转后将ali替换回来
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (sc.hasNextLine()) { // 注意 while 处理多个 case
String line = sc.nextLine();
String newLine = invoke(line);
System.out.println(line+" -> "+newLine);
}
}
static String old = "@";
public static String invoke(String str) {
String newStr = str.replaceAll("ali", old);
char[] chars = newStr.toCharArray();
char[] newchars = new char[chars.length];
for (int i = chars.length - 1, j = 0; i >= 0; i--, j++) {
if (chars[i] >= 'a' && chars[i] <= 'z') {
chars[i] -= 32;
}
newchars[j] = chars[i];
}
String s = new String(newchars);
return s.replaceAll(old, "ali");
}
}
给你如下表:让你查询出没有选小易老师课程的所有学生
CREATE TABLE `S` (
`SNO` varchar(100) COLLATE utf8mb4_bin DEFAULT '' COMMENT '学号',
`SNAME` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '姓名'
) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='学生关系';
CREATE TABLE `C` (
`CNO` varchar(100) COLLATE utf8mb4_bin DEFAULT '' COMMENT '课程号',
`CNAME` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '课程名',
`CTEACHER` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '老师'
) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='课程关系';
CREATE TABLE `SC` (
`SNO` varchar(100) COLLATE utf8mb4_bin DEFAULT '' COMMENT '学号',
`CNO` varchar(100) COLLATE utf8mb4_bin DEFAULT '' COMMENT '课程号',
`SCORE` bigint(100) NOT NULL DEFAULT '0' COMMENT '成绩'
) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='选课关系';
INSERT INTO `SC` (`SNO`, `CNO`, `SCORE`) VALUES ( '2', '11', 120);
INSERT INTO `S` (`SNO`, `SNAME`) VALUES ('2', '小易');
INSERT INTO `C` (`CNO`, `CNAME`, `CTEACHER`) VALUES ('11', '小易', '物理老师');
Java题:给你一个字符串让你将他反转并转成大写,但“ali”这个单词不做反转。
例如:
"welcome to alibaba!" -> "!ABABali OT EMOCLEW"
"ali all in, Ali ilA" -> "ALI ILA ,NI LLA ali"
"keep ali" -> "ali PEEK"
题解:
SQL题:两个子查询即可:
select SNAME from S where SNO not in(
select SNO FROM SC where CNO in(
select CNO from C where CTEACHER = '小易'
)
);
Java题:
import java.util.Scanner;
public class Main {
/**
* 思路:先将所有的ali替换成特殊字符。然后正常反转,反转后将ali替换回来
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (sc.hasNextLine()) { // 注意 while 处理多个 case
String line = sc.nextLine();
String newLine = invoke(line);
System.out.println(line+" -> "+newLine);
}
}
static String old = "@";
public static String invoke(String str) {
String newStr = str.replaceAll("ali", old);
char[] chars = newStr.toCharArray();
char[] newchars = new char[chars.length];
for (int i = chars.length - 1, j = 0; i >= 0; i--, j++) {
if (chars[i] >= 'a' && chars[i] <= 'z') {
chars[i] -= 32;
}
newchars[j] = chars[i];
}
String s = new String(newchars);
return s.replaceAll(old, "ali");
}
}
全部评论
相关推荐
昨天 21:20
山东科技大学 Java 点赞 评论 收藏
分享