Главная / Программирование /
Программирование на 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) сообщение об ошибке времени исполнения