當前位置:首頁 » 編程語言 » c語言表達式a2
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言表達式a2

發布時間: 2022-05-02 05:44:57

① 跪求c語言中逗號表達式(a=4*5,a*2),a+15的值是

逗號表達式從左往右逐個計算表達式,先求解1,再求解2,整個表達式的值為最後一個表達式的值。逗號表達式(a=4*5,a*2),a+15:首先計算圓括弧內的表達式,從左到右,a的值是20,a*2的值是40,但沒有賦值給裝a所以a=20。然後計算a+15的值是35,所以最終值是35。

計算過程如下:

1、先求a=4*5=20;

2、求a*2=40,這就是(a=4*5,a*2)的最終值;由於這個結果沒有賦值給a,因此a=20;

3、求a+15=35;這就是最終的值。

逗號運算符是c語言提供一種特殊的運算符,優先順序別最低。從本質上講,逗號的作用是將一系列運算按順序執行。最右邊的那個表達式的值將作為整個逗號表達式的值,其他表達式的值會被丟棄。逗號表達式本身不難,常常與賦值運算符一起考,考查學生對這兩個知識點的理解和考生觀察是否細心。

(1)c語言表達式a2擴展閱讀

運算符優先順序等級口訣:

圓方括弧、箭頭一句號, 自增自減非反負、針強地址長度,

乘除,加減,再移位,

小等大等、等等不等,

八位與,七位異,六位或,五與,四或,三疑,二賦,一真逗。

其中「,」號為一個等級分段。

② c語言的逗號運算符什麼意思,舉例解釋下

在C語言中,多個表達式可以用逗號分開,其中用逗號分開的表達式的值分別結算,但整個表達式的值是最後一個表達式的值。 假設b=2,c=7,d=5, a1=(++b,c--,d+3); a2=++b,c--,d+3; 對於第一行代碼,有三個表達式,用逗號分開,所以最終的值應該是最後一個表達式的值,也就是d+3,為8,所以a=8。對於第二行代碼,那麼也是有三個表達式,這時的三個表達式為a2=++b、c--、d+3,(這是因為賦值運算符比逗號運算符優先順序高)所以最終表達式的值雖然也為8,但a2=3.

③ c語言的表達式是什麼

推薦你一個比較全面的資料。

http://wenku..com/view/f0e1d31fa8114431b90dd8f6.html

在C語言中,有以下幾類表達式:
算術表達式、關系表達式、邏輯表達式、賦值表達式、逗號表達式。

而單目我想應該是指單目運算符。運算所需變數為一個的運算符叫單目運算符
有以下幾類:
邏輯非運算符【!】、
按位取反運算符【~】、
自增自減運算符【++ --】、
負號運算符【-】、
類型轉換運算符【(類型)】、
指針運算符和取地址運算符【*和&】、
長度運算符【sizeof】

④ c語言的表達式是什麼

C語言表達式的定義是:用C語言運算符將運算對象連接起來的式子,就叫表達式。

C語言在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。

當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則就會顯得十分重要。

基本構成:

數據類型:C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。

常量與變數:常量其值不可改變,符號常量名通常用大寫。

變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。

數組:如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,中括弧內的索引值是從0算起的。

指針:如果一個變數聲明時在前面使用 * 號,表明這是個指針型變數。換句話說,該變數存儲一個地址,而 *(此處特指單目運算符 * ,下同。C語言中另有 雙目運算符 *) 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區別於其他同時代高級語言的主要特徵之一。

指針不僅可以是變數的地址,還可以是數組、數組元素、函數的地址。通過指針作為形式參數可以在函數的調用過程得到一個以上的返回值,不同於return(z)這樣的僅能得到一個返回值。

⑤ c語言這題a2為什麼等於5

程序的解釋見圖

⑥ 求助 c語言a2

下面答案 沒有14題 我補充下
題號14:
int a[][3] 是錯誤的,聲明未給初始值,一維未定。。系統無法分配空間。。
題號 19 :
我認為 是 int 所以19題 是選擇 錯

⑦ c語言10<a2<100什麼意思

10<a2<100
在數學思維下,表達式意為a2大於10且小於100;
在C語言思維下 ,表達式錯誤;正確表達a2>10&&a2<100;

⑧ C語言中逗號運算符怎麼用

一、用法:

1、當順序點用,結合順序是從左至右,用來順序求值,完畢之後整個表達式的值是最後一個表達式的值。

main()

{int a,s,d;

s=2;

d=3;

a=12+(s+2,d+4);

}

先算括弧內的值:s+2=4,d+4=7;括弧內應為(4,7),括弧內取值只取最後一個,如果沒有括弧則取第一個;a=12+7=19。

x=(y=3,(z = ++y+2) +5);

是首先把y賦值為3,把y遞增為4,然後把4加上2,把結果6賦值給z,接下來把z加5最後把x賦為結果值11。

2、注意事項:逗號運算符(,)是C語言運算符中優先順序最低的一種運算符。

二、其它用法:

1、在for裡面的應用:

int i;int j;

for(i=0,j=0;i<5;i++,j++)

2、當分隔符:int i,j;

(8)c語言表達式a2擴展閱讀

運算符優先順序:

1、優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

2、相同優先順序中,按結合順序計算。大多數運算是從左至右計算,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。

3、基本的優先順序需要記住:指針最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 && 7等價於 (1 << (3 + 2))&&7.邏輯運算最後計算。

⑨ c語言中a1=(++b,c--,d+3)和a2=++b,c--,d+3有什麼區別

一、賦值運算符
賦值語句的作用是把某個常量或變數或表達式的值賦值給另一個變數。符號為『=』。這里並不是等於的意思,只是賦值,等於用『==』表示。
注意:賦值語句左邊的變數在程序的其他地方必須要聲明。
得已賦值的變數我們稱為左值,因為它們出現在賦值語句的左邊;產生值的表達式我們稱為右值,因為她它們出現在賦值語句的右邊。常數只能作為右值。
例如:
count=5;
total1=total2=0;
第一個賦值語句大家都能理解。
第二個賦值語句的意思是把0同時賦值給兩個變數。這是因為賦值語句是從右向左運算的,也就是說從右端開始計算。這樣它先total2=0;然後total1=total2;那麼我們這樣行不行呢?
(total1=total2)=0;
這樣是不可以的,因為先要算括弧裡面的,這時total1=total2是一個表達式,而賦值語句的左邊是不允許表達式存在的。

二、算術運算符
在C語言中有兩個單目和五個雙目運算符。
符號 功能
+ 單目正
- 單目負
* 乘法
/ 除法
% 取模
+ 加法
- 減法
下面是一些賦值語句的例子, 在賦值運算符右側的表達式中就使用了上面的算術運算符:
Area=Height*Width;
num=num1+num2/num3-num4;
運算符也有個運算順序問題,先算乘除再算加減。單目正和單目負最先運算。
取模運算符(%)用於計算兩個整數相除所得的余數。例如:
a=7%4;
最終a的結果是3,因為7%4的余數是3。
那麼有人要問了,我要想求它們的商怎麼辦呢?
b=7/4;
這樣b就是它們的商了,應該是1。
也許有人就不明白了,7/4應該是1.75,怎麼會是1呢?這里需要說明的是,當兩個整數相除時,所得到的結果仍然是整數,沒有小數部分。要想也得到小數部分,可以這樣寫7.0/4或者7/4.0,也即把其中一個數變為非整數。
那麼怎樣由一個實數得到它的整數部分呢?這就需要用強制類型轉換了。例如:
a=(int) (7.0/4);
因為7.0/4的值為1.75,如果在前面加上(int)就表示把結果強制轉換成整型,這就得到了1。那麼思考一下a=(float) (7/4);最終a的結果是多少?
單目減運算符相當於取相反值,若是正值就變為負值,若是負數就變為正值。
單目加運算符沒有意義,純粹是和單目減構成一對用的。

三、邏輯運算符
邏輯運算符是根據表達式的值來返回真值或是假值。其實在C語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。
符號 功能
&& 邏輯與
|| 邏輯或
! 邏輯非
例如:
5!3;
0||-2&&5;
!4;

當表達式進行&&運算時,只要有一個為假,總的表達式就為假,只有當所有都為真時,總的式子才為真。當表達式進行||運算時,只要有一個為真,總的值就為真,只有當所有的都為假時,總的式子才為假。邏輯非(!)運算是把相應的變數數據轉換為相應的真/假值。若原先為假,則邏輯非以後為真,若原先為真,則邏輯非以後為假。
還有一點很重要,當一個邏輯表達式的後一部分的取值不會影響整個表達式的值時,後一部分就不會進行運算了。例如:
a=2,b=1;
a||b-1;
因為a=2,為真值,所以不管b-1是不是真值,總的表達式一定為真值,這時後面的表達式就不會再計算了。

四、關系運算符
關系運算符是對兩個表達式進行比較,返回一個真/假值。
符號 功能
> 大於
< 小於
>= 大於等於
<= 小於等於
== 等於
!= 不等於
這些運算符大家都能明白,主要問題就是等於==和賦值=的區別了。
一些剛開始學習C語言的人總是對這兩個運算符弄不明白,經常在一些簡單問題上出錯,自己檢查時還找不出來。看下面的代碼:
if(Amount=123) ……
很多新人都理解為如果Amount等於123,就怎麼樣。其實這行代碼的意思是先賦值Amount=123,然後判斷這個表達式是不是真值,因為結果為 123,是真值,那麼就做後面的。如果想讓當Amount等於123才運行時,應該if(Amount==123) ……

五、自增自減運算符
這是一類特殊的運算符,自增運算符++和自減運算符--對變數的操作結果是增加1和減少1。例如:
--Couter;
Couter--;
++Amount;
Amount++;

看這些例子里,運算符在前面還是在後面對本身的影響都是一樣的,都是加1或者減1,但是當把他們作為其他表達式的一部分,兩者就有區別了。運算符放在變數前面,那麼在運算之前,變數先完成自增或自減運算;如果運算符放在後面,那麼自增自減運算是在變數參加表達式的運算後再運算。這樣講可能不太清楚,看下面的例子:
num1=4;
num2=8;
a=++num1;
b=num2++;

a =++num1;這總的來看是一個賦值,把++num1的值賦給a,因為自增運算符在變數的前面,所以num1先自增加1變為5,然後賦值給a,最終a也為5。b=num2++;這是把num2++的值賦給b,因為自增運算符在變數的後面,所以先把num2賦值給b,b應該為8,然後num2自增加1變為 9。
那麼如果出現這樣的情況我們怎麼處理呢?
c=num1+++num2;
到底是c=(num1++)+num2;還是c=num1+(++num2);這要根據編譯器來決定,不同的編譯器可能有不同的結果。所以我們在以後的編程當中,應該盡量避免出現上面復雜的情況。

六、復合賦值運算符
在賦值運算符當中,還有一類C/C++獨有的復合賦值運算符。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。
Total=Total+3;
乍一看這行代碼,似乎有問題,這是不可能成立的。其實還是老樣子,'='是賦值不是等於。它的意思是本身的值加3,然後在賦值給本身。為了簡化,上面的代碼也可以寫成:
Total+=3;
復合賦值運算符有下列這些:
符號 功能
+= 加法賦值
-= 減法賦值
*= 乘法賦值
/= 除法賦值
%= 模運算賦值
<<= 左移賦值
>>= 右移賦值
&= 位邏輯與賦值
|= 位邏輯或賦值
^= 位邏輯異或賦值
上面的十個復合賦值運算符中,後面五個我們到以後位運算時再說明。
那麼看了上面的復合賦值運算符,有人就會問,到底Total=Total+3;與Total+=3;有沒有區別?答案是有的,對於A=A+1,表達式A被計算了兩次,對於復合運算符A+=1,表達式A僅計算了一次。一般的來說,這種區別對於程序的運行沒有多大影響,但是當表達式作為函數的返回值時,函數就被調用了兩次(以後再說明),而且如果使用普通的賦值運算符,也會加大程序的開銷,使效率降低。

七、條件運算符
條件運算符(?:)是C語言中唯一的一個三目運算符,它是對第一個表達式作真/假檢測,然後根據結果返回兩外兩個表達式中的一個。
<表達式1>?<表達式2>:<表達式3>
在運算中,首先對第一個表達式進行檢驗,如果為真,則返回表達式2的值;如果為假,則返回表達式3的值。
例如:
a=(b>0)?b:-b;
當b>0時,a=b;當b不大於0時,a=-b;這就是條件表達式。其實上面的意思就是把b的絕對值賦值給a。

八、逗號運算符
在C語言中,多個表達式可以用逗號分開,其中用逗號分開的表達式的值分別結算,但整個表達式的值是最後一個表達式的值。
假設b=2,c=7,d=5,
a1=(++b,c--,d+3);
a2=++b,c--,d+3;
對於第一行代碼,有三個表達式,用逗號分開,所以最終的值應該是最後一個表達式的值,也就是d+3,為8,所以a=8。對於第二行代碼,那麼也是有三個表達式,這時的三個表達式為a2=++b、c--、d+3,(這是因為賦值運算符比逗號運算符優先順序高)所以最終表達式的值雖然也為8,但a2=3。

還有其他的如位邏輯運算符,位移運算符等等,我們等到講位運算時再說明。

九、優先順序和結合性
從上面的逗號運算符那個例子可以看出,這些運算符計算時都有一定的順序,就好象先要算乘除後算加減一樣。優先順序和結合性是運算符兩個重要的特性,結合性又稱為計算順序,它決定組成表達式的各個部分是否參與計算以及什麼時候計算。
下面是C語言中所使用的運算符的優先順序和結合性:
優先順序 運算符 結合性
(最高) () [] -> . 自左向右
! ~ ++ -- + - * & sizeof 自右向左
* / % 自左向右
+ - 自左向右
<< >> 自左向右
< <= > >= 自左向右
== != 自左向右
& 自左向右
^ 自左向右
| 自左向右
&& 自左向右
|| 自左向右
?: 自右向左
= += -= *= /= %= &= ^= |= <<= >>= 自右向左
(最低) , 自左向右

⑩ 若有代數表達式,則不正確的c語言表達式是

17題A項顯然不對,乘方用pow(a,b)表示a的b次方(頭文件#include<math.h>要寫上),BC項都是錯在中間的點,C語言中乘號用*表示。所以選D。
18題c語言中乘號和除號的運算優先順序相同,結合方向是自左向右。ABD都表示3ae/bc,C表示3ace/b。所以不正確的選C。