第7回:ココまでの復習 (5/23)

今週は,今期前半に学習した内容を,演習問題を通しておさらいしよう。

キーワード:「文字列」「関数の使い方」「関数の定義」「配列の受け渡し」「アドレス渡し」「ファイル入出力」


(1−1) キーボードから入力した文字列(100文字以下とする)を,画面に表示するプログラムを作成せよ。

(1−2) キーボードから入力した文字列(100文字以下とする)を,順番を逆にして画面に表示するプログラムを作成せよ。(入力:abc,出力:cba)

(1−3) キーボードから入力した小文字の文字列(100文字以下とする)を,すべて大文字に変換するプログラムを作成せよ。(入力:abc,出力:ABC)

 

(2−1) キーボードから文字列(100文字以下とする)を入力すると,入力された文字数を画面に表示するプログラムを作成せよ。

(2−2) 入力された文字列を渡すと,文字数を返す関数を作成し,上記プログラムを作成せよ。

 

(3−1) 変数 a と b の値を入れ替えるプログラムを作成しなさい。


void main()
{
	int a=10;	/* 整数1 */
	int b=4;	/* 整数2 */
	int tmp;	/* 仮の変数 */
	
	printf("a=%d, b=%d¥n", a, b);
	
    printf("変数aと変数bを入れ替えます¥n");

/* ココのプログラムを考える。用意した仮の変数を利用する。 */
	
	printf("a=%d, b=%d¥n", a, b);
}

(3−2) 変数 a と b の値を入れ替える swap() 関数を作成し,プログラムを完成させよ。


void main()
{
    float a=2.0, b=3.0;
	
	printf("a=%f, b=%f¥n", a, b);
	
	swap(&a, &b);
	
	printf("a=%f, b=%f¥n", a, b);
}

 

(4−1) 実数型配列の要素をキーボードから10個入力し,配列の中身を表示するプログラムを完成させなさい。

void input(float p[], int n)/*キーボードからの入力*/
{
	int i;
	
	for(i=0;i<n;i++){
		printf("%d番目のデータ=", i);
		scanf("%f",????);
	}
}

void output(float p[], int n)/*配列の表示*/
{
	int i;
	
	for(i=0;i<n;i++){
		printf("%d番目のデータ=%f¥n", i, ??????);
	}
}

void main()
{
	float data[10];
	
	input(????, ????);
	
	output(????, ????);
}

(4−2) 実数型配列の要素をファイルから読み取り,平均値,最大値と最小値を算出する関数を作成せよ。


void main()
{
    int n; /* 配列のデータ数 */
	float data[1000];	/* 配列 */
    float ave, max, min;
	
    n = loaddata("sin.csv", data);  /* ファイルから配列にデータを読み込み,データ数を返す関数 */

    printf("平均値 = %f¥n", average(data, n));  /* 平均値を算出する関数 */

    max_min(data, n, &max, &min);  /* 最大値と最小値を算出する関数 */
 
    printf("最大値 = %f, 最小値 = %f¥n", max, min);
}

(4−3) これまでに作成した関数を利用して,ファイルから読み込んだデータを大きい順に並べ替えて,画面に表示するプログラムを作成せよ。