『壹』 c語言中運算符有哪幾種,優先順序順序是怎樣
C語言中,運算符除了常見的三大類,算術運算符、關系運算符與邏輯運算符之外,還有一些用於完成特殊任務的運算符。
運算符的運算優先順序共分為15 級,1 級最高,15 級最低。 在表達式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算符 優先順序相同時,則按運算符的結合性所規定的結合方向處理。
一級運算符:標識,常量,字元串文字量,優先順序提升表達式最優先執行。
二級運算符:數組下標運算(expression)、函數調用(argument-expression-list)、成員訪問(identifier、-> identifier)、後綴自增(i++)、後綴自減(i--)、復合初始化(initializer-list)。
三級運算符:前綴自增(++i)、前綴自減(--i)、單目轉型表式式(取地址& ,提領 * , 正號+ ,負號-、位反~ 邏輯否!)、求類型長度(sizeof unary-expression)。
四級運算符:強製表達式成為type-name指定的類型( type-name ) cast-expression。
五級運算符:「 * 」 乘法運算符。
六級運算符:「 + 」加法運算符。
七級運算符:<< 左移運算符;>> 右移運算符。
八級運算符:<、<=、>、>=關系運算符。
九級運算符:「 == 」等於運算符;「 != 」不等於運算符。
十級運算符:「 & 」按位與運算符。
十一級運算符:「 ∧ 」按位異或運算符。
十二級運算符:「 | 」按位或運算符。
十三級運算符:「&&」邏輯與運算符。
十四級運算符:「 || 」邏輯或運算符。
十五級運算符:? :條件運算符。
(1)c語言三元選擇符擴展閱讀
C語言中各運算符的結合性:
1、左結合性(自左至右):
例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合方向就稱為「左結合性」。
2、右結合性(自右至左)
自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。
『貳』 C語言三目運算符怎麼用
C語言三目運算符用法:
對於條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。
一個條件表達式絕不會既計算x,又計算y。條件運算符是右結合的,也就是說,從右向左分組計算。例如,a ? b : c ? d : e將按a ? b : (c ? d : e)執行。
<表達式1> ? <表達式2> : <表達式3>; "?"運算符的含義是:先求表達式1的值,如果為真,則執行表達式2,並返回表達式2的結果;如果表達式1的值為假,則執行表達式3,並返回表達式3的結果。
可以理解為條件 ? 結果1 : 結果2裡面的?號是格式要求。也可以理解為是不是條件成立,條件成立為結果1否則為結果2。
(2)c語言三元選擇符擴展閱讀:
三目運算符,又稱條件運算符,指的是計算機語言(c,c++,java等)的重要組成部分。它是唯一有3個操作數的運算符,所以有時又稱為三元運算符。一般來說,三目運算符的結合性是右結合的。
以下是關於條件運算符的幾點說明:
(1)通常情況下,表達式1是關系表達式或邏輯表達式,用於描述條件表達式中的條件,表達式2和表達式3可以是常量,變數或表達式。例如:
(x==y)?'Y':'N'
(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
以上均為合法的條件表達式。
(2)條件表達式的執行順序為:先求解表達式1,若值為非0,表示條件為真,則求解表達式2,此時表達式2的值就作為整個條件表達式的值;
若表達式1的值為0,表示條件為假,則求解表達式3,表達式3的值就是整個條件表達式的值。例如:
(a>=0)?a:-a 執行結果是a的絕對值。
(3)在程序中,通過把條件表達式的值直接賦予某個變數。例如:
min=(a<b)?a:b執行結果就是將條件表達式的值賦予變數min,即將a和b二者中較小的數賦給min。
(4)條件表達式的優先順序別僅高於賦值運算符,而低於前面遇到過的所有運算符。
因此,min=(a<b)?a:b括弧可以不要,可直接寫成,min=a<b?a:b如果有x<y?x+1:y-1等效於x<y(x+1):(y-1)而不等效於(x<y?x+1:y)-1
(5)條件運算符的結合方向為"自右至左".
(6)條件表達式允許嵌套,即允許條件表達式中的表達式2和表達式3又是一個條件表達式。例如:
x>0?1:x<0?-1:0
上述條件表達式中,表達式3部分又是一個條件表達式.根據條件表達式的結合性,上述條件表達式等價於:
x>0?1:(x<0?-1:0)
其作用是判斷x的符號情況.當x為正數時,該條件表達式的值為1;當x為負數時,該條件表達式的值為-1;當x為0時,該條件表達式的值為0。
(7)條件表達式不能取代一般的if語句,僅當if語句中內嵌的語句為賦值語句(且兩個分支都給同一變數賦值)時才能代替if語句。例如:
if(a%2==0)
printf("even/n");
else
printf("odd/n");
該語句的作用是:若 a 為偶數,輸出 even;若 a 為奇數,輸出odd。
(8)表達式1,表達式2,表達式3的類型可以不同.此時條件表達式的值的類型為它們中較高的類型。
『叄』 C語言中三目運算符是什麼
選擇運算,就是A:B?C那個。
三目運算符為a?b:c即有三個參與運算的量。由條件運算符組成條件表達式的一般形式為:
其求值規則為:如果表達式1的值為真,則以表達式2的值作為條件表達式的值,否則以表達式2的值作為整個條件表達式的值。 條件表達式通常用於賦值語句之中。
(3)c語言三元選擇符擴展閱讀:
對於條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。一個條件表達式絕不會既計算x,又計算y。條件運算符是右結合的,也就是說,從右向左分組計算。例如,a ? b : c ? d : e將按a ? b : (c ? d : e)執行。
『肆』 C語言的編程題:輸入三個整數,按從大到小的順序輸出
#include <stdio.h>
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x<y)
{t=x;x=y;y=t;}
if(x<z)
{t=z;z=x;x=t;}
if(y<z)
{t=y;y=z;z=t;}
printf("%d %d %d ",x,y,z);
}
(4)c語言三元選擇符擴展閱讀:
使用三元運算符,這個運算符會使程序進一步簡化,而且看起來更加的直觀。
它的一般形式如下:
表達式1? 表達式2:表達式3;
? 表達式的值是由 表達式1 決定的。如果 表達式1 為真,則計算表達式2 的值,結果即為整個 ? 表達式的值。如果 表達式1 為假,則計算 表達式3 的值,結果即為整個 ? 表達式的值。
程序如下:
#include<stdio.h>
int main()
{
int max;
int a,b,c;
printf("請輸入三個數:");
scanf("%d %d %d",11&a,&b,&c);
max=a>b?a:b;
max=c>max?c:max;
printf("Max is %d",max);
return 0;
}
『伍』 c語言中三元運算符有哪些
c語言中只有一種三元運算符。
它就是「問號運算符」。
它的語法形式是:
表達式一?表達式二:表達式三
表達式一是一個數學表達式、關系表達式或邏輯表達式,它的邏輯值作為下一步運行的選擇:當邏輯值為真時,運行表達式二並返回表達式二的值;當邏輯值為假時,運行表達式三並返回表達式三的值。舉個例子:
x=3>2?8:100;
執行後,x=8。
『陸』 C語言問題:條件運算符選擇題
?:這個是三目運算符。
這個是條件表達式,表示如果a為真,則表達式值為b,如果a為假,則表達式值為c
條件表達式具體說明如下
條件語句:
if(a>b) max=a;
else max=b;
可用條件表達式寫為
max=(a>b)?a:b;
執行該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max。
使用條件表達式時,還應注意以下幾點:
1) 條件運算符的運算優先順序低於關系運算符和算術運算符,但高於賦值符。
因此
max=(a>b)?a:b
可以去掉括弧而寫為
max=a>b?a:b
2) 條件運算符?和:是一對運算符,不能分開單獨使用。
3) 條件運算符的結合方向是自右至左。
例如:
a>b?a:c>d?c:d
應理解為
a>b?a:(c>d?c:d)
這也就是條件表達式嵌套的情形,即其中的表達式3又是一個條件表達式。
k<a?k:(c<b?c:a)
-4<3正確就是K=4
這個沒有答案
K=-4
『柒』 C#的三元運算符是什麼
該操作首先求出條件表達式的值(bool類型),為true時調用表達式1,為flase時調用表達式2。其邏輯為:「如果為真執行第一個,否則執行第二個。」
例如:
a=3>4?3:4;輸出為4。
a=3<4?3:4;輸出為3。
『捌』 C語言 考試
C
C
ABDE
C
C
A
B
『玖』 誰能給我講講C語言中的三元運算符是怎麼回事
在C裡面只有一個三元運算符,型如a>b ?a:b 裡面有兩個符號,先是問號,再一個冒號,意思是,先判斷a>b,如果為真(值為1),則反回a,如果為假(值為0),既a<b,反回b.依你題目,char sex=getch();while(sex=='0' || sex=='1'){printf ("you are %s\n", (xb == '1')? "boy":"girl");}