C语言一道题当执行以下程序段后,i的值是()j的值是()k的值是(){int a,b,c,d,i,j,k;a=10;b=
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 09:56:42
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吗?
麻烦把这个程序的运算顺序跟我说一下好吗?
当执行以下程序段后,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吗?
麻烦把这个程序的运算顺序跟我说一下好吗?
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
话说这种问题我也感觉比较纠结,所以我可能也会犯错,见谅……
再问: 是先执行完for循环,再执行完while循环,最后在执行完do while循环吧,中间没有嵌套问题对吧
再答: 对,因为没有大括号的时候,for、while、do只对后面的一条语句有效。
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
话说这种问题我也感觉比较纠结,所以我可能也会犯错,见谅……
再问: 是先执行完for循环,再执行完while循环,最后在执行完do while循环吧,中间没有嵌套问题对吧
再答: 对,因为没有大括号的时候,for、while、do只对后面的一条语句有效。
C语言一道题当执行以下程序段后,i的值是()j的值是()k的值是(){int a,b,c,d,i,j,k;a=10;b=
已知:int i ,j ,k,a; i=j=k=0; a=10;,运行下列程序段后,a的值是().
9.执行以下程序段后,k的值是( ). int k=0,a=1,b=2,c=3; k=b?c:a; A. 3 B. 2
int i=2,j=3,k=4,a=4,b=5,c=6,则执行表达式(a=ik)&&(c=i,j,k)后,c的值是
执行以下程序段后,a、b、c和k的值分别为() int a=1,b=2,c=3,k; k=a+++b+++c++
下面语句执行后,i 的值是( B ).for( int i=0,j=1; j < 5; j+=3 ) i=i+j; A)
int i=2,j=3,k=4,a=4,b=5,c=3,则执行表达式(a=ik)&&(c=i,j,k)后,c的值
设char c=′A′;int i=1,j;,执行语句j=!c&&i++;后,i和j的值分别是( ) A.0和1 B.1
执行以下程序段后,输出结果和a的值是().int a=10; printf("%d",a++); A、11 和 10 B
下列语句序列执行后,k 的值是? int i=10, j=18, k=30; switch
下列语句序列执行后,k 的值是 int i=10,j=18,k=30;
执行语句int i = 1,j = ++i; 后i与j的值分别为( ).A.1与1 B.2与1 C.1与2 D.2与2