笔试题总结

来源:互联网 发布:自学数学软件 编辑:程序博客网 时间:2024/04/29 22:43


今天晚上参加了某公司校园招聘的笔试,题目全部是选择提,分为3种类型,计算机基础,java或者c++(任选一个),数据库。前面两部分的题还好,大部分题都还会做(不保证做对),而后面的数据库的题就有些难度了。下面总结一下这次笔试。

一.计算机基础

1. 第一个题问的是CPU从目态到管态的转换方式。这道题确实不怎么会,但是看到选项中有一个中断,果断就选了它,然后果然就选对了。

解析:cpu状态分为管态和目态,管态又称为特权态,系统态和核心态。cpu在管态下可以执行指令系统的全集。通常操作系统在管态下运行。

目态又称为常态或用户态。机器处于目态时,程序只能执行非特权指令。用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或者无意破坏系统。

从目态转换为管态唯一途径是中断;从管态到目态可以通过修改程序状态字来实现,这将伴随着操作系统程序到用户程序的转换。

2. 在半导体存储器中,动态DRAM的特点是什么。给了四个选项,没记太清,应为每隔一段时间需要刷新一次。

3. 80486系统总线有多少位。 32位

4. 有道题是给了4个字符,问哪个在ascii码中的位置靠后。ascii码的大致顺序为先空格,然后数字,然后大写字母,然后小写字母。

二.java

因为比较擅长java,所以选的java题做。

1.代码如下:

public class Test1 {    public static boolean check(char c) {        System.out.print(c + " ");        return true;    }    public static void main(String[] args) {        int i = 0;        for (check('A'); check('B') && i < 2; check('C')) {            i++;            check('D');        }    }}
大概就是上面那个样子,问输出结果。当时做的时候,选得是编译错误,回来试了一下,程序可以正确运行。下面就分析一下该题:

对for循环来说我们一般的调用格式如下:

for (参数初始化表达式; 条件表达式; 更新循环变量表达式) {            循环体}
对于括号里的3个表达式都是可选项,我们可以缺省,但是“;”必须要写上。对于条件表达式,表达式的计算值必须为一个boolean类型或者直接是一个boolean类型的值,但是对于参数初始化表达式和更新循环变量表达式,只要是满足表达式的定义,就可以正确执行。而函数调用就属于表达式的一种。因此上面的程序可以正确运行,结果为:A B D C B D C B

2.代码如下:

public class Test2 extends Thread implements Runnable{    public void run() {        System.out.println("hhhh");    }    public static void main(String[] args) {        new Thread(new Test2()).start(); //1        new Test2().start(); //2    }}
上面的类既继承了Thread类又实现了Runnable接口,那么该类是否可以正确运行呢?答案是可以的。我们知道java使用接口,用来实现java的多继承。对于多继承来说,如果一个类同时继承了两个类,而这两个类中又包含同名的方法,并且两个类中方法的实现不同,那么子类在继承时就会产生冲突,因为它不知道到底应该使用哪个父类的实现(假设子类自己不重写这个方法)。但是对于接口来说,它只有方法声明,将方法实现交给了子类,而且子类必须要实现接口中的方法。这样即使继承的类和实现的接口中有同名方法,也不会产生错误,因为接口中的方法根本就没有方法体。如果子类中没有重写同名方法,就会使用父类中的方法实现。

对于上面的例子来说,1处Test2是被当成Runnable来对待,2处Test2是被当成Thread来对待。

3.有一道题是在方法中定义了一个static变量,问程序的执行结果。程序是不能编译通过的,因为方法中不能用static定义变量。static使用的地方有:定义static变量(类中方法外),定义static方法,static代码块,静态内部类。

三. 数据库

数据库算的是比较难的题了,因为很多方面的知识根本没有接触过。

1.PL/SQL块的结构

PL/SQL是oracle数据库对于SQL语言的扩展,在SQL语言的基础上添加了编程语言的特点。

PL/SQL块包括3个部分:声明部分、执行部分和异常处理部分,下面是一个例子:

DECLARE      --声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数  BEGIN    -- 执行部分:  过程及SQL 语句  , 即程序的主要部分  EXCEPTION    -- 执行异常部分: 错误处理  END;

2.Oracle逻辑结构的大小排序--表空间、段、区、数据块

数据块是oracle存储数据的最小单位,区由多个连续的数据块组成,段由一组区组成,表空间由多个段组成。

3.存储过程和函数的不同

http://benbenxiongyuan.iteye.com/blog/1142320





  

0 0
原创粉丝点击