C++学习之路(四),C++primer plus 第五章 循环和关系表达式复习题

本文是C++ Primer Plus学习笔记的一部分,重点探讨了C++中的循环类型,包括for、while和do...while循环的特征及区别,并通过实例解析了循环中的条件判断和操作符的使用,同时提供了多个示例代码来展示不同循环结构的执行过程。

记录下学习C++primer plus路的历程,前面还有几章复习和编程练习,有空的时候再补上

 

/*******************************
1;入口条件循环和出口循环的区别?各种C++循环分别属于其中的哪一种
    入口循环是先判断条件再循环,有可能不循环
    出口循环是先执行一次循环,再判断,至少会循环一次
    for 循环和while循环是入口循环,do..while是出口循环
****************************************************
2;如果下面的代码片段是有效程序的组成部分,它将打印什么内容?

int i;
for (i = 0; i < 5; i++)
cout << i;
cout << endl;

打印 01234

****************************************************
3;如果下面的代码片段是有效程序的组成部分,它将打印什么内容?

int j;
for (j = 0; j < 11; j +=3)
cout << j;
cout << endl << j << edl;

打印

    0369
    9

****************************************************
4;如果下面的代码片段是有效程序的组成部分,它将打印什么内容?

    int j = 5;
    while ( ++j < 9 )
  cout << j++ << endl;

  输出
  6
  8

  原因:先j = 5;在while语句里作++j运算,因为前缀是先运算,因此此时j = 6,
  而cout语言打印j++,而后缀是先赋值,此时的j还是6,但这一句完了后j就会变成7了
  如果代码写成
  int j = 5;
  while ( ++j < 9 )
  cout << j++ << endl;
  cout << j << endl;    
  第一句 j = 5;代入while条件中,前缀是先运算,所以while运行时j = 6;
  打伯++j < 9,即 6 < 9,条件成立,进入循环体,循环体打印j++,由于后缀
  是先赋值后运算,此时j = 6,如果加上第四句,这一句是我私自加的,是
  要说明第三句完成后此时才会打印7,所以上面一句j仍是等于6
  接着这里j = 7 ,在while循环里,++j < 9即7 < 9成立,将7代入while循环,
  而此时又遇到前缀,又要先运算,所以此时++j = 7 +1 =8,
  进入下一句,后缀,于是j++先等于8,打印8,打印这一句完后执行j++ = 9,
  进入循环体,++j =9 + 1 = 10 < 9不成立,跳出循环,所以这段代码只打印
  6
  8

*****************************************************
5;如果下面的代码片段是有效程序的组成部分,它将打印什么内容?

  int k = 8;
  do
    cout << " k = " << k << endl;
  while ( k++ < 5)

打印出
  k = 8
*****************************************************
6;编写一个打印1、2、4、8、16、32、64的for循环,每轮循环都将计数变量的值乘以2
int j ;
for ( j = 1; j < 65; j *= 2)
cout << j << "、\t";        //或者cout << j << "、\t";
cout << endl;
*****************************************************
7;如何在循环体中包括多条语句?
    用{
        //这里用多条语句。
      }
*****************************************************
8;下面的语句是否有效?如果无效,原因是什么?如果有效,它将完成什么工作?
    int x = (1, 024);
    有效,逗号运算符连接。值为右侧表达式的值,x 会等于024,由于024是八进制,打印出来就是20
    下面的语句又如何呢?
    int y;
    y = 1, 024;
    此时编译器会被解释成
    (y = 1), 024,即y会被设置成17,而024不起任何作用
*****************************************************
9;在查看输入方面,cin >> ch同cin.get(ch)和ch = cin.get()有什么不同?
    cin >> ch 在输入时不会读取空格及制表符,而ch.get(ch)和ch = cin.get()会读取空格以及制表符
*************************************************/
#include<iostream>
using namespace std;

void main()
{
int j ;
for ( j = 024; j < 65; j *= 2)
cout << j << "、\t";
cout << endl;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值