2008 m. java egzamino bilieto ir atsakymo į klausimus pavyzdys

1. Parašykite statinį Java metodą, kuris surastų kiek duotoje teksto eilutėje yra skirtingų simbolių. Teksto eilutės koduotė yra standartinė ASCII (vienam simboliui 1 baitas).

2. Pažymėkite teisingus teiginius, atsakymus į klausimus.

A) Ar Java priklausoma nuo kompiuterio platformos?
1. Taip
2. Ne
3. Didele dalimi taip

B) Šią Java programą
import java.util.*;

public class Sveika {
	public final static void main(String S[]) {
		System.out.println( "Sveika, Java!" );
		Date d = new Date();
		System.out.println( "Data: " + d.toString() );
	}
}
reikia išsaugoti vardu:
1. Sveika.java
2. Sveika.class
3. main.java
4. main.clas

C) Java programoje komentarai rašomi tokiais būdais:
1. // komentarų eilutė
2. /*
komentarų
eilutės
*/
3. /**
dokumentacijai skirti komentarai
*/
4. <!-- mano komentarai -->

D) Kokia tvarka apskaičiuojamas išraiškos a&&b rezultatas ?
1. Pirma apskaičiuojama loginė b išraiška, jei b false - a neskaičiuojama ir grąžinama false; jei b true - apskaičiuojama a reikšmė ir ji grąžinama.
2. Pirma apskaičiuojama loginė a išraiška, paskui b ir grąžinama false, jei bent vienos a ar b išraiškos rezultatas buvo false, kitu atveju - true.
3. Pirma apskaičiuojama loginė b išraiška, paskui a ir grąžinama false, jei bent vienos b ar a išraiškos rezultatas buvo false, kitu atveju - true.
4. Pirma apskaičiuojama loginė a išraiška, jei a false - b neskaičiuojama ir grąžinama false; jei a true - apskaičiuojama b reikšmė ir ji grąžinama.

E) Kokiais atvejais naudotinas Java kalbos raktinis žodis assert ?
1. Niekada, nes tokio Java raktinio žodžio nėra
2. Šis raktinis žodis naudojamas dirbant su gijomis, norint įsitikinti, kad gija dar egzistuoja.
3. Šis raktinis žodis naudojamas siekiant palengvinti java programos derinimą.
4. Šis raktinis žodis naudojamas norint patikrinti objekto tipą.

Atsakymai: 1. Programos kodas:
public class Simboliai{

//Statinis metodas, apskaičiuojantis skirtingų teksto simbolių skaičių
 public static int skirtinguSimboliu( final String tekstas )
 {

//	Konvertuojame tekstą į baitų masyvą	
	byte[] b = tekstas.getBytes();

//	Apibrėžiame simbolių skaitliukų masyvą ir jį užpildome
	int[] count = new int[256];
	for ( int n = 0; n != b.length; n++)
		count[ 0xff & b[n] ]++; //naudojame 0xff &, kad konvertuoti baitą į neneigiamą sveikąjį skaičių

//	Nenulinių simbolių skaitliuko indeksų skaičius sutaps su skirtingų teksto simbolių skaičiumi
	int countSkirtingu = 0;
	for ( int c = 0; c != count.length; c++)
		if ( count[c] != 0 )
			countSkirtingu++;
//	Grąžiname rezultatą
	return countSkirtingu;
 }

// skirtinguSimboliu metodo testavimas
// Testavimo dalį egzamino metu rašyti nebūtina
 public static void main( String[] args )
 {
//	Tekste test yra 17-a skirtingų simbolių: Mano btiuvd\nesg-r
	String test = "Mano batai buvo du\nvienas dingo - nerandu\n";
	System.out.println( "Tekste: \n\n" + test + "\nyra " +
		test.length() + " simboliu.\nTarp ju skirtingu: " +
		skirtinguSimboliu( test ) );
 }

}

2. Atsakymai į testus:
A) 2
B) 1
C) 1,2,3
D) 4
E) 3

Dėst. A. Bastys

2008 m. birželio 18 d.