C の復習 演習 • Hello World を標準出力に表示せよ。 • Hello World を標準エラー出力に表示せよ。 • English – Output “Hello World” on standard output. – Output “Hello World” on standard error output. 演習 • 2つの引数のうち大きい方を返すマクロを定 義し、int 型変数を使って動作確認を行え。 • English – Define a macro that returns a larger value from two arguments. 演習 • 関数の引数をポインタ型にした場合、関数に 渡される変数の挙動を確認せよ。 • Please check the behaviour of an argument to a function that is given by pointer type. 演習 • int **** 型の変数を宣言し,mallocにより領 域を確保せよ.値を代入し,表示することによ り,領域が確保できていることを確認せよ. • English – Declare a variable whose type is int **** and allocate memory to the variable using malloc function. After initialization, please input some values to all of allocated area. 演習 • char * 型の変数を引数として受け取り、それを文字列 として標準出力に表示する関数を書き、この関数を main関数から呼べ。 • 上述の関数とmain関数を別ファイルとし、分割コンパ イルして実行形式を作れ。 • English – Write a function which receives a char * type argument and shows a string pointed by the argument on standard output. Then, call the function from the main function. – Please write the above function in a different file from a file that includes main function, and create an executable file using separate compilation. 2011/10/20追加 演習 • 返り値がint型で2つのint型変数を引数とし、 加算、減算、乗算、除算を行う、add、sub、 mul、divという名前の関数を作成し、関数ポイ ンタの配列を利用して呼び出すコードを書け。 たとえば、func[0]ならばadd、func[1]ならば subという具合。(funcの部分は関数ポインタ の形式に従って正しく記述すること) 演習 • Please write functions perform addition, subtractoin, multiplication, and division named add,sub,mul,div, whose return value is int type and arguments are two integer variables. Then, call these functoins an array of pointers of these functions. 演習 • 以下のコードの動作を理解せよ。 • Please check the behaviour of the following code. #include <stdio.h> void hoge(char *str1){ printf("%s\n",str1);} void (*func(char *str))(char *){ printf ("func:%s\n",str); return hoge; } int main(int argc, char *argv[]){ void (*call)(char *); call=func("test"); call("func pointer"); return 0; } 演習 • 以下の関数を呼び出すmain関数を記述し、 動作を確認せよ • Please write a main function that calls the following functions and check their behaviour. void hoge(void) { printf("hoge\n");} void (*a(void))(void){ printf("a\n");return hoge;} void (*(*b(void))(void))(void){ printf("b\n"); return a;} void (*(*(*c(void))(void))(void))(void){printf ("c\n"); return b;} 演習 • 直前の関数それぞれに異なる文字列を引数 として渡せるように修正し、標準出力に表示し て動作を確認せよ。 • Please modify the functions in the previous problem to accept a char * type argument and check the behaviour by showing strings on stdout.
© Copyright 2024 ExpyDoc