第5回:演習 (10/20)


第4回演習の解答例



今回は関数とポインタの復習をする.


演習課題

(1)文字型配列 str1 に、"ABCDEFGHIJKLMNOPQRSTUVWXYZ" という文字列が格納されている。

ポインタを2つ用いて、文字型配列 str2 に、この文字列を逆順に格納するようなプログラムを作成せよ。

ヒント:


#include <stdio.h>
 
void main()
{
	char str1[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	char str2[27];
	char *p1, *p2;
	int i;

	p1 = ???;
	p2 = ???;

	for(i=0;i<26;i++){
		*(p2+???) = *(p1+???);
	}

	*(p2+26) = '¥0';

	printf("str2の文字列は ??? です.¥n", ???);
}

(2)大きさ10の整数配列を下図のように初期設定しなさい。

この配列を順に調べ、奇数の値のみ、別の大きさ10の整数型配列に代入し、配列の中身と、何個格納したかを画面表示するプログラムをポインタを用いて作成せよ。

(3)円の半径を渡すと,面積を戻す関数を作成して,面積の値を表示するプログラムを作成せよ.面積は実数であることに注意.
ただし,円周率は3.14とする.

(4)整数型の2つの数値の最小値を返す関数を作成し,キーボードから入力した整数の最小値を表示せよ.

(5)実数xの値を入力し,y=5x5-12x4+3x+1を求める関数を作成して,答えを表示するプログラムを作成せよ.
ただし,xn(nは自然数)の値も,関数を自ら定義して計算すること.

(6)大きさ10の整数配列 { 5, 3, 8, 6, 4, 9, 2, 7, 0, 1 } をポインタを用いて大きい順に並べ替えて表示せよ.


授業終了時までのプログラムと完成した提出用プログラムをoh-meijiシステムを使って提出すること
授業終了時に送るのは出席の確認用である.完成した課題は提出用の回に送ること
(提出期限を厳守し,提出用の回に提出しないと採点を行わない)