程式語言兩題 - 考試
By Damian
at 2013-06-26T21:16
at 2013-06-26T21:16
Table of Contents
※ 引述《Mayinggo (馬贏狗)》之銘言:
: 1.
: Three of the following expressions have the same value. Which of the followi
: ng's value is different from the others?
: (A)*&Ptr
: (B)&*Ptr
: (C)*Ptr
: (D)Ptr
: 某年中正資管所考題 去看yahoo知識+有人說答案是(C) 書上答案是寫(D)
: 記得是取值和取址 可是說只有一個跟其他不同......
大概解釋一下 有錯請更正
假設 int a=5,*ptr; ptr=&a;
在記憶體是這樣的
ptr a
位置| 值 位置|值
1234 5678 5678 5
A) *&ptr 先看內層&ptr 是取ptr位置為1234
而*可以當作以int解析記憶體為1234的內容取得5678
B) &*ptr *ptr 以int解析記憶體為5678的值 5
而&為 取得其記憶體位置 5678
(C)解析記憶體為5678的值 取得5
(D)ptr的值5678
因此答案為C
: 2.
: Show what is written by the following C++ code.
: #include <iostream>
: using namespace std;
: void AAA(int v1,int v2)
: {int tmp=v2;v2=v1-3;v1=tmp+3;}
: void pAAA(int *v1,int *v2)
: {int tmp=*v2;*v2=*v1+2;*v1=tmp-4;}
: void rAAA(int &v1,int &v2)
: {int tmp=v2;v2=v1+4;v1=tmp-5;}
: int main()
: {int i=1;
: int j=2;
: cout<<"before AAA() i="<<i<<" and j="<<j<<"\n";
: AAA(i,j);
: cout<<"after AAA() i="<<i<<"and j="<<j<<"\n";
: pAAA(&i,&j);
: cout<<"after pAAA() i="<<i<<" and j="<<j<<"\n";
: rAAA(i,j);
: cout<<"after rAAA() i="<<i<<" and j="<<j<<"\n";
: return 0;
: }
: 解答是before AAA() i=1 and j=2
: after AAA() i=1 and j=2
: after pAAA() i=-2 and j=3
: after rAAA() i=-2 and j=2
: C++不熟沒學過 不過大概知道這題在考傳值傳址呼叫
: 某年政大資管所考題 還請各位大大不吝指教
稍作修改 rAAA裡應該沒有指標
第一次 Call by Value 不改變
第二次 Call by Address
記憶體會宣告指標型態v1跟v2指到i跟j的位置
第三次為 Call by Reference
v1跟i共用記憶體 v2跟j共用記憶體
--
: 1.
: Three of the following expressions have the same value. Which of the followi
: ng's value is different from the others?
: (A)*&Ptr
: (B)&*Ptr
: (C)*Ptr
: (D)Ptr
: 某年中正資管所考題 去看yahoo知識+有人說答案是(C) 書上答案是寫(D)
: 記得是取值和取址 可是說只有一個跟其他不同......
大概解釋一下 有錯請更正
假設 int a=5,*ptr; ptr=&a;
在記憶體是這樣的
ptr a
位置| 值 位置|值
1234 5678 5678 5
A) *&ptr 先看內層&ptr 是取ptr位置為1234
而*可以當作以int解析記憶體為1234的內容取得5678
B) &*ptr *ptr 以int解析記憶體為5678的值 5
而&為 取得其記憶體位置 5678
(C)解析記憶體為5678的值 取得5
(D)ptr的值5678
因此答案為C
: 2.
: Show what is written by the following C++ code.
: #include <iostream>
: using namespace std;
: void AAA(int v1,int v2)
: {int tmp=v2;v2=v1-3;v1=tmp+3;}
: void pAAA(int *v1,int *v2)
: {int tmp=*v2;*v2=*v1+2;*v1=tmp-4;}
: void rAAA(int &v1,int &v2)
: {int tmp=v2;v2=v1+4;v1=tmp-5;}
: int main()
: {int i=1;
: int j=2;
: cout<<"before AAA() i="<<i<<" and j="<<j<<"\n";
: AAA(i,j);
: cout<<"after AAA() i="<<i<<"and j="<<j<<"\n";
: pAAA(&i,&j);
: cout<<"after pAAA() i="<<i<<" and j="<<j<<"\n";
: rAAA(i,j);
: cout<<"after rAAA() i="<<i<<" and j="<<j<<"\n";
: return 0;
: }
: 解答是before AAA() i=1 and j=2
: after AAA() i=1 and j=2
: after pAAA() i=-2 and j=3
: after rAAA() i=-2 and j=2
: C++不熟沒學過 不過大概知道這題在考傳值傳址呼叫
: 某年政大資管所考題 還請各位大大不吝指教
稍作修改 rAAA裡應該沒有指標
第一次 Call by Value 不改變
第二次 Call by Address
記憶體會宣告指標型態v1跟v2指到i跟j的位置
第三次為 Call by Reference
v1跟i共用記憶體 v2跟j共用記憶體
--
Tags:
考試
All Comments
By Anonymous
at 2013-06-27T23:09
at 2013-06-27T23:09
By David
at 2013-07-02T12:01
at 2013-07-02T12:01
Related Posts
各位每天唸多久啊?
By Doris
at 2013-06-26T19:56
at 2013-06-26T19:56
Re: 台電 綜合行政 英文+企概問題
By Madame
at 2013-06-26T19:54
at 2013-06-26T19:54
關於郵局外勤體測的準備
By Hedwig
at 2013-06-26T19:34
at 2013-06-26T19:34
程式語言兩題
By Cara
at 2013-06-26T19:06
at 2013-06-26T19:06
102年移民行政四等考試錄取心得
By Andy
at 2013-06-26T18:44
at 2013-06-26T18:44