【题目记录,知识点和正确结果待补充】
一、题型
1、选择(30题)
操作系统、数据结构、算法、Java、C、JavaScript、数据库
2、填空题(2道)
JAVA程序补充完整
3、编程题(1道)
特别简单
4、附加题(1道)
不知道算不算复杂,没时间了
二、题目(不确定的)
1、选择
(1)操作系统
A.进程和线程
a.线程在进程中是串行还是并行?
多CPU可以实现并行,一个进程中的多个线程分配到不同的CPU中,并行执行。
b.线程能否被不同进程共享?
不能。
c.进程与线程的关系
c.1 进程是资源分配的最小单位,线程是程序执行的最小单位
c.2 进程有自己的独立地址空间,同一进程中的线程共享进程中的数据。创建一个线程的开销也比进程要小很多。线程之间的通信更方便。
c.3 进程内的线程互相影响,一个死掉整个进程都死掉;进程不影响其他进程。
B.磁盘I/O请求
详细题目内容
用户程序发出磁盘I/O请求后,系统的处理流程是:用户程序→系统调用处理程序→设备驱动程序→中断处理程序。其中,计算数据所在磁盘的柱面号、磁头号、扇区号的程序是( )。
A.用户程序 B.系统调用处理程序 C.设备驱动程序 D.中断处理程序
答案:C.设备驱动程序
a.I/O请求:输入输出请求
b.设备驱动程序:?
C.预防死锁产生的操作
a.死锁产生的必要条件
互斥、不可剥夺、请求和保持、循环等待
b.预防死锁
b.1 破坏互斥:资源共享
b.2 破坏不可剥夺:资源可剥夺
b.3 破坏请求和保持:静态分配
b.4 破坏循环等待:顺序资源分配
(2)数据库
A.事务的ACID
a.Atomicity原子性:一个事务要么全部执行,要么不执行。
b.Consistency一致性:事务前后数据的完整性必须保持一致。
c.Isolation隔离性:两个以上的事务不会出现交错执行的状态。
d.Durability持久性:事务执行成功以后,该事务对数据库所作的更改便是持久的保存在数据库之中,不会无缘无故的回滚。
B.提交数据只提交了更新的部分,没更新的不提交,不符合哪个性质
原子性。
原子性要求事务的所有操作在数据库中要么全部正确反映出来,要么全部不反映。
C.left_join
a.主键值不可重复
b.以左边的表为主,on只是作为筛选条件,如果无右表指定属性与左表指定属性相等,则该列为null,但该行依然存在。即结果的行数为:>=左边表的行数
D.主键和外键
a.主键只有一个,特性是唯一性和非空性
b.外键可以设置多个
c.表的外键是另一表的主键, 外键可以有重复的, 可以是空值
E.max(列),列的类型只能是数字吗
错。
MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。
F.防止sql注入攻击的方法
a.避免动态SQL,使用准备好的语句和参数化查询。
b.加密存储在数据库中的私有/机密数据。
c.限制数据库权限和特权
d.避免直接向用户显示数据库错误
e.对访问数据库的Web应用程序防火墙
f.定期测试与数据库交互的Web应用程序
e.将数据库更新为最新的可用修补程序
(3)算法
A.排序:选择、快速、归并、插入,哪个用的内存最大
归并排序。
多种排序方法的时间复杂度&空间复杂度
(4)数据结构
A.二叉树的前序、中序、后序
前序ABCDEFGH,中序CDBAGFEH,求后序
后序为DCBGFHEA
B.二叉搜索树,最小值无什么
左<根<右
最小节点无左子树
C.知道栈的插入和pop,栈的大小最小值
(5)C/C++
A.关于switch,case的程序运行
注意有无break
B.char a = 101, a是否可以和int做数学运算
可以,使用代码测试如下:
#include <iostream>
using namespace std;
int main(){
char a = 101;
char b = 50;
int sum = 200;
int count = 10;
a ++;
sum += a;
count += b;
cout << sum << endl;
cout << count << endl;
return 0;
}
输出结果如下:
302
60
--------------------------------
Process exited after 0.1766 seconds with return value 0
请按任意键继续. . .
C.递归程序
D.个人一直忘的句子:((x>0)?x*f(x-1):2)
?表示判断,:前指判断成立,后指不成立时;此句相等于if-else。调试代码如下:
#include <iostream>
using namespace std;
int main(){
int x;
int result;
while(cin >> x){
result = ((x>0)?x:-x);
cout << result;
}
return 0;
}
运行结果如下
3
3
-2
2
0
0/
--------------------------------
Process exited after 28.33 seconds with return value 0
请按任意键继续. . .
(6)JAVA
A.抽象类和接口
抽象类:
a.抽象类使用abstract修饰
b.抽象类不能实例化,即不能使用new关键字来实例化对象
c.含有抽象方法(使用abstract关键字修饰的方法)的类是抽象类,必须使用abstract关键字修饰
d.抽象类可以含有抽象方法,也可以不包含抽象方法,抽象类中可以有具体的方法
e.如果一个子类实现了父类(抽象类)的所有抽象方法,那么该子类可以不必是抽象类,否则就是抽象类
f.抽象类中的抽象方法只有方法体,没有具体实现;
接口:
a.接口使用interface修饰
b.接口不能被实例化
c.一个类只能继承一个类,但是可以实现多个接口
d.接口中方法均为抽象方法
e.接口中不能包含实例域或静态方法(静态方法必须实现,接口中方法是抽象方法,不能实现)
B.父类和子类
待补充
(7)JavaScript
A.有n = function,alert(n),function无return,则alter什么
B.数组中插入,insert还是splice
C.indexOf
D.var a = '100', var b = 100, a == b, 返回?
E.setTimeout
2.填空
(1)简单数据序列加密运算
(2)埃及分数,没搞出来
3.编程题
输入两个整数A,B,计算A^B,返回结果的最后三个数字,且返回的是字符串类型
代码如下
忘了char转int
#include <iostream>
#include <math.h>
#include <string>
//输入两个数,返回a的b次方,后三位,返回字符串类型
//知识点:1.求次方 2.c++ int转char 3.pow返回值是double类型,转int
using namespace std;
int main(){
string result;
int a, b;
cin >> a >> b;
int mid = pow(a, b);
int conclu = mid % 1000;
result.push_back(conclu / 1000 +'0');
result.push_back(conclu / 100 % 10 +'0');
result.push_back(conclu % 10 +'0');
cout << result << endl;
return 0;
}
四、附加题
输入字符串类大写数字,返回字符串类小写数字,例如
input:四千五百二十一万六千八百七十七
output:“45216877”
没时间了,没写,待补充