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




2014蟷エ10譛医h繧雁倶ココ縺ョ譁ケ繧貞ッセ雎。縺ォ縲ヾtudy C辟。譁呎署萓帙r髢句ァ九@縺セ縺励◆縲
C險隱槭r蜍牙シキ荳ュ縺ョ譁ケ縺ッ縲∝ュヲ鄙偵サ謨呵ご縺ォ譛驕ゥ縺ェC險隱槭う繝ウ繧ソ繝シ繝励Μ繧ソ縺ョStudy C繧剃スソ縺」縺ヲ縺ソ縺ヲ縺上□縺輔>(蛟倶ココ縺ョ譁ケ縺ッ辟。譁吶〒縺)縲
螟ァ蟄ヲ繝サ鬮伜ーゅサ鬮俶。縺ェ縺ゥ縺ョ謨呵ご讖滄未縺ァ縺ョ謗。逕ィ螳溽クセ繧ょ、壽焚縺ゅk繝ュ繝ウ繧ー繧サ繝ゥ繝シ蝠蜩ヾtudy C縺後∝倶ココ蜷代¢縺ォ辟。譁呎署萓帙r蟋九a縺セ縺励◆縲
繧、繝ウ繧ソ繝シ繝励Μ繧ソ縺ョ謇玖サス縺輔↓蜉縺医√ご繝シ繝繧3D繧ソ繝シ繝医Ν繧ー繝ゥ繝輔ぅ繝繧ッ縺ァ讌ス縺励¥蜍牙シキ縺励◆繧翫→縲,險隱槭ョ蟄ヲ鄙偵r蠑キ蜉帙↓繧オ繝昴シ繝医@縺セ縺吶
繝悶Ο繝繧ッ蟠ゥ縺励ご繝シ繝 3D繝繝ェ繝シ 繧ッ繝ェ繧ケ繝槭せ繝繝ェ繝シ
縺セ縺溘√%縺ョ繧医≧縺ェ繝懊ち繝ウ縺ョ逕ィ諢上&繧後※縺繧九壹シ繧ク縺ァ縺ッ縲∵軸霈峨@縺ヲ縺繧九励Ο繧ー繝ゥ繝繧担tudy C縺ォ逶エ謗・繝ュ繝シ繝峨@螳溯。後@縺溘j縺吶k縺薙→縺後〒縺阪∪縺吶
Study C縺ォ繝ュ繝シ繝峨☆繧 Study C縺ォ繝ュ繝シ繝峨@邱ィ髮縺吶k 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のバージョンなどについて...