Download - Grile Java

Transcript

Test 1 1) Este limbajul JAVA dependent la platforma? a. da, pt ca va crea o masina virtuala JAVA care are drept scop traducerea instructiunilor unui byte code in instructiuni masina pentru sistemul de operare curent; b. nu, pentru ca este imposibil ca acelasi program JAVA sa fie executat pe diferite sisteme de operare fara sa fie modificat 2) Cum putem initializa pointerii in JAVA? a. folosind operatorul de adresa & b. folosind operatorul de diferentiere * c. nu exista pointeri in java 3) Ce tipuri de aplicatii JAVA exista? a. aplicatii de sine statatoare b. baze de date c. aplicatii care se executa pe server sau client d. clienturi 4) Cum se poate executa appletul intitulat UnApplet.class? a. folosind comanda java UnApplet b. utilizand comanda appletviewer si un fisier HTML, care contine un tag de forma c. utilizand comanda javac; 5) Cu ce comanda putem dezasambla un cod binary JAVA? a. java p b. javac c. javap d. rmic Test 2 1) Fie urmatoarea secventa de cod JAVA: float a=2; float b=1.3; Care afirmatie este adevarata? a. Instructiunile 1 si 2 sunt corecte. b. Instructiunea 1 este corecta, instructiunea 2 este incorecta. c. Instructiunile 1 si 2 sunt incorecte.

1

2) Fie urmatoarea declaratie JAVA: public private int h; Care afirmatie este adevarata? a. variabila h va fi accesata in mod public, deoarece se ia in considerare primul modificator de acces; b. Variabila h va fi accesata in mod private, deoarece se ia in considerare ultimul modificator de acces; c. Va fi o eroare la compilare, deoarece o variabila nu poate fi in acceasi timp accesata public si private; 3) Fie urmatorul program JAVA: int x=0; if (Double.isInfinite(2/x) ) system.out.println(Infinit); else System.out.println(2/0); Ce puteti spune despre aceasta? a. eroare la compilare din cauza impartirii la 0; b. Eroare la executia din cauza impartirii la 0(se arunca o exceptie Arithmetic Exception) c. Programul este correct si va afisa infinit; d. Programul este correct si va afisa NaN. 4) La ce valoare se va evalua urmatoarea expresie? 2f 1; System.out.println (b); Ce se poate spune despre acesta? a) Eroare la compilare. b) Eroare la executie. c) Subprogramul se compileaza si la executie afiseaza -3. d) Subprogramul se compileaza si la executie afiseaza -4. 13) Fie urmatorul subprogram Java:

4

byte b = 7 >>> 1; System.out.println (b); Ce se poate spune despre acesta? a) Eroare la compilare. b) Eroare la executie. c) Subprogramul se compileaza si la executie afiseaza 3. d) Subprogramul se compileaza si la executie afiseaza -3. 14) Fie urmatorul program Java: public class Program { static int x = 6; public static void main(String[] args) { System.out.print("x = " + x); int x = (x = 3) * x; System.out.print(", x = " + x) ; } Ce se poate spune despre acesta? a) Eroare la compilare: variabila x este declarata de doua ori. b) Programul se compileaza si la executie afiseaza x = 6, x = 3. c) Programul se compileaza si la executie afiseaza x = 6, x = 9. d) Programul se compileaza si la execute afiseaza x = 6, x = 18 15) Fie urmatorul program Java: public class Program ( public static void main(String[] args) { float min = Float.NEGATIVE_INFINITY; float max = Float.POSITIVE INFINITY; System.out .println ( (int.) (char) min + " " + (int) (char) max); Ce se poate spune despre acesta? a) Eroare la compilare: conversii imposibile. b) Programul se compileaza si la executie afiseaza 0 255. c) Programul se compileaza si la executie afiseaza 0 65535. d) Programul se compileaza si la executie afiseaza 0 -1.

16) Fie urmatorul subprogram Java:

5

int a = 3; if (++a < 4) System.out.printIn (a); else System.out.println(a); Ce se poate spune despre acesta? a) Eroare la compilare. b) Subprogramul se compileaza si la executie afiseaza 4. c) Subprogramul se compileaza si la executie afiseaza 5. d) Subprogramul se compileaza si la executie nu afiseaza nimic. 17) Fie urmatorul program Java:public class Program1 { static void f (int k) { switch (k) { default : System.out .print (" i "); break ; case 1 : System.out .print (" 1 "); break ; case 2 : case 3 : System.out.print("23 "); break ; case 4 : case 5: System.out.print(" 45 "); } } public static void main(String[] args) { for (int i = 0; i < 6; i++) f(i); } }

Ce se poate spune despre acesta? a) Eroare la compilare. b) Programul se compileaza si la executie afiseaza i 1 23 23 45 45. c) Programul se compileaza si la executie afiseaza i 1 23 45. d) Programul se compileaza si la executie afiseaza i 1 23 23 45 45 i.

18) Fie urmatorul subprogram Java:

6

int i = 1, suma = 0; for ( ; ; ) { suma += i++; if (i > 5) break ; } System.out.print( suma ); Ce se poate spune despre acesta? a) Eroare la compilare: lipsesc partile componente ale lui for. b) Subprogramul se compileaza si la executie afiseaza 0. c) Subprogramul se compileaza si la executie afiseaza 10. d) Subprogramul se compileaza si la executie afiseaza 15. 19) Fie urmatorul program Java: public class Program { public static void main(String args[]) { int v[] = {2, 4, -2, 8, -2}, i = 0, suma = 0; for (i = 0; i < 10; ++i) { if (v[i] < 0) continue; suma += v[i];} System.out.println("suma = " + suma);}} Ce se poate spune despre acesta? a) Eroare la compilare. b) Programul se compileaza si la executie afiseaza 0. c) Programul se compileaza si la executie afiseaza 14. d) Programul se compileaza si la execute afiseaza -4. Nici una + arunca exceptie 20) Fie urmatorul program Java: public class Subiecte { public static void main(String args[]) { float f = 4.50; System.out.println( f) ; } } Ce se poate spune despre acesta? a) Eroare la compilare: nu se poate converti implicit 4.50 la float. b) Programul se compileaza si la executie afiseaza 4.5. c) Programul se compileaza si la executie afiseaza 4.50. d) Programul se compileaza si la executie afiseaza 4.5000000. Test 3

7

1) Fie urmatorul program Java: class CI { int x = 1; C1 (){ System.out.print("x = " + x);}} class C2 extends CI { int y = 3; C2 ( int y ) this.y = y; }} public class Test { public static void main(String[] args) { C2 obiect = new C2(); System.out.println ( y = + obiect.y); } } Ce puteti spune despre acesta? a) Eroare la compilare: nu exista constructor fara argumente. b) Programul este corect si la executie va afisa: y = 3. c) Programul este corect si la executie va afisa: x = 1 y = 3. 2) Fie urmatorul program Java: class C0 { int x = 1; }class C1 { int y = 2;} class C2 extends C0, C1 { int z = 3;} public class TestDoi { ' public static void main(String[] args) { C2 obiect = new C2(); System.out.println(obiect.x + obiect.y + obiect.z);}} Ce puteti spune despre acesta? a) Eroare la compilare: clasa C2 nu poate fi derivata direct din doua clase. b) Eroare la compilare: clasa C2 nu are constructor fara argumente. c) Programul este corect si la executie va afisa: 6. 3) Fie urmatorul program Java: class x { j private int x = 1; void x() ( System.out.print(x + " ");}} class y extends x { private int x = 2; void x() ( super.x(); System.out.print(x); }} public class TestAtribute {

8

public static void main(String[] args) { y obiect = new y(); obiect.x() ;}} Ce puteti spune despre acesta? a) Eroare la compilare: nu se pot defini un atribut si o metoda cu acelasi nume (x). b) Eroare la compilare: nu se poate defini un atribut cu numele clasei (x). c) Eroare la compilare: nu se poate defini un atribut cu acelafi nume intr-o clasa derivata (x). d) Programul este corect si la executie va afisa: 1 2. 4) Ce se va afisa la executia urmatorului program? public class TestStatic { public static void main(String args []) { Exemplu a = new Exemplu( ); Exemplu b = new Exemplu ( ); System.out.print("a.x = "+a .x); a .x = 100; b.x =200; System.out.print (" a .x = " + a .x); }} class Exemplu { static int x = 0; Exemplu ( ) (x+ + ; ) ; } a) a.x = 2 a .x = 200 b) a .x = 0 a .x = 100 c) a .x = 1 a .x = 100 d) a .x = 1 a .x = 101 e) a .x = 2 a .x = 100 5) Ce puteti spune despre urmatorul program? public class Test { int i = 3, j=4; public static void main(String [] arg) ( System.out.println(i ++ + ++ j); }} a)Va aparea eroare la compilare, deoarece parametrul metodei main () trebuie sa fie String args []. b)Va aparea eroare la compilare, deoarece nu s-au inserat paranteze intre operatorii ++, adica (i++) si (++j) . c)Va aparea eroare la compilare, deoarece din functia statica main () nu putem accesa variabilele nestatice i si j. d)La executie se va afisa 8. e)La executie se va afisa 9. 6) Ce puteti afirma despre urmatorul program? interface II { float x = 2.3f; } public class Test implements II { public static void main(String[] args) { System.out.print(x + " "); x=6.7f;

9

System.out.printIn (x); } } a) Va aparea eroare la compilare, deoarece valoarea variabilei x nu se mai poate modifica b) La executie se va afisa 2.3f 6.7f c) La executie se va afisa 2.3f 2.3 f. d) La executie se va afisa 2.3 6.7 e) La executie se va afisa 2.3 2.3. 7) Ce puteti spune despre urmatorul program Java? interface I1 { int x = 2; } interface I2 extends I1 { int y = 3; } class C1 { int y = 4; } public class C3 extends C1 implements 12 { public static void main(String args[]) { System.out.println("x = " + x + ", y =" + y) ;} ) a) Va aparea eroare la compilare, deoarece atributul y este ambiguu pentru C1 si I2. b) La executie se va afisa x = 2, y = 3. c) La executie se va afisa x = 2, y = 4. 8) Ce puteti afirma despre urmatorul program Java? class CI { public String f() { return this.getClass().getName(); } } abstract class C2 extends C1 { int x = 2; public abstract String f(); } class C3 extends C2 { int y = 3; public String f() { return super.f () + ", x = " + x + ", y = " + y; }} public class TestAbstract { public static void main(String args[]) { C3 obiect = new C3(); System.out.println(obiect.f());}} a) Programul este corect si va afisa la executie: C3, x = 2, y = 3. b) Programul este corect si va afisa la executie: C1, x = 2, y = 3. c) Va aparea eroare la compilare, deoarece in clasa C2 s-a suprascris metoda f () ne-abstracta cu o metoda abstracta. d) Va aparea eroare la compilare, deoarece apelul super. f () din clasa C3 se refera la o metoda abstracta. e) Va aparea eroare la executie, deoarece se intra intr-o recursie infinita in metoda f () din clasa C3.' 9). Ce modificare trebuie facuta urmatorului program Java pentru a fi corect? abstract class C1 { int x = 2; public final abstract String f();} final class C2 extends C1 { int y = 3; public String f(){ return "x = " + x + ", y = " + y; public class TestFinal { public static void main (String args[]){

10

C2 obiect = new C2 (); System.out.println(obiect. f() ) ; a) Trebuie sters cuvantul final din definitia metodei f () a clasei C1 b) Trebuie sters cuvantul final din definitia clasei C2; c) Trebuie sters cuvantul abstract din definitia clasei C1. d) Trebuie stearsa initializarea atributului x din declaratia int x = 2; a clasei C1. e) Programul este corect si la executie va afisa x = 2, y = 3. 10) Ce puteti spune despre urmatorul program Java? class C1 { int x = 1; void f(int x){this.x = x;} int getX_Cl() { return x; } } class C2 extends C1 ( float x = 5. 0f; int f( int x) { super.f ((int)x) ; } float getX_C2() { return x; } } public class SuprascriereSiAscundere { public static void main(String args[]) { C2 obiect = new C2 (); obiect.f(4); System.out.print(obiect.getX_C2() + " "); System.out.println(obiect.getX_Cl() ) ; } } a) Programul este corect si va afisa la executie: 5.0 4. b) Programul este corect si va afisa la executie: 5 4. c) Programul este corect si va afisa la executie: 4.0 4. d) Va aparea eroare la compilare, deoarece in clasa C2 s-a suprascris gresit atributul x din clasa C1. e) Va aparea eroare la compilare, deoarece metoda suprascrisa f () din clasa C2 intoarce un tip difent de void. 11). Ce puteti afirma despre urmatorul program Java? class C1 { static String f() { return "Mesajul Unu din C1"; } String g() { return "Mesajul Doi din C1"; }} class C2 extends C1 { static String f() ( return "Mesajul Unu din C2"; } String g() { return "Mesajul Doi din C2"; } public class Test { public static void main (String [ ] args) { C1 obiect = new C2(); System.out.println(obiect.f() + ", " + obiect.g()); a) Programul este corect si va afisa la executie: Mesajul Unu din C1, Mesajul Doi din C1. b) Programul este corect si va afisa la executie: Mesajul Unu din CI, Mesajul Doi dinC2. c) Programul este corect si va afisa la executie: Mesajul Unu din C2, Mesajul Doi din C1. d) Programul este corect si va afisa la executie: Mesajul Unu din C2, Mesajul Doi din C2. e) Va aparea eroare la compilare, deoarece in clasa Test variabila obiect nu apartine clasei C2. 12) Ce puteti spune despre urmatorul program Java?

11

class C1 { double x = 5. 0f; void f( int x ) { f((double) x + 2);} void f (double x ) { this.x = x; }} public class Supraincarcare { public static void main(String args[]) { C1 obiect = new Cl(); obiect.f ( 4.0) ; System.out.println ( obiect . x) ; }} public class Supraincarcare { a) Programul este corect si va afisa la executie: 4.0. b) Programul este corect si va afisa la executie: 5.0. c) Programul este corect si va afisa la executie: 6.0. d) Va aparea eroare la compilare, deoarece exista ambiguitate in alegerea metodei f() e) Va aparea eroare la executie, deoarece metoda f (int) intra intr-o recursie infinita. 13) . Cercetati corectitudinea urmatorului program Java: class CI { static int f{) { return j; } static int i = f(); static int j = 1; public class TestStatic ( public static void main(String[] args) ( System.out.println (C1.i);}} a) Programul este corect si va afisa la executie: 0. b) Programul este corect si va afisa la executie: 1. c) Va aparea eroare la compilare, deoarece nu exista nici un obiect declarat al clasei C1. d) Va aparea eroare la compilare, deoarece membrii clasei C1 nu sunt intr-o ordine corecta. e) Va aparea eroare la compilare, deoarece s-a omis declararea clasei Cl ca fiind static. 14) Ce puteti afirma despre urmatorul program Java (liniile sunt numerotate)? public class SubiectLicentaDoi { static int x = 10; static { x +=> 5; } public static void main(String args[]) { System.out.println("x = " + x) ; } static { x /= 5; } } a) Liniile 3 si 7 nu se vor compila, deoarece lipsesc numele metodelor si tipurile returnate. b) Linia 7 nu se va compila, deoarece poate exista doar un initializator static. c) Codul se compileaza si executia produce iesirea x = 10. d) Codul se compileaza si executia produce iesirea x = 15. e) Codul se compileaza si executia produce iesirea x = 3. 15) Ce se va afisa la execupa urmatorului program Java? public class SupracriereSupraincarcare extends Baza..{ public void functie ( int j) {System.out.print(" j = " + j);}

12

public void functie ( String s) {System.out.print (" s = " + s) ; } public static void main(String args[]) { baza b1 = new Baza(); baza b2 = new SupracriereSupraincarcare{); b1.functie(5) ; b2.functie(6) ; }} class Baza { public void functie (int i) {System.out.print(" i = " + i);}} a) i = 5 i = 6. b) j = 5 j = 6. c) i = 5 j = 6. d) s = 5 s = 6. e) Eroare la compilare, deoarece definitia clasei Baza apare dupa definitia clasei SupracriereSupraincarcare. f) Eroare la compilare, deoarece lipseste cuvantul virtual din metoda f u n c t i e () a clasei Baza. 16) Ce puteti spune despre urmatorul program Java? class Cl { static int x = 1; int y = 2; static Cl() { x = 4; } CKint y) { this . y = y + 1; } public class Test { [ public static void main(String args[]) { j System.out.print(Cl.x + " "); Cl obiect = new Cl(5); System.out.println(obiect.y) ; } a) Programul este corect si va afisa la execupe: 1 6. b) Programul este corect si va afisa la execupe: 4 6. c) Programul este corect si va afisa la execupe: 1 2. d) Programul este corect si va afisa la execupe: 4 2. e) Va aparea eroare la compilare, deoarece s-a declarat unul din constructorii clasei Cl ca fiind static. 17) Ce puteti afirma despre urmatorul program Java? class Cl { int x = 1; Cl ( int x){ this.x = x; }} class C2 extends Cl { int y = 3; C2 (int x) { this ( x , y) ;} C2(int x, int y) { super(x); this.y = y ;} public String toString{}{ return " x = " + x + ", y = " + y; }} public class Test { public static void main(String args[]) { C2 obiectUnu = new C2(4); C2 obiectDoi = new C2{5, 6); System.out.print(obiectUnu + " "); System.out.println(obiectDoi); } } a) Programul este corect si va afisa la executie: x =-4, y = 3, x = 5, y = 6.

13

b) Programul este corect si va afisa la executie: x = 1, y = 3, x = 5, y = 6. c) Programul este corect si va afisa la executie: x = l, y = 3, x = 1, y = 6. d) Programul este corect si va afisa la execujie: x = l, y = 3, x = l, y = 3. e) Va aparea eroare la compilare, deoarece primul constructor al clasei C2 contine un apel explicit in care al doilea parametru este o variabila instant. 18). Indicati daca programul urmator este corect si ceea ce se va afisa la executia acestuia: class C1 { int x = 1; C1(int x) { this.x = x ;}} class C2 extends Cl { int y = 2; public String toString () { return "x = " + x + ", y = " + y; } } public class Test { public static void main(String args[]) { C2 obiectOnu = new C2(); C2 obiectDoi = new C2(3); System.out.print(obiectOnu) ; System.out.print(obiectDoi); }} a) Programul este corect si va afisa la executie : x = 1, y = 2 x = 1, y = 2. b) Programul este corect si va afisa la executie : x = l, y = 2 x = 3, y = 2. c) Programul este corect si va afisa la executie : x = 1, y = 3 x = 1, y = 3. d) Programul este corect si va afisa la executie : x = 1, y = 3 x = 3, y = 2. e) Va aparea eroare la compilare, deoarece clasa Cl nu are constructor fara parametri. 19) Stabiliti daca programul urmator este corect sau nu: interface I1 { int j = 3; int [] i = {j + 1, j + 2); } interface I2 { int j = 5 ; int []i={j+2,j+4};} public class Test implements I1, I2 { public static void main (String[] args) { System.out.print( I1.j + " "); System.out.print(I2.i[1] + " "); } System.out.print(I1.i[0]);}}

a) Programul este corect si va afisa la executie: 3 9 4. b) Va aparea eroare la compilare, deoarece interfetele I1 si I2 contin declaratiile acelorasi atribute. c) Va aparea eroare la compilare, deoarece in interfetele I1 si I2 atributul i contine referinta la atributul j. d) Va aparea eroare la compilare, deoarece interfetele I1 si I2 contin declaratiile unui atribut de tip tablou. e) Va aparea eroare la compilare, deoarece atributele interfetelor I1 si I2 nu se pot accesa dintr-o metoda statica. 20) Ce puteti spune despre corectitudinea urmatorului program Java? interface I0 { int x; } interface I1 extends I0 { int [] y ={ x + l, x+2};} interface I2 extends I0 { int [] y = {x + 3, x + 4 );} interface I3 extends I1, I2 { int z = I1.y[0], t = I2.y[l]} public class TestAtribute implements I3{ public static void main(String[] args){ I0.x = 3; System.out.print (x + " "); System.out.print(z + " "); System.out .print ( t ) ;}}

14

a) Programul este corect si va afisa la executie: 3 4 7. b) Va aparea eroare la compilare, deoarece interfetele I1 si I2 contin declaratile acelorasi atribute. c) Va aparea eroare la compilare, deoarece in interfata I0 atributul x nu este initializat. d) Va aparea eroare la compilare, deoarece interfata I3 acceseaza un atribut ambiguu. e) Va aparea eroare la compilare, deoarece atributele interfetelor I0 si I3 nu se pot accesa dintr-o metoda statica 21) Ce puteti afirma despre urmatorul program Java? class ExceptiaNoastraUnu extends Exception { ExceptiaNoastraUnu() ( super(); } } class ExceptiaNoastraDoi extends Exception { ExceptiaNoastraDoi() { super(); } } interface I1 { int f (int x) throws ExceptiaNoastraUnu, ExceptiaNoastraDoi; interface I2 extends I1 { int f(int x) throws ExceptiaNoastraDoi; } class C1 implements I1 { public int f(int x) throws ExceptiaNoastraUnu, ExceptiaNoastraDoi { if (x < 0) throw new ExceptiaNoastraUnu() ; return x; } public int f (int x) throws ExceptiaNoastraDoi { if (x < 0) throw new ExceptiaNoastraDoi!); return x; } } public class TestSuprascriereMetode { public static void main(String[] args) { CI obiect = new CIO; try { System.out.print(obiect.f (2) + " "); System.out.print (obiect.f (-2)); } catch (ExceptiaNoastraUnu e) { System.out.print("A aparut o exceptie: " + e); } catch (ExceptiaNoastraDoi e) { System.out.print("A aparut o exceptie: " + e); }}} a) Programul este corect si va afisa la executie: 2 A aparut o exceptie: ExceptiaNoastraUnu. b) Programul este corect si va afisa la executie: 2 A aparut o exceptie: ExceptiaNoastraDoi. c) Va aparea eroare la compilare, deoarece metoda f () din interfata I2 intra in contradictie cu metoda f () din I1. d) Va aparea eroare la compilare, deoarece interfetele I1 si I2 nu contin atributul x. e) Va aparea eroare la compilare, deoarece in clasa C1 nu se poate implementa metoda f () din interfata I1. 22) Selectati varianta corecta referitoare la corectitudinea programului Java de mai jos: interface I1 { int f( int x); } interface I2 extends I1 { float f (float x); double f (double x); class C1 implements I2 { public int f (int x) { return x; }} public float f (float x) { return x; } public double f (double x) ( return x; ) }

15

public class TestSupraincarcareMetode { public static void main(String[] args) { C1 obiect = new C1 (); System.out.print (obiect.f(2) + " "); System.out.print(obiect.f (4.5) + " "); Systerm.out.print(obiect.f (2 . 5f) ) ;}} a) Programul este corect si va afisa la executie: 2 4.5 2.5. b) Programul este corect si va afisa la executie: 2 4 . 5 2 . 5f. c) Va aparea eroare la compilare, deoarece metodele f () din interfata I2 intra in contradictie cu metoda f () din I1. d) Va aparea eroare la compilare, deoarece metodele f () din interfata I2 intra in contradictie intre ele. e) Va aparea eroare la compilare, deoarece metodele f () din interfetele I1 si I2 nu sunt declarate public. 23) Cercetati corectitudinea urmatorului program: public class Test { public static void main(String args[]) { C1 obiect = new Cl(); obiect .f (4, 3) 0}} ; class C1 { public void f (int xx, final int yy) ( int a = xx + yy; final int b = xx - yy; class C2 { , . public void g() { System.out.print("a = " + a); System.out.print(", b = " + b); } } C2 obiectDoi = new C2(); obiectDoi .g () ; } }} a) Programul este corect si va afisa la executie: a = 7, b = 1. b) Programul este corect si va afisa la executie: a = 4, b = 3. c) Va aparea eroare la compilare, deoarece din metoda g () nu putem accesa variabila locala a din metoda f (). d) Va aparea eroare la compilare, deoarece clasa C2 nu poate fi definita in metoda f () din clasa C1. e) Va aparea eroare la compilare, deoarece nu se creeaza in clasa Test un obiect de tip C1.C2. 24) Verificati corectitudinea urmatorului program Java: public class Exemplu { int vl[] = (0), v2[] = (1); public static void main (String args[]) { int vl[] = (2), v2[] = {3}; System.out.print(vl[0] + " " + v2[0] + " "); f (vl, v2); System.out.println (vl [0] + " " + v2 [0]); } public static void f (int vl[], int v2[]) { int w[ ] = {4}; vl = w; v2[0] = w[0]; System.out.print(vl [0] + " " + v2[0] + " "); a) Programul este corect si va afisa la executie: 0 1 4 4 0 1. b) Programul este corect si va afisa la executie: 2 3 4 4 0 1. c) Programul este corect si va afisa la executie: 2 3 4 4 2 4. d) Programul este corect si va afisa la executie: 2 3 4 4 4 4. e) Va aparea eroare la compilare, deoarece atributele vl si v2 sunt redefinite ca variabile locale in metoda main {} 25) Ce puteti spune despre urmatorul program Java (liniile sunt numerotate)? class CI { int x = 1; }

16

class C2 extends C1 { int y = 2; } public class TestCompilare { public static void main(String[] args) { C1 obiectUnu = new Cl(); System.out.print(obiectUnu.x + " "); obiectUnu = new C2(); System.out.print(obiectUnu.x + " "); C2 obiectDoi = (C2) obiectUnu; System.out.print(obiectDoi.x + " "); }} a) Programul este corect si va afisa la executie: 1 1 1 . b) Va aparea eroare la compilare la linia 7, deoarece obiectUnu este deja definit la linia 5. c) Va aparea eroare la compilare la linia 9, deoarece obiectUnu este de tip C1 definit la linia 5. d) Vor aparea erori de compilare la liniile 5, 7 si 9, deoarece intr-o metoda statica nu putem crea variabile obiect. e) Va aparea eroare la executie, aruncand exceptia ClassCastException. 26) Stabiliti care ifirmatii sunt adevarate pentru programul Java din cele de mai jos (liniile sunt numerotate): public class TestTablouri { public static void main(String[] args) { int[] a = (2, 6); Object b = a; . System.out.print(b[0] + " "); byte[] c = new byte[2]; c = a; System.out.print (c[l] + " ") ; }} a) Programul este corect si va afisa la executie: 2 6. b) Va aparea eroare la compilare doar la linia 4, deoarece b necesita o conversie explicita. c) Va aparea eroare la compilare doar la linia 5, deoarece b [ 0 ] nu poate fi accesat. d) Vor aparea erori de compilare la linia 5, deoarece b [ 0 ] nu poate fi accesat si la linia 7, deoarece tipurile componentelor tablourilor a si c nu sunt compatibile. e) Va aparea eroare la executie din cauza liniei 5, aruncandu-se exceptia ClassCastException.

27. Indicati daca program Java de mai jos este corect sau stabiliti natura erorilor (liniile sunt numerotate): class C1 { int x = 1; } class C2 extends C1 { int y = 2; }

17

interface I1 { int x = 3; void f(int x); } class C3 extends C1 implements I1 { int x = 4; public void f(int x) { this.x = x; } } public class TestConversii { public static void main(String[] args) { C3 obiectUnu = new C3( ); I1 obiectDoi = obiectUnu; System.out.print(obiectDoi.x); C2 [] obiectTrei = new C2[3]; System.out.print(obiectTrei[0].x + " "); C1 [] obiectPatru = obiectTrei; System.out.print(obiectPatru(1].x + " "); obiectTrei = (C2[]) obiectPatru; }} a) Programul este corect si va afisa la executie: 3 2 1. b) Programul este corect la compilare si va afisa la executie 3, urmat de aruncarea exceptiei NullPointerException la linia 14. c) Programul este corect la compilare si va afisa la executie 3, urmat de aruncarea exceptiei NullPointerException la linia 16. d) Va aparea eroare la compilare doar la linia 15, deoarece tipurile componentelor tablourilor obiectTrei si obiectPatru nu sunt compatibile. e) Va aparea eroare la executie la linia 17, aruncandu-se exceptia ClassCast Exception. 28). Ce puteti spune despre urmatorul program Java? class CI { int x = 1; } interface I1 { int x = 2; void f (int x); } class C2 extends C1 implements I1 { int x = 3; public void f(int x) { this.x = x; } public class Test { public static void main(String[] args) { C1 obiectUnu = new C2(); System.out.print(obiectUnu.x) ; I1 obiectDoi = (C2) obiectUnu; System.out.println(" " + obiectDoi.x);}} a) Programul este corect si va afisa la executie : 1 2. b) Programul este corect si va afisa la executie: 3 2. c) Programul este corect si va afisa la executie: 3 3. d) Va aparea eroare de compilare la crearea lui obiectDoi. e) Va aparea eroare la executie la afisarea lui obiectDoi. x, aruncandu-se exceptia ClassCastException. 29) Verificaji daca programul de mai jos este corect: interface I1 { int x =1; void f(int x); } class C1 implements I1{ int x = 2; public void f (int x) { this.x = x ; }

18

public class Test { public static void main(String[] args) ( C1 obiectUnu = new C1( ); System.out.print (obiectUnu .x) ; I1 obiectDoi = obiectUnu; System.out.println(" " + obiectDoi.x); } } a) Programul este corect si va afisa la executie: 2 1. b) Programul este corect si va afisa la executie: 2 2. c) Va aparea eroare de compilare la crearea lui obiectDoi, fiind necesara o conversie explicita de forma (C2). d) Va aparea eroare de compilare la crearea lui obiectDoi, deoarece atributul x se suprascrie. e) Va aparea eroare la executie la afisarea lui obiectDoi .x, aruncandu-se exceptia ClassCastException. 30) Ce puteti afirma despre urmatorul program Java? class C1 { int x = 1; void f (int x) { System.out .print ( " Unu ");, this .x = x; } } interface I1 { int x = 2; void f ( int x) ; } class C2 extends C1 implements I1 { int x = 3; public void f(int x) { System.out.print("Doi "); this.x = x;}} public class Test { public static void main (String[] args) { C1 obiectUnu = new C2( ); System.out.print(obiectUnu.x + " ") ; obiectUnu.f (4) ; I1 obiectDoi = (C2) obiectUnu; obiectDoi.f(5); System.out.println(obiectDoi.x) ; }} a) Programul este corect si va afisa la executie: 1 Unu Doi 2. b) Programul este corect si va afisa la executie: 1 Unu Doi 3. c) Programul este corect si va afisa la executie: 1 Doi Doi 2. d) Programul este corect si va afisa la executie: 3 Doi Doi 2. e) Programul este corect si va afisa la executie: 3 Doi Doi 3. f) Va aparea eroare de compilare la crearea lui obiectDoi, deoarece atributul x se suprascrie. g) Va aparea eroare la execute la afisarea lui obiectDoi.x, aruncandu-se exceptia ClassCastException 31) Indicati daca programul de mai jos este corect si, in caz afirmativ, ce va aparea pe ecran: class C1 { int x = 1; void f(int x) { System.out.print("1 "); this.x = x;}} class C2 extends C1 ( int x = 2; public void f (int x) ( System.out.print("2 "); this. x = x;;}} class C3 extends C1 { int x = 3; public void f (int x) { System.out.print("3 "); this.x = x ; }} public class Test { public static void main (String[] args) { C1 obiectUnu = new C2( ); C1 obiectDoi = new C3( ); System.out.print(obiectUnu.x + " " + obiectDoi.x + " "); obiectUnu.f (4); obiectDoi.f(5); System.out.print(obiectUnu. x + " " + ((C2) obiectUnu) .x + ); System.out.print(obiectDoi.x + + ((C3)obiectDoi).x);}} a) Programul este corect si va afisa la executie : 1 1 1 1 1 4 1 5. b) Programul este corect si va afisa la executie : 1 1 2 3 1 4 1 5. c) Programul este corect si va afisa la executie : 2323243 5. d) Programul este corect si va afisa la executie: 2 3 2 3 4 4 5 5. e) Vor aparea erori de compilare la crearea instantelor obiectUnu si obiectDoi, deoarece atributul x se suprascrie.

19

f) Va aparea eroare la executie la afisarea lui obiectUnu. x, aruncandu-se exceptia ClassCastException 32) Ce puteti afirma despre programul Java de mai jos? class C1 { int x =1; C1 ( int x) { this.x = x; } } class C2 extends C1 { int x = 3, y = 4; C2 ( int x, int y) { super ( x ); this.y = y; } } public class Test { public static void main ( String args[ ]) { C1[] tablouUnu = new C2[3]; for ( int i = 0; i < tablouUnu.length; i++); tablouUnu[i] = new C2(i * 2, i * 3); C2[ ] tablouDoi = (C2 [ ]) tablouUnu; for (int i = 0; i < tablouUnu. length; i++) System.out.print(tablouDoi[i] . x + " " + tablouDoi[i].y + ) }} a) Programul este corect si va afisa la executie: 1 0 1 3 1 6 b) Programul este corect si va afisa la executie: 1 4 1 4 1 4 c) Programul este corect si va afisa la executie: 3 0 3 3 3 6 d) Programul este corect si va afisa la executie: 3 4 3 4 3 4 e) Vor aparea erori de compilare la crearea instantelor tablouUnu si tablouDoi, deoarece atributul x se suprascrie. f) Va aparea eroare la executie la afisarea lui tablouUnu.x, aruncandu-se exceptia ClassCastException. 33) Verificati corectitudinea programului urmator si specificati ce se va afisa: class C1 ( int x = 1; C1 (int x) ( this.x = x;) } class C2 extends C1 { int x = 2, y = 3; C2 ( int x) { super (x); } C2 (int x, int y) { super (x); this.y = y; }} public class ApelExplicitConstructor { public static void main (String args [ ]) { C1 obiectUnu = new C1 (4); C2 obiectDoi = new C2(5); C2 obiectTrei = new C2 (6, 7); System.out.print (obiectUnu.x + " "); System.out.print(obiectDoi.x + + obiectDoi.y + ); System.out.print(obiectTrei.x + + obiectTrei.y);}} a) Programul este corect si va afisa la executie : 4 1 2 1 7. b) Programul este corect si va afisa la executie : 4 1 3 6 7. c) Programul este corect si va afisa la executie : 4 2 3 2 7. d) Programul este corect si va afisa la executie : 4 5 3 6 7. e) Vor aparea erori de compilare la crearea instantelor obiectDoi si obiectTrei, deoarece atributul x se suprascrie. f) Va aparea eroare la execute la afisarea lui ObiectDoi. x , aruncandu-se exceptia ClassCastException. Test 4 Intrebarea 4.7,1. Un obiect de tip String permite parcurgerea caracter cu caracter a literalului stocat? a) b) c) d) Exista o metoda care se ocupa cu lucrul acesta. Se poate realiza cu ajutorul mai mulor metode din clasa String. Se poate realiza doar prin intermediul clasei stringBuffer. Aceasta operatie poate fi efcctuata si cu ajutorul unui obiect de tip String Tokenizer.

20

Intrebarea 4.7.2. Ce se poate spune despre urmatoarea scventa de cod? String s = "String"; s.toString ().toString.toString(); a) Se obtine eroare la compilare, deoarece nu s-a utilizat operatorul new pentru obiectul s b) Apare o eroare la compilare, intrucat obiectul s va contine numele unui cuvant rezervat c) Se va genera o eroare la executie, pentru ca metoda toString () returneaza o valoare care nu este preluata. d) Codul este corect din punct de vedere sintactic. e) Se apeleaza metode toString () pentru acelasi obiect. Intrebarea 4.7.3. Care dintre metodele clasei String de mai jos returneaza un obiect de tip String? a) replace() b) split() c) intern() d) toLowerCase() Intrebarea 4,7.4. Ce va afisa la consola urmatorul apel? System.out.println(10 + 9 + new StringBuffer("opt") + 7 + 6 + "5") a)109opt765 b)19opt135 c)19opt18 d)19opt765 e) Se obtne o eroare la compilare sau la executie. Intrebarea 4.7.5. Pentru a gestiona numele unor persoane, care structura este mai eficienta pentru cautare? a) o colectie de tip vector; b) o tabela hash; c) o lists dublu inlantuita d) un arbore binar; e) o multime

Test 5 5.6.1. Care dintre afirmatiile de mai jos sunt adevarate?

21

a) b) c) d) e)

caracterle UTF se reprezinta pe 8 bit; caracterele UTF se reprezinta pe 16 biti; caracterele UTF se reprezinta pe 24 biti; caracterele Unicode se reprezinta pe 16 biti; caracterele Bytecode se reprezinta pe 16 biti.

5.6.2. Care din afirmatiile de mai jos sunt adevarate? a) Cand se creeaza o instanta a lui File si nu se foloseste semantica de denumire a fisierelor de pe masina locala, atunci constructorul va arunca o exceptie IOException b) cand se creeaza o instanta a lui File si fisierul respectiv nu exista pe sistemul de fisiere local, atunci se creeaza un astfel de fisier; c) cand o instanta a lui File este eliberata de garbage collector, atunci fisierul corespunzzator de pe sistemul local esie sters d) Nici una dintre afirmatiile de mai sus nu este adevarata 5.6.3. Pentru afirmatiile de mai jos, selectati pe cele adevarate: Clasa File contine o metoda care schimba directorii de lucru curent; Clasa File contine o metoda care listeaza continutul directorului de lucru curent. a) b) c) d) Nu,Nu Da, Nu Nu, Da Da, Da

5.6.4, Cati octeti va scrie codul java de mai jos catre fisierul fisier. txt? try { FileOutputStream f1 = new FileOutputStream ("fisier.txt") DataOutputStream f2 = new DataOutputStream (f1) f2.writeInt(3) f2.writeDouble(0.01) f2.close() f1.close() } a) 2 b) 8 c) 12 d) 16 e) numarul de octeti va depinde de sistemul local respectiv 5.6.5 Ce va afisa subcodul Java de mai jos la linia 8? 1. FileOutputStream f1 = new FileOutputStream("fisier.txt") 2. for(byte b=10; b


Top Related