早教吧作业答案频道 -->其他-->
for循环执行顺序c代码main(){for(i=0;i<6;i++&&k++)printf("%2d%2d",i,k);printf("\n");i=0;k=0;for(i=0;i<6;i++){printf("%2d%2d",i,k);k++;}}执行后的结果是这样的:00102132435400
题目详情
for循环执行顺序c代码 main() { for(i = 0; i < 6; i++ && k++) printf("%2d%2d", i, k); printf("\n"); i=0; k=0; for(i = 0; i < 6; i++) { printf("%2d%2d", i, k); k++; } } 执行后的结果是这样的: 0 0 1 0 2 1 3 2 4 3 5 4 0 0 1 1 2 2 3 3 4 4 5 5Press any key to continue; 求解释.
▼优质解答
答案和解析
程序重点位置就是 for(i = 0; i < 6; i++ && k++)里面的,i++ && k++,由于一般的编译器,对于逻辑运算符 的处理,按照从左之右,并且如果左面的表达式就可以得到最终的结果,那右边的就不执行了。 所以,本程序中。i++,先运行 i的 && 然后再执行i自加1。 当i=0的时候,第一次进入for循环,for语句执行到i = 0; i < 6;结束,并不执行i++ && k++,当第一次循环结束后i=0,k=0。 进行第二次循环for语句执行 i < 6; i++ && k++。并先执行i++ && k++。这个时候i=0,&&不需要右边的表达式已经可以知道结果,所以就不执行k++。由此第二次循环后i=1,由于k++没有执行,所以k还是=0。 进入第三次循环,i=1。&&必须要通过计算右边的表达式才能得出结果。所以开始执行k++。所以第三次循环 时候 i=2,k=1 调试与直接运行EXE的结果不同,问题我没有发现,不知道楼上使用的是什么编译器环境?
看了for循环执行顺序c代码mai...的网友还看了以下:
这段程序得出来的a是小数.a是车辆数,不能为小数.如何去整?sets:z/1..11/;k/1/; 2020-04-26 …
谁知道这个结果是怎么得出来的,我怎么也算不出来.F=500*(F/500,8%,10)=7243. 2020-06-14 …
设A,B是三阶方阵,若满足等式A+BA=B,求(A-I)^(-1)是什么?我是这样算的,BA-B= 2020-06-18 …
C语言中二维数组a[i][j]中,a+i=*(a+i)=a[i]=&a[i]是怎么理解的.其中*( 2020-06-27 …
(斐波那契数列)谁能解释一下这个程序中的“c[i]:=c[i]+a[i]+b[i];varn,i, 2020-07-23 …
C语言的for相关问题以下是一个代码#include<stdio.h>main(){inta[4] 2020-07-23 …
定义:如果一个数的平方等于-1,即i^2=-1,那么这个数i叫做虚数单位.形如a+bi(a、b为有 2020-07-30 …
这个矩阵问题希望老师能帮助我!已知A矩阵,AX+I=A^2+X(其中I为单位矩阵),求X(求思路,因 2020-11-03 …
虚数向量正交问题?向量a=[i,1],b=[-i,1]请问a与b为什么正交?i*i=-1,这个成立的 2020-11-17 …
用matlab解一下这个微分方程!急.di/dt=(480*m+15*n+20*k*i)*(1+a- 2020-12-12 …