1樓:匿名使用者
首先:定義了一個int a=0xa,轉為10進位制是10,即a=10又定義了一個靜態的變數count=1,這個語句count <<= 1;是將count的值左移1位,《是按位操作.所以第一次呼叫foo函式時,count = 2(因為左移1位就相當與乘2),此時foo返回的值是10+2=12.
所以,i=12.
第二次呼叫foo時,由於count是靜態變數,所以移位後,count=4;又一次呼叫foo,count=8,所以foo+foo = (10+4)+(10+8) = 32.
所以,j=32.
最後一次呼叫foo,count = 16,所以foo呼叫完畢返回10+16 = 26.
所以,k=26.
2樓:匿名使用者
12,32,26
首先,請您看一看foo這個函式,每呼叫一次返回 10+(2)@i,(i為呼叫次數,@為指數運算.)為什麼是這樣呢,你要理解區域性變數,每次呼叫時它的值都會初始化一次,需靜態變數是編譯時進行分配和初始化,以後呼叫不再初始化。
所以第一次呼叫返回 10+2@1=12, 所以i=12; 需第二次呼叫時 返回 10+2@2=14, 第三次呼叫時為 10+2@3=18, 所以j=14+18=32; 第四次呼叫時返回10+2@4=26,所以k=26
3樓:匿名使用者
這麼學也不是辦法,,建議自己debug跟蹤一下,,如果會彙編就最好,問題很清楚,,樓上的解釋也很清楚
4樓:匿名使用者
debug一下
看看呼叫棧
c語言程序
include void swap int a,int b void exchange int a,int b,int len int main int b 4 int i exchange a,b,4 for i 0 i 4 i printf d a i printf n for i 0 i 4 ...
c語言程序設計的題目,C語言程式設計的題目
a錯,因為a陣列初始化時用了雙引號,所以a中儲存了一個字串,即a陣列中有7個元素,除了這些字母之外,還有一個 0 b錯,參考a c錯,a陣列初始化時用雙引號,所以a中儲存了一個字串,b陣列中將儲存了6個字元.d對,參考a 只能選擇d,對於a 它等於 最後的 0很重要,對於b來說,他沒有封尾,沒 0,...
哪位大佬能幫看看這道c語言,C語言求助,哪位大佬幫我看看這道題?一直搞不清楚
自我程式設計 按題意,既利用指標將b中每個元素按照升序插入到a陣列對應位置。思路 a,b都是預設輸入升序的數 題目沒要求驗證,我的 也不驗證,請按升序輸入,如需驗證升序輸入,只需定義一個變數記錄輸入的數字,並在下次迴圈輸入時比大小。所以,定義2個指標分別指向a,b最後一個輸入的元素地址,巢狀迴圈,分...