【C++Primer】第五版习题解答--第四章【学习笔记】

ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考。

作者:cosefy

Date: 2020/1/11

第四章:表达式

练习4.6:

判断奇数:if num%2!=0

练习4.9:

const char* cp = "hello world";
if (cp && *cp)

if语句判断cp表示的字符串以及* cp指向的第一个字符是否都为空。

练习4。10:

实现:为while循环写一个条件,使其从标准输入中读取整数,遇到42时停止。

#include<iostream>
using namespace std;
int main()
{
int i;
while (cin >> i&&i!=42) ;
return 0;
}

练习4.11:

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

练习4.12:

先判断i<k,返回bool类型,然后判断i是否不等于返回的布尔类型,由于i是整数,故在返回布尔类型和i的比较中,布尔类型会转换为0或1,进行判断,最终返回bool类型的结果。

练习4.13:

赋值运算符运算顺序是从右向左。

(a):值3.5先赋值给int型的i,则i=3,再把i的值赋值给double型d,d=3.0.

(b):值3.5先赋值给double型d,d=3.5,再把d的值赋值给int型i,i=3。

练习4.14:

if(42=i) //字面值不能作为左值,程序将会出错

if(i=42) //i被赋值42,由于i不等于0,故将会执行if块内的程序

练习4.15:

不可以将指针值赋值给int和double型数据。

dval=ival=(* pi)=0;

练习4.16:

(a):赋值运算符的优先级低于关系运算符的优先级。可以给赋值部分语句加上括号。

(b):==写成了=。

练习4.19:

a: 指针ptr不为空,并且ptr指向的值也不为0。

b: ival的值是否为0,同时ival加一后是否为0。

c: 此处求值的顺序是任意的,可能先访问vec[ival],也有可能先进行vec[ival++],得到的判定形式不同。

练习4.20:

a: 合法,先解引用,后自增地址。

b: 不合法,字符串类型无法自增

c: 不合法,iter无法调用empty()

d: 合法,判断iter指向的对象是否为空

e: 不合法,字符串无法自增

f: 合法,先判断所指对象是否为空,再自增地址。

练习4.21:

实现:使用条件运算符从vector中找出奇数并翻倍。

#include<iostream>
#include<vector>
using namespace std; int main()
{
vector<int>v1{ 1,2,3,4,5,6,7,8,9 };
for (auto& i : v1)
{
i = i % 2 ? i * i : i;
cout << i << endl;
}
return 0;
}

练习4.22:

实现:输入一个分数,用条件运算符判断分数属于哪个层级。

#include<iostream>
#include<vector>
using namespace std; int main()
{
unsigned grade;
cin >> grade;
cout << ((grade > 90) ? "high pass" : (grade > 75) ? "pass" : (grade > 60) ? "low pass" : "failed");
return 0;
}

实现:输入一个分数,用一个或多个if语句判断分数属于哪个层级。

#include<iostream>
#include<vector>
using namespace std; int main()
{
unsigned grade;
cin >> grade;
if (grade > 90)
cout << "high pass";
else if (grade > 75)
cout << "pass";
else if (grade > 60)
cout << "low pass";
else
cout << "failed";
return 0;
}

练习2.23:

因为条件运算符的优先级很低,所以需要给条件运算符的表达式加上括号。

练习4.26:

由于int型在不同机器上位数不同,所以在这个例子中,可能会出现数据溢出的问题。

练习4.27:

a: 3

b: 7

c: 1

d: 1

练习4.29:

#include<iostream>
using namespace std;
int main()
{
int x[10];
int* p = x;
cout << sizeof(x) / sizeof(*x) << endl;
cout << sizeof(p) / sizeof(*p) << endl;
return 0;
}

运行结果:



原因:数组占据空间大小除以每个元素空间大小(40/4=10);指针所占空间大小除以指向元素所占空间大小(4/4=1)。

练习4.33:

someValue为真时,执行

++x,++y;

someValue为假时,执行

--x,--y;

练习4.34:

a: fval转换为bool类型。

b: fval和ival都转化double类型。

c: cval先转化为int型,得到的乘积再转化为double型。

《C++Primer》第五版习题解答--第四章【学习笔记】的更多相关文章

  1. 《C++Primer》第五版习题答案--第六章【学习笔记】

    <C++Primer>第五版习题答案--第六章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/16 第六章:函数 ...

  2. 《C++Primer》第五版习题答案--第三章【学习笔记】

    [C++Primer]第五版[学习笔记]习题解答第三章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/10 第三章:字符串,向量和数组 ...

  3. C++Primer第五版——习题答案和解析

    感谢原文博主的分享:https://blog.csdn.net/misayaaaaa/article/details/53786215 新手入门必看的书.知识是一个系统化并且相互关联的体系,零散的东西 ...

  4. C++Primer第五版——习题答案目录

    目前正在刷<C++Primer>这本书,会在博客上记录课后习题答案,答案仅供参考. 因为水平有限,如有有误之处,希望大家不吝指教,谢谢! 目录地址 使用的系统为:win 10,编译器:VS ...

  5. C++Primer第五版——习题答案详解(一)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第1章 开始&&第2章 变量和基本类型 练习1.3 #include&l ...

  6. C++Primer第五版——习题答案详解(二)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第3章 字符串.向量和数组 练习3.2 一次读入一整行 #include<iost ...

  7. C++Primer第五版——习题答案详解(三)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第4章 表达式 练习4.10 while(cin>>i&&i ...

  8. C++Primer第五版——习题答案详解(四)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第5章 语句 练习5.9 #include<iostream> #inclu ...

  9. C++Primer第五版——习题答案详解(五)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第6章 函数 练习6.4 #include<iostream> using ...

随机推荐

  1. Levenshtein distance 编辑距离算法

    这几天再看 virtrual-dom,关于两个列表的对比,讲到了 Levenshtein distance 距离,周末抽空做一下总结. Levenshtein Distance 介绍 在信息理论和计算 ...

  2. nano使用说明

    Main nano help text The nano editor is designed to emulate 仿真.模拟 the functionality and ease-of-use o ...

  3. 读取Flex AIR应用程序设置

    说明: 本人之前做过一年的Flex AIR移动跨平台开发,在之前学习过程中,一直是将笔记记在了Evernote上,有的笔记是自己写的,也有的笔记是在网上看到,顺手记下了的. 所以在这里声明下,如果在网 ...

  4. P1103 走迷宫三

    题目描述 大魔王抓住了爱丽丝,将她丢进了一口枯井中,并堵住了井口. 爱丽丝在井底发现了一张地图,他发现他现在身处一个迷宫当中,从地图中可以发现,迷宫是一个N*M的矩形,爱丽丝身处迷宫的左上角,唯一的出 ...

  5. H3C STP可选配置

  6. linux进程简单睡眠

    当一个进程睡眠, 它这样做以期望某些条件在以后会成真. 如我们之前注意到的, 任何睡 眠的进程必须在它再次醒来时检查来确保它在等待的条件真正为真. Linux 内核中睡眠的 最简单方式是一个宏定义, ...

  7. 2018-8-10-win10-uwp-获得缩略图

    title author date CreateTime categories win10 uwp 获得缩略图 lindexi 2018-08-10 19:16:51 +0800 2018-2-13 ...

  8. Comet OJ - Contest #5

    Comet OJ - Contest #5 总有一天,我会拿掉给\(dyj\)的小裙子的. A 显然 \(ans = min(cnt_1/3,cnt_4/2,cnt5)\) B 我们可以感性理解一下, ...

  9. ImportError: No module named 'cx_Oracle'问题处理过程记录,安装python cx_Oracle库

    错误如下: E:\pargram>python Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [M ...

  10. HP Z420 工作站主板(X79 , C602)折腾笔记

    公司的电脑有点慢,然后最近运行了SQL Server服务之后,内存又不太够.于是就在淘宝上搜索一些洋垃圾相关的信息.找来找去,发现X79是不错的选择,CPU性能够用,内存价格便宜(16G不到200元) ...