C言語入門 第1回実力試験 解答例




2014年10月より個人の方を対象に、Study C無料提供を開始しました。
C言語を勉強中の方は、学習・教育に最適なC言語インタープリタのStudy Cを使ってみてください(個人の方は無料です)。
大学・高専・高校などの教育機関での採用実績も多数あるロングセラー商品Study Cが、個人向けに無料提供を始めました。
インタープリタの手軽さに加え、ゲームや3Dタートルグラフィックで楽しく勉強したりと、C言語の学習を強力にサポートします。
ブロック崩しゲーム 3Dツリー クリスマスツリー
また、このようなボタンの用意されているページでは、掲載しているプログラムをStudy Cに直接ロードし実行したりすることができます。
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する
Study C無料利用についての詳細は、このページを参照してください。



第1回実力試験の解答例


1-1. printf()を使い画面に Hello Study C と表示してみましょう。

[解答例]
main()
{
        printf("Hello Study C\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-2. Hello と Study C の間に改行を入れて表示してみましょう。

[解答例]
main()
{
        printf("Hello\nStudy C\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-3. printf()を使い画面に漢字で こんにちは Study C と表示してみましょう。

[解答例]
main()
{
        printf("こんにちは Study C\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-4. 3個のprintf()を使い画面に次のように表示してみましょう。

1st line
2nd line
3rd line
[解答例]
main()
{
        printf("1st line\n");
        printf("2nd line\n");
        printf("3rd line\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-5. 1個のprintf()で1-3と同じ表示結果を表示してみましょう。

[解答例]
main()
{
        printf("1st line\n2nd line\n3rd line\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-6. printf()を使い次のように計算結果を表示してみましょう。 計算結果はprintf("...%d", 3+4);のように表示させます。

計算を開始します.
----------------------------
3 + 4 = 7
20 - 11 = 9
5 * 3 = 15
10 / 2 = 5
----------------------------
計算が終了しました.
[解答例]
main()
{
        printf("計算を開始します.\n----------------------------\n");
        printf("3 + 4 = %d\n", 3+4);
        printf("20 - 11 = %d\n", 20-11);
        printf("5 * 3 = %d\n", 5*3);
        printf("10 / 2 = %d\n", 10/2);
        printf("----------------------------\n計算が終了しました.\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-7. 整数型で宣言した変数iに10を代入し、その内容を関数printf()で表示してみましょう。

[解答例]
main()
{
        int     i;

        i = 10;
        printf("i = %d\n", i);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-8. 1-7の変数iに15を加え結果を表示してみましょう。

[解答例]
main()
{
        int     i;

        i = 10;
        i = i + 15;     /* または i += 15; */
        printf("i = %d\n", i);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-9. 1-7の変数名iをdataに変えて実行してみましょう。

[解答例]
main()
{
        int     data;

        data = 10;
        printf("data = %d\n", data);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-10. 1-9の変数dataを2倍にして表示してみましょう。

[解答例]
main()
{
        int     data;

        data = 10;
        data = data * 2; /* または data *= 2 */
        printf("data = %d\n", data);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-11. 1-7の変数iでi+i、i-i、i*i、i/iの計算結果を表示してみましょう。

[解答例]
main()
{
        int     i;

        i = 10;
        printf("i+i = %d\n", i+i);
        printf("i-i = %d\n", i-i);
        printf("i*i = %d\n", i*i);
        printf("i/i = %d\n", i/i);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-12. if文を使い変数の内容が0ならばzero、1ならばoneと表示してみましょう。

[解答例]
main()
{
        int     i;

        i = 0;  /* または i = 1; と変更して実行*/
        if(i == 0){
                printf("zero\n");
        }
        if(i == 1){
                printf("one\n");
        }
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-13. if文を使い変数の内容が正ならばpositive、0ならばzero、負ならばnegativeと表示してみましょう。

[解答例]
main()
{
        int     i;

        i = 0;  /* または i = -1; などと変更して実行*/
        if(i > 0){
                printf("positive\n");
        }
        if(i == 0){
                printf("zero\n");
        }
        if(i < 0){
                printf("negative\n");
        }
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-14. 1-13に加え変数の内容が2ならばtwo、3ならばthree、4ならばfourと表示してみましょう

[解答例]
main()
{
        int     i;

        i = 0;  /* または i = 1; などと変更して実行*/
        if(i == 0){
                printf("zero\n");
        }
        if(i == 1){
                printf("one\n");
        }
        if(i == 2){
                printf("two\n");
        }
        if(i == 3){
                printf("three\n");
        }
        if(i == 4){
                printf("four\n");
        }
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-15. 1-14に加え変数の内容が0から4以外はdifficultと表示してみましょう。

[解答例]
main()
{
        int     i;

        i = 0;  /* または i = 1; などと変更して実行*/
        if(i == 0){
                printf("zero\n");
        } else{
                if(i == 1){
                        printf("one\n");
                } else {
                        if(i == 2){
                                printf("two\n");
                        } else {
                                if(i == 3){
                                        printf("three\n");
                                } else {
                                        if(i == 4){
                                                printf("four\n");
                                        } else {
                                                printf("difficult\n");
                                        }
                                }
                        }
                }
        }
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-16. 次のプログラムを変数tokutenが80点以上はA、70から79点はB、60から69点はC、それ以外はfugoukakuと表示するように書き換えてみましょう。

main()
{
        int tokuten;

        tokuten = 40;
        if (tokuten >= 60) {
                printf("goukaku");
        }
        if (tokuten < 60) {
                printf("fugoukaku");
        }
}
[解答例]
main()
{
        int tokuten;

        tokuten = 40; /* または tokuten = 80; などと変更して実行*/
        if (tokuten >= 80) {
                printf("A");
        } else {
                if (tokuten >= 70) {
                        printf("B");
                } else {
                        if (tokuten >= 60) {
                                printf("C");
                        } else {
                                printf("fugoukaku");
                        }
                }
        }
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-17. forループを使って単語 Study を20回表示してみましょう。

[解答例]
main()
{
        int     i;

        for(i = 0; i < 20; i++){
                printf("Study ");
        }
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-18. forループを使って 1, 2, 3, ..., 20 と表示してみましょう。

[解答例]
main()
{
        int     i;

        for(i = 1; i < 20; i++){
                printf("%d, ", i);
        }
        printf("%d", i);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-19. forループを使って 2, 4, 6, ..., 40 と表示してみましょう。

[解答例]
main()
{
        int     i;

        for(i = 1; i < 20; i++){
                printf("%d, ", i*2);
        }
        printf("%d", i*2);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-20. forループを使って 20, 19, 18, ..., 1 と表示してみましょう。

[解答例]
main()
{
        int     i;

        for(i = 0; i < 19; i++){
                printf("%d, ", 20-i);
        }
        printf("%d", 20-i);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-21. forループとif文を使って OXOXOX ...OXOXOXとOXを20回表示してみましょう。

[解答例]
main()
{
        int     i;

        for(i = 0; i < 40; i++){
                if(i/2*2 == i)
                        printf("O");
                else
                        printf("X");
        }
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-22. 次のプログラムを変数nが0や負の値の時は"*"を表示しないように書き換えてみましょう(if文を使用します)。

main()
{
        int i, n;

        n = 10;
        for (i = 0; i < n-1; i++) {
                printf(" ");
        }
        printf("*\n");
}

[解答例]
main()
{
        int i, n;

        n = 10;
        for (i = 0; i < n-1; i++) {
                printf(" ");
        }
        if (n > 0)
                printf("*\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-23. 4個のforループを使い次のように表示してみましょう("|"はShift+\で入力します)。 横方向のサイズは20になっていますが、この数はプログラムの最初で変数に代入し後で 自由に換えられるようにしてください。

--------------------
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
--------------------
[解答例]
main()
{
        int i, n, j;

        n = 20;
        for (i = 0; i < n; i++) {
                printf("-");
        }
        printf("\n");

        for (j = 0; j < 10; j++){
                printf("|");
                for (i = 0; i < n-2; i++){
                        printf(" ");
                }
                printf("|\n");
        }

        for (i = 0; i < n; i++) {
                printf("-");
        }
        printf("\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-24. 1-23を改造して次のように表示してみましょう。

+------------------+
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
|                  |
+------------------+
[解答例]
main()
{
        int i, n, j;

        n = 20;
        printf("+");
        for (i = 0; i < n-2; i++) {
                printf("-");
        }
        printf("+\n");

        for (j = 0; j < 10; j++){
                printf("|");
                for (i = 0; i < n-2; i++){
                        printf(" ");
                }
                printf("|\n");
        }

        printf("+");
        for (i = 0; i < n-2; i++) {
                printf("-");
        }
        printf("+\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-25. 次のプログラムを参考にして 3, 6, 9, 12, ・・・, 24 桁目に"*"を表示してみましょう。

int     print_dot(int);

main()
{
        int x;

        for (x = 1; x <= 8; x++) {
                print_dot(x);
        }
}

print_dot(n)
int n;
{
        int i;

        for (i = 0; i < n-1; i++) {
                printf(" ");
        }
        printf("*\n");
}
[解答例]
int     print_dot(int);

main()
{
        int x;

        for (x = 1; x <= 8; x++) {
                print_dot(x*3);
        }
}

print_dot(n)
int n;
{
        int i;

        for (i = 0; i < n-1; i++) {
                printf(" ");
        }
        printf("*\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-26. 1-25と同じプログラムを参考にして次のように表示してみましょう。

*
  *
    *
      *
        *
          *
            *
              *
              *
            *
          *
        *
      *
    *
  *
*
[解答例]
int     print_dot(int);

main()
{
        int x;

        for (x = 1; x <= 8; x++) {
                print_dot(x*2-1);
        }
        for (x = 8; x > 0; x--) {
                print_dot(x*2-1);
        }
}

print_dot(n)
int n;
{
        int i;

        for (i = 0; i < n-1; i++) {
                printf(" ");
        }
        printf("*\n");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-27. 三角形の面積を返す関数sankaku_menseki()を(第7回講座)台形の上底、下底、高さから面積を求める関数に変更し、何種類かの値を与え計算させてみましょう。

[解答例]
int     daikei_menseki(int, int, int);

main()
{
        int menseki;

        menseki = daikei_menseki(4, 5, 6);
        printf("(4,5,6) -> %d\n", menseki);
        menseki = daikei_menseki(8, 7, 6);
        printf("(8,7,6) -> %d\n", menseki);
}

daikei_menseki(jyoutei, katei, takasa)
int jyoutei, katei, takasa;
{
        int s;

        s = (jyoutei+katei) * takasa / 2;
        return (s);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-28. Helloと表示する関数hello()とStudy Cと表示する関数study()を作り関数main()の中から順番に呼び出してみましょう。

[解答例]
hello()
{
        printf("Hello\n");
}

study()
{
        printf("Study C\n");
}

main()
{
        hello();
        study();
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...


1-29. 1-28の関数study()を関数hello()から呼び出すように変更し関数main()からは関数hello()だけを呼び出すようにしてみましょう。

[解答例]
study()
{
        printf("Study C\n");
}

hello()
{
        printf("Hello\n");
        study();
}

main()
{
        hello();
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...