首页 > 试题广场 >

下面代码运行后,变量 total 的结果是?

[单选题]
下面代码运行后,变量 total 的结果是?
int total = 0;
for (int i = 0, j = 5; total < 10 || j > 3; ++i, --j) {
     total += (i + j);
 }
  • 5
  • 10
  • 无法通过编译
  • 运行时出错
  • 运行时死循环
i         j            total
                        0
0        5            5
1        4           10
          

total = 10,不满足total < 10, j = 3 不满足j > 3,退出循环。
即:toatl = 10
编辑于 2016-09-10 10:17:16 回复(5)
更多回答
难道就我觉得 参数 j 数据类型没有定义!毕竟 i 定义了,total 也定义
发表于 2016-09-08 10:45:00 回复(5)
//test1.c: In function ‘main’:
//test1.c:6: error: ‘for’ loop initial declarations are only allowed in C99 mode
// test1.c:6: note: use option -std=c99 or -std=gnu99 to compile your code

#include <stdio.h>
int main()
{
	int total = 0;
	for (int i = 0, j = 5; total < 10 || j > 3; ++i, --j) {
		total += (i + j);
	}
	printf("%d ", total);
	
	return 0;
}

发表于 2017-03-31 17:17:32 回复(0)
for循环的执行顺序用如下表达式:
for(expression1;expression2;expression3)
 {
    expression4;
}

1)第一次循环,即初始化循环。

  • 首先执行表达式expression1(一般为初始化语句);
  • 再执行expression2(一般为条件判断语句),判断expression1是否符合expression2的条件;
  • 如果符合,则执行expression4,否则,停止执行;最后执行expression3。

2)第N(N>=2)次循环

  • 首先执行expression2,判断在expression3是否符合在expression2要求;
  • 如果符合,则继续执行在expression4,否则,停止执行。最后执行在expression3。
  • 如此往复,直至expression3不满足在expression2条件是为止。
本题执行顺序为:
1. total += (i + j); => i=0,j=5 , total=5
2. ++i, --j ; => i=1,j=4 , total=5
3. total += (i + j); => i=1,j=4 , total=10
4. ++i, --j ; => i=2,j=3 , total=10
编辑于 2016-08-20 09:48:04 回复(2)
这题太顺,以至于我盯着CDE看了半天,总感觉有陷阱。。。(ps:c/c++专项1200多道,练到300多道的时候感觉正确率开始有所提升,大家一起加油!)
发表于 2017-01-13 08:58:18 回复(0)
for(①;②;③){④} 虽然知道执行顺序是1243 243 243 243....... 然而我还是错了,
发表于 2017-11-16 20:56:00 回复(1)
箫头像
在for循环中,用前置加减和后置加减的区别不是很大,这是为什么呢?还是说这里面有一个天大的秘密等着去发现。。。求解,谢谢了。
发表于 2018-04-03 20:16:49 回复(1)

逻辑运算符||不是具有短路求值(short-circuit evaluation)的特性吗,为什么total < 10时,j > 3会被执行,求教

在逻辑表达式中,如果使用||运算符连接多个条件,当第一个条件为真时,后续的条件将不会再被执行。这是因为只要有一个条件为真,整个表达式的结果就一定为真,所以后续的条件判断就没有必要进行了。

这种短路求值的行为可以提高程序的效率和性能,特别是在涉及到复杂的条件判断或者函数调用的情况下。通过短路求值,可以避免不必要的计算或者函数调用,从而减少程序的执行时间。

发表于 2023-11-06 09:49:31 回复(0)
total-0 i-0.j-5 total-5 i-1.j-4 total-10 不满足条件跳出循环
发表于 2022-09-21 23:38:45 回复(0)

total = 0+5+1+4=10

发表于 2020-03-27 16:34:24 回复(0)
循环结束判定条件
发表于 2019-02-23 19:01:27 回复(0)
先执行初始化表达式,之后执行条件表达式,条件表达式满足,执行for下面的语句,后执行修正表达式,若不满足条件表达式,直接退出循环
发表于 2018-09-09 17:13:05 回复(0)
go8头像 go8
注意是+=
发表于 2017-02-27 17:20:18 回复(0)
B
发表于 2016-11-14 09:04:47 回复(0)
10
发表于 2016-09-15 08:45:34 回复(0)
循环两次,结果为10。
发表于 2016-08-20 08:04:57 回复(0)