情報処理・演習2の授業では,これまでに「文字列」,「ポインタ変数」,「関数」,「ファイル入出力」,「グラフィックス」,「構造体」を扱いました.これで,ほぼC言語の文法はおしまいです.後半は,これまでに習ったことを利用して,実用的なプログラムを作成していきます.
今回は「文字列」,「ポインタ変数」,「関数」,「ファイル入出力」の復習です,内容を完璧に理解しましょう.わからないところがあったら,前回までの授業用ホームページを参照してください.
ちなみに,今回の課題は,昨年度の期末試験の問題(一部改変)です.これが,60分でできれば,「文字列」,「ポインタ変数」,「関数」,「ファイル入出力」は,理解できていると考えられます.
(1)【関数】四角形の幅(整数)と高さ(整数)を渡すと,面積(整数)が戻り値として求まる関数の定義を示せ.
(2)【関数とポインタ】自由落下運動時の加速度(実数)と時間(実数)を渡すと,速度(実数)と移動距離(実数)が求まる関数の定義を示せ.
(3)【文字列,関数とポインタ】英小文字の文字列(文字数は,128文字以下であるが不明)を読み取り,abc順に並べ替えて画面に表示したい.下記のプログラムを完成させなさい.
#include <stdio.h> /*文字の長さを数える関数*/ _____ moji_nagasa(_____) { ****** } /*文字をabc順に並べる関数*/ _____ moji_sort(_____) { ****** } /*メイン関数*/ void main() { int n; ______ printf("文字列を入力してください:"); scanf(_____); printf("入力された文字列は,%sです.", str); n = moji_nagasa(_____); printf("文字数は,%dです.", n); moji_sort(_____); printf("並べ替えた文字列は,%sです.", str); }
(4)【関数とポインタ】30件の数字データ(右クリック-->[対象をファイルに保存] )30data.txtを読み込み,値を大きい順に並び替え,別のファイル(30data_sorted.txt)に出力せよ.
授業終了時までに完成したプログラムをoh-meijiシステムを使って提出すること.
(提出期限を厳守し,提出用の回に提出しないと採点を行わない)