[考題] 102年四等計算機概要

看板Examination (國家考試)作者 (Astray)時間12年前 (2013/10/06 16:07), 編輯推噓2(205)
留言7則, 1人參與, 最新討論串1/1
一、下列C程式執行後,m3之值為何? int m1=11,m2,m3=1; for(m2=m3;m1>=m2;m1--){ m1=m1-m2; m3=m1+m3; m1=m1-1; } Ans(C)23 個人認為執行順序為 m2=m3 m1>=m2 m1=m1-m2 m3=m1+m3 m1=m1-1 m1-- 1 True 10 11 9 8 1 True 7 18 6 5 1 True 4 22 3 2 1 True 1 23 0 -1 1 False 不知這樣的想法對不對,但是m2=m3部份在迴圈裡m3值有改變 這樣不會一直設值給m2嗎? (雖然我上面寫m2=m3一直等於1,但只是為了配合答案 ,一直覺得m3值應該不會一直等於1阿) 二、執行下列C語言程式所產生的輸出為何? int x=0; main(){ int y=25; if(y>15){ int x=5; x+=y; } printf("%d\n",x); } Ans(A)0 這題是跟生命週期有關嗎?所以就算if內x值變動,列印時x只會顯示主程式外的x值? 可是把int x=5給拿掉去跑,又會顯示25,疑惑? 三、某循序電路經狀態化簡後,剩餘10個狀態。若以D正反器作為此電路之記憶元件 ,所需正反器個數最少為: Ans(A)4個 這題完全沒想法,狀態是X+Y算一個狀態嗎?還是兩個? 若改成用其他T型、RS型或JK型答案還會一樣嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.238.181.149

10/06 19:24, , 1F
第一題:for迴圈分三部分,初值運算式/測試運算式/增量運算式
10/06 19:24, 1F

10/06 19:25, , 2F
初值運算式只會執行一次,所以m3不會一直帶值給m2
10/06 19:25, 2F

10/06 19:28, , 3F
第2題:當print x的時候,系統就會去尋找x的定義,if部分先不看
10/06 19:28, 3F

10/06 19:29, , 4F
x的定義是在最外面的全域變數的部分,所以印出0
10/06 19:29, 4F

10/06 19:30, , 5F
若拿掉if裡面x的定義,則x+=y那邊,x的定義就會找到最外層的x
10/06 19:30, 5F

10/06 19:30, , 6F
所以你就會得到25的答案
10/06 19:30, 6F

10/06 19:30, , 7F
第3題有請高手...若有解釋不周延還請見諒^^"
10/06 19:30, 7F
文章代碼(AID): #1IKHevZd (Examination)
文章代碼(AID): #1IKHevZd (Examination)