第1回 C言語の復習(変数と制御構造)

目的

C言語の文法を思い出し、実際の短いプログラムを作成する。

課題

下記の問題から、各自自分のレベルに合った問題を解いて提出する。

みなさんのC言語の理解度のばらつきが大きすぎるので、多様なレベルの問題を用意した。全ての問題を時間内に解くのはまず無理だろうから、適切なところからはじめること。

まず、問題文をざっと見て、どのレベルの問題なら自分に解けそうか判断するべきである。まったくといっていいほど、C言語が分からない者は、問題 a1)からはじめること。

もちろん、高いレベルの問題をより多く解いていたほうがよい評価となるが、決して、他人のプログラムを写したりしないこと。コピーが発覚した場合には、厳しく減点するものとする。

提出は、提出エリアの自分の提出エリアにアップロードする。なお、プログラムは、きちんとコンパイルし、完全かつ正確に動作することを確認してから、提出すること。

超初級レベル

表示と変数

関連項目: printf, 書式(%d, %fなど)、変数の型(int, doubleなど)

a1) 標準出力に、自分の好きなことわざを1つ表示するプログラムを作成しなさい。

a2) 自分の氏名とメールアドレスを1行ずつ,画面に表示するプログラムを作成しなさい.

a3) 整数型の変数に自分の生まれた年(西暦)を代入して表示するプログラムを作成しなさい。

【変数名】 変数名や関数名(「識別子」という)は、1文字とは限らない。1文字目には英文字、2文字目以降には英数字が使える。

pi, kingaku, y2003, ...

a4) 2つの文字型の変数に自分のイニシャルを代入し,「A.B」のように表示するプログラムを作成しなさい。

a5) 3.1415を変数に代入して表示するプログラムを作成しなさい。double型とint型ではどのように異なるか。

演算子と入力

関連項目: scanf, 書式(%d, %fなど)、演算子(+, -, *, %)

a6) キーボードから2つの整数n, mを読み込み,それらの和と差を計算し,n, m, 和,差を表示するプログラムを作成しなさい。

a7) 単価がx円の鉛筆をy本買いました。z円札を出したときのお釣りを求めるプログラムを作成しなさい。x, y, zの値はキーボードから入力すること。

【%演算子】 整数演算a÷bのあまりを求める演算子として「%」が使える。

r = a % b;

a8) ある金額を硬貨で支払う際に,枚数がもっとも少なくなる支払い方を求めるプログラムを作成しなさい。支払い金額は入力すること。

a9) a=5.2, b=3.1として,a*b, a/bの演算を,aとbのデータ型を,int, float, double 型で,それぞれ色々変えて実行してみなさい。

a10) 2つの整数を読み込んで,前者の値が後者の値の何%であるかを小数第2桁まで表示するプログラムを作成しなさい。23, 13を入力した場合について結果を示すこと。

【キャスト】 一時的に変数の型を変更するのは、キャスト演算子「(型名)」を用いる。

int a = 2, b = 3;
float q = (float) a / b;

初級レベル

条件分岐

関連項目: if-else

b1) 整数をひとつ入力し,それが偶数か奇数かを判定し出力するプログラムを作成しなさい。

【代入と等号】 変数に値を入れる代入(=)と、等しいことを判定する等号(==)は異なる。C言語の基本中の基本だが、慣れてきてもうっかり間違えやすいところ。

a = 10;
if (a == 10) { …

b2) キーボードから入力した2つの整数の差を求めなさい。常に大きい値から小さい値を引いて,差の絶対値となるようにしなさい。

b3) 2次方程式の各項の係数を入力し,実数解の個数を出力するプログラムを作成しなさい。

【else if】 elseの後には、ifを続けて書ける。

if (...) {
    ...
} else if (...) {
    ...
} else if (...) {
    ...
} else {
    ...
}

b4) 整数x, y, zを読み込み、それらを3辺の長さとする三角形が、直角三角形であるか、二等辺三角形であるか、直角二等辺三角形であるか、正三角形であるか判定するプログラムを作成せよ。

【条件式】 条件式は、

if (a < b < c) { …    /* 誤り!! */
if (a == b == c) { …  /* 誤り!! */

のようには続けて書けない。かわりに、

if (a < b && b < c) { …
if (a == b && b == c) { …

のように、論理AND演算子&&(〜かつ〜)を利用する。

b5) キーボードから、整数を1つ読み込み、それが、偶数だった場合には「2」、4の倍数だった場合には、それに加えて「4」、どちらにもあてはまらない場合には「X」、と表示するプログラムを作成せよ。

繰り返し

関連項目: for, while

b6) 1以上100未満の整数を,小さい順に画面に表示するプログラムを作成しなさい.

b7) 10個の整数をキーボードから読み込み,奇数と偶数の数を数えて出力するプログラムを作成しなさい。

b8) キーボードから自然数nを読み込み,nのすべての約数dについて,dが奇数ならば数値をカッコで囲んで「(3)」というように表示し,そうでないならば単に数値だけを表示するC言語のプログラムを作成せよ.以下に例を示す。

入力:6  出力:(1) 2 (3) 6
入力:30 出力:(1) 2 (3) (5) 6 10 (15) 30

b9) 2つの整数xとaを入力し,xのa乗を計算して,出力するプログラムを作成しなさい。ただし,aは正数であるとする。

b10) 2つの整数aとbを入力し,aからbまでの和a + (a+1) + … + (b-1) + b を計算して出力するプログラムをfor文を用いて作成しなさい。


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