Tipik olarak programcılar, kalıtımda kullanılacak taban sınıfları oluştururken hem arayüzü (interface) hem de türemiş sınıflar tarafından özelleştirilebilecek davranışları belirleyen sanal işlevleri sınıfın public bölümüne
Yazar: Necati Ergin
Online C++ Kursu – 12 Eylül 2020 Tarihinde Başlıyor
Necati Ergin tarafından verilen online C++ Kursu 12 Eylül 2020 tarihinde başlıyor. Kursun toplam süresi 160 saat. Dersler Cumartesi ve Pazar günleri saat 14.00
C çalışma soruları – 70 (recursive functions – özyinelemeli işlevler)
Bir tam sayının bir tam sayı kuvvetini hesaplayacak power isimli işlevi özyinelemeli (recursive) olarak tanımlayınız
1 |
int power(int x, int n); |
Yazdığınız işlevi tek bir return deyiminden oluşacak şekilde
C çalışma soruları – 69 (recursive functions – özyinelemeli işlevler)
İşaretli int türden bir tam sayının değerini 10’luk sayı sisteminde ekrana yazdıran özyinelemeli (recursive) riprint isimli fonksiyonu yazınız:
1 |
void riprint(int); |
Aşağıdaki kodu test amaçlı kullanabilirsiniz:
1 2 3 4 5 6 7 8 9 |
int main() { riprint(123); //123 riprint(-13456); //-13456 riprint(8272); //8272 riprint(-912); //-912 riprint(0); //0 riprint(28827); //28827 } |
C çalışma soruları – 68 (recursive functions – özyinelemeli işlevler)
Aşağıdaki kodda tanımlanan func isimli işlev ne yapıyor?
1 2 3 4 5 6 7 8 9 |
#include <stdio.h> void func(int x) { if (x > 1) func(x / 2); putchar('0' + x % 2); } |
C çalışma sorusu 67 (conditional compiling)
Aşağıdaki C programı derlenip çalıştırıldığında ekran çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <stdio.h> #define NEC 100 void func(void); int main() { func(); #ifdef NEC #undef NEC #endif } void func(void) { #if defined NEC printf("NEC = %d\n", NEC); #else printf("NEC tanimsiz\n"); #endif } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı hatası) Tanımsız davranış.
C çalışma sorusu – 66 (conditional compiling)
Aşağıdaki C programı derlenip çalıştırıldığında ekrana ne yazdırılır?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
#include <stdio.h> #define NECO 100 #define ZERO 0 #define NONO int main() { #if NECO printf("A"); #endif #if ZERO printf("B"); #endif #if YOKO printf("C"); #endif #ifdef NECO printf("D"); #endif #ifdef ZERO printf("E"); #endif #ifdef NONO printf("F"); #endif #ifdef YOKO printf("G"); #endif #ifndef NECO printf("H"); #endif #ifndef ZERO printf("I"); #endif #ifndef NONO printf("J"); #endif #ifndef YOKO printf("K"); #endif #if YOKO > -1 printf("L"); #endif #if TOKO == YOKO printf("M"); #endif } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı hatası) Tanımsız davranış. Derleyiciye
C çalışma sorusu – 65 (göstericiler)
Aşağıdaki C programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <stdio.h> int main() { int a[4] = { 0, 1, 2, 3}; int *p = a + 3; ++*--p; ++*p--; p[2] += p[1]; for (int i = 0; i < 4; ++i) printf("%d", a[i]); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı hatası) Tanımsız davranış.
C çalışma sorusu – 64 (sıralı dizide eksik olan en küçük sayı)
Küçükten büyüğe sıralanmış, her öğesi birbirinden farklı (distinct) olan negatif bir tamsayı içermeyen bir tamsayı dizisi var. Bu dizide yer almayan en küçük tamsayıyı
C çalışma sorusu – 63 (dizide tekrar eden tamsayı)
n elemanlı bir dizi var. Bu dizide 1 – n arasında tüm değerler yer alıyor. Ancak bir değerden 2 tane var. Yinelenen değeri bulan