問題1.

xをint型、yをfloat型の変数とするとき、次の計算の結果、値がいくらになるかを示せ。

a)  x = 7 + 3 * 5 / 9 - 1;
b)  x = 2.5 / 3 + 0.5;
c)  y = 4 / 7 * 3;
d)  y = 4 * 3 / 7;

問題2.

次の2つのプログラムa), b) において、イの部分に整数型変数 a の値を代入する文を入れるとき、1)と2)の場合に、画面に出力される結果がどうなるか、回答欄に記入せよ。

1) a = 300;
2) a = 150;

a) イ while(a < 256){ a *= 2; printf("ans1 = %d\n", a); } printf("ans2 = %d\n", a);

b) イ do{ a *= 2; printf("ans3 = %d\n", a); }while(a < 256); printf("ans4 = %d\n", a);

問題3.

次のプログラムによって画面に出力される結果を示せ。

#include <stdio.h>
main()
{
    int a = 2, b = 4;
    float m;
    m = (float)a/4;
    printf("m = %f\n", m);
    b *= a++;
    printf("b = %d\n", b);
    printf("a = %d\n", a);
    b = a*m;
    printf("b = %d\n", b);
}

問題4.

以下のプログラムの switch case 文の部分のみを else if 文を使って書き直せ。

#include <stdio.h>
main()
{
     char a[]="c is easy, to learn.";
     int i=0;

     while(a[i] != '\0'){
         switch(a[i]){
         case ' ':
         case ',':
             a[i] = '_';
             break;
         case '.':
             a[i] = '#';
             break;
         default:
             a[i] -= 32;
         }
         i++;
     }
     printf("%s\n", a);
}

問題5.

次のプログラムによって画面に出力される結果を示せ。

char a[8] = "T U I S";
int n=0;
while(a[n] != '\0'){
    n++;
}
printf("n = %d\n", n);

問題6.

a) 次のプログラムを実行したときに2次元配列 s の各要素に代入される値と同じ値で宣言時に初期化するように、[ア]の宣言文を書き換えよ。

b) 次のプログラムによって画面に出力される結果を示せ。

int row, col;
int s[2][4];  [ア]
for(row=0; row<2; row++)
    for(col=0; col<4; col++)
        s[row][col] = (row+1)*(col+1);
for(col=0; col<4; col++){
    for(row=0; row<2; row++)
        printf("%d ", s[row][col]);
    printf("\n");
}

問題7.

次のプログラムで、[イ]の部分が

a) #define N 3
b) #define N 8

のそれぞれの場合について、画面に出力される結果を示せ。

#include <stdio.h>
[イ]
main()
{
    int j=3, k=1, r=3;
    while(j < 100){
         j *= r;
         k ++;
         if(k > N) break;
         printf("j=%d\n", j);
    }
    printf("j=%d\n", j);
    printf("k=%d\n", k);
}