C++primer(第五版)第五章总结(含部分习题源代码及解析)语句

 
本章讲解一些基本的语句,有C语言基础的会发现大致上差不多!当然也有一些细微的差别;

      条件语句:

       A:if语句

     和C语言的易错点一样:将条件语句写成赋值语句的错误;编译器通过编译,对功能的实现造成很大影响,需要特别注意;

    例子:if(max=1),本应该是if(max==1);这样的错误看似自己不会犯,经常由于各种原因总会出现的,不过当自己知道易错地方后,自己就会很容易修改!

     B:switch语句

     我们也很熟悉了,熟悉了应该如何懂得去灵活运用;如果下面的两个有关switch语句和break语句代码,能够很快的看出输出结果,则说明理解了,需要我们根据这种特性灵活运用!

          输入:huananligongdxue

          代码1:

#include <iostream>

using namespace std;

int main()

{

unsigned acnt=0,ecnt=0,icnt=0,ocnt=0,ucnt=0;

char ch;

cout<<"请输入字符,按Ctrl+z结束"<<endl;

while(cin>>ch)

{

switch(ch)

{

case ‘a‘:

++acnt ;

break;

case ‘e‘:

++ecnt;

break;

case ‘i‘:

++icnt;

break;

case ‘o‘:

++ocnt;

break;

case ‘u‘:

++ucnt;

break;

}

}

cout<<"Number of vowel a:\t"<<acnt<<‘\n‘<<"Number of vowel e:\t"<<ecnt<<‘\n‘<<"Number of vowel i:\t"<<icnt<<‘\n‘

<<"Number of vowel o:\t"<<ocnt<<‘\n‘<<"Number of vowel u:\t"<<ucnt<<endl;

return 0;

}

           代码2:

#include <iostream>

using namespace std;

int main()

{

unsigned acnt=0,ecnt=0,icnt=0,ocnt=0,ucnt=0;

char ch;

cout<<"请输入字符,按Ctrl+z结束"<<endl;

while(cin>>ch)

{

switch(ch)

{

case ‘a‘:

++acnt ;

case ‘e‘:

++ecnt;

case ‘i‘:

++icnt;

case ‘o‘:

++ocnt;

case ‘u‘:

++ucnt;

}

}

cout<<"Number of vowel a:\t"<<acnt<<‘\n‘<<"Number of vowel e:\t"<<ecnt<<‘\n‘<<"Number of vowel i:\t"<<icnt<<‘\n‘

<<"Number of vowel o:\t"<<ocnt<<‘\n‘<<"Number of vowel u:\t"<<ucnt<<endl;

return 0;

}

          我们很快得出结果,第一种明显是碰到输入的字符就会增加相对应字符数目后,就跳出循环;计算相对应字母的次数;代码2由于没有break跳出,就会执行继续下面的语句,从而结果肯定是递增序列;从上到下都叠加;

           结果如下:

         代码1结果:

           代码2结果:

      continue语句:中断当前的迭代,但是继续执行循环;

      习题5.41和5.20一起讲解:

       代码如下:

 #include <iostream>

using namespace std;

int main()

{

string ch,sw,mch;

int max=1,b=1;

cout<<"输入测试单词:"<<endl;

while(cin>>ch)

{

if(sw==ch)

{

++b;

}

else

{

if(b>max)

{

max=b;

mch=sw;

}

else

b=1;

}

sw=ch;

}

if(max==1)

cout<<"单词没有连续出现\n"<<endl;

else

cout<<"单词"<<mch<<"连续的最大次数"<<max<<endl;

return 0;

}

  结果:

    上面是5.14的程序,5.20只是对其进行判断,b=2时,结束循环!上面虽然解决了5.14的问题,只是不足的是边界问题考虑的不是很周到,如果有几个相同的最长单词,也只能打印一个最长的!需要改进!!!!

        程序运用的codeblocks可能有些编译器会存在兼容问题!

时间: 2024-07-30 07:13:28

C++primer(第五版)第五章总结(含部分习题源代码及解析)语句的相关文章

C primer plus 第五版十二章习题

看完C prime plus(第五版)第十二章,随带完成了后面的习题. 1.不使用全局变量,重写程序清单12.4的程序. 先贴出12.4的程序,方便对照: 1 /* global.c --- 使用外部变量 */ 2 #include <stdio.h> 3 int units = 0; //一个外部变量 4 void critic(void); 5 int main(void) 6 { 7 extern int units; 8 9 printf ("How many pounds

C++primer(第五版)第二章的学习笔记(也有对部分习题的解答和指出c++11特性)

算术类型分为两类:整型(字符和bool在内)和浮点型. C/C++算术类型 类型 含义 最小尺寸 bool 布尔类型 未定义 char 字符 8位 wchar_t 宽字符 16位 char16_t Unicode字符 16位 char32_t Unicode字符 32位 short 短整型 16位 int  整型 16位 long 长整型 32位 long long 长整型 64位 unsigned long 无符号长整型 32位 double 双精度浮点数 10位有效数字 long doubl

C Primer Plus (第五版) 第九章 函数 编程练习

第九章 函数 编程练习 设计函数 min(x,y),返回两个double数值中较小的数值,同时用一个简单的驱动程序测试该函数. #include <stdio.h> double min(double x, double y); int main(void) { double a, b; printf("请输入两个数:\n"); scanf("%lf%lf", &a, &b); printf("两个数中较小的数是:%lf\n&q

C Primer Plus (第五版) 第二章 编程练习

编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓.输出应如下所示(当然里面要换成您的姓名): Anton Bruckner    第一个输出语句 Anton        第二个输出语句 Bruckner       仍然第二个输出语句 Anton Bruckner    第三个和第四个输出语句 #include <stdio.h> int main(void) {

数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点

上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Control Procotol )协议是一个面向连接,可靠的协议.TCP为了提供面向连接的服务,专门定义了连接创建,数据传输.连接终止阶段.TCP使用GBN和SR协议来提供可靠性.为了实现可靠性这个目标,TCP使用检验和来进行误差控制.重传来处理数据包丢失和冲突.同时还利用了应答和计数机制.在本节,首先讨论

C++ Primer 第五版:第1 章

*****C++ Primer 第五版第1章学习笔记***** *****实验代码在Red Hat 6.6或VS 2013中调试***** *****文章内容依据当前知识撰写,存在认识的局限性***** 1.1 编写一个简单的C++程序 函数:依据我个人理解,C/C++的函数是一个能够完成一个功能的模块. 完整函数的组成: ①返回类型:不一定有返回值,故不一定有返回类型 ②函数名:根据名字标识完成特定功能的模块,必须存在 ③形参列表:可能没有参数传入,不一定存在 ④函数体:一个完整的函数应该是有

C++ Primer 第五版:第2章

*****C++ Primer 第五版第2章学习笔记***** *****实验代码在Red Hat 6.6或VS 2013中调试***** *****文章内容依据当前知识撰写,存在认识的局限性***** 今天学习C++ Primer 的第2章,还没有看完,先写一点看书的心得和笔记. 对象类型决定对象包含的数据和能参与的运算操作,同时还决定了存储空间大小.算术表达式中不要使用char,因为不同机器实现不一样,导致结果不同.单精度计算不一定比双精度快. C++类型不匹配时,是自动进行类型的转换. C

《Python学习手册 第五版》 -第11章 赋值、表达式和打印

上一章对Python的语句和语法已经进行了基本的说明,接下来就是每个章节的详细说明,本章的主要内容就是标题中涵盖的三点:赋值语句.表达式语句.打印语句 本章重点内容如下: 1.赋值语句 1)赋值语句的特点(注意事项) 2)赋值语句的形式:基本形式.元组及列表解包赋值.序列赋值.扩展的序列解包.多目标赋值.增量赋值 3)变量命名规则 2.表达式语句 1)常见的表达式语句 2)表达式语句和原位置修改 3.打印操作 1)调用形式 2)应用示例 以下是针对以上重点内容的详细说明 1.赋值语句 1)赋值语

《Python学习手册 第五版》 -第12章 if测试和语法规则

本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.if三元表达式 以下是针对重点内容的详细说明 1.if语句的基本形式 if语句是根据测试结果,从一些备选的操作中做出选择的语句,也就是说要先计算测试结果,再选择做什么,基本形式如下: if test1: statements1 elif test2: statements2 else: stateme