x=1 y=2 z=3 x= y= z= x= y= z= x= y= z= x= y= z= x= y= z= x= y= z= x

情報科学1 演習問題8
学籍番号
氏名
第1-1問 3つの整数値x、y、zを入力し、それを値が最大のものから最小のものまで順に
出力したい。複数が同じ値となる場合も考慮し x y z のような形で表現すると3つの値
の大小関係は6通りある。これをすべて書きなさい。
第1-2問 3つの値の大小関係の比較をif文で行うためにはAND論理演算子(1)を用いて
x>=y (1) y>=zのように条件式を書かなければならない。なぜならば、x>=y>=zの様に書く
とまずx>=yの比較を行い、その結果の値である(2)とzの間で比較を行い、>=が成立するか
を調べるので、(3)であるかどうかがわからないからである。
(1)
(3)
(2)
第1-3問 第1-1問と第1-2問を内容に基づいて、以下のプログラムを完成しなさい。
#include <stdio.h> (1)
(2)
int main(void)
{
(3)
int x,y,z;
scanf("%d %d %d",&x,&y,&z);
if (x>=y && y>=z) printf("%d %d %d\n",(1));
(4)
else if((2)) printf("%d %d %d\n",x,z,y);
else if(y>=z && z>=x) printf("%d %d %d\n",(3));
else if(y>=x && x>=z) printf("%d %d %d\n",(4));
else if((5)) printf("%d %d %d\n",z,x,y);
(5)
else printf("%d %d %d\n",(6));
return 0;
(6)
}
第1-4問 上のプログラムが正しく動作するか調べるためには、すべての大小関係の場合を
つくす整数の組み合わせを入力して出力が正しいかを調べる必要がある。第1-1問の大小
関係6通りには=を含むので、3つとも等しい場合と2つ等しい場合の6通りを合わせて
13通りの入力での実行が必要である。入力する整数値を1または2または3とした場合の
x、y、zに入力する値を列挙しなさい。
z>y>x x=1 y=2 z=3
z>x>y x=
y=
z=
y>x>z
x=
y=
z=
y>z>x x=
y=
z=
x>z>y x=
y=
z=
x>y>z
x=
y=
z=
z>x=y x=
y=
z=
x=y>z x=
y=
z=
x>y=z x=
y=
z=
y=z>x x=
y=
z=
裏面につづく
y>x=z
x=
y=
z=
x=z>y x=
y=
z=
x=y=z x=
y=
z=
第2問 左のプログラムで出力される行数は何行か?
#include<stdio.h>
int main(void)
また、最後に出力されるiとjの値はいくつか?
{
int i,j;
行数
for(i=10;i>0;i--)
{
for(j=0;j<=10;j++)
i
{
printf("i=%d j=%d\n",i,j);
}
}
j
printf("i=%d j=%d\n",i,j);
return 0;
}
#include <stdio.h>
int main(void)
{
double kw;
int hp,step=50,lower=50,upper=2000;
for (hp=lower;hp<=upper;hp+=step)
{
kw = 0.7457*hp;
printf("%d [hp]\t%g [kw]\n",hp,kw);
}
return 0;
}
第3問 左のプログラムは仕事率の馬力(英
馬力:hp)とKwの対応表を印字するもの
である。このプログラムを参考にして、
100Kwから1000Kwまでの仕事率につい
て、50KwごとのKwと馬力(hp)の対応表
を印字するプログラムを作成しなさい。
(hpとkwの変数の型に注意すること)