Главная / Программирование /
Программирование на Java / Тест 9
Программирование на Java - тест 9
Упражнение 1:
Номер 1
Сколько ошибок компиляции и ошибок времени выполнения в следующем примере?
int b[] = new int[5];
for (int i = 0; i <= b.length(); i++) {
b[i] = Math.sqrt(i);
}
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) 5 
Номер 2
Сколько ошибок компиляции и ошибок времени выполнения в следующем примере?
int b[] = new int[5];
for (int i = 0; i < b.length(); i++) {
b[i] = Math.sqrt(i);
}
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) 5 
Упражнение 2:
Номер 1
Что нужно подставить вместо знаков подчеркивания, чтобы программа вывела на экран "000"?
public class SomeClass {
public static void main(String[] args) {
____
for (int i = 0; i < b.length; i++) {
System.out.print(b[i]);
}
}
}
Ответ:
 (1) int b[] = new int[]; 
 (2) int b[] = new int[3]; 
 (3) int b[]; 
 (4) int b[3]; 
 (5) int b[] = new int[] {0}; 
Номер 2
Что нужно подставить вместо знаков подчеркивания, чтобы программа вывела на экран "000"?
public class SomeClass {
public static void main(String[] args) {
____
for (int i = 0; i < b.length; i++) {
System.out.print(b[i]);
}
}
}
Ответ:
 (1) int b[3] = new int[] {0,0,0}; 
 (2) int b[] = new int[3] {0,0,0}; 
 (3) int b[] = new int[] {0,0,0}; 
 (4) int b[3] = new int[3] {0,0,0}; 
 (5) int b[] = new {0,0,0}; 
Номер 3
Что нужно подставить вместо знаков подчеркивания, чтобы программа вывела на экран "000"?
public class SomeClass {
public static void main(String[] args) {
____
for (int i = 0; i < b.length; i++) {
System.out.print(b[i]);
}
}
}
Ответ:
 (1) int b[] = new {0,0,0}; 
 (2) int b[3] = [0,0,0]; 
 (3) int b[] = {0,0,0}; 
 (4) int b[] = [0,0,0]; 
Упражнение 3:
Номер 1
Сколько объектов порождается при инициализации массива new int[3][4]?
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) ни одного, так как код не будет скомпилирован 
Номер 2
Сколько объектов порождается при инициализации массива
new int[3][]?
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) ни одного, так как код не будет скомпилирован 
Номер 3
Сколько объектов порождается при инициализации массива
new int[][3]?
Ответ:
 (1) 1 
 (2) 2 
 (3) 3 
 (4) 4 
 (5) ни одного, так как код не будет скомпилирован 
Упражнение 4:
Номер 1
Какое утверждение относительно приведения массивов верно
Ответ:
 (1) любые массивы приводимы, поскольку являются объектами 
 (2) A[] можно привести кB[], если A приводится к B 
 (3) A[] можно привести к B[], если A приводится к B, и A, B – ссылочные типы  
 (4) массивы не преобразовываются 
Номер 2
Какие утверждения относительно приведения массивов верны
Ответ:
 (1) преобразования между типами массивов, основанных на различных примитивных типах, запрещены 
 (2)
A[] можно привести кB[], если A приводится кB, иA,
B – ссылочные типы  
 (3) массивы не преобразовываются 
 (4) A[] можно привести кB[], если A
приводится к B 
Номер 3
Какое утверждение относительно приведения массивов верно?
Ответ:
 (1) многомерные массивы преобразовывать нельзя 
 (2) любые массивы приводимы, поскольку являются объектами 
 (3)
A[] можно привести к B[], если A приводится к B, и A,
B – примитивные типы  
 (4) массивы не преобразовываются 
 (5) ничего из перечисленного 
Упражнение 5:
Номер 1
Какой метод сгенерирует ошибку ArrayStoreException при передаче в него массива v?
public class Vehicle {
public static void main(String[] args) {
Vehicle[] v = new Car[5];
...
}
public void setVehicles(Vehicle c[]) {
c[0] = new Vehicle();
}
public void setVehicles2(Vehicle c[]) {
if (c[0] instanceof Vehicle) {
c[0] = new Vehicle();
}
}
public void setVehicles3(Car c[]) {
if (c[0] instanceof Car) {
c[0] = new Car();
}
}
}
class Car extends Vehicle{}
Ответ:
 (1) setVehicles 
 (2) setVehicles2 
 (3) setVehicles3 
Номер 2
Какой метод сгенерирует ошибку ArrayStoreException при передаче в него массива v?
public class Vehicle {
public static void main(String[] args) {
Vehicle[] v = new Car[] { new Car()};
...
}
public void setVehicles(Vehicle c[]) {
c[0] = new Vehicle();
}
public void setVehicles2(Vehicle c[]) {
if (c[0] instanceof Car) {
c[0] = new Vehicle();
}
}
public void setVehicles3(Vehicle c[]) {
if (c[0] instanceof Vehicle) {
c[0] = new Car();
}
}
}
class Car extends Vehicle{}
Ответ:
 (1) setVehicles 
 (2) setVehicles2 
 (3) setVehicles3 
 (4) setVehicles и setVehicles3 
 (5) setVehicles и setVehicles2 
Номер 3
Какой метод сгенерирует ошибку ArrayStoreException при передаче в него массива v?
public class Vehicle {
public static void main(String[] args) {
Vehicle[] v = new Car[] { new Car()};
...
}
public void setVehicles(Vehicle c[]) {
c[0] = new Vehicle();
}
public void setVehicles2(Vehicle c[]) {
if (c[0] instanceof Vehicle) {
c[0] = new Car();
}
}
public void setVehicles3(Vehicle c[]) {
if (c[0] instanceof Car) {
c[0] = new Vehicle();
}
}
}
class Car extends Vehicle{}
Ответ:
 (1) setVehicles 
 (2) setVehicles2 
 (3) setVehicles3 
 (4) setVehicles и setVehicles3 
 (5) setVehicles и setVehicles2 
Упражнение 6:
Номер 1
От какого класса наследуются классы массивов?
Ответ:
 (1) особый класс для массивов 
 (2) Object 
 (3) одномерные массивы – отObject, двумерные – от одномерных и т.д. 
 (4) ни от какого 
Номер 2
От какого класса наследуются классы двумерных массивов?
Ответ:
 (1) особый класс для массивов 
 (2) Object 
 (3) от классов одномерных массивов 
 (4) ни от какого 
Номер 3
Может ли массив основываться на абстрактных классах? Интерфейсах?
Ответ:
 (1) да, да 
 (2) да, нет 
 (3) нет, да 
 (4) нет, нет 
Упражнение 7:
Номер 1
Какие утверждения относительно клонирования верны?
Ответ:
 (1) выражение x == x.clone() должно быть истинным 
 (2) выражение x.clone().getClass() == x.getClass() может быть ложным 
 (3) выражение x.equals(x.clone()) должно быть истинным 
 (4) для того, чтобы иметь возможность вызвать метод Clone() у объекта, класс объекта должен реализовать интерфейс IsCloneable 
 (5) попытка вызова new Object().clone() не приведет к ошибке 
Номер 2
Какие утверждения относительно клонирования верны?
Ответ:
 (1) для того, чтобы иметь возможность вызвать метод Clone() у объекта, класс объекта должен реализовать интерфейс Cloneable 
 (2) массивы не реализуют интерфейс Cloneable 
 (3) выражение x == x.clone() может быть ложным 
 (4) возможна ситуация, когда объект нельзя клонировать, дабы не нарушить целостность системы 
 (5) выражение x.clone().getClass() == x.getClass() может быть ложным 
Номер 3
Какие утверждения относительно клонирования верны?
Ответ:
 (1) выражение x.clone().getClass() == x.getClass() должно быть истинным 
 (2) выражение x == x.clone() должно быть ложным 
 (3) попытка вызова new Object().clone() не приведет к ошибке 
 (4) попытка вызова new Object().clone() приведет к ошибке 
Упражнение 8:
Номер 1
Что будет выведено на экран в результате выполнения следующего кода:
public class SomeClass {
public static void main(String[] args) {
int a[] = {1, 2, 3};
int b[] = (int[]) a.clone();
a[0] = 0;
System.out.print(b[0]);
System.out.print(b[1]);
System.out.print(b[2]);
}
}
Ответ:
 (1) 023 
 (2) 123 
 (3) сообщение об ошибке компиляции 
 (4) сообщение об ошибке времени исполнения 
Номер 2
Что будет выведено на экран в результате выполнения следующего кода:
public class SomeClass {
public static void main(String[] args) {
int a[][] = {{1, 2}, {3}};
int b[][] = (int[][]) a.clone();
a[0] = new int[]{0};
System.out.println(b[0][0]);
}
}
Ответ:
 (1) 0 
 (2) 0, 2 
 (3) 1 
 (4) 1, 2 
 (5) сообщение об ошибке времени исполнения 
Номер 3
Что будет выведено на экран в результате выполнения следующего кода: public class SomeClass {
public static void main(String[] args) {
int a[] = {1, 2, 3};
int b[] = (int[]) a.clone();
a[0] = 0;
System.out.print(b[0]);
}
}
Ответ:
 (1) 0 
 (2) 0, 2 
 (3) 1 
 (4) 1, 2 
 (5) сообщение об ошибке времени исполнения