k*=n%10即 k=k*(n%10),初始值,k=1,n=263,所以k=3,n=26, while(n)判断n为真,所以继续循环,此时k=3*6=18 n=2; while(n)再次判断n为真,再次循环,此时k=18*2=36,n=0,判断n为假,所以退出循环, while(n)表示判断n的值是否为真,程序中认为0为假,其他值为真。若...
然后从下往上迭代,得到7+6+2+0等于15,因此输出15
但并不是所有表达式都返回右值。赋值表达式返回的就是左值,如果这样写:(a=3)++; 这句程序是正确的,可以通过编译。因为(a=3)是赋值表达式,返回左值,而++运算符正好作用于一个左值。第二题:B 。c++的意思是先返回c的值,然后再将c加1。
首先k == 0 和 !k != 0是一个概念。其次我举个反例:if(k)这种情况和 if(k != 0)是等价的;那么if(!k) 就是在if(k)表达式上加一个非符号。也就是说它等价于if(!k != 0)或者if(k == 0)。
k++本身等于k,执行完之后再加1 所以第一题等同于while(k