Ara Sınav (Vize) 10 soru

Nesneye Yönelik Programlama Vize Deneme Sınavı -4

Kaynak: https://lolonolo.com/2022/08/11/nesneye-yonelik-programlama-vize-deneme-sinavi-4/

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

Nesneye Yönelik Programlama Vize Deneme Sınavı -4

Nesneye Yönelik Programlama Vize Deneme Sınavı -4

10 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 metot tanımlarından hangisi yanlıştır?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta tanımlayıcılar (değişken veya metot adları) rakamla başlayamaz; bir harf ya da alt çizgi (_) ile başlamalıdır. Bu nedenle 3topla geçersiz bir metot adıdır. Diğer tanımlar, dönüş türü ve parametre türleri farklı olan geçerli imzalardır.

Soru 2
Aşağıda verilen metot tanımlarından hangisi yanlıştır?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta metot parametrelerinin her birinin türü açıkça yazılmalıdır. int topla(a, double b) tanımında a parametresinin türü belirtilmediği için bu tanım hatalıdır. Doğru yazım örneğin int topla(int a, double b) olmalıdır.

Soru 3
I – Sınıf (class) içinde tanımlanırlar.
II – Yapı (struct) içinde tanımlanırlar.
III – Herhangi bir yerde tanımlanabilirler.
C# programalama dili için metot tanımları ile ilgili yukarda verilenlerden hangisi doğrudur?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta metotlar bir türün üyesi olarak sınıf (class) veya yapı (struct) içinde tanımlanır. Metotlar herhangi bir yerde, örneğin bir namespace içinde doğrudan, tek başına tanımlanamaz. Bu nedenle I ve II doğrudur.

Soru 4
I – Metotlar parametre almazlar.
II – Metotların dönüş türü void olabilir.
III – Metotların parametreleri mutlaka zorunlu olmalıdır.
C# programlama dilinde metot imzası ile ile ilgili yukarda verilenlerden hangisi doğrudur?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta metotlar parametre alabilir, bu yüzden I yanlıştır. III de yanlıştır, çünkü parametreler opsiyonel (varsayılan değerli) olabilir veya metot hiç parametre almayabilir. Değer döndürmeyen metotların dönüş türü void olarak yazılır, bu yüzden yalnız II doğrudur.

Soru 5
I – Metotlar sadece bir kez kullanılabilirler.
II – Metotlar zorunlu parametreler içerebilir.
III – Metotlar varsayılan parametreler içerebilir.
C# programlama dilinde metotlar ile ilgili verilen ifadelerden hangisi doğrudur?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Bir metot tanımlandıktan sonra istenildiği kadar çağrılabilir, bu yüzden I yanlıştır. Metotlar zorunlu parametreler içerebileceği gibi int x = 5 biçiminde varsayılan değerli (opsiyonel) parametreler de içerebilir. Bu nedenle II ve III doğrudur.

Soru 6
I – Opsiyonel parametreler için varsayılan bir değer olmalıdır.
II – Opsiyonel parametreler için varsayılan değere ihtiyaç yoktur.
III – Opsiyonel parametreler, zorunlu parametrelerle birlikte kullanılamazlar.
C# programlama dilinde opsionel metot parametreleri ile ilgili verilen ifadelerden hangisi doğrudur?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta opsiyonel parametre, varsayılan değer verilerek tanımlanır (ör. void Yaz(string s, int adet = 1)). Varsayılan değer verilmeyen parametre zorunludur, bu yüzden I doğru, II yanlıştır. Opsiyonel parametreler zorunlu parametrelerle birlikte kullanılabilir, tek kural parametre listesinin sonunda yer almalarıdır; bu yüzden III de yanlıştır.

Soru 8
Yukardaki verilen fonksiyon çalıştırıldığında b değeri kaç olur?
BDoğru cevap
Soru 9
int islemYap(ref int a)
{
a+= 1;
return a;
}
….
int b = 10;
islemYap(ref b);
Yukardaki verilen fonksiyon çalıştırıldığında b değeri kaç olur?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

ref anahtar kelimesi değişkeni referansla geçirir, yani metot içindeki a doğrudan b'nin kendisidir. a += 1 işlemi b'yi 10'dan 11'e çıkarır. Dönüş değeri kullanılmasa da b kalıcı olarak değişmiş olur, bu yüzden sonuç 11'dir. ref olmasaydı b 10 olarak kalırdı.

Soru 10
int f(int n)
{
if (n <= 1)
return n;
return f(n-1) + f(n-2);
}
Yukardaki verilen fonksiyon çalıştırıldığında f(7) için çağrıldığında dönderdiği nihai değer kaç olur?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Bu fonksiyon Fibonacci dizisini özyinelemeli olarak hesaplar: f(0)=0 ve f(1)=1 temel durumlardır, sonraki her terim önceki iki terimin toplamıdır. Buna göre f(2)=1, f(3)=2, f(4)=3, f(5)=5, f(6)=8 ve f(7)=8+5=13 bulunur.

Soru 11
int f(int n)
{
if(n ==0 || n == 1)
return 1;
return n * f(n-1);
}
Yukardaki verilen fonksiyon çalıştırıldığında f(4) için çağrıldığında dönderdiği nihai değer kaç olur?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Bu fonksiyon faktöriyeli özyinelemeli olarak hesaplar; n 0 veya 1 olduğunda 1 döndürür. Hesap şöyle ilerler: f(4) = 4·f(3) = 4·3·f(2) = 4·3·2·f(1) = 4·3·2·1 = 24.