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

100 kişilik bir öğrenci grubundaki her öğrenci Matematik, Fizik ve Kimya dallarından en az bir tanesinden olimpiyatlara hazırlanmaktadır. Bu üç dal dışında bir daldan olimpiyatlara hazırlanan öğrenci yoktur. Öğrencilerden 58 tanesi tek bir daldan olimpiyatlara hazırlanmaktadır. Kimya olimpiyatlarına hazırlanan öğrencilerden 30 tanesi diğer iki dalın en az birinden daha olimpiyatlara hazırlanmaktadır. Hem Matematik hem de Fizik olimpiyatlarına hazırlanan 20 öğrenci olduğuna göre her üç daldan da olimpiyatlara hazırlanan kaç öğrenci vardır?

Şıklar:
A) 4 | B) 6 | C) 8 | D) 10 | E) 12

Cevap: C 8

Çözüm:
Sadece Matematik olimpiyatlarına hazırlananların sayısını a ile, sadece Fizik olimpiyatlarına hazırlananların sayısını b ile, sadece Kimya olimpiyatlarına hazırlananların sayısını c ile, sadece Matematik ve Fizik olimpiyatlarına hazırlananların sayısını d ile, sadece Matematik ve Kimya olimpiyatlarına hazırlananların sayısını e ile, sadece Fizik ve Kimya olimpiyatlarına hazırlananların sayısını f ile ve her üç dalda birden olimpiyatlara hazırlananların sayısını g ile gösterelim.
Toplam 100 öğrenci olduğundan ve her öğrenci en az bir daldan olimpiyatlara hazırlandığından aşağıdaki denklemi elde ediyoruz:
\[a + b + c + d + e + f + g = 100\]
Verilen diğer bilgilerden de aşağıdaki denklemler elde edilmektedir:
\[a + b + c = 58\]
\[e + f + g = 30\]
\[d + g = 20\]
İkinci ve üçüncü denklemlerin ilk denklemden çıkartılması ile \(d = 12\) eşitliği elde edilir. Bu eşitliğin son denklemden çıkartılması ile de \(g = 8\) elde edilir. Bizden g'nin değeri istendiği için doğru cevap 8'dir.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 7

[7-8 soruları için açıklama]
Bir çocuk elma, armut ve portakal ağaçlarının olduğu bir bahçeden meyve toplayıp çantasına koymuştur. Eve gelip çantasını açtığında çantadan 11 tane meyve çıkmıştır.

---

Bu 11 meyve kaç farklı şekilde seçilmiş olabilir?

Şıklar:
A) 33 | B) 78 | C) \(\frac{11!}{8!}\) | D) \(\frac{11!}{3!}\) | E) \(3^{11}\)

Cevap: B 78

Çözüm:
Bu soru bir tekrarlı kombinasyon sorusudur. Cevap \(C(3+11-1,11) = C(13,11) = \frac{13!}{11! \times 2!} = 78'\)dir.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 8

[7-8 soruları için açıklama]
Bir çocuk elma, armut ve portakal ağaçlarının olduğu bir bahçeden meyve toplayıp çantasına koymuştur. Eve gelip çantasını açtığında çantadan 11 tane meyve çıkmıştır.

---

Çantadan en az 1 elma, 2 armut ve 3 portakal çıktığı bilinmektedir. Öyleyse bu 11 meyve kaç farklı şekilde seçilmiş olabilir?

Şıklar:
A) 21 | B) 55 | C) \(\frac{11!}{6!}\) | D) \(\frac{11!}{5!}\) | E) \(3^5\)

Cevap: A 21

Çözüm:
6 adet meyvenin cinsi bilinmektedir. Bu soru bir önceki soruya benzemektedir ancak bu sefer cinsi bilinmeyen meyve sayısı 11 değil \(11 - 6 = 5\)'tir. Üç çeşit meyveden beş tane meyve tekrarlı olarak \(C(3 + 5 - 1, 5) = C(7, 5) = \frac{7!}{5! \times 2!} = 21\) şekilde seçilebilir.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 10

[9-10 soruları için açıklama]
Bir şeker fabrikasında şeker üretme hızları birbirinden farklı olan 4 tane makine bulunmaktadır. Bu makinelerin hızları aşağıda verilmiştir:
- 1. makine 1 ton pancarı 7 saatte 0,8 ton şekere dönüştürmektedir.
- 2. makine 3 ton pancarı 10 saatte 2,5 ton şekere dönüştürmektedir.
- 3. makine 2 ton pancarı 9 saatte 1,8 ton şekere dönüştürmektedir.
- 4. makine 1 ton pancarı 3 saatte 0,7 ton şekere dönüştürmektedir.
Makinelerin hepsi aynı anda çalıştırılabilmekte ve işlemi biter bitmez tekrar pancar konulup zaman kaybetmeden çalıştırılmaya devam edebilmektedir. Makinelerin çalışabilmesi için hızlarını belirtirken ifade edilen miktarın tamamı kadar pancar konulması gerekmektedir. Yani örnek olarak, 2. makine ancak 3 ton pancar ile çalıştırılabilmektedir, 2 ton pancar ile çalıştırılamamaktadır. Ayrıca, belirtilen süre bitene kadar bir makinenin o zamana kadar ürettiği şeker miktarı 0 (sıfır) olarak kabul edilmektedir. Yine örnek olarak 1. makineden ancak 7 saat sonunda 0,8 ton şeker elde edilebilir, 3,5 saat sonunda 0,4 ton şeker elde edilemez.

---

Sınırsız miktarda pancarımız olduğunu varsayarsak 24 saat sonunda üretilebilecek en fazla şeker miktarı ne kadar olur?

Şıklar:
A) 14 | B) 15,6 | C) 16,2 | D) 16,6 | E) 17,4

Cevap: D 16,6

Çözüm:
Tüm makineler çalıştırıldığında, 24 saatte 1. makine en fazla 3 kez, 2. makine en fazla 2 kez, 3. makine en fazla 2 kez ve 4. makine en fazla 8 kez çalışır. Bu durumda 3*0,8+2*2,5+2*1,8+8*0,7 = 2,4 + 5 + 3,6 + 5,6 = 16,6 ton şeker üretilmiş olur.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 11

[11-12 soruları için açıklama] 
Bir karakter dizisi üzerinde tanımlanan “değiştirme” operasyonu, o karakter dizisini herhangi 
iki karakteri arasındaki bir noktadan ikiye ayırıp soldaki ve sağdaki karakter dizilerinin yerini 
değiştirerek aynı uzunlukta yeni bir karakter dizisine dönüştürmektedir. Örnek olarak 
“abcdefg” karakter dizisi bu operasyonun bir kez uygulanması ile “efgabcd” dizisine 
dönüştürülebilir.

---

Aşağıdaki dizilerden hangisi bccab dizisine değiştirme operasyonunun art arda iki kez uygulanması ile elde edilemez?

Şıklar:
A) abbcc | B) bbcca | C) bccab | D) cbca | E) cabbc

Cevap: D cbca

Çözüm:
bccab karakter dizisi art arda iki kez değiştirme operasyonu ile A, B,C, ve E şıkkındaki dizilere şu şekilde dönüştürülebilir:
A) bccab → cabbc → abbcc B) bccab → abbcc → bbcca C) bccab → abbcc → bccab D) bccab iki operasyon ile cbca’ya dönüşemez E) bccab → ccabb → cabbc
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 12

[11-12 soruları için açıklama] 
Bir karakter dizisi üzerinde tanımlanan “değiştirme” operasyonu, o karakter dizisini herhangi 
iki karakteri arasındaki bir noktadan ikiye ayırıp soldaki ve sağdaki karakter dizilerinin yerini 
değiştirerek aynı uzunlukta yeni bir karakter dizisine dönüştürmektedir. Örnek olarak 
“abcdefg” karakter dizisi bu operasyonun bir kez uygulanması ile “efgabcd” dizisine 
dönüştürülebilir.

---

abcdefg karakter dizisine art arda iki kez değiştirme işlemi uygulanarak birbirinden farklı kaç karakter dizisi oluşturulabilir?

Şıklar:
A) 6 | B) 7 | C) 21 | D) 27 | E) 42

Cevap: B 7

Çözüm:
Bir karakter dizisine iki kez değiştirme işlemi uygulamanın etkisi iki operasyonda kesilen yerlerin indislerinin toplamı (mod dizi uzunluğu) olan yerden tek bir operasyonla elde edilen dizi ile aynıdır. Yani aslında tek bir operasyonda yapabileceğimiz farklı karakter dizisi dizideki karakter sayısı kadardır. Soruda verilen dizide 7 karakter olduğundan
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 13

[13-17 soruları için açıklama]
Üç çocuk haftasonu tatilinde kısaca M, S, T ve F olarak isimlendirdiğimiz aşağıdaki dört aktiviteden birini beraberce gerçekleştireceklerdir.
- M: Müzeye gitmek
- S: Sinemaya gitmek
- T: Tiyatroya gitmek
- F: Futbol maçına gitmek
Ancak çocukların hangi aktiviteyi yapmak istediklerine ilişkin farklı tercihleri vardır. Birinci çocuğun birinci tercihi S, ikinci tercihi T, üçüncü tercihi F ve son tercihi de M'dir. Birinci çocuğun tercihlerini şu ifade ile gösteriyoruz: \(S >_1 T >_1 F >_1 M\).
İkinci çocuğun tercihleri şu şekildedir: \(T >_2 F >_2 M >_2 S\).
Üçüncü çocuğun tercihleri ise şu şekildedir: \(F >_3 M >_3 S >_3 T\).
Yapılacak aktiviteye ilişkin çocukların farklı tercihleri olduğu için hangi aktiviteyi gerçekleştireceklerini belirlemek için şöyle bir yol izlemeye karar veriyorlar. Önce aktiviteler rastgele şekilde sıralanır. Bu sıralamaya göre birinci olan aktivite ile ikinci olan aktivite oylamaya sunulur. Bu oylamada çoğunluğun tercih ettiği aktivite üçüncü aktiviteye karşı oylanır. Bu oylamada çoğunluğun tercih ettiği aktive dördüncü aktiviteye karşı oylanır. Son oylamayı kazanan aktivite gerçekleştirilir.

---

Çocuklar M aktivitesi gerçekleştirmeye karar veriyorlar. Buna göre başlangıçtaki oluşturdukları sıralamada S aktivitesi kaçıncı sıradadır?

Şıklar:
A) 1 | B) 2 | C) 3 | D) 4 | E) Kesin bir şey söylenemez

Cevap: C 3

Çözüm:
Öncelikle her aktivite ikilisi için o aktivite ikilisi oylandığında hangisinin kazanacağının belirlenmesi gerekir. Aşağıda 6 aktivite ikilisi için birbirlerine karşı oylandığında hangisinin kazanacağı verilmiştir.
\[ (M, S) \rightarrow M, (M, T) \rightarrow T, (M, F) \rightarrow F, (S, T) \rightarrow S, (S, F) \rightarrow F, (T, F) \rightarrow T \]
M oylamayı sadece S'ye karşı kazanabildiği için M dördüncü sırada olmak zorundadır ve ikinci oylamayı S'nin kazanması gerekmektedir. Ancak S oylamayı sadece T'ye karşı kazanabildiği için S üçüncü sırada olmalı ve ilk oylamayı T kazanmalıdır. T ile F arasındaki oylamayı T kazandığı için böyle bir sıralama mevcuttur. Dolayısıyla S üçüncü sıradadır.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 14

[13-17 soruları için açıklama]
Üç çocuk haftasonu tatilinde kısaca M, S, T ve F olarak isimlendirdiğimiz aşağıdaki dört aktiviteden birini beraberce gerçekleştireceklerdir.
- M: Müzeye gitmek
- S: Sinemaya gitmek
- T: Tiyatroya gitmek
- F: Futbol maçına gitmek
Ancak çocukların hangi aktiviteyi yapmak istediklerine ilişkin farklı tercihleri vardır. Birinci çocuğun birinci tercihi S, ikinci tercihi T, üçüncü tercihi F ve son tercihi de M'dir. Birinci çocuğun tercihlerini şu ifade ile gösteriyoruz: \(S >_1 T >_1 F >_1 M\).
İkinci çocuğun tercihleri şu şekildedir: \(T >_2 F >_2 M >_2 S\).
Üçüncü çocuğun tercihleri ise şu şekildedir: \(F >_3 M >_3 S >_3 T\).
Yapılacak aktiviteye ilişkin çocukların farklı tercihleri olduğu için hangi aktiviteyi gerçekleştireceklerini belirlemek için şöyle bir yol izlemeye karar veriyorlar. Önce aktiviteler rastgele şekilde sıralanır. Bu sıralamaya göre birinci olan aktivite ile ikinci olan aktivite oylamaya sunulur. Bu oylamada çoğunluğun tercih ettiği aktivite üçüncü aktiviteye karşı oylanır. Bu oylamada çoğunluğun tercih ettiği aktive dördüncü aktiviteye karşı oylanır. Son oylamayı kazanan aktivite gerçekleştirilir.

---

Dört aktivite başlangıçta 24 farklı şekilde sıralanabilir. Bu 24 sıralamanın kaç tanesinde S aktivitesinin gerçekleştirilmesine karar verilir?

Şıklar:
A) 1 | B) 2 | C) 4 | D) 6 | E) 12

Cevap: D 6

Çözüm:
Bir önceki sorunun çözümünde anlatıldığı üzere S oylamayı sadece T'ye karşı kazanabilmektedir. Dolayısıyla S aktivitesinin seçilebilmesi için sıralamada S dördüncü sırada olmalıdır ve ilk iki oylama sonucunda kazananın T olması gerekmektedir. T oylamayı hem M hem de F'ye karşı kazandığı için S'nin dördüncü sırada olduğu 6 sıralamanın tamamında ikinci oylamayı T kazanmaktadır. Bu yüzden doğru cevap 6'dır.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 15

[13-17 soruları için açıklama]
Üç çocuk haftasonu tatilinde kısaca M, S, T ve F olarak isimlendirdiğimiz aşağıdaki dört aktiviteden birini beraberce gerçekleştireceklerdir.
- M: Müzeye gitmek
- S: Sinemaya gitmek
- T: Tiyatroya gitmek
- F: Futbol maçına gitmek
Ancak çocukların hangi aktiviteyi yapmak istediklerine ilişkin farklı tercihleri vardır. Birinci çocuğun birinci tercihi S, ikinci tercihi T, üçüncü tercihi F ve son tercihi de M'dir. Birinci çocuğun tercihlerini şu ifade ile gösteriyoruz: \(S >_1 T >_1 F >_1 M\).
İkinci çocuğun tercihleri şu şekildedir: \(T >_2 F >_2 M >_2 S\).
Üçüncü çocuğun tercihleri ise şu şekildedir: \(F >_3 M >_3 S >_3 T\).
Yapılacak aktiviteye ilişkin çocukların farklı tercihleri olduğu için hangi aktiviteyi gerçekleştireceklerini belirlemek için şöyle bir yol izlemeye karar veriyorlar. Önce aktiviteler rastgele şekilde sıralanır. Bu sıralamaya göre birinci olan aktivite ile ikinci olan aktivite oylamaya sunulur. Bu oylamada çoğunluğun tercih ettiği aktivite üçüncü aktiviteye karşı oylanır. Bu oylamada çoğunluğun tercih ettiği aktive dördüncü aktiviteye karşı oylanır. Son oylamayı kazanan aktivite gerçekleştirilir.

---

Hangi aktivite ikinci sırada olduğu altı muhtemel başlangıç sıralamasının en az bir tanesinde gerçekleştirilir?

Şıklar:
A) M | B) S | C) T | D) F | E) Hiçbiri

Cevap: E Hiçbiri

Çözüm:
Başlangıç sıralamasında ikinci sırada olan bir aktivitenin gerçekleştirilmesine karar verilmesi için diğer üç aktiviteye ikili oylamada üstünlük sağlaması gerekir. İki yukarıdaki sorunun çözümünden görülebileceği üzere hiçbir aktivite diğer üç aktiviteye ikili oylamada üstünlük sığlamamaktadır.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 17

[13-17 soruları için açıklama]
Üç çocuk haftasonu tatilinde kısaca M, S, T ve F olarak isimlendirdiğimiz aşağıdaki dört aktiviteden birini beraberce gerçekleştireceklerdir.
- M: Müzeye gitmek
- S: Sinemaya gitmek
- T: Tiyatroya gitmek
- F: Futbol maçına gitmek
Ancak çocukların hangi aktiviteyi yapmak istediklerine ilişkin farklı tercihleri vardır. Birinci çocuğun birinci tercihi S, ikinci tercihi T, üçüncü tercihi F ve son tercihi de M'dir. Birinci çocuğun tercihlerini şu ifade ile gösteriyoruz: \(S >_1 T >_1 F >_1 M\).
İkinci çocuğun tercihleri şu şekildedir: \(T >_2 F >_2 M >_2 S\).
Üçüncü çocuğun tercihleri ise şu şekildedir: \(F >_3 M >_3 S >_3 T\).
Yapılacak aktiviteye ilişkin çocukların farklı tercihleri olduğu için hangi aktiviteyi gerçekleştireceklerini belirlemek için şöyle bir yol izlemeye karar veriyorlar. Önce aktiviteler rastgele şekilde sıralanır. Bu sıralamaya göre birinci olan aktivite ile ikinci olan aktivite oylamaya sunulur. Bu oylamada çoğunluğun tercih ettiği aktivite üçüncü aktiviteye karşı oylanır. Bu oylamada çoğunluğun tercih ettiği aktive dördüncü aktiviteye karşı oylanır. Son oylamayı kazanan aktivite gerçekleştirilir.

---

Üçüncü çocuk haftasonu sergilenecek tiyatro oyununun etkileyici olduğunu duymuş ve tiyatroya gitmenin sinemaya gitmekten daha iyi bir fikir olduğuna karar vermiştir. Birinci çocuğun tercih sıralaması eskisi gibi \(T >_1 T >_1 F >_1 M\) şeklindedir. İkinci çocuğun tercih sıralaması eskisi gibi \(F >_2 F >_2 M >_2 S\) şeklindedir. Üçüncü çocuğun tercih sıralaması ise değişmiş ve \(F >_3 M >_3 T >_3 S\) şeklinde olmuştur.
Bu tercihlere göre aktivitelerin başlangıçtaki muhtemel 24 sıralamasından kaç tanesinde F aktivitesinin gerçekleştirilmesine karar verilir?

Şıklar:
A) 0 | B) 2 | C) 4 | D) 6 | E) 8

Cevap: A 0

Çözüm:
Öncelikle T aktivitesinin diğer aktiviteler ile ikili oylamasında hangi aktivitenin kazandığını belirleyelim. Karşılaşma sonuçları aşağıdaki gibi olacaktır:
\[ (M, T) \rightarrow T, (S, T) \rightarrow T, (T, F) \rightarrow T \]
T aktivitesi bütün diğer aktivitelere karşı ikili karşılaştırmada üstünlük sağladığı için muhtemel her sıralamada T aktivitesinin gerçekleştirilmesine karar verilecektir. Bu yüzden cevap 0'dır.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 18

5 arkadaş yan yana oturup fotoğraf çektirmek istiyor. Fakat bu işlem o kadar kolay olmayacak, çünkü bazı koşullar bulunmakta.
- Mehmet Ali ile yan yana olmak istiyor
- Ayşe ile Mehmet arasında en az iki kişi bulunmalı
- Cem Gizem ile yan yana oturmak istemiyor
- Gizem en sağda yer almak istiyor, ama yanına Ali otursun istemiyor
Bu durumda kaç farklı oturma düzeni oluşturulabilir?

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

Cevap: B 2

Çözüm:
Gizem en sağda oturacaktır. Ayşe ile Mehmet arasında da en az iki kişi olmak zorunda olduğu için kalan 4 yerden bir uca Ayşe diğerine Mehmet oturmak zorundadır. Ayşe'nin en solda oturduğu durumda Cem Ayşe'nin yanına, Ali Cem'in yanına ve Mehmet de Gizem ile Cem arasına oturabilir. Eğer Ayşe Gizem'in yanına oturursa sağdan sola doğru oturma düzeni Gizem, Ayşe, Cem, Ali, ve Mehmet olacaktır. İki farklı oturum düzeni oluşturulabilir.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 22

[21-30 soruları iç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 n,m;
for (n = 0; n < 5; n++)
for (m = 0; m < n; m++)
printf("*");
```
Yukarıdaki kod ekrana kaç tane yıldız basar?

Şıklar:
A) 6 | B) 9 | C) 10 | D) 11 | E) 15

Cevap: C 10

Çözüm:
Dıştaki for döngüsü toplam 5 defa çalışacaktır (n=0,1,2,3,4). İçteki for döngüsü ise her bir n değerine kadar (n dahil değil) 0'dan başlamak üzere çalışacaktır. Buna göre n=0 için bu döngü çalışmaz. n=1 için bir kere çalışır ve ekrana bir tane yıldız basar. Benzer olarak, n=2 için iki kere, n=3 için üç kere, ve n=4 için dört kere çalışır. Toplamda 1+2+3+4 = 10 kere yıldız basar.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 21

[21-30 soruları iç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] = {1,3,5,7,9};
int toplam = 0;
for (int i = 1; i < 5; i++) {
if (i%2==0)
A[i] += A[i-1];
else
A[i] -= A[i-1];
toplam += A[i];
}
```
Yukarıdaki kod parçası çalıştıktan sonra toplam değişkenin değeri ne olur?

Şıklar:
A) 16 | B) 17 | C) 18 | D) 19 | E) Hiçbiri

Cevap: C 18

Çözüm:
For döngüsü i=1,2,3 ve 4 değerleri için toplam 4 defa çalışır. Eğer i çift ise A[i] 'nin değeri A[i-1] ile toplanarak güncellenir. Eğer i tek ise A[i] 'nin değeri A[i] - A[i-1] farkının hesaplanması ile güncellenir. Buna elde edilen A[i]'nin değeri her bir iterasyonda toplam'a eklenir. Buna göre toplam sırasıyla 2, 9, 9 ve 18 değerlerini alır.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 24

[21-30 soruları iç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[101];
int toplam = 0;
for (int i = 0; i < 101; i++) {
if (i % 3 == 0)
A[i] = -2;
else if (i % 3 == 1)
A[i] = 0;
else A[i] = 2;
toplam += A[i];
}
```
Yukarıdaki kod parçası çalıştıktan Sonra toplam değişkenin değeri ne olur?

Şıklar:
A) -2 | B) 0 | C) 2 | D) 4 | E) Hiçbiri

Cevap: A -2

Çözüm:
i'nin değeri 3'ün tam katı olduğunda (0,3,6,...) A[i]'ye -2, i'nin değerinin 3'e bölümünden kalan 1 olduğunda (1,4,7,...) A[i]'ye 0, ve diğer durumda yani i'nin değerinin 3'e bölümünden kalan 2 olduğunda (2,5,8,...) A[i]'ye 2 atanmaktadır. Buna göre toplam'ın içinde tutulan değer, i'nin 3'ün tam katı olduğunda 0 olmaktadır. For döngüsünün sonunda, i=99 olduğunda A[i] ve toplam=-2 olur. i=100 olduğunda ise A[i]=0 olur ve toplam’ın değeri 
değişmez. Bu şekilde döngü sonlanarak toplam en son -2 değerine sahip olur.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 23

[21-30 soruları iç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 i = 4;
while (i-- >= 0)
{
int j = 1;
do{
printf(" *");
}while(j++ < i);
}
```
Yukarıdaki kod parçası ekrana kaç tane yıldız basar?

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

Cevap: C 8

Çözüm:
İ'nin ilk değeri 4'tür ve dıştaki while döngüsü toplam 5 defa çalışır (i=4,3,2,1 ve 0 için). Bu döngünün her bir iterasyonunda j=1 olmaktadır ve do-while döngüsü en az bir defa çalışır. Sonrasında j < i olduğunda do-while tekrar çalışmaya devam eder. Bu kontrol yapıldıktan sonra j'nin değeri 1 artar. Buna göre, i=4 için 3 tane, i=3 için 2 tane, i=2 için 1 tane, i=1 için 1 tane ve i=0 için 1 tane olmak üzere ekrana toplam 8 yıldız basılır.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 25

[21-30 soruları iç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
void f(int d[], int l, int i, int a){
int temp, temp2;
for (int j = 0; j < l; j++) {
if (j==i) {
temp = d[j];
d[j] = a;
}
if (j > i) {
temp2 = d[j];
d[j] = temp;
temp = temp2;
}
}
int main() {
int dizi[6] = {4,2,4,2,4};
int j = 3;
f(dizi,6,j,4);
for (int i = 0; i < 6; i++)
printf("%i, ", dizi[i]);
return 0;
}
```
Yukarıdaki programın ekran çıktısı nedir?

Şıklar:
A) 4, 2, 4, 4, 2, 4, | B) 4, 2, 4, 4, 2, 6, | C) 4, 2, 2, 4, 2, 4, | D) 4, 2, 4, 4, 4, 4, | E) Hiçbiri

Cevap: A 4, 2, 4, 4, 2, 4,

Çözüm:
Fonksiyon f, 6 elemanlı bir dizi (ilk 5 elemanı 4,2,4,2,4 olacak şekilde), 6, 3, ve 4 parametrelerini almaktadır. Fonksiton içindeki for döngüsü j=0'dan j < 6 olacak şekilde toplam 6 defa çalışır. Her bir iterasyonda j'nin değeri i ile yani 3 ile karşılaştırılır. Eğer j, i'ye eşitse d[j], temp'te tutulmaktadır ve d[j]'ye dördünce parametre yani 4 atanmaktadır. Eğer j > 3 ise kodda belirtilen üç tane atama yapılmaktadır. Diğer durumda yani j < 3 olduğunda ise d dizisinin elemanları değişmemektedir. C'de diziler fonksiyona referans ile gönderilir, yani fonksiyon içindeki değişiklikler main içindede görülecektir. Buna göre f fonksiyonunun çağrılması sonrasında dizi, 4, 2, 4, 4, 2, 4 elemanlarını içerir ve ekrana 4, 2, 4, 4, 2, 4, yazılır.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 27

[21-30 soruları iç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
void f(char *s1, char *s2)
{
char *temp = s1;
s1 = s2;
s2 = temp;
}
int main()
{
char *s1 = "Ortaokul";
char *s2 = "Bilgisayar";
f(s1, s2);
printf("%s,%s", s1, s2);
return 0;
}
```
Yukarıdaki programın ekran çıktısı nedir?

Şıklar:
A) Bilgisayar, Ortaokul | B) Ortaokul, Bilgisayar | C) Bilgisayar, Bilgisayar | D) Ortaokul, Ortaokul | E) Çalışma-zamanı hatası verdiğinden çıktı oluşmaz.

Cevap: B Ortaokul, Bilgisayar

Çözüm:
Yukarıdaki f() fonksiyonu, dizgilerin (karakter dizisi) yerlerini değiştirmez. Fonksiyon yalnızca local işaretçileri (pointer) değiştirir. Ancak bu değişiklik, f'nin dışına yansıtılmaz.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 28

[21-30 soruları iç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.

---

char *s1 = "OrtaokulBilgisayar";
char *s2 = s1;
while \( (*++s1) \) ;
printf("%ld", s2-s1);
Yukarıdaki kod parçasının ekran çıktısı nedir?

Şıklar:
A) 18 | B) -18 | C) 19 | D) -19 | E) Derleme-zamanı/Çalışma-zamanı hatası verdiğinden çıktı oluşamaz.

Cevap: B -18

Çözüm:
Kod parçasındaki char *s2 = s1; atamasından sonra s2 ve s1 işaretçileri aynı yeri gösterir. while döngüsü s1'i karakter dizisinin sonuna kadar ilerletir. s1 döngü çıkışında NULL karakterini gösterir. En sonunda s2 ve s1 arasındaki karakter sayısının farklı hesaplanır. s2 karakter dizisinin başını gösterdiğinden s2-s1 negatif olmaktadır. "OrtaokulBilgisayar" 'da toplam 18 karakter vardır.
Main'de f(0,2,a) ile fonksiyon çağrıldığında fonksiyon içinde s=0, z=2 olur. s>=z olmadığından else kısmındaki ifadeler çalıştırılır, f(s+1,z,a) yani f(1,2,a) ile fonksiyon özyineli olarak çağrılır. Bu çağrıdan gelindiğinde a[0] = a[0] * a[1]; ifadesi çalışacaktır. f(1,2,a) olarak fonksiyon başladığında, s>=z olmadığından else kısmındaki ifadeler ç alıştırılır. f(s+1,z,a) yani f(2,2,a) ile f fonksiyonu tekrar çağrılır. Bu çağrıdan gelindiğinde a[1] = a[1] * a[2]; ifadesi çalışacaktır. f(2,2,a) ile fonksiyon başladığında çağrıldığında s>=z şartı doğru olur ve a[2] = 1; olur. Fonksiyonun çalışması bittiğinde son çağrılan yere gelir ve a[1] = a[1] * a[2]; ifadesi çalıĢır, a[1]'in değeri değiĢmez. Son olarak a[0] = a[0] * a[1]; ifadesi çalıĢtığında a[0]'ın değeri 10 olur. Bu durumda t değiĢkeni 10+2+1=13 değerine sahip olacaktır.
Ortaokul Bilgisayar Olimpiyatı 2022, 1. Aşama, Soru 30

[21-30 soruları iç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.

---

char a[100];
char *s = "Bilgisayar";
int l = strlen(s);
for (int i = 0; i < l; i++)
a[i] = s[l - i];
printf("%s", a);
Yukarıdaki kod parçasının ekran çıktısı nedir?

Şıklar:
A) Bilgisayar | B) rayasigliB | C) rayasigli | D) Derleme-zamanı/Çalışma-zamanı hatası oluşur. | E) Çıktı oluşmaz.

Cevap: E Çıktı oluşmaz.

Çözüm:
"Bilgisayar" dizgisinde toplam 10 karakter olduğundan 1'nin değeri 10 olur. For döngüsünün ilk iterasyonunda, i=0 iken 1-i'nin değerde 10-0=10 olur. Yani a [0]'a s'nin 10. karakteri olan NULL karakteri atanmaktadır (dizilerde ilk indisin 0 olduğunu unutmayın). Bu nedenle ekrana herhangi bir şey yazılmaz.