试题来源:牛客网(https://www.nowcoder.com/test/30023046/summary

    一、选择题:
    1、下列LINUX系统的键盘命令中,显示当前工作目录的命令是:
    A.ls命令
    B.cd命令
    C.pwd命令
    D.cat命令
    答案:C

    2、下面哪种方式不可以实现数据约束:
    A.NOT NULL
    B.UNIQUE INDEX
    C.PRIMARY KEY
    D.非唯一索引 INDEX
    答案:D

    3、在往个表插入记录时,有10条成功,5条失败,数据还没有提交,需要把所有数据回退,选择下面的命令
    A.DELETE
    B.ROLLBACK
    C.UNCOMMIT
    D.TRUNCATE TABLE
    答案:B

    4、下面关于视图说法正确的是
    A.可以创建只读视图.
    B.视图中的select语句可以有ORDER BY
    C.视图中的select语句不能有GROUP BY.
    D.视图中的SELECT语句必须为每列定义别名
    答案:A

    5、已知表T1和T2的字段定义完全相同,T1中有2行不同数据,T2中有3行不同数据,其中T1中2条数据存在于表T2中,语句”select from T1 union select from T2”,返回的行数为
    A.2
    B.3
    C.5
    D.6
    答案:B

    6、以下哪个命令是隐式提交事务的
    A.COMMIT
    B.UPDATE
    C.DELETE
    D.CREATE
    答案:D

    7、在Java中,下面关于构造函数的描述正确的是
    A.类必须有显式构造函数
    B.它的返回类型是void
    C.它和类有相同的名称,但它不能带任何参数
    D.以上描述全不对
    答案:D

    8、下面关于finally子句正确的说法是
    A.finally 子句执行是在出现异常后执行的,若是没有出现异常将不执行
    B.finally 子句一般用来释放资源的,但是不能再次去占用资源
    C.finally 子句中不能再抛出异常
    D.finally 字句无论出现异常已否,都将被执行
    答案:D

    9、下列哪个语句关于内存回收的说明是正确的
    A.程序员必须创建一个线程来释放内存
    B.内存回收程序负责释放无用内存
    C.内存回收程序允许程序员直接释放内存
    D.内存回收程序可以在指定的时间释放内存对象
    答案:B

    10、“导入一个类”表示
    A.这个类成为本地包的一个成员,可以访问它的所有包级、保护级、公开级成员
    B.这个类成为本地包的一个成员,但只能访问它的公开级成员
    C.这个类成为本地包的一个成员,可以访问它的全部成员
    D.这个类依然属于其它包,只能访问它的公开级成员
    答案:D

    11、对字节进行输入操作一般继承与以下的哪个选项是
    A.Reader
    B.Writer
    C.OutputStream
    D.InputStream
    答案:D

    12、声明成员变量时,如果不使用任何访问控制符(public, protected, private),则一下哪种类型的类不能对该成员进行直接访问:
    A.同一个类
    B.同一包中子类
    C.同一个包中的非子类
    D.不同包中的子类
    答案:D

    13、设一组初始关键字序列为(31,65,82,76,13,27,10),则第4趟冒泡排序结束后的结果为
    A.(13,27,10,31,65,76,82)
    B.(10,13,27,31,65,76,82)
    C.(31,13,27,10,65,76,82)
    D.A. (31,27,13, 65, 10,76,82)
    答案:A

    14、关于抽象类叙述正确的是?
    A.抽象类不能实现接口
    B.抽象类必须有”abstract class”修饰
    C.抽象类必须包含抽象方法
    D.抽象类也有类的特性,可以被实例化
    答案:B

    15、方法重写时,子类抛出的异常类型大于等于父类抛出的异常类型
    A.对
    B.错
    答案:B
    答案解析:父类可以捕获子类异常,所以父类必须大

    二、编程题:

    1、编写Java Application 程序,查找出字符串str中字符A,替换成字符B,并统计替换的次数。
    【注】不可以使用Java的内置函数,如index()、replace()等。

    参考答案:

    1. public class Main {
    2. public static void main(String[] args) {
    3. String str = "dsafanfvapdifiaiogfa";
    4. char A = 'a';
    5. char B = 'b';
    6. String s = "";
    7. int count = 0;
    8. for (int i = 0; i < str.length(); i++) {
    9. if (str.charAt(i) == A) {
    10. s = s + B;
    11. count++;
    12. } else {
    13. s = s + str.charAt(i);
    14. }
    15. }
    16. System.out.println("String:" + s);
    17. System.out.println("count:" + count);
    18. }
    19. }

    2、输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
    参考答案:

    1. import java.util.*;
    2. public class Main{
    3. public static void main(String[] arsg){
    4. Scanner s = new Scanner(System.in);
    5. int a = s.nextInt();
    6. StringBuilder sb = new StringBuilder();
    7. int[] used = new int[10];
    8. while(a != 0){
    9. int t = a % 10;
    10. a = a / 10;
    11. if(used[t] != 1){
    12. sb.append(t);
    13. used[t] = 1;
    14. }
    15. }
    16. System.out.println(sb);
    17. }
    18. }