#include <stdio.h>
int main()
{
int k=2,;
while(k<7)
{
if(k%2) {k=k+3; printf(“k=%d\n”,k);continue;}
k=k+1;
printf(“k=%d\n”,k);
}
return 0;
}
程序段如上:则以下说法中不正确的是( )。
A k=k+3;执行一次
Bk=k+1;执行2次
C 执行后k值为7
D 循环体只执行一次
#include <stdio.h>
int main()
{
int k=2,;
while(k<7)
{
if(k%2) {k=k+3; printf(“k=%d\n”,k);continue;}
k=k+1;
printf(“k=%d\n”,k);
}
return 0;
}
程序段如上:则以下说法中不正确的是( )。
A k=k+3;执行一次
Bk=k+1;执行2次
C 执行后k值为7
D 循环体只执行一次
引自免费微信小程序:皆我百晓生
根据您提供的C语言程序段,我们可以逐一分析每个选项的正确性。首先,我们梳理一下程序的逻辑:
程序初始化变量k
为2,然后进入while
循环,条件是k < 7
。在循环体内,首先判断k
是否为奇数(k % 2
),如果是奇数则执行k = k + 3
并打印当前的k
值,然后跳过本次循环的剩余部分继续下一次循环。如果k
不是奇数(即偶数),则执行k = k + 1
并打印当前的k
值,然后继续进行下一次循环的判断。
现在我们来分析每个选项:
A. k=k+3;执行一次
if
判断,当k
为奇数时执行k=k+3
,由于初始值k=2
是偶数,因此第一次进入循环时不会执行这个语句,而是在k=5
(第一次循环结束后k=k+1
后的值)时执行一次。B. k=k+1;执行2次
k=2
是偶数,所以第一次循环会执行k=k+1
,使k=3
。随后在每次循环的末尾都会执行k=k+1
,所以总共会执行两次。C. 执行后k值为7
k
的值会是6。因为当k=6
时,满足条件k < 7
,但最后一次循环结束时,k=k+1
后k=7
,此时不满足条件,循环终止,所以最终值是6。D. 循环体只执行一次
k=2
是偶数,所以循环体会执行一次(只进行偶数的增加操作),但当进入第二次循环时(此时k=3
),循环会继续进行,所以循环体会执行不止一次。综上所述,不正确的选项是C和D。