C言語講座第ニ回

演習

変数を出力するためには

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);
}


課題

以下の問題に回答すること。 但し出力には以下のようにする。

整数

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

浮動小数

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

宣言

すべての型の変数を作る。

#include <stdio.h>
void main(void)
{
	char a;
	short int b;
	int c;
	long int d;
	float e;
	double f;
	//long double型は、エラーが発生するので、これ以降、省略する
}


代入

すべての型の変数を作りその変数に代入する。その結果を出力する。

#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);
}


初期化

すべての型の変数を作りその変数を初期化する。その結果を出力する。

#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);
}


算術演算子

二つの適当な数の入った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);
}


代入演算子

二つの適当な数の入った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);
}


比較演算子

二つの適当な数の入った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);
}


型変換

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);
}


その他

インクリメント、デクリメント、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));
}



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS