Chapter Review

1

a. char actors[30];

b. short betsie[100];

c. float chunk[13];

d. long double dipsea[64];

2

a. array<char, 30> actors;

b. array<short, 100> betsie;

c. array<float, 13> chunk;

d. array<long double, 64> dipsea;

3

int oddly[5] = {1, 3, 5, 7, 9};

4

int even = oddly[0] + oddly[4];

5

cout << ideas[1] << "\n"; // or << endl;

6

char lunch[13] = "cheeseburger"; // number of characters + 1
or
char lunch[] = "cheeseburger"; // let the compiler count elements

7

string lunch = "Waldorf Salad";
or, if you don't have a using directive,
std::string lunch = "Waldorf Salad";

8

struct fish
{
    char kind[20];
    int weight;
    float length;
};

9

fish petes =
{
    "trout",
    12,
    26.66
}

10

enum Response {No, Yes, Maybe};

11

double * pd = &ted;
cout << *pd << "\n";

12

float * pf = treacle; // or = &treacle[0]
cout << pf[0] << " " << pf[9] << "\n";
// or use *pf and *(pf + 9)

13

This assumes that the iostream and vector header files have been included and that there is a using directive:

unsigned int size;
cout << "Enter a positive integer: ";
cin >> size;
int * dyn = new int [size];
vector<int> dv(size);

14

Yes, it is valid. The expression "Home of the jolly bytes" is a string constant; hence it evaluates as the address of the beginning of the string. The cout object interprets the address of a char as an invitation to print a string, but the type cast (int *) converts the address to type pointer-to-int, which is then printed as an address. In short, the statement prints the address of the string, assuming the int type is wide enough to hold an address.

15

struct fish
{
    char kind[20];
    int weight;
    float length;
};

fish * pole = new fish;
cout << "Enter kind of fish: ";
cin >> pole -> kind;

16

Using cin >> address causes a program to skip over whitespace until it finds non-whitespace. It then reads characters until it encounters whitespace again. Thus, it will skip over the newline following the numeric input, avoiding that problem. On the other hand, it will read just a single word, not an entire line.

17

#include <string>
#include <vector>
#include <array>
const int Str_num {10}; // or = 10
...
std::vector<std::string> vstr(Str_num);
std::array<std::string, Str_num> astr;

Programming Exercises

1

#include <iostream>

int main()
{
    using namespace std;

    cout << "What is your first name? ";
    char first_name[20];
    cin.getline(first_name, 20);

    cout << "What is your last name? ";
    char last_name[20];
    cin.getline(last_name, 20);

    cout << "What letter grade do you deserve? ";
    char grade;
    cin.get(grade);

    cout << "What is your age? ";
    int age;
    cin >> age;

    cout << "Name: " << last_name << ", " << first_name << endl
         << "Grade: " << grade << "\n"
         << "Age: " << age << endl;

    return 0;
}

2

#include <iostream>
#include <string>

int main()
{
    using namespace std;

    string name;
    string dessert;

    cout << "Enter your name: \n";
    getline(cin, name);
    cout << "Enter your favorite dessert: \n";
    getline(cin, dessert);
    cout << "I have some delicious " << dessert;
    cout << " for you, " << name << ".\n";

    return 0;
}

3

#include <iostream>
#include <cstring>

int main()
{
    using namespace std;

    char first_name[20], last_name[20];
    char combined[40];

    cout << "Enter your first name: ";
    cin >> first_name;
    cout << "Enter your favorite last name: ";
    cin >> last_name;

    strcpy(combined, last_name);
    strcat(combined, ", ");
    strcat(combined, first_name);
    cout << "Here's the information in a single string: " << combined << endl;

    return 0;
}

4

#include <iostream>
#include <string>

int main()
{
    using namespace std;

    string first_name, last_name, combined;

    cout << "Enter your first name: ";
    cin >> first_name;
    cout << "Enter your favorite last name: ";
    cin >> last_name;

    combined = last_name + ", " + first_name;
    cout << "Here's the information in a single string: " << combined << endl;

    return 0;
}

5

#include <iostream>
#include <string>

struct CandyBar
{
    std::string brand;
    float weight;
    int calories;
};

int main()
{
    using namespace std;

    CandyBar snack = {"Mocha Munch", 2.3, 350};

    cout << "Brand: " << snack.brand << "\nWeight: " << snack.weight
         << "\nCalories = " << snack.calories << endl;

    return 0;
}

6

#include <iostream>
#include <string>

struct CandyBar
{
    std::string brand;
    float weight;
    int cal;
};

int main()
{
    using namespace std;

    CandyBar snack[3] = {{"Mocha Munch", 2.3, 350}, {"Wei Long", 0.5, 222}, {"crisps", 1.0, 500}};

    cout << "Brand: " << snack[0].brand << endl
         << "Weight: " << snack[0].weight << endl
         << "Calories: " << snack[0].cal << endl << endl;

    cout << "Brand: " << snack[1].brand << endl
         << "Weight: " << snack[1].weight << endl
         << "Calories: " << snack[1].cal << endl << endl;

    cout << "Brand: " << snack[2].brand << endl
         << "Weight: " << snack[2].weight << endl
         << "Calories: " << snack[2].cal << endl << endl;

    return 0;
}

7

#include <iostream>
#include <string>

using namespace std;

struct Pizza
{
    string company;
    float diameter;
    float weight;
};

int main()
{
    Pizza piz;

    cout << "Enter the pizza's company: ";
    getline(cin, piz.company);
    cout << "Enter the pizza's diameter(in CM): ";
    cin >> piz.diameter;
    cout << "Enter the pizza's weight(in Kg): ";
    cin >> piz.weight;

    cout << "Company: " << piz.company << endl;
    cout << "Diameter: " << piz.diameter << " CM" << endl;
    cout << "Weight: " << piz.weight << " Kg" << endl;

    return 0;
}

8

#include <iostream>
#include <string>

using namespace std;

struct Pizza
{
    string company;
    float diameter;
    float weight;
};

int main()
{
    Pizza * piz = new Pizza;

    cout << "Enter the pizza's company: ";
    getline(cin, piz -> company);
    cout << "Enter the pizza's diameter(in CM): ";
    cin >> piz -> diameter;
    cout << "Enter the pizza's weight(in Kg): ";
    cin >> piz -> weight;

    cout << "Company: " << piz -> company << endl;
    cout << "Diameter: " << piz -> diameter << " CM" << endl;
    cout << "Weight: " << piz -> weight << " Kg" << endl;

    return 0;
}

9

#include <iostream>
#include <string>

struct CandyBar
{
    std::string brand;
    float weight;
    int cal;
};

int main()
{
    using namespace std;

    CandyBar * snack = new CandyBar[3];
    snack[0] = {"Mocha Munch", 2.3, 350};
    snack[1] = {"Wei Long", 0.5, 222};
    snack[2] = {"crisps", 1.0, 500};

    cout << "Brand: " << snack[0].brand << endl
         << "Weight: " << snack[0].weight << endl
         << "Calories: " << snack[0].cal << endl << endl;

    cout << "Brand: " << snack[1].brand << endl
         << "Weight: " << snack[1].weight << endl
         << "Calories: " << snack[1].cal << endl << endl;

    cout << "Brand: " << snack[2].brand << endl
         << "Weight: " << snack[2].weight << endl
         << "Calories: " << snack[2].cal << endl << endl;

    delete [] snack;

    return 0;
}

10

#include <iostream>
#include <array>

int main()
{
    using namespace std;

    cout << "Enter your three 40-yard runnings' scores: ";
    array<float, 3> scores;
    cin >> scores[0] >> scores[1] >> scores[2];
    cout << "Average: " << (scores[0] + scores[1] + scores[2]) / 3.0 << endl;

    return 0;
}

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

  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. Chapter04 运算符(Operator)

    Chapter04 运算符 目录 Chapter04 运算符 4.1 算数运算符 4.2 关系运算符 4.3 逻辑运算符 4.4 赋值运算符 4.5 三元运算符 4.6 运算符的优先级 4.7 标识符 ...

  4. ​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 ...

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

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

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

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

  7. October 6th 2016 Week 41st Thursday

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

  8. September 6th 2016 Week 37th Tuesday

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

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

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

  10. August 6th, 2016, Week 32nd, Saturday

    It is not the mountain we conquer, but ourselvess. 我们征服的不是高山,而是我们自己. Difficulties and obstacles, jus ...

随机推荐

  1. iOS App架构相关

    一) 我们可以定义一个好的架构应该具备的特点: 任务均衡分摊给具有清晰角色的实体 可测试性通常都来自与上一条(对于一个合适的架构是非常容易) 易用性和低成本维护 二) 传统的MVC模式.:三个实体间相 ...

  2. 大R玩家体验时空猎人折扣平台多角度分析

    <时空猎人>讲述了时空裂隙的出现,导致大批魔物入侵阿达拉大陆.玩家可扮演狼人.机械师.异能者.冰魄等职业,与这片大陆的人们保卫家园. 游戏拥有宠物.等战斗培养元素,还引入竞技场.攻城战等P ...

  3. tcp客户端封装

    1.头文件 #ifndef TCPCLIENT_H #define TCPCLIENT_H #include <QTcpSocket> class TcpClient : public Q ...

  4. topcoder srm 694 div1 -3

    1.给出$n$个数字,将其分成三个非空的组,每组的权值为该组所有数字的抑或.选择一种分法使得三组的权值和最大? 思路:记录前两组的权值且三组有没有数字时第三组的值.(当前两组的值知道时第三组的权值是确 ...

  5. uniGUI试用笔记(七)

    uniGUI的文件下载由于TUniSession的存在而变得非常简单,最典型的一个例子就是将列表中的所有数据导出到Excel中.服务器上采用TMS FlexCel控件,先将数据集中的记录导入到Exce ...

  6. 【做题】arc072_f-Dam——维护下凸包

    题意:有一个容量为\(L\)的水库,每天晚上可以放任意体积的水.每天早上会有一定温度和体积的水流入水库,且要保证流入水之后水的总体积不能超过\(L\).令体积分别为\(V_1,V_2\),温度分别为\ ...

  7. 【做题】Codeforces Round #453 (Div. 1) D. Weighting a Tree——拆环

    前言:结论题似乎是我的硬伤…… 题意是给你一个无向图,已知连接到每一个点的边的权值和(为整数,且属于区间[-n,n]),需要求出每条边权值的一个合法解(都要是在区间[-2*n^2,2*n^2]内的整数 ...

  8. Dubbo集群配置和官方文档

    集群配置: https://blog.csdn.net/zh520qx/article/details/63679908 https://www.cnblogs.com/hd3013779515/p/ ...

  9. C# winfrom 通过代码 删除TableLayoutPanel控件的一行或列

    tableLayoutPanel1.ColumnStyles.RemoveAt(1);                tableLayoutPanel1.Controls.RemoveAt(1);

  10. 今天就整一个bug了

    BeanPostProcessor加载次序及其对Bean造成的影响分析 SSM整合出现not found for dependency: expected at least 1 bean which ...