==================== ●問題1:myprog.cというソースプログラムをコンパイルするコマンドを書け。 ■計5点 ●問題2:問題1で作成したプログラムを実行するコマンドを書け。 ■計5点 ●問題3:以下の(1)〜(5)はプログラムの一部である。(1)〜(10)を実行した場合,それぞれ変数 xとyの値はどのような値になるか書け。なお,整数値には小数点は付けてはならない。また,浮動小数 点型(実数型)の値には,必ず小数点を含めて書くこと。 ■各2点計20点 (1) int x = 0; x = 10 - 5 * 3 / 2; (2) int x = 0; x = 10 - 5 * 3. / 2; (3) double y = 0.0; y = 10 - 5 * 3 / 2; (4) double y = 0.0; y = 10 - 5 * 3. / 2; (5) int x = 0; x = 4 * 3 / 5; (6) int x = 0; x = 4 * 3 / 5.; (7) double y = 0.0; y = 4 * 3 / 5; (8) double y = 0.0; y = 4 * 3 / 5.0; (9) int x = -1; x--; (10) double y = -0.5; ++y; ★答え: (1) x:3 (2) x:2 (3) y:3.0 または 3. (4) y:2.5 (5) x:2 (6) x:2 (7) y:2.0 または 2. (8) y:2.4 (9) x:-2 (10) y:0.5 ●問題4:以下は,int型変数xとdouble型変数yにキーボードから値を入れて表示するプログラムである。 【a】〜【e】に当てはまる適切な内容を書け。 ■各3点計15点 【a】 int main( void ) { 【b】 printf("整数を入力 : "); 【c】 printf("浮動小数点数を入力 : "); 【d】 printf(【e】); /* ここで,xとyの値を一緒に表示する */ return 0; } ★答え: 【a】は #include 【b】は int x; double y; またはそれと同意の内容 【c】scanf( "%d", &x ); 【d】scanf( "%lf", &y ); 【e】次のいずれかと同意の内容。 "%d, %f", x, y "%d, %lf", x, y "%d, %g", x, y "%d, %e", x, y ●問題5:以下の(1)〜(6)はプログラムの一部である。それぞれの部分が実行されたときに表示される内容を書け。 何も表示されない場合は,「表示されない」と書け。 ■各5点計30点 (1) int x = 5; x = x * 5; printf( "%d\n", x ); (2) int x = 15; printf( "%d\n", x % 4 ); (3) int x = 21; if( x == 21 ) { printf( "x == 21\n" ); } if( x != 21 ) { printf( "x != 21\n" ); } if( 20 <= x ) { printf( "20 <= x\n" ); } if( x <= 20 ) { printf( "x <= 20\n" ); } (4) int x = 20; x = x + 4; x = x - 10; printf( "%d\n", x ); (5) int x = -10; if( x < 0 ) { printf( "x < 0\n" ); } else { printf( "x >= 0\n" ); } (6) int x = 43; int mod = x % 3; if( mod == 0 ) { printf( "mod is 0\n" ); } else if( mod == 1 ) { printf( "mod is 1\n" ); } else { printf( "mod is 2\n" ); } ★答え: (1) 25 (2) 3 (3) x == 21 20 <= x (4) 14 (5) x < 0 (6) mod is 1 ●問題6:以下の(1)と(2)に答えよ。 ■各5点計10点 (1)以下は,プログラムの一部である。この部分が実行されたときに表示される内容を書け。 int i = 0, n = 0, sum = 0; i = 1; n = 6; sum = 0; while( i <= n ) { sum = sum + i; i++; } printf( "%d\n", sum ); ★答え:21 (2)上記の(1)のプログラムの内容を,for文を使って書き直せ。 ★答え: int i = 0, n = 0, sum = 0; i = 0; n = 6; sum = 0; for( i = 1; i <= n; i++ ) { sum = sum + i; } printf( "%d\n", sum ); ●問題7:以下は,プログラムの一部である。この部分が実行されたときに表示される内容を書け。 ■5点 int a[ 5 ] = { 5, 9, 2, 10, 6 }; int i = 0, s = 0; for( i = 0; i < 5; i = i + 2 ) s = s + a[ i ]; printf( "%d\n", s ); ★答え:13 ●問題8:以下は,配列aの要素をすべて表示するプログラムの一部である。【a】〜【e】に入る内容を書け。 ■各1点計5点 int a[ 6 ] = { 5, 9, 2, 10, 6, 7 }; int i = 0, s = 0; 【a】( 【b】; 【c】; 【d】 ) { printf( "%d\n", 【e】 ); } ★答え: 【a】for 【b】i = 0 【c】i < 6 【d】i++ 【e】a[ i ] ●問題9:double型の仮引数xとyを持ち,xとyのうち大きい方の値をdouble型で返す関数maxを定義せよ。 なお,xとyの値が等しい場合は,xの値を返しても良いし,yの値を返しても良いとする。 ■5点 ★答え:以下のものと同意の関数 double max( double x, double y ) { if( x > y ) { return x; } else { return y; } }