Ex03

From Prog0

Jump to: navigation, search

演習第3回

Contents

演習問題

主な内容

  • その他の整数型
  • 浮動小数点型
  • 型変換(キャスト)
  • printf/scanfの書式

以下の問題を解いて期限内に解答を提出してください。

出席確認

演習時間中に出席確認をLMS上の「演習出欠」で行ってください。出席確認用のパスワードは演習時間のどこかのタイミングで提示されます。


A問題

A-1 変数の値

ファイル名: ex03a1.txt, ex03a1.c

以下はプログラムの一部を抜き出したものである。

int i, j;
double x, y;

x = 1.2;
y = 3.5;
i = x;
j = y;
  1. まず、変数 i と j の最終的な値を予想し、その結果を ex03a1.txt に書きなさい。予想が間違っていても採点には影響しない。
  2. 次に、#include や printf など必要な命令を補って、変数 i, j の最終的な値を表示するプログラムを ex03a1.c として作成しなさい。プログラムをコンパイル・実行し、実行結果をもとに i, j の値がなぜそうなったかという理由を ex03a1.txt に追記しなさい。

A-2 printfの書式

ファイル名: ex03a2.c

以下は整数値の単位数と実数値の点数を様々な書式で出力するプログラムである。実行例と同じ出力が得られるようにprintfの下線部に適切な書式を入れ、プログラムを完成させなさい。ただし、%gおよび%Gは使用しないものとする。また、この問題では桁数も実行結果に合わせること。

#include <stdio.h>

int main()
{
  int i = 12;
  double x = 34.5;

  printf("単位数は%__です\n", i);
  printf("単位数は%__です\n", i);
  printf("単位数は%__です\n", i);
  printf("単位数は%__です\n", i);
  printf("点数は%__点です\n", x);
  printf("点数は%__点です\n", x);
  printf("点数は%__点です\n", x);

  return 0;  
}

[実行例]

% ./a.out
単位数は0012です
単位数は12  です
単位数は +12です
単位数は  12です
点数は 34.50点です
点数は3.450E+01点です
点数は3.450000e+01点です
%

A-3 型変換

ファイル名: ex03a3.txt, ex03a3.c

以下はプログラムの一部を抜き出したものである。

int a = 6;
int b = 4;
double c1, c2, c3;

c1 = a + b * a;
c2 = a / b;
c3 = (double)a / (double)b;
  1. まず、変数 c1, c2, c3 の値を予想し、その結果を ex03a3.txt に書きなさい。予想が間違っていても採点には影響しない。
  2. 次に、#include や printf など必要な命令を補って、変数 c1, c2, c3 の最終的な値を表示するプログラムを ex03a3.c として作成しなさい。プログラムをコンパイル・実行し、実行結果をもとに c1, c2, c3 の値がなぜそうなったかという理由を ex03a3.txt に追記しなさい。

B問題

B-1 三角形の面積

ファイル名: ex03b1.c

以下の実行例のように三角形の底辺の長さと高さをキーボードから読み込み、 三角形の面積を計算するプログラムを作成しなさい。ただし、scanfは1個のみ使用すること。

[実行例]

% ./a.out
三角形の底辺の長さと高さをcmで入力してください:7.5 3.0 
三角形の面積は 11.250000 平方cmです
%

B-2 キャスト

ファイル名: ex03b2.c

以下の実行例のように入力された正の実数の小数点以下第3位を切り捨てて表示するプログラムを作成しなさい。ただし、切り捨ての処理はキャストを用いて一文で書くこと。

[実行例]

% ./a.out
正の実数を1つ入力してください:1.2367
1.230000
%

B-3 数値の計算

ファイル名: ex03b3.c

ある店では商品価格を税抜きで表示していて、買い物をすると税抜き合計額に8%の消費税を合わせて払うことになるが、この税込み支払額に対して10%のポイントをポイントカードに付与してくれる。この店での買い物の税抜き合計額を入力すると、消費税額、支払額、ポイントを表示するプログラムを作成しなさい。なお、消費税額とポイントの計算で発生した1円未満は切り捨てとする。

[実行例]

% ./a.out
商品代金(税抜き)を入力してください:1200
消費税は 96 円、お支払い額は 1296 円です
129 ポイントつきました!
%

Extra問題

E-1 16進数

ファイル名: ex03e1.c

以下の実行例のように入力した整数を16進数で表示するプログラムを作成しなさい。

[実行例]

% ./a.out
10進数を1つ入力してください:255
255 は16進数で ff です
%

E-2 体重の平均値と偏差

ファイル名: ex03e2.c

5人分の体重の情報を入力すると、平均値と偏差(各個人毎の体重の値と平均値との差)を計算して、入力された体重とともに表示するプログラムを作成しなさい。その際、表示の桁数が揃うようにprintfの書式を工夫すること。整数部の表示は最大3桁まで考慮し、小数点以下は1桁を表示することとする。

[実行例]

% ./a.out
5人分の体重を空白で分けて入力してください
71.1 68.93 86 77.5 100.9
5人の体重の平均値:  80.9 [kg]
1人目の体重:  71.1 [kg]、平均からの偏差:  -9.8 [kg]
2人目の体重:  68.9 [kg]、平均からの偏差: -12.0 [kg]
3人目の体重:  86.0 [kg]、平均からの偏差:  +5.1 [kg]
4人目の体重:  77.5 [kg]、平均からの偏差:  -3.4 [kg]
5人目の体重: 100.9 [kg]、平均からの偏差: +20.0 [kg]
%

課題提出上の注意事項

解答ファイルはmenuコマンドを使って提出してください。以下のようにmenuコマンドを実行し、表示されるメッセージに沿って操作すること。

% ~prog0/bin/menu

menuコマンドは、解答ファイルが ~/Prog0/Ex## のディレクトリに指定されたファイル名で置かれているものとして処理します。正常に提出された場合は ○ が、何らかのエラーが生じた場合は × が表示されます。

解答の提出期間は以下のとおりです。

問題提出受付開始提出〆切
A問題 演習日の6日前の午後9時演習終了時刻
B, Extra問題 演習日の6日前の午後9時演習日の6日後の午後9時

提出は〆切前であれば何度でもやり直すことができます。再提出すると、前に提出したファイルは新しい内容で上書きされます。

Personal tools