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/07/17 23:57:30
![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,](/uploads/image/z/955670-14-0.jpg?t=C%E8%AF%AD%E8%A8%80%E4%B8%80%E9%81%93%E9%A2%98%E5%BD%93%E6%89%A7%E8%A1%8C%E4%BB%A5%E4%B8%8B%E7%A8%8B%E5%BA%8F%E6%AE%B5%E5%90%8E%2Ci%E7%9A%84%E5%80%BC%E6%98%AF%EF%BC%88%EF%BC%89j%E7%9A%84%E5%80%BC%E6%98%AF%EF%BC%88%EF%BC%89k%E7%9A%84%E5%80%BC%E6%98%AF%EF%BC%88%EF%BC%89%EF%BD%9Bint+a%2Cb%2Cc%2Cd%2Ci%2Cj%2Ck%3Ba%3D10%3Bb%3Dc%3Dd%3D5%3Bi%3Dj%3Dk%3D0%3Bfor%28%EF%BC%9Ba%3Eb%3B%2B%2Bb%29+i%2B%2B%3Bwhile%28a%3E%2B%2Bc%29+j%2B%2B%3Bdo+k%2B%2B%3Bwhile%28a%3Ed%2B%2B%29%3B5+4+6%E4%B8%BA%E4%BB%80%E4%B9%88k%E7%9A%84%E5%80%BC%E6%98%AF6%3Fa%3Ed%2B%2B%E6%98%AF%E5%85%88%E5%88%A4%E6%96%ADa%E6%98%AF%E5%90%A6%E5%A4%A7%E4%BA%8Ed%2C)
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
话说这种问题我也感觉比较纠结,所以我可能也会犯错,见谅……