Değişkenler, Veri Türleri ve Operatörler
Çoktan Seçmeli · Değişkenler ve Türler
Soru 1: Geçersiz Tanımlayıcı
Aşağıdakilerden hangisi Java'da geçerli bir değişken adı değildir?
D: Tanımlayıcı harf, _ veya $ ile başlar; rakamla başlayamaz. _deger ve $tutar geçerlidir (yalnızca tek başına _ geçersizdir). Adlar büyük-küçük harfe duyarlıdır.
Çoktan Seçmeli · Değişkenler ve Türler
Soru 2: Büyük Sayı İçin Tür
Dünya nüfusu (yaklaşık 8 milyar) bir değişkende tutulacak. Hangi satır derlenir ve doğrudur?
B: int en fazla ≈ 2,1 milyar tutar; 8 milyar long gerektirir. Ayrıca sabitin kendisi int aralığını aştığı için L son eki şarttır; eksse "integer number too large" derleme hatası alınır.
Çoktan Seçmeli · Değişkenler ve Türler
Soru 3: Hangi Satır Derlenmez?
Aşağıdaki tanımlamalardan hangisi derleme hatası verir?
C: 5L bir long sabitidir; long → int daraltmadır ve açık dönüşüm ister ("possible lossy conversion"). Diğerleri genişletmedir ve otomatik yapılır: 5 → 5L, 'A' → 65.0, 10 → 10.0f.
Çoktan Seçmeli · Değişkenler ve Türler
Soru 4: float oran = 1.5;
float oran = 1.5; satırı neden derlenmez?
A: Ondalıklı sabitler varsayılan olarak double'dır (64 bit). 32 bitlik float'a örtük daraltma yapılmaz; F son eki ya da (float) dönüşümü gerekir. Kodda ondalık ayırıcı her zaman noktadır.
Çıktı Sorusu · Değişkenler ve Türler
Soru 5: char Aritmetiği
Aşağıdaki kodun çıktısı nedir?
char c = 'C'; c++; int k = c + 2; char d = (char) k; System.out.println(c + " " + k + " " + d);
Cevabı göster
Çıktı: D 70 F
- 'C' = 67;
c++→ 68 = 'D' (tür char kalır). c + 2int olur: 68 + 2 = 70; k harf değil sayı tutar.(char) 70= 'F'. Birleştirmede char harf, int sayı olarak yazılır.
Çoktan Seçmeli · Geçmiş Sınav (2023-24 Final)
Soru 6: byte 127 İki Kez Artırılırsa
Aşağıdaki kod parçasının çıktısı hangi şıkta doğru verilmiştir?
byte x = 127;
x++;
x++;
System.out.print(x);B: byte 8 bittir ve en büyük değeri 127'dir. İlk x++ taşar ve değer öbür uca sarar: −128. İkinci x++: −128 + 1 = −127. Java taşmada hata vermez (++ gizli bir (byte) dönüşümü içerir).
Çıktı Sorusu · Taşma
Soru 7: byte ve short Sarması
Aşağıdaki kodun çıktısı nedir?
byte b = -128; b--; short s = 32767; s += 2; System.out.println(b + " " + s);
Cevabı göster
Çıktı: 127 -32767
- byte'ın en küçüğünden 1 azaltınca en büyüğe sarar: 127.
- short en fazla 32767: 32767 + 2 = 32769 → 32769 − 65536 = −32767.
Çıktı Sorusu · Taşma
Soru 8: int Sınırında Toplama
Aşağıdaki kodun çıktısı nedir?
int m = Integer.MAX_VALUE; System.out.println(m + 1); long a = m + 1; System.out.println(a); long b = m + 1L; System.out.println(b); System.out.println(Math.abs(Integer.MIN_VALUE));
Cevabı göster
-2147483648 -2147483648 2147483648 -2147483648
m + 1: iki int → int toplaması, taşar.long a = m + 1: toplama önce int yapılır (taşar), sonra long'a genişletilir. Hedefin long olması geç kalır.m + 1L: işlenenlerden biri long → toplama long ile yapılır, sığar.- |MIN_VALUE| = 2³¹ int'e sığmaz;
Math.absda taşar.
Çoktan Seçmeli · Taşma
Soru 9: (byte) Daraltma
Aşağıdaki satır ne yazdırır?
System.out.println((byte) 200 + " " + (byte) 130);
C: Daraltma yalnızca alt 8 biti tutar; 127'den büyük değerden 256 çıkarılmış gibi olur: 200 − 256 = −56, 130 − 256 = −126. Daraltma dönüşümü hata vermez, sınırda "sıkışmaz" (127 olmaz); değer sessizce sarar.
Çoktan Seçmeli · Geçmiş Sınav (2025-26 Vize)
Soru 10: 13 / 2
Aşağıdaki Java kodunun çıktısı nedir?
int a = 13; int b = 2; int sonuc = a / b; System.out.println(sonuc);
A: İki işlenen de int olduğu için tam sayı bölmesi yapılır: 13 / 2 = 6, kesir atılır (yuvarlanmaz, 7 olmaz). Sonuç int olduğundan 6.0 da yazılmaz.
Çıktı Sorusu · Geçmiş Sınav (2025-26 Vize varyantı)
Soru 11: 13 ile Beş Bölme
Aşağıdaki kodun çıktısı nedir?
int a = 13, b = 2; System.out.println(a / b); System.out.println(a % b); System.out.println(a / 2.0); System.out.println((double) a / b); System.out.println((double) (a / b));
Cevabı göster
6 1 6.5 6.5 6.0
% kalanı verir: 13 = 6·2 + 1.
Çoktan Seçmeli · Dönüşüm ve Bölme
Soru 12: Kesme mi Yuvarlama mı?
Aşağıdaki satır ne yazdırır?
System.out.println((int) -2.7 + " " + Math.round(-2.7));D: (int) kesir kısmını atar, yani sıfıra doğru keser: −2.7 → −2. Math.round en yakın tam sayıya yuvarlar: −2.7 → −3 (long döner).
Adım Adım Çalıştırma · Dönüşüm ve Bölme
Soru 13: Not Ortalaması Hatası
Üç notun ortalaması üç farklı biçimde hesaplanıyor. Her satırdan sonra değişkenler ne olur, program ne yazdırır?
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
Üç int değişken.
70 + 85 + 90 = 245 (int).
245 / 3 iki int → tam sayı bölmesi = 81. Sonra double kutuya genişler: 81.0. Kesir daha önce kayboldu.
3.0 double → 245 de double'a yükselir: 81.666…
Parantez içi önce: int bölme = 81; dönüşüm sonra → 81.0. İşlemden sonra yapılan dönüşüm kesri kurtarmaz.
o1 yazdırılır.
Doğru ortalama yalnızca o2'de.
Düzeltme: toplam / 3.0 ya da (double) toplam / 3.
int n1 = 70, n2 = 85, n3 = 90; int toplam = n1 + n2 + n3; double o1 = toplam / 3; double o2 = toplam / 3.0; double o3 = (double) (toplam / 3); System.out.println(o1); System.out.println(o2); System.out.println(o3);
Çoktan Seçmeli · Geçmiş Sınav (2023-24 Final)
Soru 14: i *= 3 + 7
Aşağıdaki kod parçasının çıktısı hangi şıkta doğru verilmiştir?
int i = 5;
i *= 3 + 7;
System.out.println(i);B: Bileşik atamada sağ taraf önce tümüyle hesaplanır: i = i * (3 + 7) = 5 · 10 = 50. "i * 3 + 7 = 22" sanmak en sık yapılan hatadır.
Çıktı Sorusu · Bileşik Atama ve ++
Soru 15: Bileşik Atama Zinciri
Aşağıdaki kodun çıktısı nedir?
int a = 4;
a += a * 2;
System.out.print(a + " ");
a -= 3 + 1;
System.out.print(a + " ");
a /= 2 + 1;
System.out.print(a + " ");
a %= 3;
System.out.print(a);Cevabı göster
Çıktı: 12 8 2 2
Her a op= ifade, a = a op (ifade) demektir; sağ taraf parantez içindeymiş gibi önce hesaplanır.
Çoktan Seçmeli · Bileşik Atama ve ++
Soru 16: byte ile += ve +
byte b = 10; tanımından sonra yazılan iki satır için hangisi doğrudur?
b += 5; // (1) b = b + 5; // (2)
D: b + 5 int'tir (byte işlemde int'e yükselir); int → byte örtük yapılmadığı için (2) derlenmez. Bileşik atama ise gizli dönüşüm içerir: b = (byte)(b + 5).
Çıktı Sorusu · Bileşik Atama ve ++
Soru 17: Bileşik Atamanın Gizli Dönüşümü
Aşağıdaki kodun çıktısı nedir?
byte b = 120; b += 10; int i = 7; i += 2.9; System.out.println(b + " " + i);
Cevabı göster
Çıktı: -126 9
b += 10≡b = (byte)(120 + 10): 130 byte'a sığmaz → 130 − 256 = −126.i += 2.9≡i = (int)(7 + 2.9)= (int) 9.9 = 9 (kesme, yuvarlama yok).
Adım Adım Çalıştırma · Bileşik Atama ve ++
Soru 18: i++ ve ++i
Önek ve sonek artırmayı izleyin. Her satırdan sonra i, a, b kaç olur?
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
i = 3.
Sonek i++ ifadeye eski değeri (3) verir: a = 3 + 2 = 5…
…ardından i artırılır: i = 4.
Önek ++i: önce artır → i = 5…
…sonra yeni değeri kullan: b = 5 · 2 = 10.
Tek başına i--: i = 4.
Çıktı: 4 5 10.
int i = 3; int a = i++ + 2; int b = ++i * 2; i--; System.out.println(i + " " + a + " " + b);
Adım Adım Çalıştırma · Geçmiş Sınav (2023-24 Telafi)
Soru 19: x, y, z Bileşik Atama
Aşağıdaki kod parçası çalıştığında çıktı ne olur? Her satırda kutuların nasıl değiştiğini izleyin.
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
x = 7, y = 8.
Sağ taraf önce: 7 + 8 = 15 → x'e yazılır.
1. satır.
Sonek: z eski değeri (15) alır, sonra x 16 olur.
2. satır.
y -= 4 → y = 8 − 4 = 4.
3. satır.
x *= y → 16 · 4 = 64.
4. satır.
x /= 4 → 64 / 4 = 16.
5. satır. Toplam 5 satır çıktı.
int x = 7; int y = 8; x = x + y; System.out.println("x: " + x + " y: " + y); int z = x++; System.out.println("x: " + x + " z: " + z); y -= 4; System.out.println("x: " + x + " y: " + y); x *= y; System.out.println("x: " + x + " y: " + y); x /= 4; System.out.println("x: " + x + " y: " + y);
Çıktı Sorusu · Geçmiş Sınav (2023-24 Vize)
Soru 20: x = 5, y = 10
Aşağıdaki kod parçası çalıştığında çıktı ne olur?
int x = 5; int y = 10; x = x + y; System.out.println("x: " + x + " y: " + y); int z = x++; System.out.println("x: " + x + " z: " + z); y -= 3; System.out.println("x: " + x + " y: " + y); x *= y; System.out.println("x: " + x + " y: " + y); x /= 4; System.out.println("x: " + x + " y: " + y);
Cevabı göster
x: 15 y: 10 x: 16 z: 15 x: 16 y: 7 x: 112 y: 7 x: 28 y: 7
z = x++: z = 15, x = 16.- y = 10 − 3 = 7; x = 16 · 7 = 112; x = 112 / 4 = 28.
Çoktan Seçmeli · Geçmiş Sınav (2024-25 Bütünleme A)
Soru 21: Son Satır (x = 5, y = 5)
Kod çalıştığında yazılan son satır hangisidir?
int x = 5; int y = 5; x = x + y; System.out.println("x: " + x + " y: " + y); int z = x++; System.out.println("x: " + x + " z: " + z); y -= 3; System.out.println("x: " + x + " y: " + y); x *= y; System.out.println("x: " + x + " y: " + y); x /= 4; System.out.println("x: " + x + " y: " + y);
A: x = 10 → z = x++ ile x = 11 → y = 2 → x = 11 · 2 = 22 → x /= 4: 22 / 4 = 5 (tam sayı bölmesi; 5.5 olmaz, 6'ya yuvarlanmaz).
Çoktan Seçmeli · Geçmiş Sınav (2024-25 Bütünleme B)
Soru 22: z ve x (x = 6, y = 6)
Kodun yazdırdığı 2. ve 4. satırlar hangisidir?
int x = 6; int y = 6; x = x + y; System.out.println("x: " + x + " y: " + y); int z = x++; System.out.println("x: " + x + " z: " + z); y -= 3; System.out.println("x: " + x + " y: " + y); x *= y; System.out.println("x: " + x + " y: " + y); x /= 4; System.out.println("x: " + x + " y: " + y);
C: x = 12; z = x++ önce eski değeri verir: z = 12, sonra x = 13. y = 3; x = 13 · 3 = 39. (Son satır: 39 / 4 = 9.)
Çıktı Sorusu · Geçmiş Sınav (2024-25 Bütünleme C)
Soru 23: x = 7, y = 7
Aşağıdaki kod parçası çalıştığında çıktı ne olur?
int x = 7; int y = 7; x = x + y; System.out.println("x: " + x + " y: " + y); int z = x++; System.out.println("x: " + x + " z: " + z); y -= 3; System.out.println("x: " + x + " y: " + y); x *= y; System.out.println("x: " + x + " y: " + y); x /= 4; System.out.println("x: " + x + " y: " + y);
Cevabı göster
x: 14 y: 7 x: 15 z: 14 x: 15 y: 4 x: 60 y: 4 x: 15 y: 4
Çoktan Seçmeli · Geçmiş Sınav (2024-25 Bütünleme D)
Soru 24: x /= 4 (x = 8, y = 8)
x = 8, y = 8 ile aynı kod (y -= 3) çalıştırılıyor. 4. satır x: 85 y: 5 ise son satır hangisidir?
x /= 4;
System.out.println("x: " + x + " y: " + y);B: x int olduğu için x /= 4 tam sayı bölmesidir: 85 / 4 = 21 (kalan 1 atılır). int değişken 21.25 tutamaz; bölme yuvarlamaz. Tam çıktı: 16/8, 17/16, 17/5, 85/5, 21/5.
Çoktan Seçmeli · Geçmiş Sınav (2023-24 Final)
Soru 25: 1 + 1 + 1 + 1 + 1 == 5
Aşağıdaki kod parçasının çıktısı hangi şıkta doğru verilmiştir?
if (1 + 1 + 1 + 1 + 1 == 5) { System.out.print("true"); } else { System.out.print("false"); }
C: Aritmetik operatörler karşılaştırmadan önce gelir: önce 1+1+1+1+1 = 5, sonra 5 == 5 → true; if dalı çalışır ve "true" metni yazılır.
Çıktı Sorusu · Operatörler ve Öncelik
Soru 26: Kalan, Sonsuz ve NaN
Aşağıdaki kodun çıktısı nedir?
System.out.println(-7 % 3); System.out.println(7 % -3); System.out.println(5.5 % 2); System.out.println(1.0 / 0); System.out.println(0.0 / 0 == 0.0 / 0);
Cevabı göster
-1 1 1.5 Infinity false
- Kalanın işareti bölünenin işaretidir: −7 % 3 = −1, 7 % −3 = 1.
%ondalıkta da çalışır: 5.5 = 2·2 + 1.5.- Ondalıkta sıfıra bölme hata vermez: Infinity. (
1 / 0ise ArithmeticException.) - 0.0 / 0 = NaN; NaN kendine bile eşit değildir.
Çıktı Sorusu · Operatörler ve Öncelik
Soru 27: İşlem Önceliği
Aşağıdaki kodun çıktısı nedir?
System.out.println(10 - 4 / 2 * 3 + 7 % 4); System.out.println((10 - 4) / 2 * 3); System.out.println(2 + 3 * 4 > 10 && 7 % 2 == 1);
Cevabı göster
7 9 true
Parantez sırayı değiştirir: 6 / 2 · 3 = 9. Üçüncüde 14 > 10 → true, 1 == 1 → true; true && true.
Adım Adım Çalıştırma · Operatörler ve Öncelik
Soru 28: Karma İfade: a / b * 1.5 + a % b
İfadenin her alt işlemini, türüyle birlikte izleyin. r kaç olur?
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
a = 9, b = 4 (int).
/, *, % aynı düzey, soldan sağa. İlk: 9 / 4 iki int → 2 (0.25 atılır).
2 * 1.5: 2 double'a yükselir → 3.0.
+'nın sağı: 9 % 4 = 1.
3.0 + 1 → 4.0 (int, double'a yükselir).
Çıktı 4.0. a / 4.0 yazılsaydı 2.25 · 1.5 + 1 = 4.375 olurdu.
int a = 9, b = 4; double r = a / b * 1.5 + a % b; System.out.println(r);
Adım Adım Çalıştırma · Operatörler ve Öncelik
Soru 29: Kısa Devre: b = 0 ve b = 4
İki if de aynı koşulu farklı b ile sınıyor. Hangi alt ifadeler hesaplanır, ne yazılır?
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
a = 10, b = 0.
Sol koşul false → kısa devre: a / b hiç hesaplanmaz, sıfıra bölme hatası oluşmaz.
Koşul false; else yok → satır 3 atlanır, çıktı yok.
b = 4.
Sol true → sağ taraf da hesaplanmak zorunda.
10 / 4 tam sayı bölmesi = 2; 2 > 2 → false. true && false → false.
else dalı: Oran küçük. (Gerçek oran 2.5 olsa da tam sayı bölmesi 2 verdi.)
int a = 10, b = 0; if (b != 0 && a / b > 2) System.out.println("Oran büyük"); b = 4; if (b != 0 && a / b > 2) System.out.println("Oran büyük"); else System.out.println("Oran küçük");
Çoktan Seçmeli · Operatörler ve Öncelik
Soru 30: 0.1 + 0.2 == 0.3
double a = 0.1 + 0.2; için System.out.println(a == 0.3); ne yazar ve doğru karşılaştırma nasıl yapılır?
D: 0.1 ve 0.2 ikilik tabanda tam gösterilemez; a = 0.30000000000000004 olur ve == false verir. Ondalık değerler küçük bir epsilon ile karşılaştırılır.
Çoktan Seçmeli · Geçmiş Sınav (2025-26 Bütünleme)
Soru 31: "12" + "34"
Aşağıdaki Java kodunun çıktısı nedir?
String sayi1 = "12"; String sayi2 = "34"; String toplam = sayi1 + sayi2; System.out.println(toplam);
D: İki işlenen de String olduğu için + toplama değil birleştirme yapar: "12" + "34" = "1234". Değişkenin adının "toplam" olması bir şey değiştirmez; araya boşluk da eklenmez.
Çıktı Sorusu · Geçmiş Sınav (2025-26 Final varyantı)
Soru 32: String ve Sayı Karışımı
Aşağıdaki kodun çıktısı nedir?
String s1 = "23"; String s2 = "14"; System.out.println(s1 + s2); System.out.println(1 + 2 + s1); System.out.println(s1 + 1 + 2); System.out.println(s1 + (1 + 2)); System.out.println(s1 + 1 * 2);
Cevabı göster
2314 323 2312 233 232
Çoktan Seçmeli · Girdi ve Çıktı
Soru 33: nextInt'ten Sonra nextLine
Kullanıcı önce 20 yazıp Enter'a basıyor. Ad sorulmadan program bitiyor. ad değişkeninin değeri nedir?
Scanner klavye = new Scanner(System.in); System.out.print("Yaş: "); int yas = klavye.nextInt(); System.out.print("Ad: "); String ad = klavye.nextLine();
C: nextInt yalnızca 20'yi okur; Enter (⏎) tamponda kalır. nextLine beklemeden bu ⏎'e kadar okur ve boş metin döner. Çözüm: nextInt'ten sonra bir klavye.nextLine(); ile ⏎'i tüketmek.
Çıktı Sorusu · Girdi ve Çıktı
Soru 34: printf Biçimi
Aşağıdaki kodun çıktısı nedir? (Ondalık ayırıcı nokta kabul edin.)
System.out.printf("%-6s|%7.3f|%04d%n",
"Can", 2.71828, 7);Cevabı göster
Çıktı: Can | 2.718|0007
%-6s: 6 karakter, sola yaslı (3 harf + 3 boşluk).%7.3f: 3 basamağa yuvarla (2.718), 7 karaktere sağa yasla.%04d: 4 hane, boşluk yerine 0. Türkçe yerel ayarda2,718yazılır.
Adım Adım Çalıştırma · Örnekler
Soru 35: Saniyeyi Saate Çevirme
7384 saniye / ve % ile saat, dakika, saniyeye ayrılıyor. Her değişkeni izleyin.
Önce kendiniz tahmin edin, sonra › ile ilerleyin.
toplam = 7384 saniye.
7384 / 3600 = 2 (tam sayı bölmesi: kaç tam saat).
7384 % 3600 = 7384 − 7200 = 184.
184 / 60 = 3 tam dakika.
184 % 60 = 4.
%02d en az 2 hane, başa 0: 2:03:04. Sağlama: 2·3600 + 3·60 + 4 = 7384.
int toplam = 7384; int saat = toplam / 3600; int kalan = toplam % 3600; int dakika = kalan / 60; int saniye = kalan % 60; System.out.printf("%d:%02d:%02d%n", saat, dakika, saniye);
Çıktı Sorusu · Örnekler
Soru 36: Geçici Değişkensiz Takas
Aşağıdaki kodun çıktısı nedir?
int a = 5, b = 8;
a = a + b;
b = a - b;
a = a - b;
System.out.println(a + " " + b);Cevabı göster
Çıktı: 8 5 — takas başarılı.
Risk: a + b int sınırını aşarsa ara toplam taşar. (Taşma sarmalı olduğu için sonuç yine doğru çıkar ama kod anlaşılmaz olur; geçici değişkenli takas tercih edilir.)
Çoktan Seçmeli · Örnekler
Soru 37: Math Metotları
Aşağıdaki satır ne yazdırır?
System.out.println(Math.round(2.5) + " "
+ Math.round(-2.5) + " " + Math.sqrt(16)
+ " " + Math.pow(2, 3));A: Math.round yarım değeri yukarı (pozitif yöne) yuvarlar: 2.5 → 3, −2.5 → −2; long döner. sqrt ve pow her zaman double döndürür: 4.0 ve 8.0.