執行以下程式段後,變數a,b,c的值分別是

2021-05-22 21:38:48 字數 3035 閱讀 8763

1樓:匿名使用者

您好,很高興能為您解決問題。

int x = 10, y = 9;

// 宣告變數x = 10, y = 9;

int a, b, c;

// 宣告變數a, b, c

a = (--x == y++) ? --x : ++y;

// if (--x == y++)

//     --x;

// else

//     ++y;

b = x++;

// 給b賦值為x++

c = y;

// 給c賦值為y

分析:x = 10

y = 9

a = 如果 (--x 等於 y++),則是--x (也就是9,這時x是8),否則是++y (也就是11,這時y是11) // 這裡說一聲, --x指的是給x-1,得到的是x-1;y++指的是給y+1,得到的是y

(條件成立,a = 9)

b = x++ (也就是8,這時x是9)

c = y (也就是11)

2樓:彼岸之戀

++y和y++不一樣,++y是y先自身加一再使用現在的y值,而y++則是先使用y值,而後y值在自身加一

3樓:匿名使用者

a=(--x==y++) --x=x-1=9 y++=y=9此後 x=9,y=10

b=x++=x=9

此後x=10

c=y=10

故a=9,b=9,c=10

5) 執行以下程式段後、變數a,b,c的值分別是一。 int x=10,y=9; int a,b,c; a =(- -x = = y++)?- -x:++y ; b

4樓:匿名使用者

選:bint x = 10, y = 9;

int a, b, c;

a = (--x == y++) ? --x : ++y;

//x先進行 -- 運算,再進行比較

//y先進行比較,再進行 ++ 運算

//同: if(x == y)else

b = x++;

//x先進行賦值,再進行 ++ 運算

//同: b = x;x++;

c = y;

//因為在前面的 a = ( --x == y++), y 已經進行過 ++ 運算了,所以 y 的值已經成為 10 了

假設變數a=2,b=3,t為整型變數,執行以下程式段後a和b的值分別為( )。

5樓:樹底下

[b]a=3,b=2

執行以下程式段後,a,b,c的值分別是( ) 。 int a

6樓:紛採

原本我是這樣想的

a= (9 == 9)?8:10;

if(8 < 9)

b = 8;

c = 11;

但是現實是

所以是a = (9 ==9)?8:not use;

if( 8 < 9)

b = 8;

c = `10;

執行以下程式段後、變數a,b,c的值分別是_.c語言

7樓:彼岸之戀

++y和y++不一樣,++y是y先自身加一再使用現在的y值,而y++則是先使用y值,而後y值在自身加一

8樓:李冰繁彥珺

你x、y的初值是多少

--x和y++這和優先順序沒有關係,它本身的意思就是y++先使用後+1,--y先-1再使用

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不懂再問懂請採納

c語言 寫出下面程式段執行後,變數a,b的值

10樓:賁飛英抄宛

這段程式先判斷--x等不等於y++,--x先自減再比較所以是9,y++先比較再自加所以此時也是9,所以這回

個三目運算子(?答:

)問號前面的判別式為真,所以執行冒號前面的表示式,變數x再次自減,此時x為8,之後先後執行b=x++;c=y;兩條語句,注意此時y的值為10,不難發現答案為b

執行以下程式段後,a、b、c和k的值分別為() int a=1,b=2,c=3,k; k=a+++b+++c++

11樓:匿名使用者

使用你bai的程式說明c語言du中自增/減運算子的使zhi用如下:

int a=1,b=2,c=3,k;

k=a+++b+++c++;

相當於daok=(a++)+(b++)+(c++),相當於k=a+b+c; a++; b++; c++;先使用原來的值

回運算,然後自增

若是答k=++a+++b+++c;那麼相當於a=a+1;b=b+1;c=c+1;k=a+b+c;變數先自增,然後運算。這是a++與++a的區別,與編譯器有關,感興趣的話可以繼續深入學習。加油!

12樓:匿名使用者

a++、b++、c++都是在運算之後,自增1,分別變成2、3、4

我在visual c++中驗證了一下,如圖:

13樓:匿名使用者

a++是先運算在賦值,及k=1+2+3運算後再將a++,使得a=2,++a為先賦值再運算

你可以k=(a++)+(b++)+(c++)後printf下a,這時a=2

以下程式段執行後變數a的值為int i 1,a 0 fori3 icontinue a iA 6 B 3 C 0 D

c.0因為a i在continue下面 所以a i就沒有執行 continue這個語句就是結束這次迴圈 執行下次迴圈 c.0每次迴圈都continue了,a i 沒有執行 0啊 根本沒有執行a i 下面程式段執行的結果是 int i int a 3 3 1,2,3,4,5,6,7,8,9 for i...

c語言執行以下程式段後m的值是,C語言,執行以下程式段後,m的值是。staticinta7,4,6,3,10intm,k,ptr

答案 d 分析 ptr a 0 指標bai指du向陣列首地址zhi,ptr k 指標指向陣列第k個存 dao儲單元 m ptr k 等價於專 m a k 屬a k 與m的最小數並賦值給m 故此程式段是去陣列a中元素的最小值 如還有不懂的地方可以密我 d 3 陣列a中的最小值 c語言,執行以下程式段後...

以下程式段執行後輸出結果是char sinfo 0misprintfd ,strlen sA 4 B 5 C 8 D

a分析 在c語言中當遇到 0 時,即結束,所以在s info 0mis 中,只有 info 計數了即為4 選擇a,因為c語言字串以 0結束。有以下程式段,輸出結果是 char s 141 141abc t printf d n strlen s char s 141 141abc t 轉義字元 14...