プログラミング入門 第3回小テスト解答

学籍番号氏名
解答時間 15分

問題1
下記変数宣言文a - e に最も適切な説明1〜5を選んで,記号で答えなさい。(各3点、合計15点)
  1. float v;   2
  2. long int v;  5
  3. short int v; 4
  4. double v;  3
  5. int v;    1
  1. int(整数)型変数の宣言文
  2. 浮動小数点型変数の宣言文
  3. 倍精度浮動小数点型変数の宣言文
  4. short型変数の宣言文
  5. long型変数の宣言文

問題2
下のプログラムはキー入力を関数scanf()で変数iまたはdに代入する文である。
(1)〜(4)の中で正しいものを記号で答えなさい ________________
又、正しいもの以外は正しく書き直しなさい(各5点、合計25点)
int i;
double d;

/*(1)*/ scanf("%f", &i);        scanf("%d", &i);

/*(2)*/ scanf("%d", &i);        (変更の必要なし)

/*(3)*/ scanf("%d", i);         scanf("%d", &i);

/*(4)*/ scanf("%f", &d);        scanf("%lf", &d); /* %lf は %le, %lgでも可 */

問題3
以下はscanfを用いて,float型変数aにキー入力をし、printfを用いて、 出力するプログラムである。下線部を埋めて完成させなさい。(各5点、合計45点)
(実行例)
% ./a.out
aを入力してください : 12.45
a=12.450000


#include <stdio.h>

main()
{
  float  a;

  printf("aを入力してください : ");

  scanf("%f", &a);

  printf("a=%f\n",a);
}

/*
    float を doubleにしても良い。ただし、その場合、scanfの%fは
    %lf, %lg等のdoubleに対応した書式指定でなくてはならない。
    printfの書式については%f, %lfのどちらでも構わない。また、
    printfで%g, %lgを使用した場合、余分な0は表示されなくなり、
    実行例と完全には一致しないが対応関係は間違いではないので、
    正解とする。
*/