c++循环之高难度(二)习题讲解

1.【单选题】

int i {},b {};

while( i++) b++;

b = ?

A. 0         B. -1         C. 1

解析:while(i++)相当于执行while(i),此时 i  = 0,然后i之后再加1,等于没有执行循环,所以b就等于初始化的值等于0,选A。

2.【单选题】

int i {}, b {};

while ( ++i ) b++;

b=?

A. 0         B. -1        C.1

解析:while(++i),i 会一直递增,循环会一直执行,但是int有取值范围,当i的值超出int的取值范围的时候,i 会等于 -1,此时 ++i 等于0,结束循环。这个时候 b 就等于 -1,结果选B。

3.【单选题】

int i { 1 };

do

{

        i++;

} while ( i++);

i = ?

A.0        B.1        C.-1        D.死循环

解析:这个循环 i 的初始值为 1 ,然后执行 i++ ,之后再进入判断 while( i++ ),整个过程 中 i 每次循环过后的值都会加2,也就是 2 ,4, 6, 8.......当i的值超出int的取值范围的时候,i的值为-1,加一后 i = 0,此时while(0++),会跳出循环,之后再加1。最后的结果就是等于1,选B。

4.【单选题】

int i {};

do

{

        i++;

} while( i++ );

i = ?

A.0        B.1        C.-1        D.死循环

解析:这个题和上一题的区别是 i 的初始值为 0 , 所以整个过程 中 i 每次循环过后的值都会加2,也就是 1 ,3, 5, 7.......当i的值超出int的取值范围的时候,此时while(-1++),会继续执行循环,之后 i 再加 2,while(1++)继续循环,所以为死循环,选D。

5.【单选题】

int i {};

do

{

        i++;

}  while ( false );

i = ?

A. 1        B. 0        C. -1

解析:这道题就很简单,先执行 i ++ ,之后while(false),不符合循环条件会结束循环,此时i 就等于1,结果选A。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大卫的纯爱战士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值