C语言运行结果分析?

2025-02-27 14:13:29
推荐回答(5个)
回答1:

while(x++<5),先与5比较,后加1,所以6也是在循环内打印出来的,跳出循环后X=7,然后再加2不就是9咯!

回答2:

printf(“%d,%d\n”,a,b)这个就不解释了;
printf(“%u,%u\n”,a,b)%u是无符号整型,所以b=-100会转化成无符号的,即2^32-100;
printf(“%u,%u\n”,c,d) c赋值为a所以100,d赋值为b,是-100,同上的解释;
c=a=e d=b=f printf(“%d,%d\n”,a,b) 因为e是Long型,a=e会截断,只取e的低16位,而e=2^32,低16位全部为0,所以a=0,b=f同理解释。
由于已经精度损失了,所以即使用%u输出,同样是上面的结果。
希望能解决您的问题。

回答3:

printf(“%d,%d\n”,a,b)这个就不解释了;
printf(“%u,%u\n”,a,b)%u是无符号整型,所以b=-100会转化成无符号的,即2^32-100;
printf(“%u,%u\n”,c,d) c赋值为a所以100,d赋值为b,是-100,同上的解释;
c=a=e d=b=f printf(“%d,%d\n”,a,b) 因为e是Long型,a=e会截断,只取e的低16位,而e=2^32,低16位全部为0,所以a=0,b=f同理解释。
由于已经精度损失了,所以即使用%u输出,同样是上面的结果。

回答4:

x=6的时候while里面的x还会+1,然后判断失败,跳出循环,就是7+2=9喽

回答5:

Status
InitTriplet(Triplet*T,ElemType
v1,ElemType
v2,ElemType
v3)
InitTriplet(T,2,2,2);
函数要求传递指针,而调用时却是用了值传递。按你的意思应该是
int
main()
{

Triplet
*T;
//这里应该为指针

InitTriplet(T,2,2,2);

printf("%d\n%d\n%d\n",T[0],T[1],T[2]);

return
OK;
}
手头没C,可能是这样的