《C++ Primer》第五版课后习题解答_第二章(2)(09-20)

来源:互联网 发布:哈工大大数据集团简介 编辑:程序博客网 时间:2024/06/05 17:14

系统环境: windows 10 1703

编译环境:Visual studio 2017


2.9

(a) 错误,变量 input_value 应先声明再使用;

(b) 错误,转换未执行,因为存在丢失信息的危险;

(c) 如果 wage 未定义,则错误;如果 wage 已定义,则语句正确,且 salary 和 wage 都被赋值为9999.99;

(d) 正确,转换执行,但是丢失了部分值(小数部分丢失)。


2.10

global_str 空字符串

global_int 0

local_int 不被初始化,初值为 0

local_str 不被初始化,初值为空字符串

//中文版 p40 有详细说明


2.11

(a) 定义

(b) 定义

(c) 声明


2.12

(a) 非法,double 为关键字;

(b) 合法;

(c) 非法,标识符里不能出现短横线;

(d) 非法,标识符不能以数字开头;

(e) 合法。


2.13

j 的值是100。


2.14

合法,输出100,45。

(i 的值只在 for 循环里被重新定义)

2.15

(a) 合法,但是值会被截断(小数点之后的值将被舍去);

(b) 非法,引用类型的初始值必须是一个对象;

(c) 合法;

(d) 非法,引用必须被初始化。


2.16

(a) 合法,3.14159 赋给了d;

(b) 合法,i 的值 0 付给了 d;

(c) 合法,d 的值 0 付给了 i;

(d) 合法,d 的值0 付给了 i。


2.17

10 10


2.18

#include <iostream>int main(){       int i = 10, j = 20, *pi = &i;    std::cout << "i " << i << " j " << j << " pi " << pi << " *pi " << *pi << std::endl;    //改变指针的值    pi = &j;    std::cout << "i " << i << " j " << j << " pi " << pi << " *pi " << *pi << std::endl;    //改变指针所指对象的值    *pi = 30;    std::cout << "i " << i << " j " << j << " pi " << pi << " *pi " << *pi << std::endl;    return 0;}
output: i 10 j 20 pi 0000007EF29CFB80 *pi 10
    i 10 j 20 pi 0000007EF29CFB84 *pi 20
    i 10 j 30 pi 0000007EF29CFB84 *pi 30


2.19

引用:定义了引用之后,无法令其再绑定到另外的对象,之后每次使用这个引用都是访问它最初绑定的对象。

  指针存放的是对象的地址,可以通过重新赋值使其指向其他对象。

    定义引用时必须初始化,定义指针时可以不初始化(建议初始化所有定义的指针)


2.20

计算 i 的平方并将计算结果重新赋值给 i。

阅读全文
0 0
原创粉丝点击