二級C語言,下列程式的輸出結果,二級c語言題目 以下程式執行後的輸出結果是 main() int x 0210 printf X n ,x

2021-06-17 08:04:55 字數 1595 閱讀 3668

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 而它剛才被你...