Java编程

牛客网java练习7

image.png2.有如下一段程序:public class Test{private static int i=1;public int getNext(){return i++;}public static void main(String [] args){Test test=new Test();Test testObject=new Test();test.getNext();testObject.getNext();System.out.println(testObject.getNext());}}请问最后打印出来的是什么?()A 2B 3C 4D 5。

牛客网java练习7

CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hire_date` date NOT NULL,PRIMARY KEY (`emp_no`));CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));分析:本题涉及两个表,employees和salaries。首先由emp_no连接两个表,入职时候的薪水情况即e.hire_date = s.from_date,按照emp_no进行逆序即order by e.emp_no desc;。

CREATE TABLE `dept_manager` (`dept_no` char(4) NOT NULL,`emp_no` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));分析:先用INNER JOIN连接两张表,限制条件是两张表的emp_no相同,即d.emp_no = s.emp_no,并且将salaries用别名s代替,dept_manager用别名d代替,再加上限制条件to_date=’9999-01-01’*即可。

最后输出什么? public void test() {int a = 10;System.out.println(a++ + a–);}A 19。

0 8、 5 9、 34 10、 56 二、判断题 1、 错 2、对 3、错 4、对 5、错 三、选择题 1、 AD 2、AD 3、C 4、ABCD 5、C 6 、A 7、AC 8、 A 9、B 10、A 四、程序分析题 1、 编译不通过。int 值 4 和 b 相加时,由于变量 b 的类型为 byte,取值范围没有 int 类型大, 存不下 int 类型的值,因此编译不通过。 2、 编译不通过。这是因为 y 是在最里层的代码块中定义的一个变量,只有在那个代码块 中才可使用, 在使用 y = x;语句时已经超过了 y 变量的作用域,所以编译无法通过。 3、 打印结果为:3。 4、 打印结果为: 9 8 7 五、问答题 1、Java 语言的八种基本数据类型有:byte 字节型,占一个字节。short 短整型,占两个字节。int 整型, 占 4 个字 节。long 长整型,占 8 个字节。float 单精度浮点型,占 4 个字节。double 双精度浮点型, 占 8 个字节。char 字符型,占两个 字节。boolean 型,表示逻辑值,有 true 和 false 两个值,分别占 一个字节。 2、如果使用“&”在表达式之间进行连接,那么无论 任何情况, “&”两边的表达式都会参与计算。 如果使用“&&”进行连接,当“&&”左边的表达式为 false,则不会执行其右边的表达式。 例如 定义 int x = 2,y = 0; boolean b = x < y & x / 2 > 0 表达是会发生被 0 除异常, 因为 x / y 的表达式执行 了。而 boolean b = x < y & x / 2 > 0 是不会出现这种异常的,因为 x < y 为 false,表达式 x / y 不会 执行。 3、方法重载指的是在一个类中可以声明多 个同名的方法, 而方法中参数的个数或者数据类型不一致。 调用这些同名的方法时, JVM 会根据实际参数的不同绑定到不同的方法。 六、编程题 1、参考答案 public class Test01 { public static void main(String[] args) { int sum = 0; for (int i = 1; i < 100; i++) { if (i % 2 != 0) sum += i; } System.out.println(sum); } } 2、参考答案 public class Test02 { public static void main(String args[]) { int y = function(0); System.out.println(y); } public static int function(int x) { int y; if (x > 0) { y = x + 3; } else if (x == 0) { y = 0; } else { y = x * x – 1; } return y; } } 3、参考答案 public class Test03 { public static void main(String[] args) { int[] arr = { 25, 24, 12, 76, 101, 96, 28 }; for (int i = 0; i < arr.length - 1; i++) { // 定义内层循环 for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 比较相邻元素 // 下面的三行代码用于交换两个元素 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); // 打印元素和空 格 }}} 第 3 章 面向对象(上)一、填空题 1、封装、继承、多态 2、new 3、成员变量、局部变量 4、类、类 5、this 6、finalize() 7、静态变量 8、内部类 9、javadoc 10、private 二、判断题 1、对 2、对 3、错 4、对 5、错 三、选择题 1、B 2、D 3、B 4、ABC 5、 ABCD 6、 ACD 7、 ABCD 8、 ABCD 9、 D 10、 D 四、 程序分析题 1、 程序不能编译通过, 因为在类 A 中的成员变量 secret 用 private 修饰,所以在类 Test1 中无法访问。 2、程序不能编译通过,因为在静态方法 method()中不能访问非静态成员变量 x。 3、程序能 够编译通过,运行的结果为“inner” 。 五、简答题 1、构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方 法只有在使用的时 候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声 明、在方法中不 能使用 return 语句返回一个值 2、单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。 六、编程题 1、参考答案 class Student { private String name; private double grade; public Student() { } public Student(String name, double grade) { this.name = name; this.grade = grade; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getGrade() { return grade; } public void setGrade(double grade) { this.grade = grade; } } public class Test01 { public static void main(String[] args) { Student stu1 = new Student(); stu1.setName("zhangsan"); stu1.setGrade(99); Student stu2 = new Student("lisi" 100); } } 2、参考答案 class Father { private String name = "zhangjun"; class Child { public void introFather() { System.out.println("My Father's name is " + name); } } } public class Test02 { public static void main(String[] args) { Father.Child child = new Father().new Child(); child.introFather(); } } 第 4 章 面向对象(下) 一、填空题 1、继承 2、方法,抽象类 3、import 4、子类、父类、基类 5、Exception 6、final 7、super 8、 Object 9、try、catch 10、 jar –cvf,java –jar 二、判断题 1、错 2、对 3、错 4、对 5、对 三、选择题 1、B 2、C 3、ABC 4、 ABCD 5、C 6、AC 7、C 8、 D 9、A 10、B 四、程序分析题 1、程序编译能通过,这是因为 int x = 2 / 0; System.out.println(x);这两条语句使用了 try 块,捕获了 程序 因为除以 0 而产生的异常情况, 之后程序会继续向下执行, 输出 “进入 catch 代码块” , “进入 finally 代码块” 。 2、程序 编译不通过, 这是因为在程序中使用了 final 关键字修饰 Animal 类, 使得 Animal 类不能被继 承。 shout()方法中同样使用了 final 关 键字,使得该方法不能被重写。 3、程序编译能通过,输出结果为“动物叫! ”和“汪汪……” ,因为在程序中调用 shout()方法时,首先 会通过 super.shout()调用父类 的方法说出“动物叫! ”之后再输出“汪汪……” 4、程序编译不通过,因为接口中定义的方法不能有方法体,所以定义的 eat()方法是错 误的。接口中 的方法必须在子类中全部实现,由于 run()方法在子类中并没有重新实现,所以这也是错误的。 五、简答题 1、在继 承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子 类的该方法重写(覆盖)父类的方法。 2、 多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的 属性和方法。简单的说,多态就是使 用父类类型的变量引用子类对象,根据被引用子类对象的特 性,程序会得到不同的运行效果。 3、在 Java 中,使用 abstract 关键 字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一 个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象 类通常用于表示一种抽象的概念。 接口可以说是一种特殊的抽象类。

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注