作者guessi (没)
看板TransCSI
标题Re: [问题] trace program
时间Tue Jul 15 00:25:54 2008
※ 引述《forris (乔巴)》之铭言:
: int ml, m2=11, m3=1;
: for ( ml=0; ml<=m2; m1++){
: m3 = m1 + m3;
: m1 = m1+2;
: }
: 该程式片段执行後,m3 之值为何?
: (A) 18 (B) 19 (C) 30 (D) 31
: ===========================================================================
: 答案是 19 , 我都算成 31.
: 要怎麽算阿 ?
答案应该没错~ (ps. 题目中m"L"应修正为m"1")
详细如下:
-------------------------------------------------
执行项目 m1 m3
-------------------------------------------------
int m1, m2 = 11, m3 = 1; ? 1
进入for回圈 0 1
判断m1 <= m2
m3 = m1 + m3 0 1
m1 = m1 + 2 2 1
m1++ 3 1
判断m1 <= m2
m3 = m1 + m3 3 4
m1 = m1 + 2 5 4
m1++ 6 4
判断m1 <= m2
m3 = m1 + m3 6 10
m1 = m1 + 2 8 10
m1++ 9 10
判断m1 <= m2
m3 = m1 + m3 9 19
m1 = m1 + 2 11 19
m1++ 12 19
判断m1 <= m2
退出for回圈 12
19
-------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.57.132.240