← 大华硬件逻辑岗(19.09.25)

推荐答案 测试一下

#include <stdio>

A 1,3 B 0,2 C 0,3 D 1,2
单选题 中等 笔试真题单选

参考答案

D。程序输出结果为1,2。 解析: 1. 初始a=-2,b=0。进入while循环,条件为a++ && ++b。 2. 第一次判断:a++先取a的当前值-2(非0视为真),然后a自增为-1。由于左边为真,计算右边++b:b先自增为1,取值为1(真)。逻辑与结果为真,执行空循环体。此时a=-1,b=1。 3. 第二次判断:a++取-1(真),a变为0;++b取2(真),b变为2。结果为真,执行空循环体。此时a=0,b=2。 4. 第三次判断:a++取0(假),a变为1。左边为假,逻辑与短路,不再计算++b,b保持2。条件为假,循环结束。 5. 循环结束后a=1,b=2。printf输出"1,2"。 注意:while后有分号表示空循环体,循环条件每次判断都会执行a++和++b(除非短路)。易错点:混淆a++与++a的取值顺序,忽略逻辑与的短路规则。

涉及知识点

  • 自增运算符前缀与后缀区别
  • 逻辑与(&&)的短路特性
  • while循环执行流程
  • C语言非零即真的逻辑判断
  • 空循环体的书写与理解
← 上一题
登录后反馈错题
下一题 →