学习笔记:C++primer.plus编程练习题答案

第四章

5.结构CandyBar包含3个成员。第一个成员储存了糖块的品牌;第二个成员储存糖块的重量(可以有小数);第三个成员储存了糖块的卡路里含量(整数)。请编写一个程序,声明这个结构,创建一个名为snack的CandyBar变量,并将其成员分别初始化为“Mocha Munch”、2.3和350.初始化应用在声明snack时进行。最后,程序显示snack变量的内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>

const int Asize=20;
struct CandyBar
{
char brand[Asize];
double weight;
int calory;
};

int main()
{
using namespace std;
CandyBar snack={"Mocha Munch",2.3,350};
cout<<"Here's the information of snack:\n";
cout<<"brand:"<<snack.brand<<endl;
cout<<"weight:"<<snack.weight<<endl;
cout<<"calory:"<<snack.calory<<endl;

return 0;
}

6.结构CandyBar包含3个成员,如编程练习5所示。请编写一个程序,创建一个包含3个元素的CandyBar数组,并将它们初始化为所选择的值,然后显示每个结构的内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
const int Asize=20;
struct CandyBar
{
char brand[Asize];
double weight;
int calory;
};

int main()
{
using namespace std;
CandyBar snack[3]={
{"Moucha Munch",2.3,350},
{"XuFuji",1.1,300},
{"Alps",0.4,100}
};
for(int i=0;i<3;i++)
{
cout<<snack[i].brand<<endl
<<snack[i].weight<<endl
<<snack[i].calory<<endl<<endl;
}
return 0;
}

7.William Wingate从事披萨饼分析服务。对于每个披萨饼,他都需要记录下列信息:

  • 披萨饼公司的名称,可以有多个单词组成。
  • 披萨饼的直径。
  • 披萨饼的重量。
    请设计一个能够存储这些信息的结构,并编写一个使用这种结构的程序。程序将请求用户输入上述信息,然后显示这些信息。请使用cin(或它的方法)和cout。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #include <iostream>
    #include <string>
    const int Size=20;
    struct pizza//声明结构
    {
    char company[Size];
    double diameter;
    double weight;
    };

    int main()
    {
    using namespace std;
    pizza pie;//创建一个名为pie的结构变量
    cout<<"What's the name of pizza company:";
    cin.getline(pie.company,Size);
    cout<<"What's the diameter of pizza:";
    cin>>pie.diameter;
    cout<<"What's the weight of pizza:";
    cin>>pie.weight;
    cout<<"company:"<<pie.company<<endl;
    cout<<"diameter:"<<pie.diameter<<"inches"<<endl;
    cout<<"weight:"<<pie.weight<<"ounches"<<endl;

    return 0;
    }

第六章

3.编写一个菜单驱动程序的雏形。该程序显示提供4个选项的菜单————每个选项用一个字母标记。如果用户使用有效选项之外的字母进行响应,程序将提示用户输入一个有效的字母,直到用户这样做为止。然后,该程序使用一条swich语句,根据用户的执行一个简单的操作。该程序的运行情况如下:

Please enter one of the following choices:
c) carnivore        p) pianist
t) tree            g) game
f
Please enter a c,p,t, or g:q
Please enter a c,p,t, or g:t
A maple is a tree

源代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <cctype>

int main()
{
using namespace std;

cout << "Please enter one of the following choices:\n"
<< "c)carnivore p)pianist\n"
<< "t)tree g)game\n";

cout << "Please enter a c,p,t, or g:";

char ch;
cin>>ch;

while(ch!='c'&&ch!='p'&&ch!='t'&&ch!='g')
{
cout<<"Please enter a c,p,t, or g:";
cin>>ch;
}

switch(ch)
{
case 'c':
cout<<"A maple is a carnivore.\n";
break;
case 'p':
cout<<"A maple is a painist.\n";
break;
case't':
cout<<"A maple is a tree.\n";
break;
case 'g':
cout<<"A maple is a game.\n";
}

return 0;
}

在Ncutronia王国,货币单位是tvarp,收入所得税的计算方式如下:
5000 tvarps: 不收税
5001~15000 tvarps: 10%
15001~35000 tvarps: 15%
35000 tvarps以上:20%
例如,收入在38000tvarps时,所得税为5000 x 0.00 + 10000 x 0.10 + 20000 x 0.15 + 3000 x 0.20,即4600 tvarps。请编写一个程序,使用循环来要求用户输入收入,并报告所得税。当用户输入负数或非数字时,循环将结束。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
int main()
{
using namespace std;

double income,revenue;

cout<<"请输入你的收入:";
while(cin>>income&&income>=0)
{
if(income<=5000)
revenue=0.0;
else if(income<=15000)
revenue=0.1*(income-5000);
else if(income<=35000)
revenue=0.1*(15000-5000)+0.15*(income-15000);
else
revenue=0.1*(15000-5000)+0.15*(35000-15000)+0.2*(income-35000);
cout<<"你的所得税为:"<<revenue<<endl;

cout<<"请输入你的收入:";
}
return 0;
}

本文标题:学习笔记:C++primer.plus编程练习题答案

文章作者:water

发布时间:2018年07月10日 - 13:30:34

最后更新:2018年07月19日 - 15:18:55

原始链接:http://9cat.top/2018/07/10/学习笔记-C-primer-plus编程练习题答案/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

------ 本文结束------
分享
分享