Ulusal Bilgisayar Olimpiyadı 2009 – Soru 50

Aşağıdaki programın derlenip çalıştırılması sonucu ne basılır?

#include <stdio.h>
int x,y,z;
main(void)
{
for (x=1,y=2,z=3; x<10,y<5,z<10; x++,y--,z=x++);
  printf("*");
}

Cevap : Klasik bir dikkat sorusu. Hemen döngünün kaç kere dönmesi gerektiğini hesaplamak yerine sentaktik olarak programı incelememiz gerekir. For döngüsünün hemen sonundaki ; döngü gövdesi yerine geçmiştir. Yani aşağıdaki printf(“*”) satırı döngü dışındadır böylelikle sadece bir kere çalışmış olur. Cevabımız 1 adet * basılır olacaktır. Bu soruda döngü sonundaki ; kaldırılacak olursa cevabımız 5 adet * basılır olacaktır. Döngü sayısını kısıtlayan değişken z değişkenidir. z değişkeni sırasıyla 3,2,4,6,8 değerlerini alarak döngü koşulunu 5 kere sağlamış olacaktır.

İlgili Yazılar:

  1. Ulusal Bilgisayar Olimpiyadı 2009 – Soru 41 Aşağıdaki programın çalışması sonucu ekrana ne basılır? int n=5, t,...
  2. Ulusal Bilgisayar Olimpiyadı 2009 – Soru 42 Aşağıdaki programın çalışması sonucu ne basılır? int n=5, t, a,...
  3. Ulusal Bilgisayar Olimpiyadı 2009 – Soru 46 Aşağıdaki programın derlenip çalıştırılması sonucu ne basılır? int a,b,c; int...
  4. Ulusal Bilgisayar Olimpiyadı 2009 – Soru 47 Aşağıdaki programın derlenip çalıştırılmasında ne olur? char i, *p="ABCDEFG", q[8]="GFEDCBA";...
  5. Ulusal Bilgisayar Olimpiyadı 2009 – Soru 48 Aşağıdaki programın derlenip calıştırılması sonucu ne basılır? int i; main(void)...

Fikrin geldiyse buraya yaz


[ Ctrl + Enter ]