C# Programlama 2023-2024 Vize Soruları
C# Programlama 2023-2024 Vize Soruları
#1. Aşağıdaki değer atamalarından hangisi geçerlidir?
Cevap : D) string str = “”” namespace class “””;
Açıklama : C# 11 ve üstünde çok satırlı (raw) string sözdizimi mevcuttur.
A, B ve C seçenekleri kaçış karakteri veya tırnak kullanımı açısından hatalıdır;
E seçeneği ise geçersiz bir ayrıştırma içerir. D seçeneği ise çok satırlı string söz dizimine uygundur
ve bu nedenle derleyici hatası vermez. Bu örnek, C# programlama temellerinde dize literal kullanımını göstermektedir.
bool stat = true; int x = -1, y = 2, z = 3; int result = !stat & ++x == 0 ? x / y : z + x - y; Console.Write(result);
#2. Yukarıdaki kod parçacığında program çıktısı hangi şıkta doğru verilmiştir?
Cevap : C) 1
Açıklama : !stat false döndürür, ++x ise x’i 0’a çıkarır (başta -1’di).
Ardından koşul (++x == 0) true olacağı için soru işareti (?) sonrası kısım çalışır (x / y).
x / y = 0 / 2 tamsayı bölmesi 0’dır, ancak kodda !stat & ++x == 0 ifadesindeki
bitwise AND (&) kullanımına dikkat edilmelidir. Sonuçta işlenenler ve öncelik sırası incelendiğinde sonuç 1 olarak elde edilir
(burada z + x - y kısmı devreye girebilir). Kod çalıştığında C# operatör önceliği sebebiyle aslında
!stat & (++x == 0) ifadesi değerlendirilir, x=0 olur, ancak z + x - y bölümü seçildiğinde 3+0-2=1 döndürür.
Böylece ekrana 1 yazdırılır.
#3. Aşağıdaki değişken atamalarından hangisi geçerlidir?
Cevap : B) int t = 0x05AD;
Açıklama : C#’ta onaltılık (hex) sabit atama 0x ile yapılır. 0x05AD geçerli bir 16’lık sayıdır.
Diğer seçenekler ya C# söz dizimi bakımından hatalı isimlendirme (int short gibi) ya da geçersiz sabit formatları içerir.
float x = 1.5F; ushort y = 1; int z = (int)(-0.5D); double Toplam = x + y + z;
#4. Yukarıdaki C# koduna göre aşağıdaki şıklardan hangisi yanlıştır?
Cevap : B) Kodda hata olduğundan dolayı derleyici hata verir.
Açıklama : Kod gerçekte derleme hatası vermez. x bir float, y bir ushort,
z ise (int) dönüştürülmüş bir double ifadesinden gelir. Bu, C#’ta explicit (aşikar) ve implicit (örtük)
dönüşümlerin bir arada olduğu geçerli bir örnektir. Toplam değeri 2.0 + 1.5’den dolayı 2.5 eder.
Dolayısıyla “hata verir” ifadesi yanlıştır.
int a = 1, b = -1; int? c = null; int result = b <= a ? c ?? 5 : 0; Console.Write(result);
#5. Yukarıdaki kod parçasının çıktısı hangi şıkta doğru verilmiştir?
Cevap : E) 5
Açıklama : Koşulda b <= a true olduğu için c ?? 5 ifadesi çalışır.
Burada c null olduğu için ?? operatörü ile 5 seçilir ve ekrana 5 yazılır.
C# null coalescing operatörünün (??) örnek kullanımıdır.
Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.
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("%");
#6. Yukarıdaki kodun çıktısı hangi şıkta doğru verilmiştir?
Cevap : E) +
Açıklama : Kod adım adım değerlendirildiğinde birinci if koşulu (y+z != x && y>z) yanlıştır.
İkinci else-if (y>x || ++y>z) ifadesinde y>x false ama ++y>z = 0>1 = false.
Üçüncü koşulda (y == x & x<z) y artık 0 olduğundan y==x (0==0) doğru ve x bu nedenle Console.WriteLine("+"); satırı çalışır ve “+” çıktısı alınır.
double pi;
Console.Write($" {pi} - ");
{
pi = 3.14;
Console.Write($" {pi} - ");
}
Console.Write($" {pi}");
#7. Yukarıdaki kodla ilgili program çıktısı hangi şıkta doğrudur?
Cevap : E) Program derleme hatası verir.
Açıklama : Değer atanmamış double pi; değişkeni ilk kullanım esnasında
yazdırılmaya çalışıldığından C# derleyicisi “kullanılmadan önce atanmalı” şeklinde hata verir.
C#’ta yerel değişkenler varsayılan başlangıç değerine sahip olmadıkları için program derlenmez.
Console.Write("{0} : {1}",
false != null,
!(false || true & false) ^ false
);
#8. Yukarıdaki ifadenin çıktısı hangi şıkta doğru verilmiştir?
Cevap : C) True : True
Açıklama : C#’ta false != null ifadesi bool bağlamında true döner.
İkinci kısımda (true & false) = false, dolayısıyla false || false = false,
!(false) = true, son olarak true ^ false = true (XOR).
Dolayısıyla ekrana True : True yazdırır.
float? a = -9F; double b = (double)a ; Console.Write((int)(--a - b 1));
#9. Yukarıdaki kodun çıktısı hangi şıkta doğru verilmiştir?
Cevap : C) 1
Açıklama : a ifadesinden önce a -9’dur.
(double)a b’ye -9 olarak atanır fakat a sonrasında -8’e dönüşür.
Ardından --a işlemi a’yı -9 yapar.
b ifadesi b’yi önce -9 kullanır, sonra b -8’e güncellenir.
İşlemin tamamı (int)(-9 - (-9) 1) = (int)(0 1) = 1 sonucunu verir.
byte x = 1;
short y = -10;
double z= 0.1;#10. Yukarida verilen değişkenler kullanılarak 0.1:-1:10 çıktısı alınmak istenmektedir. Aşağıdaki şıklardan hangisi istenen çıktıyı verir?
Cevap : A) Console.Write($”{z}:{-x}:{-y}”);
Açıklama : İstenen çıktı 0.1:-1:10 şeklindedir.
Dolayısıyla z=0.1, -x=-1, -y=10 sıralaması gerekir.
A şıkkındaki yerleşim tam olarak bu formatı verir ve ekranda “0.1:-1:10” görüntülenir.
Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.
#11. Veri tiplerinin değer aralıkları hangi şıkta doğru sıralanmıştır?
Cevap : A) byte < short < int < long
Açıklama : C# temel tamsayı tiplerinde en küçük aralığa sahip olan byte,
daha sonra short, ardından int ve en geniş aralığa sahip long gelir.
Bu, C# veri tipi boyut ve aralık sıralamasına uygundur.
char harf = 'C';
char sembol = '#';
int yil = 2023;
string bolumKodu = "BLGPRG";
Console.Write("{0} {2} {3} {1}", sembol, bolumKodu, harf, yil);
#12. Yukarıdaki program çıktısı hangi şıkta doğru verilmiştir?
Cevap : B) # C 2023 BLGPRG
Açıklama : Format parametrelerinde {0} = sembol,
{1} = bolumKodu, {2} = harf, {3} = yil sırasıyla yerleştirilmiştir.
Dolayısıyla çıktı # C 2023 BLGPRG şeklinde oluşur.
Console.Write("0 - {2} - {1}", "İstanbul Üniversitesi", 1453, "C#");
#13. Yukarıdaki kodun çıktısı hangi şıkta doğru verilmiştir?
Cevap : E) 0 – C# – 1453
Açıklama : Format ifadesinde {0} = "İstanbul Üniversitesi",
{1} = 1453, {2} = "C#" olarak sıralanmış. Ama stringin içinde “0 – {2} – {1}” kullanılıyor.
Yani önce “0” düz metin, sonra {2} = "C#", en sonda {1} = 1453 yazılır.
Bu yüzden ekranda “0 – C# – 1453” çıkar.
#14. C# dilinde veri tipleriyle ilgili aşağıdaki şıklardan hangisi yanlıştır?
Cevap : D) object veri tipinde bir değişken tanımlandığında değişkene değer atanması zorunludur.
Açıklama : object tipinde bir değişken tanımlarken mutlaka başlangıç değeri atama zorunluluğu yoktur.
Diğer seçenekler, var ve dynamic için bilinen davranışlardır. Bu yüzden D seçeneği yanlıştır.
int x = 4;
x >>= 2;
int y = ~x;
Console.Write($"{x} : {y}");
#15. Yukarıdaki kodun çıktısı hangi şıkta doğru verilmiştir?
Cevap : A) 1 : -2
Açıklama : x >>= 2, 4’ü ikili sistemde 2 bit kaydırarak 1’e düşürür.
~x (bitwise NOT) ifadesi 1’in tüm bitlerini tersine çevirir, bu da -2 sonucunu verir
(32-bit imzalı sayılar için). Bu yüzden çıktı 1 : -2 şeklindedir.
Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.
char sembol = '-'; if (true ^ true) sembol = '.'; else if (!true & true) sembol = ':'; else sembol = ';'; Console.WriteLine(sembol);
#16. Yukarıdaki kodun çıktısı hangi şıkta doğru verilmiştir?
Cevap : D) ;
Açıklama : true ^ true (XOR) false döndürür, bu yüzden ilk if bloğu çalışmaz.
İkinci blok (!true & true) => false & true = false, orası da çalışmaz.
else bloğuna düşülür ve sembol ';' olarak atanır.
Böylece ekrana noktalı virgül ; yazılır.
#17. Kullanıcıdan alınan girdiyi tam sayı veri tipine çeviren ve bunu tam sayı değişkende saklayan kod hangisidir?
Cevap : B) int x = Convert.ToInt32(Console.ReadLine());
Açıklama : Konsoldan okunan metin Console.ReadLine() ile alınır.
Convert.ToInt32 ifadesi, string’i tam sayıya dönüştürür ve bu da int türündeki x değişkenine atanır.
Diğer seçenekler ya söz dizimi hatalı ya da beklenen veri tipi yanlış dönüşüme sahiptir.
#18. Aşağıdaki iki satırlı kodlardan hangisi derleme hatası vermez?
Cevap : E) const string dil = “C#”; Console.Write($”{dil}”);
Açıklama : Const değişkenler tanımlandığı anda değer almalıdır ve
E seçeneğindeki kod buna uygundur. Diğer şıklarda ya const ile sonradan atama yapılmaya çalışılmış
(A) ya da değişken büyük-küçük harf hatası (C’de Yil yerine yil olmalı) gibi
derleme hataları mevcuttur.
int x = -1;
int y = 1;
bool result = true & (++x >= -1) | (y < = + --x + 1);
Console.Write($"{x} : {result}");
#19. Yukarıdaki kod parçasının çıktısı hangi şıkta doğrudur?
Cevap : A) -1 : True
Açıklama : ++x öncesi x=-1, ++x x’i 0’a çıkarır.
(0 >= -1) doğru, bu kısım true & true => true. Ardından y <= + --x + 1 kısmında
--x x’i tekrar -1’e indirir. Dolayısıyla + --x + 1 => + -1 + 1 = 0.
y <= 0 => 1 <= 0 false. true | false => true.
Son durumda x tekrar -1 olmuş ve result true’dur. Ekranda “-1 : True” görülür.
sbyte a = -128; byte b = (byte)a; Console.Write(--b);
#20. Yukarıdaki programla ilgili hangi ifade doğrudur?
Cevap : C) Program tutarsız çıktı verecektir.
Açıklama : (byte)a ifadesi, -128 değerini byte aralığına göre (0-255) dönüştürmeye çalışır.
Bu “wrap around” etkisi yaratır ve sonuç beklenmeyen bir değerdir (örneğin 128 gibi). Daha sonra --b işlemi ile
yine belirsiz bir aralıkta değer çıkabilir. Dolayısıyla tutarsız (öngörülmeyen) bir sonuç oluşur.
Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.
SONUÇ
C# Programlama 2023-2024 Vize Soruları
C# Programlama 2023-2024 Vize Soruları
| İstanbul Üniversitesi Açık ve Uzaktan Eğitim Fakültesi (Auzef) Açık Öğretim Fakültesi Bölüm : Bilgisayar Programcılığı 1. Sınıf C# Programlama Bahar Dönemi C# Programlama 2023-2024 Vize Soruları |
|---|
C# Programlama 2023-2024 Vize Soruları
C# Programlama Konuları: Değişkenler, Veri Tipleri ve Operatörler |
|
|---|---|
@lolonolo_com |
C# Programlama 2023-2024 Vize Soruları
C# Programlama 2023-2024 Vize Soruları |
|
|---|---|
@lolonolo_com |
![]() |
C# Programlama 2023-2024 Vize Soruları
Bilgisayar Programcılığı 1. Sınıf Bahar Dönemi Vize Soruları ve Deneme Sınavları, 2024 Sınav Soruları
