C语言一道题当执行以下程序段后,i的值是()j的值是()k的值是(){int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for(;a>b;++b) i++;while(a>++c) j++;do k++;while(a>d++);5 4 6为什么k的值是6?a>d++是先判断a是否大于d,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 21:57:11
C语言一道题当执行以下程序段后,i的值是()j的值是()k的值是(){int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for(;a>b;++b) i++;while(a>++c) j++;do k++;while(a>d++);5 4 6为什么k的值是6?a>d++是先判断a是否大于d,
C语言一道题
当执行以下程序段后,i的值是()j的值是()k的值是()
{int a,b,c,d,i,j,k;
a=10;b=c=d=5;i=j=k=0;
for(;a>b;++b) i++;
while(a>++c) j++;
do k++;while(a>d++);
5 4 6
为什么k的值是6?a>d++是先判断a是否大于d,然后执行循环体,然后再执行d++,再判断a是否大于d吗?
麻烦把这个程序的运算顺序跟我说一下好吗?
C语言一道题当执行以下程序段后,i的值是()j的值是()k的值是(){int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for(;a>b;++b) i++;while(a>++c) j++;do k++;while(a>d++);5 4 6为什么k的值是6?a>d++是先判断a是否大于d,
a>d++ 是先判断a>d,再d++,
a>++c 是先c++,再判断a>c,
for的那个,是b=5,6,7,8,9的时候会执行i++,所以是5
while的那个,相对于for的那个,是c一上来先被加一了,所以少了一个,(c自加完之后)c=6,7,8,9的时候会执行j++,所以是4
do-while的那个,相对于for的那个,k上来先被加了1(do while循环体先执行一次),而(d自加完之前)d=5,6,7,8,9的时候会去执行k++,所以是6
话说这种问题我也感觉比较纠结,所以我可能也会犯错,见谅……