for循环中表达式2第一次执行即为假,是直接退出本个循环还是继续执行表达式3

比如说这道题
#include.
main(  )
{char s[]={"012xy"};int i,n=o;
for(i=0;s[i]!=0;i++)
if(s[i]>=’a’&&s[i]<=’z’)n++;
printf("%d\n",n);
}
  程序运行后的输出结果是(  )
是0还是2 ??

for循环中表达式2执行即为假,直接退出循环,不会继续执行表达式3

你的程序,在代码没有错误的情况下(现在有中文符号和n初始o),结果为2。但这个和第三逻辑无关啊,这是因为,你for第二表达式判断的是s[i]!=0,这里会一直执行到字符串s结束,找到两个英文字母。
如果你的for语句是:for(i=0;s[i]!='0';i++) ,这种情况,那么第一次循环即为假,不会执行i++和n++,结果是0。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-24
#include<iostream>
using namespace std;
int main()
{ int a,b;
for(a=1,b=0;a<=100;a++)
b=a+b;
cout<<a;cout<<b;
return 0;
}
你调试过没,为什么我调试的结果显示a为101.
如果不执行表达式3为什么这个程序会显示a的值为101,b的值为5050(正常)