Bu çalışma sorusu işlev gösterici dizilerinin (function pointer arrays) kullanımına yönelik: Standart ctype.h başlık dosyasında bildirilen standart karakter test işlevlerinin isimleriyle çağrılabildiği bir kod
Yazar: Necati Ergin
C çalışma soruları – 60 (yapılar – structures)
Duration ismi verilen yapı (structure) türünden nesneler süre değerlerini tutmaktadır. Tutulan süre gün, saat, dakika ve saniye olarak ifade edilmektedir. Örneğin Duration türünden bir nesnenin
C çalışma soruları – 59 (pointer operatörleri)
Aşağıdaki C programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 |
#include <stdio.h> int main() { printf("%d\n", 3["coders"] - 2["coders"]); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı hatası) Tanımsız davranış.
C++ çalışma sorusu – 61 (özel üye işlevler)
C++17 standartlarına göre 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 14 15 16 17 18 19 20 21 |
#include <iostream> struct B { B() { std::cout << "B"; } B(const B &) { std::cout << "b"; } virtual void f() { std::cout << "1"; } }; struct D : B { D() { std::cout << "D"; } D(const D &) { std::cout << "d"; } virtual void f() { std::cout << "2"; } }; int main() { D a[2]; for (B b : a) b.f(); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
verim, performans, veri yapıları ve algoritmalar
Verim (efficiency) ile performans (performance) sıklıkla birbiriyle karıştırılıyor. Verim bir görevin gerçekleştirilmesi için ne kadar iş yapıldığı anlamına geliyor. Yani aynı görevi gerçekleştirmek için ne
C++20 implicit this capture
C++20 standartları this göstericisinin örtülü (implicit) olarak yakalanmasını “deprecated” olarak belirliyor. C++23 standartları bu özelliği dilden tamamen kaldırılabileceğinden kullanmamakta fayda var. Aşağıdaki koda bakalım:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> struct Nec { int mx = 5; // void func() { auto f = [=] {std::cout << mx; }; f(); // } }; int main() { Nec{}.func(); } |
Nec
modern c++ öğeleri
Aşağıdaki kodda C++11 ve daha sonraki standartlar ile dile eklenmiş araçları ve standart kütüphane öğelerini belirtebilir misiniz?
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 |
#include <chrono> #include <random> #include <algorithm> #include <vector> #include <iostream> const auto benchmark = [](auto f) { const auto time{ std::chrono::steady_clock::now() }; f(); return std::chrono::steady_clock::now() - time; }; int main() { std::default_random_engine eng{ std::random_device{}() }; std::uniform_int_distribution dist{ 0, 1'000'000 }; std::vector<int> ivec(100'000); std::generate_n(ivec.begin(), 100'000, [&] {return dist(eng); }); auto f = [&ivec]() {std::sort(ivec.begin(), ivec.end()); }; auto tp = benchmark(f); std::cout << std::chrono::duration_cast<std::chrono::seconds>(tp).count() << "\n"; } |
C++ çalışma sorusu – 60 (std::max, std::min)
C++17 standartlarına göre 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 14 15 16 |
#include <algorithm> #include <iostream> #include <string> int main() { std::string s1{ "AA" }; std::string s2{ "AA" }; const auto &smax{ std::max(s1, s2) }; const auto &smin{ std::min(s1, s2) }; s1 += "A"; s2 += "B"; std::cout << smax << smin; } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
C++ çalışma sorusu – 59 (function overloading)
C++17 standartlarına göre 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 |
#include <iostream> void func(char* &) { std::cout << 'A'; } void func(char* &&) { std::cout << 'B'; } int main() { char c{ 'c' }; func(&c); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
C++ çalışma sorusu – 58 (special members)
C++17 standartlarına göre 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 14 15 16 17 18 19 |
#include <iostream> class Nec { public: Nec() { std::cout << "A"; } Nec(const Nec&) { std::cout << "B"; } Nec(Nec&&) { std::cout << "C"; } ~Nec() { std::cout << "D"; } }; Nec func() { return Nec{}; } int main() { func(); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı