C++PRIMER第四章练习
来源:互联网 发布:四轴飞行器控制算法 编辑:程序博客网 时间:2024/05/19 19:33
4.1 先乘除后加减,105
4.2
a)*(vec.begin())
b)(*(vec.begin()))+1
4.3
可以接受,可以提高编译器效率,潜在缺陷只要注意不让表达式指向并修改同一对象就可以忽略
4.4
((12/3)*4)+(5*15)+((24%4)/2)=91
4.5
a)-86
b)-18
c)0
d)-2
4.6
if(ival%2)为真时奇数,为假时偶数
4.7
当计算的结果超出该类型的范围就会溢出;
4.8
逻辑与,仅当左侧为真时计算右侧;
逻辑或,仅当左侧为假时计算右侧;
相等性,按照提升转化
4.9
先判断cp是否是个空指针,再判断cp指向的字符是否为空,如果都不是则条件为真
4.10
while(cin>>i&&i!=42)
4.11
a>b&&b>c&&c>d
4.12
先判断表达式i!=j的值,如果为真,则转化为1与k比较,否则转化为0与k比较
4.13
a)d=3,i=3;
b)d=3.5,i=3;
4.14
第一个非法,试图给数值常量赋值,第二个条件恒为真
4.15
连续赋值满足右结合律,最右边的pi=0,此时代表的是一个指针,然后试图给整型常量ival赋一个指针的值,
dval=ival=0;pi=nullptr;
4.16
a)!=优先级优于=,改为if((p=getPtr())!=0)
b)条件恒为真,明显与预期不符,改为if(1024==i)
4.17
前置版本返回原对象引用,后置版本返回原对象副本
4.18
先将pbeg+1,然后对pbeg+1解引用,这样会导致不输出第一个数,而试图对超尾地址解引用,导致非法
4.19
a)ptr非空指针,且指向的值不为0,然后将ptr指针向前移动一个位置
b)左边表达式改变ival的值,而右边表达式又要使用ival,这将引发错误或产生未定义的行为~~改为ival++即可
c)如果ival下标合法,该表达式恒为真,然后将ival加1
4.20
a)合法,对iter解引用,然后将iter+1
b)合法,对iter解引用,然后将解引用后的数据+1
c)非法,iter 是一个迭代器,它没有名为empty的成员
d)合法,iter指向的字符串是否为空
e)合法,先对iter解引用,然后将解引用后的数据+1
f)合法,先看iter是否指向空串,然后再将iter+1
4.21
for(auto& val:vec)
val=val%2?val*2:val;
4.22
finalgrade=grade>90?"high pass"
:grade>75?"pass"
:grade>60?"low pass":"fail";
if语句更容易理解
4.23
无法将string与bool值相加;
string pl=s+(s[s.size()-1]=='s'?"":"s");
4.24
(grade<60)?”fail”:(grade>90)?”high pass”:”pass”;
4.25
先提升为int 0x00000071
然后求反为0xffffff8d,往左移6位后11 11111111 11111111 10001110 000000
4.26
int在有些机器上是16位的,而 quizl要至少27位
4.27
a)011&111=011,为3
b)011|111=111,为7
c)3&&7为bool值,true
d)3||7为bool值,true
4.28
cout<<sizeof(int)...
4.29
10
1
4.30
a) sizeof(x)+y
b)sizeof(p->mem[i])
c)sizeof(a)<b
d)sizeof(f())
4.31
效率问题,一个返回左值,一个返回副本
4.32
遍历数组同时指针ptr移到超尾位置
4.33
条件运算优先级比逗号高
(someValue?++x,++y:--x),--y
4.34
a)fval转化为bool
b)ival转化为float,然后相加的值转化为 double
c)cval转化为int,然后相乘的值转化为double
4.35
a)有,'a'转化为int,然后值转为char
b)有,ui转为double然后转到float
c)有,float转为double
d)有,ival先转为float,然后跟fval相加后转为double,最后值再转回char
4.36
i*=static_cast<int>(d)
4.37
a)pv=const_cast<void *>(ps)
b)i=static_cast<int>(*pc)
c)pv=static_cast<void*>(&d)
d)pc=reinterpret_cast(char*)pv
4.38
将j/i的值强制转化为double型赋给slope
- C++PRIMER第四章练习
- 《c primer plus》编程练习回顾-第四章
- C primer plus(第五版)编程练习第四章
- C Primer Plus 第四章 编程练习 1-7题
- C++Primer第四章
- C++primer 第四章
- C++ Primer Plus 编程练习 第四章
- C++primer plus第四章
- C Primer plus 第四章
- c++primer第四章 表达式
- C Primer Plus 第四章
- C++Primer习题第四章
- 记录——《C Primer Plus (第五版)》第七章编程练习第四题
- 记录——《C Primer Plus (第五版)》第八章编程练习第四题
- 记录——《C Primer Plus (第五版)》第九章编程练习第四题
- 记录——《C Primer Plus (第五版)》第十章编程练习第四题
- 记录——《C Primer Plus (第五版)》第十一章编程练习第四题
- C primer plus 第四章字符串和格式化输入输出 个人编程练习
- 二叉树
- 落尘轻泣
- UVA11375 递推+大数
- opencv-python(6):图像上的算术运算
- node.js爬虫小例子
- C++PRIMER第四章练习
- thinkphp5.0.9连接db数据库
- 顺序表逆置 实现前m与后len-m的互换
- iOS11&iPhoneX适配&Xcode9打包注意事项
- 用construct2制作游戏
- Hibernate学习总结
- 这个游戏的名字叫:哒哒哒哒哒哒
- hdu5952-搜索&剪枝&别人都A系列&技巧-Counting Cliques
- 超实微积打先锋,理论自信做后盾