一、下列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型答案還會一樣嗎?
--
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型答案還會一樣嗎?
--
All Comments