alpsahin/tubitak-olimpiyat-dataset-v2 huggingface dataset:
Ortaokul Bilgisayar Olimpiyatı 2023, 1. Aşama, Soru 26

[21-30] Sorular İçin Açıklama
● Soruları C programlama dili çerçevesinde cevaplayınız.
● Derleyici olarak gcc kullanıldığını varsayınız.
● Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini
varsayınız.

---

Aşağıdaki programın çıktısı ne olur?
```c
long x = 1416943;
int y = 0;
for (int i=0; i < 7; i++) {
y = y * 10 + (x % 10) * (x % 2);
x /= 10;
}
printf("%d \n", y);
```

Şıklar:
A) 3496141 | B) 3090101 | C) 3191111 | D) 1416943 | E) 1010903

Cevap: B 3090101

Çözüm:
Verilen kod bir sayının her bir basamağı için çift olanları sıfır yapacak şekilde sayıyı tersten oluşturur. Burada istenirse for döngüsü while (x > 0) ifadesi ile değiştirilebilir. Yani
Ortaokul Bilgisayar Olimpiyatı 2023, 1. Aşama, Soru 27

[21-30] Sorular İçin Açıklama
● Soruları C programlama dili çerçevesinde cevaplayınız.
● Derleyici olarak gcc kullanıldığını varsayınız.
● Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini
varsayınız.

---

Aşağıda metod1 ve metod2 fonksiyon tanımları verilmiştir. method1 (35) ifadesinin sonucu nedir?
|<p>```c</p><p>int method1(int x) {</p><p>    if (x > 9) return method2(x / 2);</p><p>    else return x;</p><p>}</p><p>```</p>|<p>```c</p><p>int method2(int x) {</p><p>    return method1(x - 1);</p><p>}</p><p>```</p|
| :- | :- |

Şıklar:
A) 6 | B) 7 | C) 8 | D) 9 | E) 10

Cevap: B 7

Çözüm:
method1(35) → method2(17) → method1(16) → method2(8) → method1(7) → 7.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 2

[Soru 2-4 için açıklama]
Bir bahçıvan bir çiçek yatağına tam olarak dört çeşit çiçek dikecektir. Çiçekler dört sıra olarak
düzenlenecektir ve her bir sırada tek çeşit çiçek olacak şekilde dikilecektir. Ayrıca çiçekler birinci sıradan
dördüncü sıraya doğru artan boy sırasına göre dikileceklerdir.
Bahçıvan ekeceği çiçekleri yedi çeşit çiçek arasından seçebilecektir. Bu çiçek çeşitleri artan boy sırasına
göre şunlardır: kırmızı begonya, pembe petunya, turuncu kadife çiçeği, kırmızı sardunya, beyaz aslanağzı,
sarı zinya ve pembe kozmos çiçeği.
Ekilecek çiçek çeşitleri seçilirken aşağıdaki koşulların da sağlanması gerekmektedir:
● Aynı renge sahip iki farklı çiçek çeşidi seçilemez. Örneğin hem kırmızı begonya hem kırmızı
sardunya seçilemez.
● Turuncu çiçekler, sarı çiçeklerin ekildiği sıranın hemen yanındaki bir sıraya dikilemez.

---

Eğer bahçıvan zinyaları üçüncü sıraya dikerse, ikinci sıraya aşağıdakilerden hangisi dikilebilir?

Şıklar:
A) Begonyalar | B) Petunyalar | C) Kadife çiçekleri | D) Sardunyalar | E) Kozmos çiçekleri

Cevap: D Sardunyalar

Çözüm:
Üçüncü sıraya sarı zinya ekilmesi durumunda, boy koşulundan dolayı 4. Sıraya pembe kozmos dikilmek zorundadır. Bu durumda pembe petunya seçenekler arasından elenir. Turuncu Kadife çiçeği de sarı zinya ile yan yana olamayacağı için ikinci sıraya ekilemez. Kalanlar arasında boy koşulunu sağlayacak şekilde birinci ve ikinci sıralara ya begonya ve aslanağzı, ya begonya ve sardunya, ya da sardunya ve aslanağzı ekilebilir. Sardunya ikinci sıraya ekilebilecekler arasında olduğu için
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 3

[Soru 2-4 için açıklama]
Bir bahçıvan bir çiçek yatağına tam olarak dört çeşit çiçek dikecektir. Çiçekler dört sıra olarak
düzenlenecektir ve her bir sırada tek çeşit çiçek olacak şekilde dikilecektir. Ayrıca çiçekler birinci sıradan
dördüncü sıraya doğru artan boy sırasına göre dikileceklerdir.
Bahçıvan ekeceği çiçekleri yedi çeşit çiçek arasından seçebilecektir. Bu çiçek çeşitleri artan boy sırasına
göre şunlardır: kırmızı begonya, pembe petunya, turuncu kadife çiçeği, kırmızı sardunya, beyaz aslanağzı,
sarı zinya ve pembe kozmos çiçeği.
Ekilecek çiçek çeşitleri seçilirken aşağıdaki koşulların da sağlanması gerekmektedir:
● Aynı renge sahip iki farklı çiçek çeşidi seçilemez. Örneğin hem kırmızı begonya hem kırmızı
sardunya seçilemez.
● Turuncu çiçekler, sarı çiçeklerin ekildiği sıranın hemen yanındaki bir sıraya dikilemez.

---

Aşağıdaki renklerden hangisine sahip çiçekler üçüncü sıraya dikilemez?

Şıklar:
A) Turuncu | B) Pembe | C) Kırmızı | D) Beyaz | E) Sarı

Cevap: B Pembe

Çözüm:
Üçüncü sıraya pembe çiçeklerden dikilemez. Pembe petunya ekilmesi durumunda, kendisinden kısa iki çeşit çiçeğe ihtiyaç vardır, fakat kendisinden kısa sadece begonyalar vardır. Pembe kozmoz çiçeği ekilmesi durumunda, kendisinden uzun bir çeşit çiçeğe ihtiyaç vardır, faka kendisinden uzun çiçek çeşidi bulunmamaktadır.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 4

[Soru 2-4 için açıklama]
Bir bahçıvan bir çiçek yatağına tam olarak dört çeşit çiçek dikecektir. Çiçekler dört sıra olarak
düzenlenecektir ve her bir sırada tek çeşit çiçek olacak şekilde dikilecektir. Ayrıca çiçekler birinci sıradan
dördüncü sıraya doğru artan boy sırasına göre dikileceklerdir.
Bahçıvan ekeceği çiçekleri yedi çeşit çiçek arasından seçebilecektir. Bu çiçek çeşitleri artan boy sırasına
göre şunlardır: kırmızı begonya, pembe petunya, turuncu kadife çiçeği, kırmızı sardunya, beyaz aslanağzı,
sarı zinya ve pembe kozmos çiçeği.
Ekilecek çiçek çeşitleri seçilirken aşağıdaki koşulların da sağlanması gerekmektedir:
● Aynı renge sahip iki farklı çiçek çeşidi seçilemez. Örneğin hem kırmızı begonya hem kırmızı
sardunya seçilemez.
● Turuncu çiçekler, sarı çiçeklerin ekildiği sıranın hemen yanındaki bir sıraya dikilemez.

---

Eğer bahçıvan begonya ve petunya ekerse, aşağıdakilerden hangi çeşidi de mutlaka ekmelidir?

Şıklar:
A) Kadife çiçeği | B) Sardunya | C) Aslanağzı | D) Zinya | E) Kozmos çiçeği

Cevap: C Aslanağzı

Çözüm:
Bu durumda begonya birinci sıraya, petunya ikinci sıraya ekilmiş olmalıdır. Başka kırmızı ve pembe çiçek ekilemeyeceğinden sardunya ve kozmoz çiçeği elenir. Kalanlar arasında turuncu ve sarı çiçekler yan yana olamayacağından, üçüncü ve dördüncü sıralara ya kadife çiçeği ve aslanağızı, ya da aslanağızı ve zinya ekilmelidir.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 5

Bir fraktal grafik bir fonksiyonun yinelemeli olarak kendini çağırması suretiyle elde edilebilir. Yinelemeli olarak çağrılan fonksiyon kendisine gelen parametreleri baz alarak siyah renkte çizgiler veya poligonlar çizmektedir. Bir poligon, en basit tanımıyla, düz bir düzlem üzerindeki bir dizi ardışık kenardan oluşan kapalı bir şekildir (örneğin üçgen, kare, dikdörtgen). Çizgi kalınlıkları aynı veya farklı olabilmekle beraber bu soru için bir önem teşkil etmemektedir. Aşağıda şekilde örnek olarak ağaç fraktalı verilmektedir. Bu örnekte fraktal düz bir çizgi çizmektedir ve kendisini iki defa çağırmaktadır. Her bir dal kendisini çizdikten sonra fonksiyonu iki dal için çağırarak basit bir ağaç fraktalı üretmektedir. Şıklardaki fraktallardan hangisi tarif edilen yinelemeli fonksiyon ile oluşturulamaz?
[GÖRSEL]

Şıklar:
A) [GÖRSEL] B) [GÖRSEL] C) [GÖRSEL] D) [GÖRSEL] E) [GÖRSEL]

Cevap: D [GÖRSEL]

Çözüm:
Verilen yinelemeli fonksiyon tanımında sadece siyah renkte çizme işlemi tanımlanmıştır. Fakat D şıkkında verilen fraktal için sadece siyah ile çizim işlemi değil aynı zamanda silme işlemi de yapılması gerekmektedir.
[GÖRSEL]
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 7

Bir tiyatro salonunda 1'den 1024'e kadar numaralandırılmış 1024 koltuk bulunmaktadır. İzleyicilerin boyları sırayla artacak şekilde oturtulmuş olup, en kısa boylu izleyici 1 numaralı, en uzun boylu izleyici 1024 numaralı koltukta oturmaktadır. Özel bir çekilişle seçilen bir izleyicinin boy bilgisi rastgele çekilmiştir ve sinema görevlisinin bu kişiyi bir oyun oynar gibi hızlı bir şekilde bulması gerekmektedir. Görevli, bir oyunmuş gibi, izleyicilerin boy bilgilerini kullanarak ikili arama yapmaktadır. Bu durumda aşağıdaki ifadelerden hangisi yanlıştır?

Şıklar:
A) İkili arama yöntemi kullanılarak, sinema görevlisi en kötü durumda izleyiciyi 10 adımda bulabilir. | B) Görevli, aramayı ortadaki koltuktan başlatarak, çekilişle belirlenen boyu bulana kadar üst ya da alt yarıya geçerek aramayı daraltır. | C) İkili arama yapılırken, her adımda kalan arama alanı yarıya indirilir, bu da aramanın hızlı bir şekilde sonuçlanmasını sağlar. | D) İkili arama, boy bilgisi bilinmeyen bir izleyici için uygulanabilir; görevli rastgele bir boy bilgisine göre aramayı şekillendirir. | E) Çekilişle belirlenen boy bilgisi arama sırasında bulunan koltuk numarası, izleyicinin kendi koltuk numarası ile doğrudan eşleşir.

Cevap: D İkili arama, boy bilgisi bilinmeyen bir izleyici için uygulanabilir; görevli rastgele bir boy bilgisine göre aramayı şekillendirir.

Çözüm:
İkili arama, belirli bir düzen içinde (bu örnekte boy sırasına göre) sıralanmış veriler üzerinde uygulanır. Yani, sinema görevlisi aramayı, belirli bir boy bilgisi (çekilişle seçilen boy) ile yapar, bu nedenle "boy bilgisi bilinmeyen" bir izleyici için ikili arama yönemi doğrudan uygulanamaz. Diğer şıklar, ikili arama sürecinin doğru adımlarını ve işleyişini açıklamaktadır.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 8

[8-10 Sorular İçin Açıklama]
Bir sıralama algoritması A dizisini girdi olarak alır ve şu şekilde çalışarak A’yı sıralar:
1. A’nın içinden rastgele bir eleman seç. Bu eleman X olsun.
2. A’yı X’in değerine göre şu şekilde iki alt diziye böl: İlk alt dizi X’den küçük olan elemanları, ikinci
alt dizi X’den büyük olan elemanları içerecektir.
3. Her iki alt dizi, aynı şekilde yukarıda veirlen 1. ve 2. adımlar kullanılarak ayrı ayrı özyineli olarak
sıralanır.
4. Son olarak, sıralanmış alt listeler ve rastgele seçilen X elemanı birleştirilerek sıralı bir dizi elde
edilir.

---

Sıralanacak olan dizi başlangıçta şu elemanları içersin, [23, 17, 8, 10, 3, 34, 50, 19]. Algoritmanın ilk adımında X=23 olarak seçilirse algoritmanın 3. adımında elde edilen iki alt dizi aşağıdakilerden hangisi olabilir?

Şıklar:
A) [17, 8, 10, 3] ve [34, 50, 19] | B) [17, 8, 10] ve [34, 50, 19, 3] | C) [3, 8, 15, 17, 19] ve [34, 50] | D) [17, 8, 10, 3, 19] ve [34, 50] | E) Hiçbiri

Cevap: D [17, 8, 10, 3, 19] ve [34, 50]

Çözüm:
X=23 olarak seçildiğinde ilk alt dizi orijinal dizideki 23'den küçük elemanları ikinci alt dizi ise 23'den büyük elemanları içermek zorundadır. Bu şartı sağlayan tek seçenek D şıkkında verilmiştir. C şıkkında orijinal dizide olmayan bir eleman (15) eklenmiş, 10 ise çıkarılmıştır. Yani algoritmada yazmayan bir işlem yapılmıştır.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 9

[8-10 Sorular İçin Açıklama]
Bir sıralama algoritması A dizisini girdi olarak alır ve şu şekilde çalışarak A’yı sıralar:
1. A’nın içinden rastgele bir eleman seç. Bu eleman X olsun.
2. A’yı X’in değerine göre şu şekilde iki alt diziye böl: İlk alt dizi X’den küçük olan elemanları, ikinci
alt dizi X’den büyük olan elemanları içerecektir.
3. Her iki alt dizi, aynı şekilde yukarıda veirlen 1. ve 2. adımlar kullanılarak ayrı ayrı özyineli olarak
sıralanır.
4. Son olarak, sıralanmış alt listeler ve rastgele seçilen X elemanı birleştirilerek sıralı bir dizi elde
edilir.

---

Aşağıdaki durumların hangisinde verilen algoritma diğerlerine göre daha fazla işlem yaparak sonlanır?

Şıklar:
A) X her zaman ortanca eleman seçildiğinde | B) X her zaman ilk eleman seçildiğinde | C) X her zaman en küçük eleman seçildiğinde | D) X her zaman son eleman seçildiğinde | E) Tüm seçeneklerde algoritma eşit sayıda işlem yapar.

Cevap: C X her zaman en küçük eleman seçildiğinde

Çözüm:
X eğer her zaman en küçük eleman olarak seçilirse alt dizilerde sırasıyla 0 ve n-1 eleman olur. Bu durumda algoritma n-1 defa alt dizilere bölme işlemi yapacaktır ki bu en kötü durumdur. B şıkkındaki gibi X’in her zaman ilk eleman olarak seçilmesi halinde işlem sayısının maksimum olması için dizinin küçükten büyüğe sıralanmış olması şartı gerekmektedir. Aynı  şekilde D’deki durumun olması için dizinin zaten sıralanmış olması gerekmektedir.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 10

[8-10 Sorular İçin Açıklama]
Bir sıralama algoritması A dizisini girdi olarak alır ve şu şekilde çalışarak A’yı sıralar:
1. A’nın içinden rastgele bir eleman seç. Bu eleman X olsun.
2. A’yı X’in değerine göre şu şekilde iki alt diziye böl: İlk alt dizi X’den küçük olan elemanları, ikinci
alt dizi X’den büyük olan elemanları içerecektir.
3. Her iki alt dizi, aynı şekilde yukarıda veirlen 1. ve 2. adımlar kullanılarak ayrı ayrı özyineli olarak
sıralanır.
4. Son olarak, sıralanmış alt listeler ve rastgele seçilen X elemanı birleştirilerek sıralı bir dizi elde
edilir.

---

Aşağıdaki durumların hangisinde verilen algoritma digerlerine göre daha az sayıda işlem yaparak sonlanır?

Şıklar:
A) X her zaman ortanca eleman seçildiğinde B )X her zaman ilk eleman seçildiğinde | C) X her zaman en küÇük eleman seçildiğinde | D) X her zaman son eleman seçildiğinde | E) Tüm seçeneklerde algoritma eşit sayıdı işlem yapar.

Cevap: B 

Çözüm:
X eğer her zaman ortanca eleman olarak seçilirse alt dizilerin birinde n/2 diğerinde n/2 eleman olur. Bu durumda algoritma O(log n) defa alt dizilere bölme işlemi yapacaktır ki bu ın iyi durumdur.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 12

Bir A veri yapısı, düğümler (nodes) ve kenarlar (edges) olarak adlandırılan iki tür bileşenden oluşmaktadır. Her kenar, tam olarak iki düğümü birbirine bağlar. Bu veri yapısında herhangi bir düğümden başka bir düğüme gidilebilir ve bunun için yalnızca bir yol vardır.
Yukarıdaki tanıma göre A veri yapısında n tane düğüm varsa (n > 0), A’da kaç tane kenar bulunur?

Şıklar:
A) n-1 | B) n | C) n+1 | D) 2n | E) Cevap n’nin değerine göre değişir.

Cevap: A n-1

Çözüm:
Verilen tanım A’nın bir ağaç (olduğunu göstermektedir). A’da n tane düğüm varsa verilen tanıma göre n-1 tane kenar olmak zorundadır. Bundan daha fazla kenar olması durumunda iki düğüm arasında birden fazla yol olur. Daha az kenar olduğunda ise düğümler arasında yol bulunamaz.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 13

Bir çiftlikte toplam 3 çeşit evcil hayvan (kaplumbağa, tavşan, kedi) vardır. Bu evcil hayvanlardan sekizi kaplumbağa değildir, beşi tavşan değildir ve yedisi kedi değildir. Bu çiftlikte kaç tane evcil hayvan vardır?

Şıklar:
A) 6 | B) 8 | C) 10 | D) 11 | E) Bilinemez.

Cevap: C 10

Çözüm:
A=Kaplumbağa, B=Tavşan, C=Kedi sayılarını göstersin. Verilenlere göre,
B+C=8
A+C=5
A+B = 7
İlk denkleme göre B=8-C olur ve bu son denkleme yazılırsa
A+8-C=7
A-C=-1
A = C - 1
İkinci denklem kullanıldığında,
C-1+C=5
2C=6
C = 3
Bu şekilde ilk denklemler kullanılarak A = 2 ve B = 5 olur. Toplam sayı A+B+C=10.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 14

5 arkadaşın her birinin diğerlerine birer hediye verebilmesi için toplam kaç hediyeye ihtiyaç vardır?

Şıklar:
A) 25 | B) 10 | C) 15 | D) 16 | E) 20

Cevap: E 20

Çözüm:
Her kişi 4 tane hediye verir. Toplam 5 kişi olduğundan verilen hediye sayısı 5*4=20.
İçinde 2 olan iki basamaklı sayılar sistematik olarak listelenebilir. Bu sayılar: 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 42, 52, 62, 72, 82, 92'dır. Toplam 18 tane vardır.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 16

Verilen 3 tam sayıyı küçükten büyüğe doğru sıralamak istiyoruz ve aynı anda sadece 2 tane sayı karşılaştırabiliriz. En çok kaç tane karşılaştırma ile bu sayıları doğru bir şekilde sıralarız?

Şıklar:
A) 2 | B) 3 | C) 4 | D) 5 | E) 6

Cevap: B 3

Çözüm:
Verilen sayılar a,b,c olsun. Bu sayıları sıralayan algoritmanın akış diyagramı aşağıdaki gibidir.
[GÖRSEL]
Buna göre en fazla 3 karşılaştırma ile sayılar sıralanabilmektedir.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 19

Bulanık mantık, bilgisayarların temelini oluşturan doğru veya yanlış (0, 1) üzerine kurulu, doğruluk dereceleri de içeren bir yaklaşımdır. Değişkenler sadece 0 ile 1 değil, bu iki değer arasında kademeli bir doğruluk değeri de alabilirler. Örneğin, klasik mantıksal ifadede \(a = 0\) için \(\neg a \rightarrow 1\) ve \(a = 1\) için \(\neg a \rightarrow 0\) olur. Bulanık mantıkta ise \(\neg a = 1 - a\) olarak ifade edilir. Örneğin, \(a = 0\) için \(\neg a = 1 - a = 1 - 0 = 1\) ve \(a = 0.8\) için \(\neg a = 1 - a = 1 - 0.8 = 0.2\) olur. Klasik mantık için 've', 'veya' ve 'özel veya' operatörleri için doğruluk tablosu aşağıda verilmiştir. Bu tablodaki değerler bulanık mantık operatörleri için de geçerlidir. Bu durumda seçeneklerden hangisi doğru bir bulanık mantık operatörüdür?
<table><tr><td>a</td><td>b</td><td>v(a, b)</td><td>∧(a, b)</td><td>⊕(a, b)</td></tr><tr><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td></tr><tr><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td></tr><tr><td>1</td><td>1</td><td>1</td><td>1</td><td>0</td></tr></table>

Şıklar:
A) v (a, b) = min(a, b) | B) v (a, b) = ab | C) ∧ (a, b) = max(a, b) | D) ∧ (a, b) = a + b | E) ⊕ (a, b) = (a, b) - min(a, b)

Cevap: E ⊕ (a, b) = (a, b) - min(a, b)

Çözüm:
a ve b için 0, 0.2 ve 1 doğruluk değerleri konulunca bir tek E şıkkının koşulları sağladığı görülecektir.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 20

Bir kutudaki toplar her dakika sihirli bir şekilde ikiye bölünerek çoğalıyor. Kutuda başlangıçta 1 top vardır. Topların sayısı kaç dakika sonra 55'i geçer?

Şıklar:
A) 3 | B) 4 | C) 5 | D) 6 | E) 7

Cevap: D 6

Çözüm:
Başlangıçta kutuda 1 top olduğu için, her dakika toplar ikiye bölünerek çoğalır. İlk dakikada 1 top ikiye bölünerek 2 olur, ikinci dakikada her biri 2 olan 2 top 4 olur, üçüncü dakikada her biri 4 olan 4 top 8 olur ve bu şekilde devam eder. Yani her bir dakika sonunda topların sayısı iki katına çıkar. Dolayısıyla, kutuda 1 dakikada 2 top, 2 dakikada 4 top, 3 dakikada 8 top, 4 dakikada 16 top, 5 dakikada 32 top olur. 6. dakikada ise topların sayısı 64'e ulaşır, bu da 55'i geçer. Dolayısıyla cevap 6 dakikadır.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 21

[21-30] Sorular İçin Açıklama
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

Aşağıdaki fonksiyon n elemanlı bir tamsayı dizisi olan A, ve bir pozitif tamsayı olan n parametreleri ile çağrıldığında ne yapar?
```c
int f(int A[], int n) {
int t;
if (n == 1)
return A[0];
else {
t = f(A, n-1);
if (A[n-1] > t)
return A[n-1];
else
return t;
}
}
```

Şıklar:
A) A'daki en büyük değeri döner ve A'yı değiştirmez. | B) A'daki en küçük değeri döner ve A'yı değiştirmez. | C) A'yı artan sırada sıralar ve A'daki en büyük değeri döner. | D) A'yı azalan sırada sıralar ve A'daki en büyük değeri Döner. | E) Hiçbiri

Cevap: E Hiçbiri

Çözüm:
Bu fonksiyon A dizisini değiştirmeden A'daki en büyük değeri döner.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 27

[21-30] Sorular İçin Açıklama
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

```c
int a = 5;
int b = a++;
```
Yukarıdaki program parçasının çalışması sonrasında b değişkenin değeri ne olur?

Şıklar:
A) 4 | B) 5 | C) 6 | D) 7 | E) Kod derleme/çalışma zamanı hatası verir.

Cevap: B 5

Çözüm:
int b = a++ ifadesi a nın şuanki değerini b ye atadıktan sonra a nın değerini 1 arttırır. a nın ilk değeri 5 olduğundan b 5 değerini alır.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 29

[21-30] Sorular İçin Açıklama
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

```c
Aşağıdaki programın çıktısı nedir?
#define BUFLEN 100
void mystery(char *foo, char *bar) {
foo+=3;
while ((*foo = *bar) != '\0') {
foo++; bar++;
}
}
int main() {
char A[4][15]={"ABCDEF", "LMN", "PRS", "TUYZ"};
char buf[BUFLEN]="AAAAAA";
mystery(buf, A[2]);
printf("%s %s\n", buf, A[0]+3);
}
```

Şıklar:
A) AAPRS D | B) AALMN DEF | C) AAAPRS D | D) AAAPRS DEF | E) AALMN C

Cevap: D AAAPRS DEF

Çözüm:
mystery fonksiyonu ilk argüman olan buf arrayinin 3. İndisinden itibaren (4. A'dan itibaren) üzerini 2. argüman olan "PRS" stringi ile yazar. Bu nedenle çıktının ilk kelimesi AAAPRS olur. Çıktının ikinci kelimesi ise A[0] yani "ABCDEF" stringini D harfinden sona kadar yazdırılması sonucu DEF olur.
Ortaokul Bilgisayar Olimpiyatı 2024, 1. Aşama, Soru 30

[21-30] Sorular İçin Açıklama
- Soruları C programlama dili çerçevesinde cevaplayınız.
- Derleyici olarak gcc kullanıldığını varsayınız.
- Gerekli tüm başlık (header) dosyalarının verilen programa dahil edildiğini varsayınız.

---

Aşağıdaki programın çıktısı nedir?
```c
int main() {
int arr[5]={100, 200, 300, 400, 500};
int *p1, *p2;
p1 = &arr[2];
p2 = &arr[4];
*p1 = p2-p1;
if (* (p1+1) > * (p2-2))
arr[3] -= 5;
arr[4] = (*p1)--;
printf("%d, %d, %d\n", *p1, *p2, * (p2-1));
}
```

Şıklar:
A) 7, 8, 395 | B) 7, 8, 400 | C) 1, 1, 395 | D) 1, 2, 395 | E) 1, 2, 400

Cevap: D 1, 2, 395

Çözüm:
Başlangıçta, p1 arr[2]'nin adresini, p2 ise arr[4]'ün adresini içerir. Bu durumda p2 ve p1 arasında 2 eleman olduğu için, p2-p1 ifadesinin değeri 2'dir, ve p1 işaretçisinin gösterdiği değer (arr[2]) 2 olarak güncellenir. Bu aşamada *(p1+1) değeri 400, *(p2-2) değeri 2 olduğu için if koşulu (400 > 2) doğru olur ve arr[3] elemanı 395 olarak güncellenir. arr[4] = (*p1-- ifadesiyle, önce arr[4] 2 olarak güncellenir, sonra *p1 (arr[2]) bir azaltılarak 1 olarak güncellenir.
Bu durumda *p1=arr[2]=1, *p2=arr[4]=2, *(p2-2)=arr[3]=395 olur,
Ortaokul Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 2

[GÖRSEL]
Şekilde yeni inşa edilmekte olan bir mahalledeki evler (kareler) ve yollar (kesikli çizgiler) görülmektedir. Mahalledeki her evin yanından geçen bir yola bakan bir kapısı olacaktır. Her evin en fazla bir kapısı olabilir. Bir yolun karşılıklı iki yanında olan iki evin kapıları birbirini görecek şekilde yapılamaz. Bir başka deyişle bir yolun bir noktasına yalnızca bir evin kapısı bağlanabilir. Bu şartlar altında, bu mahalledeki bütün kapılar yapıldığında kaç tanesi DOĞU yönüne bakacaktır?

Şıklar:
A) 9 
B) 7    
C) 5    
D) 4    
E) 3

Cevap: A 9

Çözüm:
[GÖRSEL]
Olası iki çözüm şekilde verilmiştir. Her ikisinde de 9 adet kapı doğu yönüne bakmaktadır.
Ortaokul Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 5

Güneye göç etmekte geciken bir kaz kafasını kaldırdığında üzerinden geçmekte olan bir kaz sürüsünü görür. Kaz kanunlarına göre bir sürüde en fazla 40 kaz olabildiğinden bu sürüye katılıp katılamayacağını anlamak için sürünün liderine seslenir: “Ey uçan kazlar! Siz kaç kazsınız?”. Kazların lideri bu soruya bir bulmaca ile cevap verir: “Ey tembel kaz! Bizim kadar daha olsa, sonra yarımız kadar daha olsa, sonra yarımızın yarısı kadar daha olsa, bir de sen olsan 100 kaz ederiz!”. Tembel kaz bunu duyunca bir süre düşünür ve sonra bu soruyu çözmektense kış soğuklarında titremeyi tercih ederek uçan kazlara el sallayıp dönüp yürümeye başlar. Peki gerçekten sürüde kaç kaz vardır?

Şıklar:
A) 33 | B) 34 | C) 35 | D) 36 | E) 37

Cevap: D 36

Çözüm:
Bir sürü artı bir sürü artı yarım sürü artı yarımın yarısı sürü toplamda 2 tam  \( \frac{3}{4} \)  sürü eder. Bunu 11/4 sürü olarak da yazabiliriz. Yerdeki kaz da eklendiğinde 100 kaz olduğuna göre, 11/4 sürü 99 kaza eşittir. Bu da sürüde 36 kaz olduğunu gösterir.
Ortaokul Bilgisayar Olimpiyatı 2025, 1. Aşama, Soru 6

Elinde 6 adet 10cm uzunluğunda çubuk olan bir kişi, bu çubuklarla düz bir zeminde kapalı bir alan oluşturmak istemektedir. Bu alan en fazla kaç santimetrekare olabilir?

Şıklar:
A) 25√3 | B) 50√3 | C) 75√3 | D) 150√3 | E) 250√3

Cevap: D 150√3

Çözüm:
En fazla alan 6 çubuk bir düzgün altıgenin kenarları olacak şekilde dizildiğinde elde edilir. Bu durumda altıgen 6 adet eşkenar üçgenden oluşur. Her bir eşkenar üçgenin alanı, kenar uzunluğu 10cm olduğundan, 25√3 olarak hesaplanır. 6 üçgen için bu 150√3 olarak bulunur.