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

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

Kaynak: https://lolonolo.com/2026/06/05/c-programlama-2025-2026-vize-sorulari/

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

C# Programlama 2025-2026 Vize Soruları

Değişkenler ve Veri Tipleri

C# dilinde değişkenler, bellek üzerinde veri saklamak için kullanılan isimlendirilmiş alanlardır. Her değişkenin bir veri tipi vardır ve bu tip, değişkenin ne tür veri tutabileceğini ve bellekte ne kadar yer kaplayacağını belirler. C# güçlü tipli (strongly-typed) bir dil olduğundan, değişkenlerin kullanılmadan önce tanımlanması ve değer atanması zorunludur. Temel tam sayı tipleri byte, short, int ve long olup değer aralıkları sırasıyla genişler: byte (0-255), short (-32768 ile 32767), int yaklaşık -2 milyar ile +2 milyar, long ise çok daha geniş bir aralığı kapsar.

var, dynamic ve object Anahtar Kelimeleri

C# dilinde tip esnekliği sağlayan üç özel anahtar kelime bulunur. var ile tanımlanan değişkenin tipi, ilk atanan değere göre derleme zamanında belirlenir ve sonradan değiştirilemez; bu nedenle her türden veriyi saklayabileceği iddiası yanlıştır. dynamic ile tanımlanan değişkenin tür kontrolü ise derleme zamanında değil, çalışma zamanında yapılır ve değişkenin tipi sonradan farklı bir değer atanarak değiştirilebilir. object ise tüm tiplerin atası olan ve herhangi bir değer alabilen en genel tiptir.

Veri Tipi Dönüşümleri

C# dilinde iki tür veri tipi dönüşümü vardır. Örtük (implicit) dönüşüm, küçük bir tipten büyük bir tipe otomatik olarak gerçekleşir ve veri kaybı yaşanmaz. Aşikâr (explicit / cast) dönüşüm ise büyük tipten küçük tipe yapılır, programcı tarafından açıkça belirtilmesi gerekir ve veri kaybına yol açabilir. İşaretli tipten işaretsiz tipe yapılan dönüşümlerde taşma (overflow) durumunda beklenmedik değerler ortaya çıkabilir; bu durum tutarsız çıktılara neden olur.

Nullable Tipler ve Null Birleştirme Operatörü

C# dilinde değer tipleri normalde null alamaz; ancak tip adının yanına soru işareti eklenerek (örneğin int?) nullable hale getirilebilirler. Nullable bir değişkenin değeri null olduğunda, null birleştirme operatörü (??) devreye girerek varsayılan bir değer döndürür. Üçlü operatör (koşul ? değer1 : değer2) ile birlikte kullanıldığında, null kontrolü ve koşullu atama işlemleri kısa ve okunabilir biçimde yazılabilir.

String Değişmezleri ve Konsol Çıktısı

C# dilinde string ifadeler çift tırnak içinde yazılır; tek tırnak yalnızca char tipi için kullanılır. Özel karakterler içeren dizgeler için verbatim string (@”…”) veya ham string değişmezi (“””…”””) kullanılabilir. Console.Write() satır sonu eklemeden, Console.WriteLine() ise satır sonu ekleyerek çıktı verir. String interpolasyon ($”{}”) ve bileşik biçimlendirme (“{0}, {1}”) ile değişken değerleri çıktıya kolayca gömülebilir.

Operatörler ve Öncelik Sırası

C# dilinde operatör önceliği, ifadelerin nasıl değerlendirileceğini belirler. Artırma/azaltma operatörleri ön ek (++x, –x) veya son ek (x++, x–) biçiminde kullanılabilir; ön ekte önce işlem yapılır, son ekte önce mevcut değer kullanılır. Mantıksal operatörlerde & ve | operatörleri her iki tarafı da değerlendirirken, && ve || kısa devre değerlendirmesi yapar. XOR operatörü (^) ise iki işlenen aynıysa false, farklıysa true döndürür.

Kapsam ve Sabitler

C# dilinde süslü parantezlerle oluşturulan her blok bir kapsam oluşturur. Dış kapsamda tanımlanan bir değişken iç kapsamdan erişilebilir ve değiştirilebilir; yapılan değişiklik dış kapsama da yansır. const ile tanımlanan sabitler derleme zamanında belirlenmeli ve ilk tanımlamada değer atanmalıdır; sonradan atama yapılamaz ve bir değişkenin değeri sabite atanamaz. Bu kurallar gözetilmeden yazılan kodlar derleme hatası üretir.

20 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1
Aşağıda verilen programın çıktısı aşağıdaki şıklardan hangisinde doğru verilmiştir?
double pi;
Console.Write($"{pi} - ");
{
    pi = 3.14;
    Console.Write($"{pi} - ");
}
Console.Write($"{pi}");
ADoğru cevap
Açıklama
C# dilinde yerel değişkenler kullanılmadan önce kesinlikle bir değer atanmış olmalıdır. double pi; şeklinde tanımlanan pi değişkenine henüz değer atanmadan Console.Write($”{pi} – “) ile kullanılmaya çalışılması, derleyicinin “Use of unassigned local variable ‘pi'” hatasını üretmesine neden olur. Program derleme aşamasını geçemez ve çalışmaz.
Soru 2
Aşağıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
int x = -2, y = x-- - 2, z = 2;
sbyte result = (sbyte)(++x / - --y + z++ % 2 - x);
Console.WriteLine(result);
CDoğru cevap
Açıklama
++x → x=-2, değer -2. –y → y=-5, unary – ile +5. -2 / 5 = 0 (tamsayı bölmesi). z++ → değer 2, 2 % 2 = 0. 0 + 0 – x(-2) = 2. (sbyte)2 = 2.
Soru 3
Aşağıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
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("%");
EDoğru cevap
Açıklama

koşul false.
koşul: y > x false → ++y ile y=0 olur, 0 > 1 false → toplam false.
koşul: y == x → 0==0 true, x < z → 0<1 true, true & true → true.
Bu nedenle Console.WriteLine(“+”); çalışır ve program sonlanır.
Soru 4
C# dilinde veri tipleriyle ilgili aşağıdaki şıklardan hangisi yanlıştır?
BDoğru cevap
Açıklama
var anahtar kelimesiyle tanımlanan bir değişkenin tipi, ilk atanan değere göre derleme zamanında sabitlenir ve sonradan farklı tipte değer atanamaz. Her türden veriyi saklayabilen tip var değil, dynamic’tir. Diğer şıklar doğru bilgi içermektedir.
Soru 5
İ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 🤖 Yapay zekâ açıklaması

Console.Write yazdıktan sonra alt satıra geçmez, Console.WriteLine ise yazdıktan sonra alt satıra geçer. B şıkkında "İstanbul " yazılır, ardından WriteLine("Üniversitesi") aynı satıra devam edip satırı bitirir; sonra "2023" ikinci satıra yazılıp satır biter ve "AUZEF" üçüncü satıra yazılır. Böylece istenen üç satırlık çıktı elde edilir.

Soru 6
Veri tiplerinin değer aralıkları hangi şıkta doğru sıralanmıştır?
EDoğru cevap
Açıklama
Tam sayı tiplerinin değer aralıkları küçükten büyüğe: byte (8 bit, 0-255), short (16 bit), int (32 bit), long (64 bit). A’da byte > short yanlıştır. B’de long < int yanlıştır. C’de sıralama hatalıdır. E şıkkı doğru sıralamayı vermektedir.
Soru 7
Alağıdaki kodun çıktısı hangi şıkta doğru verilmiştir?
Console.Write("{0} - {2} - {1}", "İstanbul Üniversitesi", 1453, "C#");
BDoğru cevap
Açıklama
PDF’deki kodda format string “0 – {2} – {1}” şeklinde başlamaktadır; ilk {0} yerine literal “0” yazılmıştır. Dolayısıyla {2}=”C#”, {1}=1453 yerleştirildiğinde çıktı “0 – C# – 1453” olur.
Soru 8
Aşağıdaki programın çıktısı hangi şıkta doğru verilmiştir?
char harf = 'C';
char sembol = '#';
int yil = 2023;
string bolumKodu = "BLGPRG";
Console.Write("{0} {2} {3} {1}", sembol, bolumKodu, harf, yil);
ADoğru cevap
Açıklama
Parametreler: {0}=sembol(‘#’), {1}=bolumKodu(“BLGPRG”), {2}=harf(‘C’), {3}=yil(2023). Format “{0} {2} {3} {1}” → # C 2023 BLGPRG şeklinde çıktı üretilir.
Soru 9
Aşağıdaki değer atamalarından hangisi geçerlidir?
CDoğru cevap
Açıklama
A’da \W ve \S geçersiz kaçış dizisidir. B’de verbatim string içindeki çift tırnaklar “” şeklinde çift yazılmalıdır. C’deki ham string değişmezi (“”” “””) C# 11 ile gelen geçerli bir sözdizimidir. D’de virgülle birden fazla değer atanamaz. E’de tek tırnak char için kullanılır, string için değil.
Soru 10
Aşağıda verilen C# koduna göre aşağıdaki şıklardan hangisi yanlıştır?
float x = 1.5F;
ushort y = 1;
int z = (int)-0.5D;
double Toplam = x + y + z;
CDoğru cevap
Açıklama
Kodda herhangi bir derleme hatası yoktur. (int)-0.5D aşikâr dönüşümle z=0 değerini alır. ushort işaretsiz tam sayı tipidir (B doğru). Toplam = 1.5 + 1 + 0 = 2.5 olup double tipine örtük dönüşümle atanır (A, D, E doğru). Yanlış olan C şıkkıdır.
Soru 11
Aşağıda verilen değişkenler kullanılarak 0.1:-1:10 çıktısı alınmak istenmektedir. Aşağıdaki şıklardan hangisi istenen çıktıyı verir?
byte x = 1;
short y = -10;
double z = 0.1;
ADoğru cevap
Açıklama
İstenen çıktı 0.1:-1:10 şeklindedir. z=0.1, -x=-1, -y=-(-10)=10. A şıkkında string interpolasyon ile {z}=0.1, {-x}=-1, {-y}=10 doğru sırayla yerleştirilir ve istenen çıktı elde edilir.
Soru 12
Aşağıda verilen programla ilgili aşağıdaki şıklardan hangisi doğrudur?
sbyte a = -128;
byte b = (byte)a;
Console.Write(--b);
CDoğru cevap
Açıklama
sbyte a=-128 değeri byte tipine aşikâr (explicit) dönüşümle aktarılır; işaretli tipten işaretsiz tipe dönüşüm yapılmıştır (D yanlış; D tam tersi der). -128’in bit gösterimi byte olarak 128 olur, –b ile 127 döner. Ancak işaretli-işaretsiz dönüşüm ve taşma nedeniyle program tutarsız/beklenmedik çıktı üretir. Bu nedenle C şıkkı doğrudur.
Soru 13
Aşağıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
Console.Write("{0} : {1}", false != null, !(false || true & false) ^ false);
DDoğru cevap
Açıklama
İlk ifade: false != null → C# bu karşılaştırmayı true olarak değerlendirir. İkinci ifade: true & false → false; false || false → false; !false → true; true ^ false → true. Çıktı: True : True.
Soru 14
Aşağıdaki şıklarda verilen iki satırlı kodlardan hangisi derleme hatası vermez?
DDoğru cevap
Açıklama
A’da chr atanmadan kullanılır; derleme hatası. B’de const’a değişken değeri atanamaz; derleme hatası. C’de virgül yanlış ve Yil büyük harfle yazılmış; derleme hatası. D’de const dil “C#” ile doğru tanımlanmış ve kullanılmış; hata vermez. E’de const tanımlanırken değer verilmemiş; derleme hatası.
Soru 15
Aşağıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
char sembol = '-';
if (true ^ true)
    sembol = '.';
else if ( !true & true)
    sembol = ':';
else
    sembol = ';';
Console.Writeline(sembol);
BDoğru cevap
Açıklama
1. koşul: true ^ true → false; atlanır. 2. koşul: !true → false; false & true → false; atlanır. else bloğu çalışır: sembol = ‘;’. Çıktı: ;
Soru 16
Aşağıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
int x = -1;
int y = 1;
bool result = true & (++x >= -1) | (y <= + --x + 1);
Console.Write($"{x} : {result}");
BDoğru cevap
Açıklama
++x → x=0; 0 >= -1 → true. –x → x=-1; y <= -1+1 → 1 <= 0 → false. İfade: true & true | false → true | false → true. x=-1, result=true. Çıktı: -1 : True.
Soru 17
Aşağıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
float? a = -9F;
double b = (double)a++;
Console.Write((int)(--a - b++ + 1));
EDoğru cevap
Açıklama
a++ son ek: b = (double)(-9) = -9.0, ardından a = -8. –a → a = -9. b++ son ek: mevcut b = -9.0 kullanılır. İfade: (int)((-9) – (-9.0) + 1) = (int)(0 + 1) = 1. Çıktı: 1.
Soru 18
Aşağıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
int a = 1, b = -1;
int? c = null;
int result = b <= a ? c ?? 5 : 0;
Console.Write(result);
EDoğru cevap
Açıklama
b <= a → -1 <= 1 → true; üçlü operatörün true dalı çalışır: c ?? 5. c null olduğundan ?? operatörü 5 değerini döndürür. result = 5. Çıktı: 5.
Soru 19
Aşağıdaki programın çıktısı hangi şıkta doğru verilmiştir?
string dizge = "AUZEF";
{
    Console.WriteLine(dizge);
    {
        dizge = "Programlama";
        Console.Write("{0} ", dizge);
    }
    dizge = "Bilgisayar";
    Console.WriteLine(dizge);
    dizge = "C#";
}
Console.Write($"{dizge}");
DDoğru cevap
Açıklama
Console.WriteLine(“AUZEF”) → 1. satır. Console.Write(“Programlama “) → satır sonu yok. Console.WriteLine(“Bilgisayar”) → “Programlama Bilgisayar” 2. satır. Console.Write(“C#”) → 3. satır. Toplam çıktı: AUZEF / Programlama Bilgisayar / C#.
Soru 20
Aşağıda verilen programın çıktısı hangi şıkta doğru verilmiştir?
bool stat = true;
int x = -1, y = 2, z = 3;
int result = !stat & ++x == 0 ? x / y : z + x - y;
Console.Write(result);
DDoğru cevap
Açıklama
!stat → false. ++x → x=0. false & (0 == 0) → false & true → false. Koşul false olduğundan false dalı çalışır: z + x – y = 3 + 0 – 2 = 1. result = 1. Çıktı: 1.