习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html

第4章 表达式


练习4.10

while(cin>>i&&i!=42)

练习4.11

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

练习4.12

<的优先级大于!=,所以先判断j<k,返回bool类型,再比较返回值和i是否相等

练习4.13

i=3 d=3

i=3 d=3.5

练习4.14

非法、if判断为真

练习4.15

非法,指针指向的是地址,不能赋值,把pi改为*pi

练习4.19

a.指针ptr不为空,且所指的值不为0

b.判断ival和ival的值是否为0,执行完if后ival才加1

c.判断vec[ival]是否小于等于vec[ival],同上

练习4.20

a.合法,对iter解引用,再自增

b.不合法,*iter为字符串,不能自增

c.不合法,没有empty()成员

d.合法,iter所指向的值是否为空

e.不合法,字符串不能自增

f.合法,先判断是否为空再自增

练习4.21

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main() {
vector<int> vec = { 1,2,3,4,5,6,7 };
for (auto i = 0;i < vec.size();i++) {
vec[i] = vec[i] % 2 ? vec[i] * 2 : vec[i];
}
for (auto i : vec) {
cout << i << " ";
}
system("pause");
return 0;
}

练习4.22

if语句更合适,层次分明。

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main() {
int grade;
while (cin >> grade) {
string finalgrade = (grade >= 90) ? "high pass" : (grade >= 75) ? "pass" : (grade >= 60) ? "low pass" : "fail";
cout << finalgrade << endl;
}
system("pause");
return 0;
}
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main() {
int grade;
while (cin >> grade) {
if (grade >= 90) cout << "high pass" << endl;
else if (grade >= 75) cout << "pass" << endl;
else if (grade >= 60)cout << "low pass" << endl;
else cout << "fail" << endl;
}
system("pause");
return 0;
}

练习4.23

改为

string p1 = s + (s[s.size() - 1] == 's') ? "" : "s";

练习4.29

前者为整个数组所占空间的大小除以每个元素所占空间大小40/4=10;

后者为指针所占大小除以每个元素所占空间大小4/4=1;

练习4.30

a.(sizeof x) +y

b.sizeof(p->mem[i])

c.(sizeof a) <b

d.sizeof(f())

练习4.31

后置版本需要将值先保存下来后再自增。


不断学习中,欢迎交流!

C++Primer第五版——习题答案详解(三)的更多相关文章

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

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

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

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

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

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

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

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

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

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第7章 类 练习7.1 class Sales_data { public: std:: ...

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

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第8章 IO库 练习8.1 istream &iofunc(istream &a ...

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

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第9章 顺序容器 练习9.1 a.list,需要按字典序插入,可能插入位置在中间 b.d ...

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

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第10章 泛型算法 练习10.1 #include<iostream> #i ...

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

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第11章 关联容器 练习11.3 #include<iostream> #i ...

随机推荐

  1. volatile关键字的作用

    引言:以前只是看过介绍volatile的文章,对其的理解也只是停留在理论的层面上,由于最近在项目当中用到了关于并发方面的技术,所以下定决心深入研究一下java并发方面的知识.网上关于volatile的 ...

  2. let,const 声明的变量不会绑定给window对象 而var会

    先来看一道题 let id = 2; let json = { id: 1, show:function(){ setTimeout(function(){ console.log(this.id); ...

  3. Win10系列:C#应用控件基础20

    SemanticZoom控件 SemanticZoom控件由相互关联的缩小视图和放大视图所组成,缩小视图用来显示内容的索引,放大视图可以用来显示内容的详细信息,用户可以根据阅读需要在两种视图之间自由切 ...

  4. c#关于捕获错误的问题

    一般捕获错误,采用try,catch,但是有时捕获的错误不明朗,完全不知道是什么错误,这是可以取消try,catch调试运行,找到错误后并修正后,再把try,catch加上.

  5. SpringBoot无法书写主启动类的情况之一

    首先需要引入 spring-boot-starter-web 依赖[springboot web 项目 启动器 jar包]: 如果使用镜像请确保镜像路径正确,可参看笔者博客园m-yb的maven 安装 ...

  6. vue学习笔记 - 篇2

    1.借助Vue.extend()方法创建组件 注意点 var Aaa = Vue.extend({ template: "<h1>这是标题</h1>" }) ...

  7. oracle 11g安装过程

    1,工具:Oracle_win64_11gR2_database(64位oracle 11g数据库).iso安装文件,win10系统 2,右键,解压后,点击setup.exe,系统会检测本机的环境,如 ...

  8. 关于org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Incorrect string value: '\xE5\x91\xBC\xE5\x92\x8C...' for column 'visit_addr' at row 1的问题

    当我们使用Hibernate框架像表中插入一条新的数据时控制台可能会报这样的错误“org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Incorrec ...

  9. B-trees

    B-trees are balanced search trees designed to work well on disks or other direct accesssecondary sto ...

  10. cmake使用方法详解

    cmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性 ...