コース一覧
C言語中級 文字列・構造体
第3章クイズ

C言語中級 文字列・構造体

C言語の文字列と構造体を学び、複数のデータを整理して扱うコースです。

1
文字列処理の実践
01. strlenを自作する15分
02. strcpyを自作する15分
03. バッファオーバーフロー体験15分
04. 文字列を分解する15分
05. 動的な文字列15分
06. つくる 名前入力の安全化15分
07. 第3章クイズ10分
2
構造体とポインタ
01. 構造体ポインタと->15分
02. 構造体の動的確保15分
03. 動的な構造体配列15分
04. 関数ポインタ15分
05. qsortで並べ替える15分
06. つくる 動的Student完成15分
07. 第4章クイズ10分

C言語中級 文字列・構造体

01strlenを自作する
02strcpyを自作する
03バッファオーバーフロー体験
04文字列を分解する
05動的な文字列
06つくる 名前入力の安全化
07第3章クイズ
08構造体ポインタと->
09構造体の動的確保
10動的な構造体配列
11関数ポインタ
12qsortで並べ替える
13つくる 動的Student完成
14第4章クイズ

第3章クイズ

クイズ1

次のコードを実行したとき、画面に表示されるものはどれですか。

c

char name[7] = "Tanaka";
printf("%d\n", (int)strlen(name));
printf("%d\n", (int)sizeof(name));

クイズ2

次の my_strcpy には1か所だけ問題があります。どれですか。

c

void my_strcpy(char *dest, const char *src) {
    while (*src != '\0') {
        *dest = *src;
        dest++;
        src++;
    }
}

クイズ3

写す先が size バイトのとき、あふれさせずに写すループの条件として正しいものはどれですか。写した最後には必ずヌル文字を置くものとします。

クイズ4

次のコードを実行したとき、画面に表示されるものはどれですか。

c

char line[] = "Tanaka,85";
int pos = 0;
while (line[pos] != ',') {
    pos++;
}
line[pos] = '\0';
printf("%s\n", line);
printf("%s\n", &line[pos + 1]);

クイズ5

次のコードには問題があります。どれですか。

c

char *dup(const char *s) {
    int len = strlen(s);
    char *p = malloc(len);
    for (int i = 0; i < len; i++) {
        p[i] = s[i];
    }
    return p;
}

未回答の問題は、不正解として正解と解説のみ表示します

ログインが必要です

クイズに回答するにはログインしてください。