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

前言:自己做的,如果有错误,要提出来哟...

//4.1

105

//4.2

*(vec.begin());

*(vec.begin())+1;

//4.3

可以接受..利大于弊嘛..

//4.4

(((12/3)*4+(5*15))+((24%4)/2);

//4.5

-86

-18

0

-2

//4.6

%2即可。

//4.7

1000000000*1000000000 2^1000+1;1231556*413514

//4.8

//4.9

不是空指针,并且指向的不是空字符

//4.10

While(cin>>a)

{

   If(a==42)

     Break;

}

//4.11

a>    b&&b>c&&c>d

//4.12

i!=(i<k)

//4.13

d=i=3

i=3,d=3.5

这道题很重要,看看,是从后往前来。

//4.14

第一个非法,第二个永远成立

//4.15

虽然可以给指针赋值0,但是不能连等!

//4.16

第一个打括号

第二个再加一个=

//4.17

i++比++i多了一个赋值过程

//4.18

第一个没有输出,并且可能输出未定义的部分,引发错误

//4.19

Ptr指针不为空指针且*ptr++为真

错,应该互换位置

错,没意义

 

 

//4.20

a 合法

b 合法

c (*iter).empty();

d 合法

e 合法

f 合法

//4.21

#include <iostream>

#include<vector>

using namespace std;

 

int main()

{

 

   int i;

   vector<int>ivec;

   for(i=0;i<10;i++)

       ivec.push_back(i);

   vector<int>::iterator it=ivec.begin();

   for(it=ivec.begin();it!=ivec.end();++it)

    {

        if(*it%2!=0)

           *it=*it*2;

    }

    for(it=ivec.begin();it!=ivec.end();++it)

    {

        cout<<*it<<endl;

    }

}

//4.22

#include <iostream>

#include<vector>

using namespace std;

 

int main()

{

 

   vector<unsigned>grades;

   unsigned i;

   while(cin>>i)

       grades.push_back(i);

   for(vector<unsigned>::const_iterator grade=grades.begin();

   grade!=grades.end();++grade)

    {

       string finalgrade=(*grade<60)?"fail":"pass";

       finalgrade=(*grade>90)?"highpass":(*grade<60)?"fail":"pass";

       cout<<*grade<<""+finalgrade<<endl;

    }

}

//4.23

String p1=s+((s[s.size()-1]==’s’?””:”s”);

//4.24

先判断是否小于60,在判断是否大于90

//4.25 4.26 4.27不会

4.28

#include <iostream>

#include<vector>

using namespace std;

 

int main()

{

 

   cout<<sizeof(char)<<endl;

   cout<<sizeof(int)<<endl;

}

4.29

#include <iostream>

#include<vector>

using namespace std;

 

int main()

{

   int x[10];

   int *p;

   cout<<sizeof(x)<<""<<sizeof(*x)<<endl;

   cout<<sizeof(p)<<""<<sizeof(*p)<<endl;

}

4.30

Sizeof(x+y);

Sizeof(p->men[i])

Sizeof(a)<b

Sizeof(f())

4.31

/4.32

用指针和下标来操作数组的元素

//4.33

(someVal?++x),(++y,x),(-y)

//4.34

a:fval是否为0

b:求和赋值

c:先乘再加

//3.35

都可以

//4.36

int i*=static_case<int>(d)

//4.37

Pv=cosnt_casr<void*>(ps)

I=statuc_case<int>(*pc)

Pv=static_case<double *>(&d);

Pc=reinterpret_cast<char *>(pv);

 

//4.38

把j/i的值强制转换成double型,给slope


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值