[[C言語講座第ニ回課題]]


*演習 [#u6a16319]
変数を出力するためには
 printf("%d\n",変数名);
とします。

1. int型の変数i,j,kを作りそれぞれ4,58,546を代入し出力せよ。
~
 #include <stdio.h>
 void main(void)
 {
	int i,j,k;
	i = 4;
	j = 58;
	k = 546;
	printf("%d\n",i);
	printf("%d\n",j);
	printf("%d\n",k);
 }
~

2. 先ほどのi,j,kの合計をlに代入し出力せよ。
~
 #include <stdio.h>
 void main(void)
 {
	int i,j,k,l;
	i = 4;
	j = 58;
	k = 546;
	l = i + j + k;
	printf("%d\n",l);
 }
~

3. 以下の式の実行順序を説明せよ。
 int i=5;
 i+= (8+5*2)+(6<=i||3==i&&4>i)*2%1;
~
 iがint型変数が5を記憶した状態で宣言される。
 はじめに、(8+5*2)が計算され、(8+10)となり、18が出てくる。
 次に、(6<=i||3==i&&4>i)が計算され、比較・等価の演算子が計算される。
 かっこの中は、(0||0&&0)となり、0が出てくる。
 ここまでをまとめると、i+= 18+0*2%1; という式になる。
 次に、*が計算され、i+= 18+0%1; となる。
 次は、%が計算され、i+= 18+0; となり、i+= 18; となる。
 i+= 18+0; の代入演算子+=は、i = 18+5; という意味である。
 よって、23がiに代入される。
~

4. 以下の出力が0になる理由を説明せよ。
 int i=4,j=50;
 i=4/50;
 printf("%d\n",i);
~
 iもjもint型変数で宣言されているので、小数点以下を記憶することができなくなっている。
 小数点以下は切り捨てになるので、0がiに代入され、0が出力される。

出力が0.080000となるのは、次のようなソースコードである。
 #include <stdio.h>
 void main(void)
 {
 	 float i=4.0;
 	 int j=50;
 	 i=4.0/50;
 	 printf("%f\n",i);
 }

~

*課題 [#m9dfc1df]
>
以下の問題に回答すること。
但し出力には以下のようにする。

整数
    printf("%d\n",変数名);

浮動小数
    printf("%f\n",変数名);

**宣言 [#k03aac81]
>
すべての型の変数を作る。
~
 #include <stdio.h>
 void main(void)
 {
	char a;
	short int b;
	int c;
	long int d;
	float e;
	double f;
	//long double型は、エラーが発生するので、これ以降、省略する
 }
~

**代入 [#m7705b7f]
>
すべての型の変数を作りその変数に代入する。その結果を出力する。
~
 #include <stdio.h>
 void main(void)
 {
	char a;
	short int b;
	int c;
	long int d;
	float e;
	double f;
	
	a = 'A';
	b = 123;
	c = 123;
	d = 123;
	e = 1.23;
	f = 1.23;
	
	printf("%c\n",a);
	printf("%d\n",b);
	printf("%d\n",c);
	printf("%d\n",d);
	printf("%f\n",e);
	printf("%f\n",f);
 }
~
**初期化 [#b7e8cfe5]
>
すべての型の変数を作りその変数を初期化する。その結果を出力する。
~
 #include <stdio.h>
 void main(void)
 {
	char a = 'A';
	short int b = 123;
	int c = 123;
	long int d = 123;
	float e = 1.23;
	double f = 1.23;	
		
	printf("%c\n",a);
	printf("%d\n",b);
	printf("%d\n",c);
	printf("%d\n",d);
	printf("%f\n",e);
	printf("%f\n",f);
 }
~

**算術演算子 [#a4b83db8]
>
二つの適当な数の入ったint型の変数を2つ作りすべての演算子を試す。その結果を出力する。
~
 #include<stdio.h>
 void main(void)
 {
	int i = 10,j = 3;
	
	printf("%d %d %d %d %d\n", i+j, i-j, i*j, i/j, i%j);
	printf("%d %d %d %d %d\n", i<<j, i>>j, i&j, i|j, i^j);
 }
~

**代入演算子 [#k967d7b0]
>
二つの適当な数の入ったint型の変数を2つ作りすべての演算子を試す。その結果を出力する。
~
 #include<stdio.h>
 void main(void)
 {
	int i = 10,j = 3;
	i+=j;
	printf("+=%d\n",i);
	i-=j;
	printf("-=%d\n",i);
	i*=j;
	printf("*=%d\n",i);
	i/=j;
	printf("/=%d\n",i);
	i%=j;
	printf("%%=%d\n",i);
	i<<=j;
	printf("<<=%d\n",i);
	i>>=j;
	printf(">>=%d\n",i);
	i&=j;
	printf("&=%d\n",i);
	i|=j;
	printf("|=%d\n",i);
	i^=j;
	printf("^=%d\n",i);
 }
~
**比較演算子 [#b4db67ae]
>
二つの適当な数の入ったint型の変数を2つ作りすべての演算子を試す。その結果を出力する。
~
 #include<stdio.h>
 void main(void)
 {
	int i = 10,j = 3;
	
	printf("%d %d\n", i<j, i>j);
	printf("%d %d\n", i<=j, i>=j);
	printf("%d %d\n", i==j, i!=j);
 }
~

**型変換 [#ze69bc41]
>
int型とdouble型の変数を作り一方をもう一方に代入してみる。両方の結果を出力する。
~
 #include<stdio.h>
 void main(void)
 {
	int i = 1;
	double j = 3.14;
	i = j;
	printf("%d %f\n", i, j);
	j = i;
	printf("%d %f\n", i, j);
 }
~

**その他 [#t0214a9d]
>
インクリメント、デクリメント、sizeof演算子を試す。
~
 #include<stdio.h>
 void main(void)
 {
	int i = 9;
	printf("%d\n",i++);
	printf("%d\n\n",i--);
	i = 9;
	i++;
	printf("%d\n",i);
	i--;
	printf("%d\n\n",i);
	printf("%d\n",sizeof(i));
 }
~

#comment


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS