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...