1. 不使用临时变量交换两个变量:
a = a + b;
b = a - b;
a = a - b;
这种方法看似正确,你能说出它的潜在危险吗?
答:若a+b的值大于a,b多属类型的最大取值范围,则会导致发生溢出,a=a+b的值出错,从而导致最后结果错误.
2. 如题,
int a = 7;
float x = 2.5, y = 4.7;
则表达式 x+a%3*(int)(x+y)%2/4的值是多少?
答: = 2.5+7%3*7%2/4
= 2.5+2*7%2/4
= 2.5+14%2/4
= 2.5+0/4
= 2.5
3. 如题:
int a=5,b=7,c;
c=a+++b;
printf("%d\n",c);
c的值是:12.