C++Primer中文版(第四版)题解整理(15)

时间:2025-04-20

C++Primer题解

(c)名字catch-22中包含在字母、数字和下划线之外的字符“-”,所以非法。可将其改为:catch_22;。

(d)名字1_or_2非法,因为标识符必须以字母或下划线开头,不能以数字开头。可将其改为:one_or_two;。

习题2.15

下面两个定义是否不同?有何不同?

intmonth=9,day=7;

intmonth=09,day=07;

如果上述定义有错的话,那么应该怎样改正呢?

【解答】

这两个定义不同。前者定义了两个int型变量,初值分别为9和7;后者也定义了两个int型变量,其中day被初始化为八进制值7;而month的初始化有错:试图将month初始化为八进制值09,但八进制数字范围为0~7,所以出错。可将第二个定义改为:

intmonth=011,day=07;

习题2.16

假设calc是一个返回double对象的函数。下面哪些是非法定义?改正所有的非法定义。

(a)intcar=1024,auto=2048;

(b)intival=ival;

(c)std::cin>>intinput_value;

(d)doublesalary=wage=9999.99;

(e)doublecalc=calc();

【解答】

(a)非法:auto是关键字,不能用作变量名。使用另一变量名,如aut即可更正。

(c)非法:>>运算符后面不能进行变量定义。改为:

intinput_value;

std::cin>>input_value;

(d)非法:同一定义语句中不同变量的初始化应分别进行。改为:

doublesalary=9999.99,wage=9999.99;

注意,(b)虽然语法上没有错误,但这个初始化没有实际意义,ival仍是未初始化的。

习题2.17

下列变量的初始值(如果有)是什么?

std::stringglobal_str;

intglobal_int;

intmain()

{

C++Primer中文版(第四版)题解整理(15).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219