Chapter Review

1
An entry-condition loop evaluates a test expression before entering the body of the loop. If the condition is initially false, the loop never executes its body. An exit-condition loop evaluates a test expression after processing the body of the loop. Thus, the loop body is executed once, even if the test expression is initially false. The for and while loops are entry-condition loops, and the do while loop is an exit-condition loop.
2
It would print the following:

01234
    

Not that cout << endl; is not part of the loop body (because there are no braces).

3
It would print the following:

0369

12
    

4
It would print the following:

6

8
    

5
It would print the following:

k = 8;

6
It's simplest to use the *= operator:

for (int num = 1; num <= 64; num *= 2)
    cout << num << " ";

7
You enclose the statements within paired braces to form a single compound statement, or block.
8
Yes, the first statement is valid. The expression 1,024 consists of two expressions — 1 and 024 — joined by a comma operator. The value of the right-hand expression. This is 024, which is octal for 20, so the declaration assigns the value 20 to x. The second statement is also valid. However, operator precedence causes it to be evaluated as follows:
(y = 1), 024;
That is, the left expression sets y to 1, and the value of the entire expression, which isn't used, is 024, or 20.
9
The cin >> ch form skips over spaces, newlines, and tabs when it encounters them. The other two forms read those characters.

Programming Exercises

1

#include <iostream>

int main()
{
    using namespace std;

    int n1, n2;
    int sum = 0;

    cout << "Input two integer numbers (example: 2 9): ";
    cin >> n1;
    cin >> n2;

    for (int i = n1; i <= n2; ++i)
    {
        sum += i;
    }
    cout << "sum = " << sum << endl;

    return 0;
}

2

#include <iostream>
#include <array>
const int ArSize = 101;

int main()
{
    using namespace std;

    array<long double, ArSize> factorials;
    factorials[1] = factorials[0] = 1.0L;

    for (int i = 2; i < ArSize; ++i)
    {
        factorials[i] = i * factorials[i - 1];
    }

    for (int i = 0; i < ArSize; ++i)
    {
        cout << i << "! = " << factorials[i] << endl;
    }

    return 0;
}

3

#include <iostream>

int main()
{
    using namespace std;

    double x;
    double sum = 0.0;

    cin >> x;
    while (x != 0.0)
    {
        sum += x;
        cin >> x;
    }
    cout << "sum = " << sum << endl;

    return 0;
}

4

#include <iostream>

int main()
{
    using namespace std;

    double d, c;
    d = c = 100.0;

    int i;
    for (i = 0; d >= c; ++i)
    {
        d += 0.1 * 100.0;
        c *= 1.05;
    }

    cout << i << " year(s)\n";
    cout << "Daphne: " << d << endl;
    cout << "Cleo: " << c << endl;

    return 0;
}

5

#include <iostream>

const char * const Months[12] =
{
    "January",
    "February",
    "March",
    "April",
    "May",
    "June",
    "July",
    "August",
    "September",
    "October",
    "November",
    "December"
};

int main()
{
    using namespace std;

    int volumes[12];
    int sum = 0;

    for (int i = 0; i < 12; ++i)
    {
        cout << "Enter the sales volume of " << Months[i] << ": ";
        cin >> volumes[i];
    }

    for (int i = 0; i < 12; ++i)
        sum += volumes[i];

    cout << "Sum = " << sum << endl;

    return 0;
}

6

#include <iostream>

const char * const Months[12] =
{
    "January",
    "February",
    "March",
    "April",
    "May",
    "June",
    "July",
    "August",
    "September",
    "October",
    "November",
    "December"
};

int main()
{
    using namespace std;

    int volumes[3][12];
    int sum = 0;
    int total = 0;

    for (int i = 0; i < 3; ++i)
    {
        cout << "Enter the sales volumes of year: " << i + 1 << endl << endl;
        for (int j = 0; j < 12; ++j)
        {
            cout << "Enter the sales volumes of " << Months[j] << ": ";
            cin >> volumes[i][j];
        }

    }

    for (int i = 0; i < 3; ++i)
    {
        for (int j = 0; j < 12; ++j)
        {
            sum += volumes[i][j];
        }
        cout << "Sales volume of year " << i + 1 << " is " << sum << endl;
        total += sum;
        sum = 0;
    }
    cout << "Sales volumes of 3 years are: " << total << endl;

    return 0;
}

7

#include <iostream>

struct car
{
    char make[40];
    int year;
};

int main()
{
    using namespace std;

    int num;
    car * cars;

    cout << "How many cars do you wish to catalog: ";
    cin >> num;
    cars = new car[num];

    for (int i = 0; i < num; i++)
    {
        cout << "Car #" << i + 1 << ":\n";
        cout << "Please enter the make: ";
        //cin >> cars[i].make;
        cin.getline(cars[i].make, 40);
        cin.get();
        cout << "Please enter the year made: ";
        cin >> cars[i].year;
    }

    cout << "Here is your collection:\n";
    for (int i = 0; i < num; ++i)
        cout << cars[i].year << " " << cars[i].make << endl;

    delete [] cars;

    return 0;
}

8

#include <iostream>
#include <cstring>

int main()
{
    using namespace std;

    char word[20];
    int count = 0;

    cout << "Enter word (to stop, type the word done):\n";
    cin >> word;
    while (strcmp(word, "done"))
    {
        ++count;
        cin >> word;
    }
    cout << "You entered a total of " << count << " words.\n";

    return 0;
}

9

#include <iostream>
#include <string>

int main()
{
    using namespace std;

    string word;
    int count = 0;

    cout << "Enter word (to stop, type the word done):\n";
    cin >> word;
    while (word != "done")
    {
        ++count;
        cin >> word;
    }
    cout << "You entered a total of " << count << " words.\n";

    return 0;
}

10

#include <iostream>

int main()
{
    using namespace std;

    cout << "Enter number of rows: ";
    int n;
    cin >> n;
    for (int i = 0; i < n; ++i) // row
    {
        for (int j = 0; j < n; ++j) // column
            if (j < (n - (i + 1)))
                cout << ".";
            else
                cout << "*";

        cout << endl;
    }

    return 0;
}

c++-pimer-plus-6th-chapter05的更多相关文章

  1. The 6th tip of DB Query Analyzer

      The 6th tip of DB Query Analyzer MA Gen feng (Guangdong Unitoll Services incorporated, Guangzhou ...

  2. [转载]ECMA-262 6th Edition / Draft August 24, 2014 Draft ECMAScript Language Specification

    http://people.mozilla.org/~jorendorff/es6-draft.html#sec-23.4 Draft Report Errors and Issues at: htt ...

  3. chapter05

    /** * Created by EX-CHENZECHAO001 on 2018-03-29. */class Chapter05 { } // 类// 类中的字段自动带有getter方法和sett ...

  4. Chapter05 流程控制(Process Control)

    目录 Chapter05 流程控制 5.1 顺序控制 5.2 分支控制 if-else 单分支基本语法: 双分支基础语法: 多分支基础语法 5.3 嵌套分支 5.4 switch分支结构 5.5 Fo ...

  5. ​Si2151/41 6th Generation Silicon TV Tuner ICs

    ​ The Si2151/41 are the industry's most advanced silicon TV tuner ICs supporting all worldwide terre ...

  6. Codeforces Round #361 Jul.6th B题 ☺译

    最近迈克忙着考前复习,他希望通过出门浮躁来冷静一下.迈克所在的城市包含N个可以浮躁的地方,分别编号为1..N.通常迈克在家也很浮躁,所以说他家属于可以浮躁的地方并且编号为1.迈克从家出发,去一些可以浮 ...

  7. Codeforces Round #361 Jul.6th A题 ☺译

    A.迈克和手机 当迈克在沙滩上游泳的时候,他意外的把他的手机扔进了水里.不过你甭担心因为他立马买了个便宜些的代替品,这个代替品是老款九键键盘,这个键盘只有十个等大的数字按键,按以下方式排列: 1 2 ...

  8. October 6th 2016 Week 41st Thursday

    The outer world you see is a reflection of your inner self. 你拥有什么样的内心,你就会看到什么样的世界. And we eventually ...

  9. September 6th 2016 Week 37th Tuesday

    I only wish to face the sea, with spring flowers blossoming. 我只愿面朝大海,春暖花开. That scenery is beautiful ...

  10. July 6th, Week 28th Wednesday, 2016

    Diligence is the mother of good fortune. 勤勉是好运之母. The mother of good fortune can be diligence, conti ...

随机推荐

  1. 16 级高代 II 思考题十的多种证明

    16 级高代 II 思考题十  设 $V$ 是数域 $\mathbb{K}$ 上的 $n$ 维线性空间, $\varphi$ 是 $V$ 上的线性变换, 证明: $\varphi$ 的极小多项式 $m ...

  2. 浅谈Log4j2日志框架及使用

    目录 1.日志框架 2.为什么需要日志接口,直接使用具体的实现不就行了吗? 3.log4j2日志级别 4.log4j2配置文件的优先级 5.对于log4j2配置文件的理解 6.对于Appender的理 ...

  3. 网络流24题 P2754 [CTSC1999]家园

    思路 如图,建立分层图跑dinic 每次在残余网络里加边继续跑 跑到ans>=k时候的i就是答案 诶呀啊,忘记弄箭头了,最后一列是向上的箭头,不过聪明的你们应该没啥影响 代码 #include ...

  4. 【特性】Redis4.0新特性

    模块系统 Redis 4.0 发生的最大变化就是加入了模块系统, 这个系统可以让用户通过自己编写的代码来扩展和实现 Redis 本身并不具备的功能, 具体使用方法可以参考 antirez 的博文< ...

  5. 【server.properties】kafka服务设置

    每个kafka broker中配置文件server.properties默认必须配置的属性如下: broker.id=0 num.network.threads=2 num.io.threads=8 ...

  6. oracle 之 如何链接别人电脑的oracle

    1.首先确保两台电脑是在同一个局域网内,可以通过cm命令窗口 ping 对方电脑的ID,若是没问题则表示可以连接 2.接下来通过配置来首先连接对方的电脑 其实在后面还有一个是否创建新的额服务名的操作, ...

  7. (转载)西门子PLC学习笔记十五-(数据块及数据访问方式)

    一.数据块 数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的. 数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的 ...

  8. Docker:Containers

    Prerequisites Install Docker version 1.13 or higher. Read the orientation in Part 1. Give your envir ...

  9. Couldn't import dot_parser, loading of dot files will not be possible. 解决方法

    参考: pydot and graphviz error: Couldn't import dot_parser, loading of dot files will not be possible ...

  10. Shell中的IFS

    一.IFS 介绍 Shell 脚本中有个变量叫 IFS(Internal Field Seprator) ,内部域分隔符.完整定义是The shell uses the value stored in ...