1.编写一个C++程序,如下述输出示例所示的那样请求并显示信息:

#include <iostream>
#include<string>
using namespace std;int main()
{struct people_info{char first_name[30];char last_name[30];char grade;int age;};people_info people1;cout << "What's your first name?\n";cin.getline(people1.first_name,30);cout << "What's your last name?\n";cin.getline(people1.last_name, 30);cout << "What letter grade do you deserve?\n";cin >> people1.grade;cin.get();cout << "What's your age?\n";cin >> people1.age;cout << "Name:" << people1.first_name << "," << people1.last_name << endl;cout << "Grade:" << people1.grade << endl;cout << "Age" << people1.age << endl;return 0;
}

2.修改程序清单4.4,使用C++ string类而不是char数组。

#include <iostream>
#include<string>
using namespace std;int main()
{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.编写一个程序,它要求用户首先输入其名,然后输入其姓;然后程序使用一个逗号和空格将姓和名组合起来,并存储和显示组合结果。请使用char数组和头文件cstring中的函数。下面是该程序运行时的情形:

#include <iostream>
#include <cstring>
using namespace std;int main()
{char first_name[20];char last_name[20];char full_name[42];char comma[3] = ", ";cout << "Enter your first name:\n";cin >> first_name;cout << "Enter your last name:\n";cin >> last_name;strcpy_s(full_name, first_name);strcat_s(full_name, comma);strcat_s(full_name, last_name);cout << "Here's the information in a single string:" << full_name<<endl;return 0;
}

4.编写一个程序,它要求用户首先输入其名,再输入其姓;然后程序使用一个逗号和
空格将姓和名组合起来,并存储和显示组合结果。请使用string对象和头文件string中的函
数。下面是该程序运行时的情形:

#include <iostream>
#include <string>
using namespace std;int main()
{string first_name, last_name, full_name;cout << "Enter your first name:\n";cin >> first_name;cout << "Enter your last name:\n";cin >> last_name;full_name = first_name + ", " + last_name;cout << "Here's the information in a single string:" << full_name<<endl;return 0;
}

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

#include <iostream>
#include <string>
using namespace std;int main()
{struct CandyBar {string band;double weight;int calorie;};CandyBar snack = {"Mocha Munch",2.3,350};cout << "Band:" << snack.band << endl;cout << "Weight:" << snack.weight << endl;cout << "Calorie:" << snack.calorie << endl;return 0;
}

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

#include <iostream>
#include <string>
using namespace std;int main()
{struct CandyBar{string band;double weight;int calorie;};CandyBar candy[3];candy[0] = { "aa",5.6,1800 };candy[1] = { "bb",7.7,2010 };candy[2] = { "cc",4.7,1005 };for (int i = 0;i < 3;i++){cout << "The information of candy " << i+1 << " is followed as below:\n";cout << "Band:" << candy[i].band << endl;cout << "Weight:" << candy[i].weight << endl;cout << "Calorie:" << candy[i].calorie << endl;}return 0;
}

小结:cin.get(char,n_elem)和cin.getline(char,n_elem)均用于字符型数组的输入,两者输入参数相同,都需要指定输入长度,且都以换行符作为输入结束的标志,不同的是cin.get()会存储换行符,cin.getline()会将换行符替换为’\0’存储起来。而对于string类,由于string类自动调整长度,因此不需指定输入字符的长度,为了解决cin无法获取空格字符的问题,可采取getline(cin,string)函数,将cin中输入的字符传递到string类型中去。

7.William Wingate从事比萨饼分析服务。对于每个披萨饼,他都需要记录下列信息:
● 披萨饼公司的名称,可以有多个单词组成。
● 披萨饼的直径。
● 披萨饼的重量。
请设计一个能够存储这些信息的结构,并编写一个使用这种结构变量的程序。程序将请求用户输入上述信息,然后显示这些信息。请使用cin(或它的方法)和cout。

#include <iostream>
#include <string>
using namespace std;int main()
{struct Pizza_info {string company_name;double diameter;double weight;};Pizza_info pizza1;cout << "Pizza's company name:"  << endl;getline(cin, pizza1.company_name);cout << "Pizza's diameter:" << endl;cin >> pizza1.diameter;cout << "Pizza's weight:" << endl;cin >> pizza1.weight;cout << "This is the information about the pizza:\n";cout << "Company name" << pizza1.company_name << endl;cout << "Diameter:" << pizza1.diameter << endl;cout << "Weight:" << pizza1.weight << endl;return 0;
}

8.完成编程练习7,但使用new来为结构分配内存,而不是声明一个结构变量。另外,让程序在请求输入比萨饼公司名称之前输入比萨饼的直径。

#include <iostream>
#include <string>
using namespace std;int main()
{struct Pizza_info {string company_name;double diameter;double weight;};Pizza_info *pa=new Pizza_info;//使用new创建动态结构,pa为指向本结构的指针;cout << "Pizza's diameter:" << endl;cin >> pa->diameter;//在输入比萨饼公司名称之前输入比萨饼的直径;cin.get();//处理上一步cin中的换行符;cout << "Pizza's company name:"  << endl;getline(cin, pa->company_name);cout << "Pizza's weight:" << endl;cin >> pa->weight;cout << "This is the information about the pizza:\n";cout << "Company name:" << pa->company_name << endl;cout << "Diameter:" << pa->diameter << endl;cout << "Weight:" << pa->weight << endl;delete pa;//务必要释放内存,否则可能会造成内存泄漏;return 0;
}

9.完成编程练习6,但使用new来动态分配数组,而不是声明一个包含3个元素的
CandyBar数组。

#include <iostream>
#include <string>
using namespace std;int main()
{struct CandyBar{string band;double weight;int calorie;};CandyBar *candy=new CandyBar[3];//初始化candy指针,使用new申请内存;candy[0] = { "aa",5.6,1800 };candy[1] = { "bb",7.7,2010 };candy[2] = { "cc",4.7,1005 };for (int i = 0;i < 3;i++){cout << "The information of candy " << i+1 << " is followed as below:\n";cout << "Band:" << candy[i].band << endl;cout << "Weight:" << candy[i].weight << endl;cout << "Calorie:" << candy[i].calorie << endl;}delete[] candy;//释放内存;return 0;
}

10.编写一个程序,让用户输入三次40码跑的成绩(如果您愿意,也可让用户输入40米跑的成绩),并显示次数和平均成绩。请使用一个array对象来存储数据(如果编译器不支持array类,请使用数组)。

#include <iostream>
#include <array>
#include <string>
using namespace std;int main()
{array<double, 3> score;cout << "Please enter the scores:\n";cin>>score[0]>> score[1]>>score[2];cout << "The averange score is " << (score[0] + score[1] + score[2]) / 3 << endl;return 0;
}

C++ Primer Plus (第六版)编程练习记录(chapter4)相关推荐

  1. C Primer Plus 第六版编程练习第五章答案

    1,编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时间.使用#define或const创建一个表示60的符号常量或const变量.通过while循环让用户重复输入值,直到用户输入小于或等于0 ...

  2. C++ Primer Plus 第六版编程练习——第6章

    ★★★★★备注★★★★★ 使用的编译环境为 Visual Studio 2017 默认省略了如下内容: #include "stdafx.h"                    ...

  3. C Primer Plus 第六版---编程练习2

    1.编写一个程序,调用一次 printf()函数,把你的姓名打印在一行.再调用一次 printf()函数,把你的姓名分别打印在两行.然后,再调用两次printf()函数,把你的姓名打印在一行.输出应如 ...

  4. C Primer Plus 第六版---编程练习4

    1.编写一个程序,提示用户输入名和姓,然后以"名,姓"的格式打印出来. /*输入名和姓打印"名,姓" */ #include<stdio.h> #d ...

  5. C Primer Plus 第六版编程练习第七章答案

    1,编写一个程序读取输入,读到#字符停止,然后报告读取空格数,换行符数目以及所有的其它字符数目. /*7.12*/ #include<stdio.h> #define STOP '#' # ...

  6. C Primer Plus 第六版 编程练习第四章答案 最新出炉

    文章目录 1,编写一个程序,提示用户输入名和姓,然后以"名,姓"的格式打印出来. 2,编写一个程序,提示用户输入名字,并执行以下操作: 3,编写一个程序,读取一个浮点数,首先以小数 ...

  7. C++ Primer Plus第六版第六章编程练习 第4题, 加入Benevolent Order of Programmer后,在BOP大会上

    /*************************************************************************************************** ...

  8. C++ Primer Plus 第六版 所有章节课后编程练习答案

    我的独立博客地址:www.blog4jimmy.com,欢迎大家关注 下面的是C++ Primer Plus 第六版所有章节的课后编程练习的答案,都是博主自己写的,有不对的地方请大家留言指出讨论讨论 ...

  9. C Primer Plus第六版(中文版)编程练习答案(完美修订版)汇总

    //本文是博主编写的C Primer Plus第六版(中文版)编程练习答案的所有链接; //使用超链接汇总于此,若是有用请点赞收藏并分享给他人; C Primer Plus 第六版(中文版)第二章(完 ...

  10. 深夜里学妹竟然问我会不会C?我直接把这篇文章甩她脸上(C Primer Plus 第六版基础整合)

    C Primer Plus 第六版 前言 第一章 初识C语言 一.C语言的起源 二.C语言的应用 三.C语言的特点 四.编译的过程 五.编码机制 1.简述 2.完成机制 六.在UNIX系统上使用C 七 ...

最新文章

  1. python arp脚本_Python scapy 实现一个简易 arp 攻击脚本
  2. 用Jquery控制文本框只能输入数字和字母及jquery自定义方法$.fn
  3. 混合云计算和联合云计算
  4. Hbase数据倾斜问题处理手段汇总(持续更新中)
  5. 非cpu0启动linux,SD卡无法启动Linux的问题及解决
  6. muduo for v210
  7. phpcmsV9上传文件类型的设置
  8. win7重装系统时,使用PE工具箱进入系统看到的“C盘变成0.2G,D盘变成48G左右”这是什么回事?...
  9. MIND多兴趣召回实战(一)
  10. 【100Days of 100 line Code】3 day
  11. JAX-RPC 与 JAX-WS 的比较
  12. 服务器无限关机重启,服务器反复关机重启
  13. 中国环境统计年鉴(2000到2018年)
  14. 软件工程自学笔记一(基础篇)
  15. 2021新版OPEN易支付免费开源版 亲测可用
  16. Activiti流程引擎与业务整合方案
  17. SU(Seismic Unix)之sgy格式与su格式相互转化
  18. Excel快捷键大全 Excel常用快捷键大全
  19. HDU6080(很水的计算几何+floyd)
  20. 使用NGUI实现拖拽功能(拼图小游戏)

热门文章

  1. C#实现ODBC驱动代码连接Sql Server数据库
  2. Mac 命令行删除包含文件的文件夹
  3. 安装php_soap.dll,php如何安装soap扩展
  4. a标签下载文件,js/jq创建a标签导出Excel文件
  5. 微信小程序的语音输入功能开发:微信同声传译插件
  6. TCP服务器简陋模板
  7. 互联网日报 | 4月27日 星期二 | 美团回应被立案调查;滴滴开通老年人打车400热线;百度App月活跃用户数达5.58亿
  8. 5分钟理解令人叫绝的认知偏误
  9. ABS-WSK-HS WSK-HS温湿度控制器
  10. OSChina 周六乱弹 ——请让我的灵魂最后一次燃烧