运行下面的程序后,变量varl和var2的值分别是多少?并说明理由。。
int varl=0, var2=0;
int main(void)
{unsigned char temp
varl=10;
for(temp =0;temp<1000; temp = temp +2) var2++;
varl=20;
while(1);}
答:
var1的值为 20,var2的值为 628 。
var1初始化为 0 后被赋值为 10,之后又被赋值为 20,所以最终var1的值为 20。
对var2,在for循环中,temp从 0 开始每次增加 2 ,直到temp >= 1000。由于temp是无符号字符类型,其取值范围是 0 到 255,当temp达到 255 后再加 2 会溢出变回 1 ,然后继续循环,总共循环次数为(255 - 0 + 1) / 2 + (1000 - 1) / 2 = 128 + 499.5 = 627.5(向上取整为 628 次),所以var2的值为 628 。
嵌入式小分析题,求解是这样做的吗?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-