首页 > 试题广场 >

下列for语句的循环次数是? for (int i

[单选题]
下列for语句的循环次数是()
int sum = 0;
for (int i=1;i<=5;sum++)
    sum+=i;
  • 无限
  • 0
  • 1
  • 有语法错误,不能执行
  • _-选A

循环判出条件是i>5时,但是i从定义int i = 1之后没有作为左值被修改过,只有sum的值在变换,因此这是一个死循环。

编辑于 2019-07-30 20:42:13 回复(0)
更多回答

我觉得选A

选A的理由:

设sum=1;我们可以看一下程序中“i”的变化:

for (int i=1;i<=5;sum++)
sum+=i;

第一次: i=1,(sum+=i)  sum=sum+i  ,  sum=1+1  ,"i"没有任何变化

第二次: i=1(第一次没有i改变的大小),(sum+=i)  sum=sum+i  ,  sum=2+1  ,"i"没有任何变化

从上面得知,每一次循环只使sum加了一,而i一直都是==1的,更不可能等于>5,所以这是无限循环的,故选A;

不选D的理由:

for循环通常情况是由下列几部分组成的:

for(初始化表达式①;循环条件表达式②;循环后的操作表达式③)
{
        执行语句④;(循环体)
}

但几个条件不一定是    ※ 固定    的!!!,例如题目中“for (int i=1;i<=5;sum++)”是没有错的,只是说,这样的语句是不常见的。

不信可以在c++上跑一跑

以上回答仅供参考!!


发表于 2019-07-27 17:29:47 回复(0)
A或者D。考察的是for循环语句的参数对循环体的控制和执行顺序。
 for(初始化表达式;循环条件表达式;循环后的操作表达式)
        {
            执行语句;(循环体)
        }
  • 其执行顺序:第一次执行时(初始化时):首先执行,之后判断,若为true,则执行,之后执行
  • 之后若干次执行:先判断,若为true,则执行,再执行,如此往复。
根据执行步骤和题意,当执行到循环体时,没有声明和初始化sum变量,语法错误如果声明了sum,循环条件true恒成立,无法结束循环。

发表于 2019-07-26 18:39:17 回复(2)
如果程序开头没有定义sum变量,便会CE(即出现语法错误)。此时选D。(根据题意来看,应该不会出现这种情况。。)
但如果定义了,由于i循环的时候是sum++而不是i++,因此i的值并不会改变,也就是无法到达终止位置5,i的值永远是初始值,为1。因此程序会陷入死循环,即上述for循环的循环次数为无限次。
综上所述,答案为A。
发表于 2019-07-28 15:33:07 回复(4)
首先如果不是C99 模式下编译的那么使用‘for’循环初始化声明不能放在for语句内,那么此时就选择D,不过题目的意思应该不是这个意思,然后for循环里面没有改变i的值的语句,即i的值永远不会大于5,因为for循环里面没有i++这条语句,这里注意for循环里是sum++,而且for循环里面也是对sum的+操作,并不是对i,所以i的值永远小于5,所以答案选择A
发表于 2019-08-03 17:27:02 回复(0)
首先 看sum有没有声明值  如果没有声明值则为语法错误不能执行 选择A

其次如果声明sum的值 循环次数为无限次 此处for循环的条件是sum,i<5在此处做不了循环的条件.
int sum = 0; for (int i = 1; i <=5; sum++) {
    sum+=i;  System.out.println(sum); }

编辑于 2019-07-26 17:14:15 回复(0)
循环条件是i小于等于5,但是第一次循环后,循环就没有在对i进行操作,所以循环会无限循环直至内存用完
发表于 2020-09-24 21:25:53 回复(0)
这道题放在现在做的话,会报错。C99模式不允许将变量的定义写入for语句中,for语句中只能是变量的初始化
发表于 2023-06-11 17:04:45 回复(0)
??
发表于 2023-09-24 21:13:56 回复(0)
这个循环结束的条件是i>5,但循环里面的语句是每次都自增1然后把i的值加上再赋值给sum,相当于sum每次自增2,而却没有使得i变化,所以i永远不可能满足结束循环的条件(i>5),即进入死循环。如果此处把sum++改成i++的就可以满足结束循环的条件,跳出死循环。
发表于 2022-09-07 09:30:59 回复(0)
i的值从未被改变,始终满足i<=5  因此是个死循环
发表于 2021-02-28 14:16:00 回复(0)

选A,因为i值不会改变,跳不出循环

发表于 2019-08-04 18:24:39 回复(0)
A,
无限次,循环并没有对循环控制变量i进行操作,i永远保持初始值1,不能到达循环终止条件i>5
发表于 2019-08-03 09:33:54 回复(0)
A i的值不变,永远为1,小于等于5,循环条件永远成立
发表于 2019-08-02 21:03:59 回复(0)
这题不选A吗?终止条件是i<=5,但是i从定义之后就在没有进行修改,始终等于1
发表于 2019-07-29 14:26:02 回复(0)
选A,终止条件为i小于等于5,i恒等于1,所以会一直循环。
发表于 2019-07-29 10:43:51 回复(0)
答案是a  i 没有++ 恒定为1 所以i一直小于2 一直循环
编辑于 2019-07-28 21:45:42 回复(0)
如果sum没有声明初始值,选D,如果程序中已经把sum初始化 ,会无限循环,要求结果精度的话,还需要考虑到sum的类型int或者double或者float
发表于 2019-07-28 14:53:19 回复(0)