C言語編 第20章 数値の大きさと符号 解答ページ

このエントリーをはてなブックマークに追加

問題@

問題@ short型、int型、long型の大きさを確認するプログラムを作成して下さい。


#include <stdio.h>

int main(void)
{
	printf( "short:  %u\n", sizeof(short) );
	printf( "int:    %u\n", sizeof(int) );
	printf( "long:   %u\n", sizeof(long) );

	return 0;
}

実行結果:

short:  2
int:    4
long:   4

型の大きさは sizeof演算子で調べられます。

問題A

問題A 次のプログラムは、あまり適切とは言えません。理由を考えて下さい。

#include <stdio.h>

int main(void)
{
	double i;

	for( i = 0.0; i < 1000.0; i += 1.5 ){
		printf( "%.1lf\n", i );
	}

	return 0;
}


このプログラムは予定通りに動くかも知れませんが、 浮動小数点数は、正確に値を表現できるとは限らないので、printf関数が出力する値が微妙に違ってしまうかも知れません。 同様の理由から、for文の制御に浮動小数点数を使うべきではありません。

問題B

問題B char型が符号付きか、符号無しかを判定するプログラムを作成して下さい。


#include <stdio.h>
#include <limits.h>

int main(void)
{
	if( CHAR_MIN < 0 ){
		puts( "char型は符号あり" );
	}
	else{
		puts( "char型は符号なし" );
	}

	return 0;
}

実行結果:

char型は符号あり

char型が符号付きであれば、最小値を示す CHAR_MIN の値が負数になっているはずで、 逆に、符号無しであれば、CHAR_MIN の値は正数(0) のはずです。 ですから、CHAR_MIN の値を調べれば判定可能です。


参考リンク

更新履歴

'2009/6/29 新規作成。



第20章のメインページへ

C言語編のトップページへ

Programming Place Plus のトップページへ