有一道c語言的程式題關於 x和x 的

時間 2022-03-08 17:50:12

1樓:匿名使用者

自增和自減如果在變數前,表示先自增自減再做操作;如果在變數後,就是先做當前操作再增減。

if(x++>=5) x此時是4,和5比,if判斷為假,然後x++,x得5

if為假,進入else分支,列印x,就是列印5,然後x--,此時x=4,但是已經列印完了。

2樓:匿名使用者

++x 先執行++,然後再執行下面的語句,x++,先執行其他語句,然後再++

對於這個程式,在if語句中,先判斷x>=5,然後再執行++,由於x==4,所以,轉而執行else語句,這個時候x=5,else語句中,是x--,因此,先輸出x的值,輸出之後 x--。

3樓:雅典娜弓箭隊

x++是先引用x的值,然後再進行自加運算(也就是加1)。

++x是先進行自加運算後,再引用自加運算後的值。

你那題,x=4,由於是x++所以直接取x=4的值進行判定,4>=5為假,值為0,則跳過if後的語句,指的注意的是,現在x在引用完後自加一次,x的值已經變成了5,執行printf,由於仍然是x--,所以最後的結果是5

4樓:匿名使用者

此段語句輸出結果應該為4,但是語句結束後x的值為3!因為++x(--x)與x++(x--)的區別在於前者是先在x上加一『或減一)然後再進行運算,而後者是先運算再加一(或減一)的!

5樓:小雲小冉

首先要弄明白自增、自減運算子的用法,比如程式中 int x=4; x++是乙個表示式,表示式本身是乙個值,因為是字尾自增,因此x++表示式的值就是x加1之前的值,也就是4,遇到x++的地方,其實都是使用的表示式的值,也就是4。然後x本身才執行加1計算,變成5.。若是字首自增,那麼表示式的值是x先執行增1操作後的值,也就是5,,同樣,x本身執行了增1操作,也變成5.

字尾自減與字首自減的用法類似。

if(x++>=5) 其實等價於if(x>=5)然後x++,if語句不成立,(此時x依然要加1,變為5,只不過是先判斷,再加1)不輸出。

執行else下的printf("%d",x--);語句,這個語句將表示式x--的值輸出來。因為是字尾自減,表示式的值等於減1前的值,剛才if語句執行時x的值變為5了,所以這裡輸出的是5,輸出5之後,x再執行減1操作。

6樓:滄海雄風

if(x++>=5) printf("%d",x); //在這之前x是4 4>=5 為假 然後x++ x=5

else

printf("%d",x--); //這裡輸出的就是 x=5 然後x-- 下面你要是再寫個 printf("%d",x) 那就是 4了

乙個關於c語言程式的題:s=x-x 2 /2!+x 3/ 3!-x 4 /4! + …

7樓:匿名使用者

#include

#include

int main(void)

return 0;}

關於c語言的一道題. x=6; x+=x-=x*x;

8樓:什麼都想最多

解釋還是越簡單越好 首先這是 復合賦值運算 "+=" "-=" 用法一樣

比如 ; ; 同樣等號後面可以是表示式如;所以上面的

將x=6代入後 x=6-6*6= -30

x+= -30 等價於 x=x+(-30) x= - 30 - 30= - 60 這就是正確的解答,在沒有其他條件時

你算出正60就一定的是錯誤的。

9樓:匿名使用者

x-=x*x 等價於 x=x-x*x

我想你是明白的

結果是-60

參考書是錯的

另買一本吧

盜版害死人

10樓:木川山機

x-=x*x; 這一步得到 x=-30, 而不是x=30,參考書有問題,要親身實踐得真理

11樓:匿名使用者

樓主你的費解是正確的!

這個題書上搞錯了,正確的如下:

x -= x*x; /* x = x - x*x; 就是 x = 6 - 6 * 6 = -30*/

x += -30 /* x = x + (-30); 就是x = -30 - 30 = -60*/

你自己上機驗證吧

一道c語言程式題,寫乙個函式int prime(int x),如果x是素數返回1,否則返回0,並用主函式驗證

12樓:

無語。。。有誰把scanf()放到主函式外面的??

另外你的素數判斷函式沒有0和1 的情況!!

#include

int x,i,a;

int prime(int x)

int main()

13樓:

//程式結構有問題。

#include

int prime(int x)

int main()

14樓:做有意義的的事

你的第二三行寫錯地方了。

int x,i,a;

scanf("%d",&x);

將i和乙個逗號去掉後,並將這兩句放在主函式裡即可。

放在標頭檔案那裡定義的應該是全域性變數,我執行過了,這樣就沒問題了。

15樓:匿名使用者

把這句for(i=2;i

if(x%i==0)return 0;

改為for(i=2;i

return 0;}

16樓:

兄弟。。你的scanf都寫到外面去了。。這樣也能執行!?

一道c語言題。假定x和y為double型,則表示式x=2,y=x+3/2的值是多少?

17樓:匿名使用者

逗號表示式,假設表示式的值要賦值給另乙個double型變數a:a=(x=2,y=x+3/2);

相當於:x=2; y=x+3/2; a=y; 逗號表示式是順序執行後最後乙個式子的取值

x=2;[x=2],y=x+3/2;[y=2.0+1=3]由於在計算3/2時,參與計算的兩個數都是整型資料,則預設進行整型的計算得到的數也是整型的1,捨去了小數部分,a=y;[a=3]所以整個表示式的值為3.0

如果想得到3.5,要改寫一下:這幾種寫法都可以a=(x=2,y=x+3.0/2);

a=(x=2,y=x+3/2.0);

a=(x=2,y=x+(double)3/2);

關於c語言程式。。用到遞推法證明e的x次方等於1+x+x^2/2!+....+x^n/n!

18樓:背心_心背

include

long float fun(int n) //求階乘函式long float fun1(int x,int n) //求x的n次方函式

main()

一道有關c語言函式的執行題#includefunc(int a,int b) {int c;c=a+b;return c;}main(){int x=6,

19樓:雄飛第一

該函式引數傳遞屬於值傳遞;

對於這個程式所謂值傳遞就是在func函式把x的位址上的值拷貝過去,函式只是對臨時分配的棧中內容進行操作,此時x記憶體位址上的值是8,所以呼叫到func時就是8+8=16了;

20樓:戊辰

函式引數處理順序從右至左,先算x+=2,此時x=8,因此fun函式的的兩個形參都是8,所以相加後返回16

c語言程式設計題:輸入x和n的值,編寫程式計算f(x,n)=x-x^2+x^3-x^4+...x^n(-1)^n-1,其中用函式power(x,n)求x^n

21樓:匿名使用者

# include

double power(double x, int n)return (result) ;}

一道c語言讀程式題,一道c語言讀程式題 include stdio h main int k 4,m 1,p p func k,m printf d, ,p p func

首先輸出結果是 8,17 第二,你上面這個程式編譯不了的,有2個問題 1 函式的返回值型別沒寫 2 func 函式體放在了main 函式後面且沒再main 函式中宣告。第三,註釋該程式 include 標頭檔案 void main 修改1 增加了void int func int a,int b 第...

一道關於c語言的程式題,求解析

汪好帥 第乙個x引數的形參不是傳入位址,相當於在子函式開闢乙個內部變數,只在內部作用,跳出該函式,重新釋放掉。進入main函式,其值還是 50 第二個y引數的形參傳入的是位址,所以在子函式裡面修改其內容值,是會改變的。所以其值為501 你在子函式裡面加上一句 void fun int x,int y...

c語言的一道關於陣列的程式設計題,C語言 一道一維陣列的程式設計題

演算法 魔方陣的排列規律 奇數陣 將1放在第一行中間一列。從2開始直到n n止各數依次按下列規則存放 每乙個數存放的行比前乙個數的行數減1,列數加1。如果上乙個數的行數為1,則下乙個數的行數為n,列數加1。如果上乙個數的列數的n時,下乙個數的列數為1,行數減1。如果按上面的規則確定的位置上已有數,或...