Ara Sınav (Vize) 2024-2025 20 soru

C# Programlama 2024-2025 Ara Sınav (Vize)

Kaynak: https://lolonolo.com/2026/03/16/c-programlama-2024-2025-vize-sorulari/

📖 Konu özeti (sınav öncesi tekrar)

C# Programlama 2024-2025 Vize Soruları

C# Programlama 2024-2025 Vize Soruları

Veri Tipleri ve Değer Aralıkları

C# dilinde değişkenlerin bellekte kapladıkları alan ve alabilecekleri maksimum-minimum değerler kritik öneme sahiptir. Tam sayı veri tiplerinin (işaretli olanların) küçükten büyüğe sıralanışı byte < short < int < long şeklindedir. Bir atama işleminde veri tipleri arasında dönüşüm (casting) yapılabilir. Küçük bir veri tipi büyük bir tipe dönüştürülürken derleyici bunu otomatik olarak yapar; buna “örtük (implicit)” dönüşüm denir. Büyük tipin küçük tipe dönüştürülmesinde ise “(int)” gibi “aşikar (explicit)” dönüşüm gereklidir. Örneğin, sbyte a = -128; byte b = (byte)a; işleminde işaretli bir sayıdan işaretsiz bir tipe dönüşüm yapılır, bu da programın tutarsız çıktı vermesine neden olur.

Veri tiplerine geçerli atamalar yaparken dikkat edilmelidir. Geçerli bir atama olan int t = 0x05AD;, onaltılık (hexadecimal) bir sayıyı temsil eder. String veri tiplerine çok satırlı atama yaparken “”” (üç tırnak) kullanımı modern C#’ta geçerlidir. Ancak object veri tipinde bir değişken tanımlandığında değişkene değer atanması zorunlu değildir, null bırakılabilir. Ayrıca const string dil = “C#”; tanımı derleme hatası vermeyen geçerli bir sabit (constant) atamasıdır.

Konsol Giriş ve Çıkış İşlemleri

Kullanıcıdan veri almak ve ekrana yazdırmak C# programlarının temelidir. Kullanıcıdan alınan metni tam sayıya çeviren komut dizisi int x = Convert.ToInt32(Console.ReadLine()); şeklindedir. Ekrana formatlı (biçimlendirilmiş) yazı yazdırmak için indeks numaraları kullanılır. Örneğin; x=5, y=3.14, z=-2023 değerlerini 3.14, 5, -2023 olarak yazdırmak için indeks sıralaması Console.WriteLine(“{1}, {0}, {2}”, x, y, z); olmalıdır. Console.Write() komutu metni yan yana yazarken, Console.WriteLine() komutu metni yazar ve alt satıra geçer. Örneğin, “İstanbul Üniversitesi” yazıp alta 2023, en alta AUZEF yazmak için Write ve WriteLine komutları doğru kombinasyonda kullanılmalıdır.

Operatörler ve İfadeler

C# dilinde ön ek (++x) ve son ek (x++) artırma operatörleri farklı çalışır. Son ek operatöründe değişkenin mevcut değeri kullanılır, ardından değişken artırılır. Örneğin, a++ ve –a kombinasyonlarının kullanıldığı bir matematiksel işlemde a’nın anlık değişimleri hesaplanır (Çıktı: 1). Mantıksal işlemlerde kullanılan ? : (Ternary / Üçlü) operatörü tek satırda if-else görevi görür (Çıktı: 1). Soru işareti (?) ile kullanılan Null-Coalescing operatörü (??), değişken null ise sağdaki değeri atar (Çıktı: 5). Mantıksal ve bitsel operatörlerde (& ve |) işlem sırası ve kısa devre (short-circuit) yapmaması (her iki tarafı da değerlendirmesi) önemlidir (Çıktı: -1 : True).

Bitsel kaydırma operatörleri (Bitwise Shift) sayının ikilik tabandaki bitlerini sağa veya sola kaydırır. Örneğin, x >>= 2 işlemi, x’in bitlerini sağa kaydırır. x=4 iken bu işlem x’i 1 yapar. Bitsel NOT (~x) operatörü ise bitleri tersine çevirerek ikiye tümleyen sisteminde -2 değerini üretir (Çıktı: 1 : -2).

Kontrol Yapıları ve Kod Çıktıları

If-else blokları programın akışını kontrol eder. Mantıksal şartların adım adım değerlendirildiği bir yapıda, eğer ilk şartlar sağlanmazsa sonraki şartlara bakılır. Değişkenlerin güncellenmesi (örneğin ++y) şartların sonucunu değiştirir ve kod uygun bloğa girer (Çıktı: +). Mantıksal bir karşılaştırma olan x==y gibi işlemlerde, tipler ve değerler örtüşüyorsa sonuç true veya false olur (Çıktı: True : True). String formatlamada (örneğin {0} {2} {3} {1} diziliminde) argümanlar sırasıyla sembol, harf, yil ve bolumKodu gibi indekslerine göre yerleştirilir (Çıktı: #C 2023 BLGPRG).

Tüm C# ifadeleri (statement) noktalı virgül (;) ile bitirilmek zorundadır. Aksi takdirde derleyici (compiler) sözdizimi (syntax) hatası verir.

C# Programlama 2024-2025 Vize Soruları

C# Programlama 2024-2025 Vize Soruları

20 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1
C# Programlama 2024-2025 Vize Soruları 1. SORU
Yukarıda verilen C# koduna göre aşağıdaki şıklardan hangisi yanlıştır?
CDoğru cevap
Açıklama
Verilen kod sorunsuz bir şekilde derlenir. x (1.5), y (1) ve z (0) değerlerinin toplamı double türünde 2.5 olarak hesaplanır (A doğru). ushort ve int türleri double türüne çevrilirken örtük (implicit) dönüşüm (B doğru), z değişkenine atama yapılırken (int) ifadesiyle aşikar (explicit) dönüşüm yapılmıştır (E doğru). Ayrıca ushort işaretsiz bir tam sayı tipidir (D doğru). Kod hata vermez, bu nedenle C şıkkı yanlıştır.
Soru 2
Veri tiplerinin değer aralıkları hangi şıkta doğru sıralanmıştır?
ADoğru cevap
Açıklama
C# dilinde tam sayı veri tiplerinin bellekte kapladıkları alanlar sırasıyla; byte (8 bit), short (16 bit), int (32 bit) ve long (64 bit) şeklindedir. Kapladıkları alan büyüdükçe alabilecekleri maksimum değer aralığı da artar. Bu nedenle doğru sıralama A şıkkıdır.
Soru 3
C# Programlama 2024-2025 Vize Soruları 3. SORU
Yukarıda tanımlanan değişkenlere göre konsol ekranına 3.14, 5, -2023 çıktısını veren komut hangi şıkta doğru verilmiştir?
ADoğru cevap
Açıklama
String biçimlendirmede süslü parantez içindeki sayılar, virgülden sonra verilen parametrelerin indeksini belirtir. x (0. indeks) = 5, y (1. indeks) = 3.14, z (2. indeks) = -2023’tür. 3.14, 5, -2023 çıktısını almak için indekslerin sırasıyla {1}, {0}, {2} olarak yazılması gerekir.
Soru 4

bool stat = true;
int x = -1, y = 2, z = 3;
int result = !stat & ++x == 0 ? x / y : z + x – y;
Console.Write(result);
Yukarıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Öncelik sırası: ! ve ++ tekli operatörler, sonra ==, sonra &. !stat false olur. & kısa devre yapmadığından ++x yine çalışır, x = 0 olur ve 0 == 0 true döner. false & true = false olduğundan z + x - y = 3 + 0 − 2 = 1 sonucu yazdırılır.

Soru 5
C# Programlama 2024-2025 Vize Soruları 5. SORU
Yukarıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
ADoğru cevap
Açıklama
a++ son ek artırma olduğundan b’ye önce a’nın o anki değeri (-9.0) atanır, sonra a’nın değeri -8F olur. Ekrana yazdırma satırında; –a ön ek azaltma olduğundan a tekrar -9F olur. b++ son ek olduğundan b’nin o anki değeri (-9.0) işlemde kullanılır ve sonra b artar. İşlem: -9.0 – (-9.0) + 1 = -9.0 + 9.0 + 1 = 1 olur.
Soru 6
C# Programlama 2024-2025 Vize Soruları 6. SORU
Yukarıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
CDoğru cevap
Soru 7

int a = 1, b = -1;
int? c = null;
int result = b <= a ? c ?? 5 : 0;
Console.Write(result);
Yukarıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

b <= a yani -1 <= 1 doğrudur, bu yüzden üçlü operatör c ?? 5 ifadesini döndürür. ?? (null birleştirme) operatörü soldaki değer null ise sağdakini verir; c null olduğundan sonuç 5'tir.

Soru 8
Aşağıdaki değişken atamalarından hangisi geçerlidir?
CDoğru cevap
Açıklama
C şıkkındaki 0x ile başlayan sayı geçerli bir onaltılık (hexadecimal) tam sayı atamasıdır. A’da ‘short’ rezerve edilmiş bir anahtar kelimedir değişken adı olamaz. B’de binary (0b) içinde sadece 0 ve 1 kullanılabilir. D’de ondalık ayırıcı olarak nokta (.) kullanılmalıdır. E’de bilimsel gösterim (E) float/double üretir, doğrudan int’e atanamaz.
Soru 9
C# Programlama 2024-2025 Vize Soruları 9. SORU
Yukarıdaki programın çıktısı hangi şıkta doğru verilmiştir?
EDoğru cevap
Açıklama
WriteLine komutu metni yazıp alt satıra geçer, Write komutu ise yan yana yazmaya devam eder. İlk satır “AUZEF” yazıp alta geçer. İkinci satır “Programlama ” yazar ve yanından devam eder, sonra “Bilgisayar” yazılır ve alta geçilir. Son olarak boşluklu ” C#” yazılır.
Soru 10

İstanbul Üniversitesi
2023
AUZEF
Yukarıdaki dizgeleri verildiği gibi üç satırda konsola çıktılayan kodlar hangi şıkta doğru olarak verilmiştir?
BDoğru cevap
Açıklama
B şıkkında önce “İstanbul ” yan yana yazılır, ardından WriteLine ile “Üniversitesi” eklenip alt satıra geçilir. Sonra “2023” yazılıp alt satıra geçilir ve son satıra “AUZEF” yazılır. Bu tam olarak istenilen 3 satırlı formatı oluşturur.
Soru 11
Aşağıdaki şıklarda verilen kodlardan hangisi derleme hatası vermez?
BDoğru cevap
Açıklama
A’da satır sonu noktalı virgül yerine virgül kullanılmıştır. C’de sabit (const) bir değere çalışma zamanında değeri belli olan bir değişken atanamaz. D’de sabitler tanımlandıkları an değer almalıdır. E’de ilk değer ataması yapılmamış (uninitialized) değişken kullanılmıştır. B şıkkı tamamen geçerli ve hatasızdır.
Soru 12

sbyte a = -128;
byte b = (byte)a;
Console.Write(–b);
Yukarıda verilen programla ilgili aşağıdaki şıklardan hangisi doğrudur?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

(byte)a açık (explicit) tür dönüşümüdür; işaretli sbyte −128 değeri işaretsiz byte aralığına (0-255) sığmadığı için bitleri aynen yorumlanır ve 128 olur. Derleme hatası oluşmaz, ama orijinal değerle tutarsız bir sonuç elde edilir. Dönüşüm işaretliden işaretsize ve açık olduğundan B ve C şıkları yanlıştır.

Soru 13
Kullanıcıdan alınan girdiyi tam sayı veri tipine çeviren ve bunu tam sayı veri tipine atayan program hangi seçenekte doğru verilmiştir?
CDoğru cevap
Açıklama
Konsoldan kullanıcı girdisi almak için `Console.ReadLine()` kullanılır. Gelen metin değerini tam sayıya (int) dönüştürmek için `Convert.ToInt32()` metodu kullanılır ve sonuç “int” türünde bir değişkene atanır.
Soru 14
C# Programlama 2024-2025 Vize Soruları 14. SORU
Yukarıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
DDoğru cevap
Soru 15

char harf = ‘C’;
char sembol = ‘#’;
int yil = 2023;
string bolumKodu = “BLGPRG”;
Console.Write(“{0} {2} {3} {1}”, sembol,
bolumKodu, harf, yil);
Yukarıdaki programın çıktısı hangi şıkta doğru verilmiştir?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Biçim dizesindeki {n} ifadeleri argüman listesindeki sırayı (0'dan başlayarak) gösterir: {0}=sembol #, {1}=bolumKodu BLGPRG, {2}=harf C, {3}=yil 2023. "{0} {2} {3} {1}" sırasıyla # , C, 2023, BLGPRG yazdırılır; bu da D şıkkındaki çıktıya karşılık gelir.

Soru 16

int x = 0;
int y = -1;
int z = 1;
if( y + z != x && y > z )
Console.WriteLine(“*”);
else if( y > x || ++y > z )
Console.WriteLine(“/”);
else if( y == x & x < z )
Console.WriteLine(“+”);
else if( z >= x + y )
Console.WriteLine(“-“);
else
Console.WriteLine(“%”);
Yukarıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

x=0, y=−1, z=1. İlk koşulda y + z != x → 0 != 0 false olduğundan && kısa devre yapar. İkinci koşulda y > x false; ++y ile y=0 olur ve 0 > 1 false. Üçüncü koşulda y == x (0 == 0) true ve x < z true; true & true true olduğundan ekrana + yazılır.

Soru 17
C# dilinde veri tipleriyle ilgili aşağıdaki şıklardan hangisi yanlıştır?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

object tipindeki bir değişkene tanımlama sırasında değer atamak zorunlu değildir; object o; geçerli bir tanımdır. Buna karşılık var ile tanımlanan değişkene tanımlama anında değer atamak zorunludur ve tipi sonradan değişmez; dynamic tipin ise kontrolü çalışma zamanında yapılır ve tipi değişebilir.

Soru 18
Aşağıdaki değer atamalarından hangisi geçerlidir?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C# 11 ile gelen ham dize (raw string literal) üç çift tırnakla (""") başlar ve biter; içinde tırnak ve ters bölü kaçış gerektirmeden yazılabilir. A şıkkında \W geçersiz kaçış dizisidir, B'de dize tek tırnakla yazılamaz, C sözdizimsel olarak hatalıdır, E'de ise @ dizesi içindeki tırnaklar "" şeklinde çiftlenmelidir.

Soru 19
C# Programlama 2024-2025 Vize Soruları 19. SORU
Yukarıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
EDoğru cevap
Açıklama
& ve | bitsel/mantıksal operatörler kullanıldığı için ifadenin tamamı değerlendirilir. ++x işlemi x’i 0 yapar, 0 >= -1 (True). true & True sonucu True olur. İkinci kısımda –x işlemi x’i tekrar -1’e düşürür. -1 + 1 = 0’dır. y (1) <= 0 işlemi False olur. Son olarak True | False birleşimi True sonucunu verir. x’in son değeri ise -1’dir.
Soru 20

int x = 4;
x >>= 2;
int y = ~x;
Console.Write($”{x} : {y}”);
Yukarıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
EDoğru cevap
Açıklama
x >>= 2 ifadesi bitsel olarak sağa kaydırma (right shift) işlemi yapar. 4 sayısının (ikilik tabanda 100) 2 bit sağa kaydırılmasıyla elde edilen sayı 1’dir (001). x değişkeni 1 değerini alır. ~x ifadesi (bitsel NOT) sayının tüm bitlerini tersine çevirir ve 1 sayısının ikiye tümleyen (two’s complement) sistemindeki tersi -2’dir. Sonuç olarak 1 : -2 çıktısı elde edilir.