4
while 后面是分号,表示循环语句为空,k=3时跳出循环,然后执行k++,最终k=4。
while(k++<=2);printf("last=%d\n",k); 注意括号后面的那个分号,那才是while的循环体,只有一个分号即一个空的语句。所以这个是等while循环完毕后再输出的。
为什么是4:循环的条件情况如下(k++返bai的是k的原值,然后再加1)
第1次:k++<=2 真,执行之后k == 1
第2次:k++<=2 真,执行之后k == 2
第3次:k++<=2 真,执行之后k == 3
第4次:k++<=2 假(退出循环),执行之后k == 4
所以输出的是4
扩展资料:
for表达式
表达式1:一般为赋值表达式,给控制变量赋初值;
表达式2:关系表达式或逻辑表达式,循环控制条件;
表达式3:一般为赋值表达式,给控制变量增量或减量。
语句:循环体,当有多条语句时,必须使用复合语句。
判别表达式2是否满足给定条件,若其值非0,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2……;否则判断表达式2的值为0,不满足条件,就终止for循环,执行循环体后语句。
参考资料来源:百度百科-循环语句
.程序段如下 int k=0; while(k++<=2); printf("last=%d\\n",k); 则...
while 后面是分号,表示循环语句为空,k=3时跳出循环,然后执行k++,最终k=4。while(k++<=2);printf("last=%d\\n",k); 注意括号后面的那个分号,那才是while的循环体,只有一个分号即一个空的语句。所以这个是等while循环完毕后再输出的。为什么是4:循环的条件情况如下(k++返bai的是k的原值...
程序段如下 int k=0; while(k++<=2); printf("l%d\\n",k);
k要先用,然后在加1,比如说,第一次的时候,k=0,小于2,满足条件,然后继续循环,不过此后的k变成了1,继续循环,当k=3时,不满足循环条件了,就要退出循环了,不过在进行判断(3<=2)后,k又加了1,所以最后k变成了4,最后输出。
...3?和int k=0;while(k++<=2);printf("last=%d\\n",k
k++ 是后缀加,也就是在表达式里先用当前值,用过后再增1。k++<=2 当 k=0,1,2 时做循环体,执行循环体三次 printf("%d\\n",k); 里的 k 是增1后的k, 打印出 1,2,3。k++ 变 3 时 退出循环。退出循环后 k=4。由于没有后续打印语句,没显示出k=4的结果。while(k++<=2); ...
...{ int k=0; while(k) { k++; printf("%d\\n",k); } return 0...
K=0 while(k)0相当于“假”所以不执行 非0的值相当于“真”就执行了 在while前面把K改成非0的值,循环就执行了 不过你这是死循环
关于while的(k++)内自增问题
跳出循环的时候,比较k<=2失败,k就是3了,然后再++,得4
C语言习题循环求解
int k=0;do {++k;}while(k>=0);printf("%d\\n",k);\/\/输出退出循环时k的值 程序的输出结果为:-2147483648 循环条件3<=x<=4不能这样表示,这样表示等价于(3<=x)<=4,无论x为任何数,3<=x要么是1要么为0,但不论1还是0都是小于4的,所以这个循环条件始终为真,就是死循环了,条件...
求一些c编程题
82、有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次、A、1 83、有以下函数 char fun(char *p) { return p; } 该函数的返回值是 A) 无确切的值 B) 形参p中存放的地址值 B) 一个临时存储单元的地址 D) 形参p...
...{ int n=2,k=0; while (k++&&n++>2); printf ("%d%d\\n",k,n...
&&是与。计算k++时先看k的值为0,那么k++的值取0后再自加,整个k++&&n++>2直接判断为0,后半段不计算了,所以跳出循环时,n++并没有执行。k=0而n=2
...{ int n=2,k=0; while(k++&&n++>2); printf("%d %d\\n",k,n...
\/\/等价于while((k++)&&(n++>2))这里在while循环里面判断k的值,此时k=0,判断不通过然后再将k的值加1,此时k等于1。然后&&左边是0,根据短路原理,整个表达式都是的值为0,因此&&右边就没有计算的必要了。所以n++>2没有进行计算,所以n还是等于2。so,到printf的时候k=1,n=2咯。
c语言程序设计大赛试题
printf("%d\\n", num);} else { int a[10] = {0};int ti = 10, i = 0, nable = 0;while(num \/ ti != 0) { a[i] = num % ti;i++;num = num \/ ti;} a[i] = num;for(int k = i; k >= 0; k--) { for(int j = 0; j < k; j++) { int temp, m ...