- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Cprimer第五版第二章习题答案
2.1 类型int ,long,long long ,short 的区别是什么?最小尺寸比如,int最小尺寸为16位,long 32位。8位一字节。无符号类型和符号类型区别?当然是能不能表示负值了。Float和double区别有效数字6和10.2.2 都用double,double和float计算代价基本相同,不用白不用!其实不太懂按揭贷款可能有的用int吧2.3 和2.42^32?=?4 294 967 296-32=4294967264!!2.5 (a)一个是有前缀L,‘a’找能容纳其数值的尺寸最小者;L‘a’最少是wchar_t另一个区别是字符和字符串字面值的区别(b)尺寸问题以及\后加八进制数和16进制数的表示方法(c)尺寸问题(d)科学计数表示浮点型字面值2.6int i=9; 这个9就是我们平时说的9;int i=09; 这个本身就有错,0开头的是8进制的,只有0到7这些数字,不可能出现9,举例:int i=013; 换算成十进制就是1*8+3=11;另外,i=0x9,这个也是9,不过是十六进制的,有0到9加a到f这些数字字母,举例:int i=0x1a; 换算成十进制就是1*16+10=26;in ti=07 ok2.7(a).图片没看见光标,\012是换行(b)(c)(d)略2.82.9(a)报错意外的类型 int(b)非法转换未执行因为存在丢失信息的危险。但在vs2010中编译通过结果为i=3(c)wage未声明的标识符(d)合法 i=32.10#includeiostreamstd::string globle_str;//定义于函数体外初始化为0;int globle_int;//定义于函数体外初始化为0;int main(){int local_int;//显示是随机值,未被初始化,若访问将引发错误; std::string local_str;//显示是随机值,未被初始化,若访问将引发错误;}2.11(a)定义(b)声明并定义(c)声明2.12(a)(c)(d)非法2.13422.14100,452.15(a)合法结果丢失精度(b)引用类型的初始值必须是一个对象(c)此处引用类型的初始值必须是一个int对象(d)引用必须初始化2.16(a)r2和d都是3.14159(b)r1=0 r2=0.00000(c)r2=0.0000 i=0(d)r1=0 d=0.00002.1710,10关键概念之指针引用符号的多重含义Int r2=*p;的意义?可见r2是p地址中内容的引用!!2.18分别改变指针的值以及指针所指对象的值2.19一 指针本身是对象,允许对指针赋值拷贝。二 指针无需在定义时赋初值2.202.21只有(c)合法类型不匹配Int给int型指针2.22O则false指向空则false2.23if(*p)2.24 Void指针可以存放任何对象的地址。Int指针不能放double对象的地址2.25(a)相当于int *ip;int i;int r=i;(b)整型i 整型指针ip指向空(c)定义整型指针2个,没有初始化2.26(a)未初始化(b)合法(c)给const写(d)const还自增!2.27(a) 引用需要用对象初始化(b)正确 常量指针一直指向i2(c)const int r=0;正确 常量引用(d)指向常量对象的常量指针 而且指针指向位置也不变(e)指向常量对象的常量指针(f)必须初始化(g)正确2.28(a)常量指针没有初始化(b)常量指针没有初始化(c)常量整型没有初始化(d)一个指向常量对象的常量指针必须初始化(f)一个指向常量的指针 没有初始化 合法2.29(a)用const int 赋值 可以(b)p1是int指针 p3是const int 指针 无法从“const int *const ”转换为“int *”(c) 无法从“const int *const ”转换为“int *”(d)如果这句是初始化 可以!!已经初始化过 这句话不行(e)因为p1指向的对象可能发生变化 不合法(f)ic不能被赋值2.30const int v2=0; 顶层 保证v2不变const int *p2=v2; 底层 表示指向的为常量 而没有保证*p2不变const int *const p3=i 底层 顶层const int r2=v2;底层 表示引用的值为常量 而废保证r2不变;2.312.32合法通过2.33 ,2.34a b c都是整型=42d 为指针 无法从int 转换为int*e 无法从int 到const int*g 整型常量引用 不能给常量赋值2.35、2.36结果4 4c int d a的引用2.27c intd int2.28不同Const int ci=0,cj=ci;
文档评论(0)