c语言应用

1 在代码:
while ( !e )
中,!e 等价于:
A.e ==0 B. e != 1 C. e!=0 D. e == 1

  • 只有当e的逻辑为false时这个表达式才成立,!false=true
  • 而对于整数e而言,任何非0的整数值都是逻辑的true,换句话说只有整数0才代表逻辑false,因此!e换一个写法既是e == 0
    因此选 A
  1. 对于以下代码:
    int i=6;
    do {
    printf("%d", i–);
    } while (0);
    哪句话是对的?
    A. 打印出 5 B. 因为 while(0),无法编译
    C. 打印出 6 D. 打印不出东西
  • do-while循环至少会执行一次
  • i–是i减以前的值,先计算后减,而–i是i减以后的值,先减后运算。
  • 0完全等价于逻辑false,但是整数1只是逻辑true的一个子集,任何非零整数都为逻辑true
  • i的初始值为6,第一次打印为6,i–是减以前的值因此为6,printf执行完后i为5,while条件0始终为false因此循环体只会执行一次。
    因此选 C

  1. for(表达式 1;;表达式 3)
    可理解为
    A. for(表达式 1;表达式 1;表达式 3) B. for(表达式 1;1;表达式 3)
    C. for(表达式 1; 表达式 3;表达式 3) D. for(表达式 1;0;表达式 3)

这个循环的条件判断被省略掉了,只有初始化和步进的语句,因此也可以当做是一个终止条件始终为1的循环。
也可以用for改写为:for(表达式 1;1;表达式 3); 或 while改写 表达式 1; while(1){表达式 3}; 当然这个循环如果循环体内部没有break等跳出循环结构的语句的话就是一个死循环。如果有明确的终止条件,我们还是推荐将循环继续条件写在循环体规定的地方,便于阅读。
因此此题选B

  1. 以下表达式
    x&&1
    用在 if 的条件中时,和哪个是等价的(多选)
    A.x0 B. x1 C. x!=0 D. x!=1 E. x

这里x&&1右边的1始终成立,因此可以看成 x
当x的值不为0逻辑则为true,因此等价于 x != 0 或者 x
x == 1 只是逻辑true x取值范围的一个子集,因此 x == 1 不等价于 x != 0 或者 x
因此选 C E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值