您的位置:首页 > 编程语言 > C语言/C++

C++primer[习题][第二章][1-10]

2017-08-13 21:02 183 查看
2.1

short 短整型 16位

int 整形 32位

long 长整形 32位

long long 长整形 64位

无符号型只能表示大于0的数,有符号型可以表示正数,负数和0。

float 单精度浮点数 6位有效数字

double 双精度浮点数 10位有效数字

2.2

利率应选用float类型,因为利率一般只保留两位小数,所以6位有效数字就可以表示。

本金选用long类型,本金通常为整数。

付款选用double类型,付款通常为实数,并且精度要求高。

2.3

unsigned u = 10, u2 = 42;
std::cout << u2-u << std::endl;
std::cout << u-u2 << std::endl;

int i = 10, i2 = 42;
std::cout << i2-i << std::endl;
std::cout << i-i2 << std::endl;
std::cout << i-u << std::endl;
std::cout << u-i <<std::endl;


无符号的 u2-u = 32。u-u2 = -32 对应 无符号数 4294967264

有符号的 i2-i = 32。i-i2 = -32。

i-u = 0。 u-i = 0。

2.4

32
4294967264
32
-32
0
0


2.5

'a'
为char型字面值,
L'a'
为wchar_t型字面值,
"a"
为字符串字面值,
L"a"
为宽字符串字面值。

10
为int型字面值,
10u
为unsigned型字面值,
10L
为long型字面值,
10uL
为unsigned long型字面值,
012
为八进制int型字面值,
0xC
为十六进制int型字面值。

3.14
为double字面值,
3.14f
为单精度浮点数字面值,
3.14L
为long double型字面值。

10
为int型字面值,
10u
为unsigned型字面值,
10.
为double型字面值,
10e-2
为浮点型字面值。

2.6

int month = 9, day = 7;

表示定义两个整形变量,初值分别为9和7.

int month = 09, day = 07;

表示定义两个整形变量,初值分别为八进制的9和7,由于八进制数字范围为0~7,故应该写为 month=011, day = 07。

2.7

“Who goes with F\145rgus?\012”

\145
为字符
e
的转义字符,
\012
为字符
\n
的转义字符。

3.14e1L

为long double 型字面值。

1024f

非法,整数1024后不能加f。

3.14L

为long double 型字面值。

2.8

std::cout << "\062\115\n";
std::cout << "\062\011\115\n";


2.9

std::cin >> int imput_value;

错误,变量需要先定义后使用。

int i = {3.14};

正确,i=3。

double sllary = wage = 99999.9;

如果之前已经定义了wage,则不会报错,如果未定义,则会报错。
: error: use of undeclared identifier 'wage'


int i = 3.14;

正确,但值会被截断。

2.10

global_str
为全局变量,故初始值为空字符串。

global_int
为全局变量,故初始值为0。

local_str
为未初始化的局部变量,故值未定义。

local_int
为未初始化的局部变量,故值未定义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: