首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
已知int i=0,x=0;,在下面while语句执行时循环
[单选题]
已知int i=0,x=0;,在下面while语句执行时循环次数为()
while (!x && i< 3) { x++; i++; }
4
3
2
1
查看正确选项
添加笔记
求解答(0)
邀请回答
收藏(143)
分享
4个回答
添加回答
20
哗~啦~啦
已知 int i=0,x=0;
while( !x && i< 3 )
{ x++; i++; }
非0为1,非1为0,非任何非零值,均为0。
一、C语言中非操作为逻辑运算一种,符号为!。形式为
!expr(
表达式,变量或者常量)
二、对于逻辑操作而言,只有真和假两种结果,也就是1和0。
三、在逻辑运算中,所有参与运算的操作数,都会转为逻辑值,即真/假参与运算。对于常量,如果值为0则假,其它值均为真。
四、于是对于任意的常数N,如果N为0,那么!N值为1。如果N不为0,那么!N值为0。
关于此题:
1.判断 :!x && i<3 是否为真
由于 !x == !0 ,!0 ==1,所以表达式左边值为真;
表达式右边 i = 0 < 3所以表达式右边值也为真;
执行循环:x ++; i ++;
之后: x = 1; i = 1;
2.判断:
!x && i<3 是否为真
由于 !x == !1 ,!1 ==0,所以表达式左边值为假;
之后 :由于是短路与 && 表达式左边为假,表达式右边便不再参与判断
循环条件不满足,退出循环
结论:只循环了一次。
发表于 2020-08-01 10:08:07
回复(2)
2
lqxss
补充1楼,第一轮x=0,i=0则!x即为!0=1,while(1)可以循环大家应该知道的,&&就不解释了,所以第一轮可以运行。第二轮i=1 ,x=1,这个时候!x为!1=0,0与1,对或错,所以第二轮不运行
发表于 2019-03-07 20:09:17
回复(1)
1
VinhoChan
这里要注意&&同真为真、有假则假退出判断。所以当x变为1的时候,!x=0,为假。退出while
发表于 2023-07-27 12:03:28
回复(1)
0
^孤妄々
!逻辑非的优先级高于&&逻辑与 i=0, !i=1为左边真并且小于3右边也为真,满足条件执行循环,x++,i++。后i=1,!i=0不满足条件,退出循环
发表于 2018-05-22 10:19:32
回复(1)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C语言
C++
上传者:
林呼
难度:
4条回答
143收藏
4351浏览
热门推荐
相关试题
假定指针变量 p 定义为 “int...
360集团
C++
C语言
评论
(36)
来自
360公司2014校招笔试卷
class A; class B;...
360集团
C++
C语言
评论
(18)
来自
360公司2014校招笔试卷
运行 ldd hello 可以得到...
百度
C++
评论
(3)
明明的随机数
数组
评论
(3692)
来自
华为研发工程师编程题
已知a
40
=...
京东
职能
2019
财务
保险
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题