1樓:九劍之上
main()
語句2將&b和a分別傳給fun的兩個形參,b的地址傳遞給形參c,即c指向變數b,*c=*c+1;即*c=』f'+1,ascii碼值為g,故*c的值為g,注意,因為c變數的值是b的地址,*c是對c的解引用,代表了b地址的內容,也即b變數的值,故b變數的值改變為g。fun函式第2句d+=1即d=d+1;語句2中a的值傳遞給fun的d,d=』f'+1,故d的值為g。函式呼叫結束後,區域性變數c與d均被系統**,主函式&b與a的值均沒變,但b的值通過指標操作發生改變,最終a的值仍為'f',b的值變為g。
故輸出如題的結果。
2樓:看灰過來了
主函式main中呼叫fun函式的時候,第一個引數是取變數b的地址,第二個是變數a的值,這樣就導致在fun函式內部操作的實際上就是main中的b的值,而a的值不會在fun中發生改變,它是單向傳輸值。所以導致:
fun中的printf輸出的是*c的值和d的值,也就是main中的變數b的值(這裡b的值已經加1變成g了),d的值是從main中傳過來的a的值再加1之後的值,也就是g
執行完fun後,返回到main中,執行main中的printf函式,輸出a和b的值,a的值沒有發生改變,所以依然是原值,b的值在fun中發生改變為g
3樓:匿名使用者
第一行的輸出要看懂fun這個函式的引數,第一個引數是指標型,&b是把b的地址傳進去,加1是把f的ascii加1,輸出的時候就輸出了g;
d+1也是把f的ascii加1;即g;沒換行繼續輸出a,就是f;
然後換行了在輸出b,在函式中通過指標把b的值已經改變成g;
二級c語言題目 以下程式執行後的輸出結果是_____ main() { int x=0210;printf("%x\n",x); }
4樓:匿名使用者
0210就是八進位制的210
%x就是16進位制輸入或者輸出
所以答案是88
5樓:匿名使用者
8進位制到16進位制88
6樓:小
首先如果真要執行來起來自,那肯定是不行的,畢竟少了標頭檔案;其次,返回的型別(void main()……)
最後,要是這個題目沒有出錯:求解過程是這樣的:0210的二進位制是:11000010;%x表示無符號16進位制,故結果是:c2
最最後還要多說一句,這樣的考題沒什麼意思,並不代表自己在c語言上的能力v!
我錯了,0210的確是八進位制,答案也的確是88.
7樓:匿名使用者
結果為88。
x=0210,等同於x=210,正因為前面有0所以代表的是八進位制,%x代表十六進位制輸出。
c語言問題:下列程式執行後輸出的結果是
8樓:
4,d)正確,選d)——for迴圈呼叫兩次f,第一次調
用返回3(a=c++使a==3),第二次呼叫返回4(由於
回c是static變數,上次呼叫時3賦給a後答c++變c為4)。最後輸出是第二次呼叫後的返回值。
c語言二級考試題及答案
二級c語言題,急求解,二級C語言題,急求解
選d 比較淺顯的來說,左移n位就是乘以2的n次方,右移n位就是除以2的n次方。具體細節如下 c語言裡的左移和右移運算 先說左移,左移就是把一個數的所有位都向左移動若干位,在c中用 運算子.例如 int i 1 i i 2 把i裡的值左移2位 也就是說,1的2進位制是000.0001 這裡1前面0的個...
C語言二級問題
答案是3 第一個if,括號內是非a,因為a 0,所以不執行if語句,執行else if,else if成立,但是後面是 沒有語句塊,所以繼續執行後面if語句,c 0成立,所以x 3 如果中間沒有大括號,那麼結果是4,因為過程是 if a x 0滿足 x 34,接下來的else if b if c x...
C語言二級問題
致命錯誤!概念混了你。首先p是指標!他自己不是被運算的他是指向別人的。p 3 是p 3 也就是a 3 因為前面p a了 然後是a 3 2 6,記得我前面跟你說的麼 預設從0開始算!因為你的 p是一個指標。預設指向a,所以當你輸出 p的時候是a 0 的值,就是1。而後面 p 3 是a 3 而它剛才被你...