Cygwinでデバッグ

例題

例題を思いつくまま書き連ねてみます。

  1. #include <stdio.h>
    の "stdio" の読み方を記せ。
  2. 以下のプログラムを読んで、次の問に答えよ。
    #include <stdio.h>
    
    int five_times(int x) {  /* (1) */
        x *= 5;              /* (2) */
        return x;            /* (3) */
    }
    
    int main(void) {
        int x = 5;                      /* (4) */
        int y = 10;                     /* (5) */
        
        printf("%d\n", five_times(x));  /* (6) */
        printf("%d\n", five_times(x));  /* (7) */
        printf("%d\n", five_times(y));  /* (8) */
        printf("%d\n", five_times(y));  /* (9) */
        return 0;
    }
    1. (3) で返される x の変数と同じものは (1)〜(2), (4)〜(9) のうちどれであるか。
    2. (2) で x の値は5倍になるが、(6) と (7) の表示は同じになるか。
    3. (2) で x の値は5倍になるが、(8) と (9) の表示は同じになるか、それともコンパイルエラーになるか。

位取り

次のような場合の時刻を表示せよ。時刻は 12:34:56 のような形式(24時間制)で表示するとする。(解答例は filehms.c

  1. (例) ある時計台では、7時〜21時の間、毎時0分に時報が鳴る。時報の鳴る時刻を表示せよ。
    • 出力例
       7:00:00
       8:00:00
       9:00:00
      10:00:00
      ...
      20:00:00
      21:00:00
    • プログラム例
      int i;
      for (i=7; i<=21; i++) {
          printf("%2d:00:00\n", i);
      }
  2. ある駅では、7時から21時30分まで、30分おきに電車が出発する。電車が出発する時刻を表示せよ。
    • 出力例
       7:00:00
       7:30:00
       8:00:00
       8:30:00
      ...
      21:00:00
      21:30:00
  3. ある駅では、7時から、30分おきに1本ずつ、合計14本の電車が出発する。電車が出発する時刻を表示せよ。
  4. ある駅では、7時から、30分おきに1本ずつ、合計15本の電車が出発する。電車が出発する時刻を表示せよ。
    • プログラムのヒント(途中まで)
         int i, h=7, m=0, s=0;
      
         for (i=0; i<15; i++) {
             printf("%2d:%02d:%02d\n", h, m, s);
             m = m + 30;
             ...
  5. ある駅では、7時から、35分おきに1本ずつ、合計15本の電車が出発する。電車が出発する時刻を表示せよ。
  6. ある駅では、7時から、65分おきに1本ずつ、合計15本の電車が出発する。電車が出発する時刻を表示せよ。
  7. ある駅では、7時から、65分おきに1本ずつ、合計20本の電車が出発する。電車が出発する時刻を表示せよ。

     

  8. 深夜の宿直の交代は 20時から始まって3時間ごとで、翌朝8時まで続く。交代の時刻を表示せよ。
  9. 20時から翌朝8時までの宿直の間、50分ごとに冷蔵庫の庫内温度を記録する。記録すべき時刻を出力せよ。
    • 出力例
      20:00:00
      20:50:00
      21:40:00
      ....
  10. 20時から翌朝8時までの宿直の間、50分ごとに冷蔵庫の庫内温度を記録する。50分ごとにアラームの鳴る時計を利用したが、精度不良のため、実際には49分51秒ごとに記録していた。記録していた時刻を出力せよ。
    • 出力例
      20:00:00
      20:49:51
      21:39:42
      ....

考察せよ

次の2つのプログラムの違いを考察せよ。

間違いを直せ


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS