TopC++ 入門 › 演習 › 穴埋め問題集

C++ 穴埋め問題集 — 大学試験対策・40 問

試験でよく問われる C++ の文法・標準ライブラリを 40 の穴埋め問題に凝縮。空欄に入力すると即時採点され、「採点する」ボタンで正解も確認できます。

0 / 40正解
Q01出力

std:: << "hi" << std::endl;

答: cout

Q02入力

int n; std:: >> n;

答: cin

Q03名前空間

全体で std を省略するには namespace std;

答: using

Q04整数型

C++11 以降、64bit 整数リテラルに付ける接尾辞は (大文字推奨)

答: LL

Q05null

NULL より推奨される C++ のヌルポインタ定数は

答: nullptr

Q06vector

std::<int> v{1,2,3};

答: vector

Q07追加

末尾に追加: v.(4);

答: push_back

Q08サイズ

要素数: v.()

答: size

Q09範囲for

for (auto x : v) ... でコピーを避けつつ各要素にアクセス

答: &

Q10map

キー word、値 int の辞書型: std::<std::string,int> m;

答: map

Q11クラス

オブジェクト破棄時に呼ばれる特殊関数: Name()

答: ~

Q12const

オブジェクトを変更しないメンバ関数には void f() ; と書く

答: const

Q13可視性

外から触れないメンバは : セクション

答: private

Q14継承

Dog が Animal を継承: class Dog : Animal {};

答: public

Q15仮想関数

多態にするには基底で void speak();

答: virtual

Q16smart_ptr

単独所有権: std::<T>

答: unique_ptr

Q17smart_ptr

参照カウント方式: std::<T>

答: shared_ptr

Q18生成

例外安全な shared_ptr 生成: std::<T>(args...)

答: make_shared

Q19move

unique_ptr を別の変数へ移す: auto b = std::(a);

答: move

Q20weak

循環参照を避ける参照だけ持つ: std::<T>

答: weak_ptr

Q21template

関数テンプレートの宣言: <class T> T max(T,T);

答: template

Q22可変

可変引数テンプレート: template<class... >

答: Args

Q23型推論

戻り値型を推論させる: f(int x) { return x*2; }

答: auto

Q24decltype

式の型を取得: (x+y) z;

答: decltype

Q25static_assert

コンパイル時チェック: (sizeof(int)==4);

答: static_assert

Q26lambda

参照キャプチャの記法: [](int x){ ... }

答: &

Q27sort

降順ソート: std::sort(v.begin(), v.end(), std::<>{});

答: greater

Q28find

条件検索: std::(v.begin(), v.end(), pred);

答: find_if

Q29accumulate

合計: std::(v.begin(), v.end(), 0);

答: accumulate

Q30transform

変換: std::(in.begin(), in.end(), out.begin(), f);

答: transform

Q31optional

空の optional を返す: return std::;

答: nullopt

Q32variant

現在の型が int か: std::<int>(v)

答: holds_alternative

Q33exception

基本例外の基底: std:: クラス

答: exception

Q34noexcept

move コンストラクタは T(T&&) ; にすべき

答: noexcept

Q35rethrow

catch ブロック内で例外を再送: 引数なしの ;

答: throw

Q36thread

スレッド起動後に待つ: t.();

答: join

Q37mutex

RAII ロックの基本: std::<std::mutex> lk(m);

答: lock_guard

Q38async

非同期で結果を受け取る: std::<int> f = std::async(fn);

答: future

Q39atomic

ロック不要のカウンタ: std::<int> n{0};

答: atomic

Q40構造化束縛

C++17 で pair を分解: auto [a, b] ret;

答: =