Diğer 10 soru

Nesneye Yönelik Programlama Ünite 2

Kaynak: https://lolonolo.com/2022/08/11/nesneye-yonelik-programlama-unite-2/

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

C# Programlama Dilinin Temel Yapıları

C# Programlama Dilinin Temel Yapıları

10 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1
I – var sehir;
II – var sehir = “İstanbul”;
III – int 3yas;
Yukarda verilen değişken tanımları ile ilgili hangi ifade veya ifadeler doğrudur?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

var ile tanımlanan değişkenin türü, atanan değerden çıkarılır. Bu yüzden var ile tanımlanan değişkene tanım anında değer verilmelidir; var sehir; derleme hatası verir. II geçerlidir ve sehir değişkeni string olur. int 3yas; ise geçersizdir, çünkü değişken adları rakamla başlayamaz.

Soru 2
int türündeki bir değişkenin boyutu kaç byte’tır?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta int (System.Int32) 32 bitlik bir tam sayı türüdür. 32 bit = 4 byte olduğu için sizeof(int) 4 değerini döndürür. Karşılaştırma için short 2 byte, long ise 8 byte yer kaplar.

Soru 3
I – double tutar;
II – string ad;
III – int boyut;
Yukarda verilen değişken tanımları ile ilgili hangi ifade veya ifadeler doğrudur?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Üç tanım da geçerlidir: her birinde önce geçerli bir tür (double, string, int), ardından kurallara uygun bir değişken adı yazılmıştır. Açıkça tür belirtildiğinde (var kullanılmadığında), tanım anında değer vermek zorunlu değildir.

Soru 4
C# dilinde sizeof işleci ile ilgili aşağıdakilerden hangisi doğrudur?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

sizeof operatörü bir türün bellekte kapladığı alanı byte cinsinden döndürür. Örneğin sizeof(int) 4, sizeof(double) ise 8 değerini verir. Değeri bit cinsinden vermez ve tür dönüşümü yapmaz.

Soru 5
C# dilinde Kutulama (Boxing) işleminin amacı nedir?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Kutulama (boxing), int gibi bir değer türünü object gibi bir referans türüne dönüştürme işlemidir. Bu işlemde değer, heap'te oluşturulan bir nesnenin içine konur. Örnek: int x = 5; object o = x;.

Soru 6
C# dilinde Kutudan Çıkartma (Unboxing) işleminin amacı nedir?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Kutudan çıkarma (unboxing), daha önce kutulanmış bir referans türünü (object) tekrar değer türüne dönüştürür. Bu dönüşüm açıkça yazılmalıdır. Örnek: object o = 5; int x = (int)o;. Bu işlem kutulamanın (boxing) tersidir.

Soru 7
I – Örtülü Dönüşüm (Implicit Cast) işlemini destekler
II – Açık Dönüşüm (Explicit Cast) işlemini destekler
III – Tür dönüşümünde her zaman veri kaybı yaşanır.
C# dili için yukarda verilen tür dönüşüm işlemleri ile ilgili hangi ifade veya ifadeler doğrudur?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C# hem örtülü (implicit) dönüşümü (ör. int → long, otomatik) hem de açık (explicit) dönüşümü (ör. (int)3.7) destekler. Ancak her dönüşümde veri kaybı olmaz; küçük türden büyük türe yapılan dönüşüm kayıpsızdır. Bu yüzden III yanlıştır.

Soru 8
I – int a = (int) 3.4;
II – long b = (long) 2.4;
III – int c = (int) 4.0;
C# dili için yukarda verilen tür dönüşüm işlemleri ile ilgili hangi madde yada maddelerde veri kaybı yaşanır?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Ondalıklı bir sayı tam sayı türüne çevrildiğinde ondalık kısmı atılır. (int)3.4 işleminin sonucu 3 olur ve 0.4 kaybolur. (long)2.4 işleminin sonucu 2 olur ve 0.4 kaybolur. (int)4.0 işleminin sonucu ise 4 olur; ondalık kısım zaten 0 olduğu için veri kaybı yoktur. Bu yüzden cevap I ve II'dir.

Soru 9
I – ushort
II – long
III – int
C# dili için yukarda verilenden maddelerden hangisi veya hangileri değer türündeir (value type) ?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

ushort, long ve int sayısal temel türlerdir ve hepsi değer türüdür (struct tabanlı). Değer türleri değişkenin içinde doğrudan değeri tutar. string, class ve diziler ise referans türleridir.

Soru 10
I – string
II – double
III – uint
C# dili için yukarda verilenden maddelerden hangisi veya hangileri referans türündeir (reference type) ?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

string bir referans türüdür (System.String sınıfı). double ve uint ise sayısal değer türleridir. Bu yüzden yalnız I doğrudur. string değişmez (immutable) olduğu için bazen değer türü gibi davranır, ancak bir referans türüdür.