C++Primer 中文版 第五版 第二章课后习题答案

前言

自己做的,如果有错误,大家提出来 = =


//2.1

问题1:能够储存的数的大小不同

问题2:一个可以储存负数,一个不能储存负数

问题3:精度不同,double所保留的小数点位数更多

//2.2

答案合理即可

 

//2.3

//2.4

 

32;4294967264;32;-32;0;0

给出代码,自己测试即可,第二个不同的电脑有不同的答案。

#include<iostream>

using namespace std;

int main()

{

   unsigned u=10,u2=42;

   cout<<u2-u<<endl;

    cout<<u-u2<<endl;

   int i=10,i2=42;

   cout<<i2-i<<endl;

   cout<<i-i2<<endl;

   cout<<i-u<<endl;

   cout<<u-i<<endl;

}

//2.5

(a)字符a,宽字符a,字符串a,宽字符串a

(b)10,16字符的10,宽字符的10,宽的16字符的10,八进制数字12,16进制数字C

(c)3.14,float型的3.14,long double 型的3.14;

(d)10,宽字符的10,小数10,0.1

 

//2.6

10进制和八进制的区别

//2.7

//2.8

cout<<”2\115\n”<<endl;

cout<<2<<endl;cout<<”\115”<<endl;

//2.9

1: 非法,先事先定义好,在输入进去;

2: int为整型变量,3.14是小数

3:这样只能定义salary,无法声明wage。必须先声明wage

4:小数点后面的会丢失

 

//2.10

string类的都是null

int的为一个随机的数

//2.11

 

(a)定义。因为它加了“=1024”,一旦赋值,就会无视extern;

(b)声明+定义。

(c)声明。因为使用了extern

 

//2.12

//2.13

i=100;j=100

优先看最近的,也就是100

 

//2.14

合法。I=100;和为45.

for中的i里面的i,与外面没关系,所以还是输出100!!!!!!

//2.15

一三正确。2不合法。引用不能是一个值。4不合法,因为引用必须有初值

 

//2.16

(a)合法,把3.14159赋给了r2和d

(b)合法,把r1的值给了r2和d

(c)合法,把r2的值给了i和r1

(d)合法,把d的值给了r1和i

 

//2.17

都是10;

//2.18

//2.19

//2.20

让i进行了平方

 

//2.21

第一个double错了,第二个没有加地址符,第三个正确

//2.22

if(p)

把地址作为条件,如果地址为空的,不执行。

if(*p)

把指针p所指向的值作为条件

 

//2.23

不能。是否指向是我们自己需要做的

//2.24

long和int不一样。

Void 可以存放任意的

//2.25

(a)ip为指针,i为整型变量,r为整型引用

其他同理

只需要注意int* p和int *p一样即可

 

//2.26

const必须有初值!

a错,没有初值b对

c对,d错。Sz为const

//2.27

(a)      第二个错,因为不能使一个值

(b)      对

(c)      都对。注意第二个,加了const就可以了

(d)      对

(e)      对

(f)       没有初始化

(g)      对

//2.28

(a)      cp没有初始化

(b)      都没有初始化

(c)      没有初始化

(d)      没有初始化

(e)      没有初始化

//2.29

 除了a都非法

//2.32

没有加&;

//2.33

d为指针

e为指针

g为引用

这仨错了

//3.24

//3.25

J为const int

K 为const int &

P为int *

J2为const int

K2为const int &

//2.36 答:运行结果为:a=4;b=4;c=4;d=4;

//2.37 答:a=3;b=4;c=3;d=4;

//2.38 答:const std::vector<int> ival(100);

auto a = ival[0];// a 为 int 类型

decltype(ival[0]) b =1;

// b 为 const int& 类型,std::vector<int>::operator[](size_type)const 的返回类型

auto c = 1;// c 为 int 类型

auto d = c;// d 为 int 类型

decltype(c) e;// e 为 int 类型,c 为 int 型

decltype((c)) f = e;// f 为 int& 型,因为(c)是左值

decltype(0) g;// g 为 int 类型,因为 0 是右值

 

 

其他题

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值