1、请看下面两个计算空格和换行符数目的代码片段:

//Version 1

while(cin.get(ch))    //quit on eof
{if(ch == ‘ ’)spaces++;if(ch == ‘\n’)newlines++;
}

//Version 2

while(cin.get(ch)) //quit on eof
{if(ch == ‘ ’)spaces++;else if(ch == ‘\n’)newlines++;
}

第二种格式比第一种格式好在哪里呢?

2、在程序清单6.2中,用ch+1替换++ch将发生什么情况呢?

程序清单6.2 ifelse.cpp

//ifelse.cpp -- using the if else statement
#include<iostream>
int main()
{char ch;std::cout << "Type, and I shall repeat.\n";std::cin.get(ch);while (ch != '.'){if (ch == '\n')std::cout << ch; //done if newlineelsestd::cout << ++ch; //done otherwisestd::cin.get(ch);}
//try ch + 1 instead of  ++ch for interesting effectstd::cout << "\nPlease excuse the slight confusion.\n";//std::cin.get();//std::cin.get();return 0;
}

3、请认真考虑下面的程序:

#include <iostream>
using namespace std;
int main()
{char ch;int ct1, ct2;ct1 = ct2 = 0;while ((ch = cin.get()) != '$'){cout << ch;ct1++;if (ch = '$')ct2++;cout << ch;}cout << "ct1 = " << ct1 << ", ct2 = " << ct2 << "\n";return 0;
}

假设输入如下(请在每行末尾按回车键):

Hi!

Send $10 or $20 now!

则输出将是什么(还记得吗。输入被缓冲)?

4、创建表示下述条件的逻辑表达式:

a. weight大于或等于115,但小于125

b. ch为q或Q

c. x为偶数,但不是26

d. x为偶数,但不是26的倍数

e. donation为1000-2000或guest为1

f. ch是小写字母或大写字母(假设小写字母是依次编码的,大写字母也是依次编码的,但在大小写字母间编码不是连续的)。

5、在英语中,“I will not not speak(我不会不说)”的意思与“I will speak(我要说)”相同。在C++中,!!x是否与x相同呢?

6、创建一个条件表达式,其值为变量的绝对值。也是说,如果变量x为正,则表达式的值为x;但如果x为负,则表达式的值为-x——这是一个正值。

7、用switch改写下面的代码片段:

if (ch == 'A')a_grade++;
else if (ch == 'B')b_grade++;
else if (ch == 'C')c_grade++;
else if (ch == 'D')d_grade++;
elsef_grade++;

8、对于程序清单6.10,与使用数字相比,使用字符(如a和c)表示菜单选项和case标签有何优点呢?(提示:想想用户输入q和输入5的情况。)

程序清单6.10 switch.cpp

//switch.cpp -- using the switch statement
#include<iostream>
using namespace std;
void showmenu();    //function prototypes
void report();
void comfort();
int main()
{showmenu();int choice;cin >> choice;while (choice != 5){switch (choice){case 1:cout << "\a\n";break;case 2:report();break;case 3:cout << "The boss was in all day.\n";break;case 4: comfort();break;default:cout << "That's not a choice.\n";}showmenu();cin >> choice;}cout << "Bye!\n";return 0;
}void showmenu()
{cout << "Please enter 1, 2, 3, 4, or 5:\n""1) alarm       2) report\n""3) alibi     4) comfort\n""5) quit\n";
}
void report()
{cout << "It's been an excellent week for business.\n""Sales are up 120%. Expenses are down 35%.\n";
}
void comfort()
{cout << "Your employees think you are the finest CEO\n""in the industry. The board of directors think\n""you are the finest CEO in the industry.\n";
}

9、请看下面的代码片段:

int line = 0;
char ch;
while (cin.get(ch))
{if (ch == 'Q')break;if (ch != '\n')continue;line++;
}

请重写该代码片段,不要使用break和continue语句。

C++PrimerPlus 第六章 分支语句和逻辑运算符(复习题)相关推荐

  1. C++ Primer Plus学习(六)——分支语句和逻辑运算符

    分支语句和逻辑运算符 if语句 逻辑表达式 字符函数库cctype ?: 运算符 switch语句 break和continue语句 读取数字的循环 文件输入\输出 写入到文本文件中 读取文本文件 i ...

  2. 【C++ Primer Plus】第6章 分支语句和逻辑运算符

    6.1 if 语句 if 语法: if (test-condition) statement if 测试条件将被强制转换为bool值,因此0将被转换为false,非零为true. 6.2 if els ...

  3. C++ Primer Plus(嵌入式公开课)---第5,6章 循环和关系表达式 分支语句和逻辑运算符

    20220222 C++ Primer Plus - 第五.六章 附录: 1.ASCII码字符对照表 2.C++ 运算符优先级 第1-3章 第4章 复合类型 第5章 循环和关系表达式 5.1 for循 ...

  4. if语句写阶跃函数C语言,C语言第四章分支语句.ppt

    C语言第四章分支语句.ppt 例: 输入三个实数,按从小到大的顺序输出. main( ) {float a,b,c,t; scanf("%f,%f,%f ",&a,& ...

  5. 每日十问6c++-分支语句和逻辑运算符

    每日十问6c+±分支语句和逻辑运算符 1.请看下面两个计算空格和换行符数目的代码片段.//版本 1 while(cin.getch()) //在遇到 EOF 时退出 if(ch =='') space ...

  6. 第六章—条件语句和循环

    2019独角兽企业重金招聘Python工程师标准>>> 6.1①条件语句在脚本中称为控制流.②尽管JavaScript不支持"elseif"关键字,但是允许通过i ...

  7. 算法分析与设计第二版(李春葆)第六章分支界限法

    分支界限法类似于回溯法,一般回溯法目标是找出所有解,二分支界限法是找出满足条件的一个解或者最优解 算法 解空间树搜索方式 存储结点的常用数据结构 结点存储特性 常用应用 回溯法 深度优先搜索 栈 活结 ...

  8. 2020 我的C++学习之路 C++PrimerPlus第六章课后习题

    以C++ Primer Plus为参考书籍,自身归纳知识点,加深记忆.仅供参考,DEV C++已通过编译运行 . 练习1 #include<iostream> #include<cc ...

  9. 第三章 分支语句 程序设计练习

    3.1(代数:解二次方程)二次方程的两个根可由下列公式得出:与,其中称为二次方程的判别式.如果它为正,则方程会有两个实根.如果它为零,则方程有一个根.如果它为负,则方程无实根.编写程序,提示用户输入a ...

最新文章

  1. ubuntu操作系统下载
  2. 揭秘vue——vue-cli3全面配置
  3. 每日一皮:是金子无论到哪里、哪怕变个形状都会发光..
  4. 关于DiscuzNT 1.0
  5. 从sap xi生产wsdl文件,客户端怎么做webservice?
  6. STM32开发 -- 信号强度CSQ
  7. Kotlin替换Dagger2/Hilt的依赖注入框架--Koin。
  8. IIS服务器绑定域名问题
  9. android 内部类传值,Android Studio中,从内部类
  10. linux 往文件写4k大小,[svc]为何linux ext4文件系统目录默认大小是4k?
  11. unity之中级工程师
  12. React Native :加载新闻列表
  13. BERT微调效果不佳?不如试试这种大规模预训练模型新范式
  14. 分段式多级离心泵_D型卧式多级泵结构组成及工作原理
  15. ReportView动态加载带参数的RDCL文件
  16. 问题排查证明方式:Unknown column NaN in field list
  17. Spring对 JDBC 的支持,JdbcTemplate类的使用
  18. 射频识别技术漫谈(23)——ISO15693的载波、调制与编码
  19. 中国网络安全企业50强
  20. 计算机组成原理浮点运算方法,计算机组成原理第二章 第11讲 浮点运算方法和浮点运算器.ppt...

热门文章

  1. 如何用大数据进行宠物店选址要素分析
  2. android 多任务按钮,XDA大神推出Android多任务切换神器
  3. JWT(2):JWT入门使用
  4. 基于matlab的目标检测的基本思路
  5. 【PTA-训练day20】L2-032 彩虹瓶 + L1-080 乘法口诀数列
  6. deepin20系统选择手动安装盘_拯救老Macbook Air笔记本经验分享,用优盘安装最新苹果系统...
  7. python 英语分词_英文分词算法(Porter stemmer)
  8. RTX腾讯通基本功能
  9. java抽象类变量_Java抽象类
  10. 【软考】系统集成项目管理工程师(三)系统集成专业技术知识