Re: [考題] 102自來水程式設計概要
※ 引述《winterQ (DOMO)》之銘言:
: 27.有關C++程式碼的執行結果,下列何者正確?
: int b,i;
: for(b=1,i=0;i<100;i++) b=b*3%7;
: 答案是 (4)b的值變成4
: 我個人是猜b的值變成3,b的初始值設在迴圈跟外面不是一樣嗎?
: 還有*跟%優先權不是一樣? b=1*3%7 => 3%7=3?
先跑第一次是: b=1*3%7 => b=3%7 => b=3------i=0.6.12.18.24.30.36.42.48.54.60
66.72.78.84.90.96
跑第二次是: b=3*3%7 => b=9%7 => b=2------i=1.97
跑第三次是: b=2*3%7 => b=6%7 => b=6------i=2.98
跑第四次是: b=6*3%7 => b=18%7 => b=4-----i=3.99(答案)
跑第五次是: b=4*3%7 => b=12%7 => b=5-----i=4
跑第六次是: b=5*3%7 => b=15%7 => b=1-----i=5
跑第七次是: b=1*3%7 => b=3%7 => b=3------i=6(循環到了)
所以當i=99時,跑到的位置是b=4
我也用程式跑過驗證過了
: 32.下列的C++程式碼總共宣告了三個同名變數x:
: static int x=1;
: int main()
: {
: int x=2;
: for(int i=1,x=3;i<5;i++){
: x*=i;
: }
: cout<<x<<endl;
: return 0;
: }
: 答案是 (1)程式會印出2
: 我個人是猜程式會印出72,覺得static沒影響這程式
: x在主程式設值為2,迴圈又設值為3,答案會印出2,所以代表沒有跑迴圈?
我的觀念是:
主程式裡面自己宣告了X變數,所以不關外面靜態的事
先宣告了X=2,跑回圈時又宣告X=3
我覺得迴圈是有跑完,只是沒有顯示而已
而當離開迴圈時,當然就只顯示當初宣告的2
不知道這觀念是否成立,也想請高手替我改正
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.127.195
→
08/24 18:02, , 1F
08/24 18:02, 1F
→
08/24 18:38, , 2F
08/24 18:38, 2F
推
08/24 20:11, , 3F
08/24 20:11, 3F
→
08/24 20:13, , 4F
08/24 20:13, 4F
→
08/24 20:46, , 5F
08/24 20:46, 5F
→
08/24 20:46, , 6F
08/24 20:46, 6F
→
08/24 20:47, , 7F
08/24 20:47, 7F
推
08/24 21:48, , 8F
08/24 21:48, 8F
→
08/24 21:50, , 9F
08/24 21:50, 9F
→
08/24 21:51, , 10F
08/24 21:51, 10F
→
08/24 21:54, , 11F
08/24 21:54, 11F
→
08/24 23:39, , 12F
08/24 23:39, 12F
→
08/24 23:40, , 13F
08/24 23:40, 13F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):