c語言下列程式執行結果int a 7,b

時間 2021-08-11 17:32:25

1樓:岔路程式緣

下列程式的執行結果是( d)。 #include int a=7, b=3; void fun (int x, int y) main ( ) a. 4, 7 b.

7,3 c. 2,6 d. 8,6

答案選d,原因是:

1、首先程式開頭定義的a=7,b=3屬於全域性變數。它在所有函式中有效。

2、其次在main函式中又定義了兩個同名變數int a=8, b=6;,它們是區域性變數,僅僅在main函式中有效。

3、這就產生了一個很大的問題,在main函式中同時存在兩個變數a(全域性的7、區域性的8)和兩個變數b(全域性的3、區域性的6),不僅暈,而且亂!為避免矛盾和衝突,c規定:變數名稱衝突時,區域性變數優先與於全域性變數。

所以,看似高大上的"全域性變數"在區域性變數面前隱、身、了。

4、所以在,在main中提到的a和b,跟全域性變數7和3沒有半毛錢關係。它們的值一直是8和6。

5、函式void fun(a,b)雖然呼叫a和b做實參,但也只是把a和b複製了一份去參加fun的執行,複製完就沒有a和b的什麼事兒了,無論fun怎樣做,都不會影響a和b,更不會影響它們的值(8和6)。

6、最後列印a.b的值,列印是8和6了!

7、也就當然選d啦?

2樓:樓主_回頭是岸

這個傳值和傳地址的問題

他是進入了fun(a,b);這個函式

但是並沒有改變外面 a和b的值

要改變的話就要用指標

#include

int a=7, b=3;

void fun (int *x, int *y)main ( )

c語言 42.下列程式的執行結果是( ) void fun(int *a,int *b) {int *k;

3樓:

很多答案雖然選對了,但是其實是錯的,這裡不僅a,b的值不變,指標也不變,換句話說就算printf("%d %d",*x,*y),答案也是一樣的

4樓:高中的資訊

答案是a。首先執行main()主函式,執行到fun(x,y)函式時,呼叫viod fun()函式,賦值交換,改變a,b的值,printf()輸出

5樓:哈欠聊科技

答案選b.

函式 fun(int* a,int* b)的兩個引數型別都是int*型.

也就是說,引數變數a, b本身的值不會變.

當傳入兩個實參int* x , int* y後.

儘管fun裡面作了交換操作,這種交換不會影響到原來的x,y變數值.

要象這樣定義fun函式,才有意義.

void fun(int *a,int *b){int k;

6樓:匿名使用者

b 3 6

fun裡交換的只是x,y的指向,即將y指向了b,x指向了a,而a,b本身不會變。

7樓:匿名使用者

bfun裡邊交換的只是x,y裡儲存的地址,即將x的地址指向了b,y的地址指向了a,實際上a,b並沒有參與fun函式。

8樓:好時光悄悄溜走

只不過是地址交換了,a,b不變,但是*x,*y變了

c語言執行以下程式段後變數a的值是:( ) int a=0, b=3;

9樓:匿名使用者

條件a+b&&a++&&b-a&&a是這樣執行的,a+b=3,a++先判斷在自增,判斷為0,自增後為1,因為判斷為0,所以邏輯短路,後面的也就不判斷了

switch裡面是0,所以case 0執行成功,也就是說從case 0後面的語句都要執行,知道遇到break

a++;

case 1:b++;

case 2:a+=b;

也就是這些都有執行

所以是6

選d不懂再問懂請採納

有定義語句"int a=1,b=2,c=3,x;"以下各程式段執行後,x的值不為3的是 c語言求助!!!

10樓:匿名使用者

第一題(c)

m=1;m%4=1所以s=s+m=0+1=1 k=1m=2;m%4=2; s=-1 k=0

m=3;s=-4 k=-4

m=4;s=0 k=-4

第二題(c)

a.前兩個條件不成立回,所以x=3;

b.第一個條件成立,跳過

答之後條件,x=3;

c.第一個成立,x=3,第二個成立x=2,第三個不成立,所以最終x=2

d.第一個成立,x=2,第二個成立x=3,第三個不成立,所以x=3

c語言中, 已知int a=1,b=2 ,c=3 以下語句執行後a,b,c的值是??

11樓:思念不溼

應該是看成

if (a>b)

a=b;

b=c;

if只管到c=a ; 因為a=1,b=2,不滿足if,所以執行後面的,a=b=2,b=c=3,c還是3選b

12樓:uspta鄭州站

條件a>b不成立

所以c=a執行,所以

a=2,b=3,c=3

13樓:當上帝愛上天使

a,原文中a不大於b,則不滿足if條件~則不執行下列語句~所以abc的值不變

14樓:匿名使用者

沒學過都會 不是打擊你哦 都告訴你整形常量 a b c的值了 下面的式子 如果 a>b就執行 c=a;a=b;b=c c=a是把a的值給c 下面是一個意思 把b的值給a c的值給b 你自己看選什麼吧 a>b不滿足的時候就不執行語句 結果a=1 b=2 c=3

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

九劍之上 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 ...

寫出下列程式執行結果? 5,寫出下列程式執行結果?

寫出下列程式執行結果?在n小於0時,返回的f沒有賦值,是一個隨機值,所以結果有錯。改正的程式見第2個源 圖和執行結果圖。改正後的程式和執行結果。是 a b 2 c d 計算出結果了 再轉換成float的 一般計算過程所有的資料型別 先轉換成雙精度double 計算出結果了 再裝換成相應的輸出格式。因...

C語言,下面程式中語句的意思,C語言中flag是什麼意思?下面程式中flag是什麼意思?

風若遠去何人留 在每次賦值及取值時不使用cache中的值,而是都去實體記憶體中獲取 volatile 該值在程式中為常量 const 所以該值的改變,將由外部程式或硬體完成.其他幾個類似.只不過段不同,初始化值不同.語句含義是類似的.c語言中flag是什麼意思?下面程式中flag是什麼意思? 自我程...