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

正確c語言語法的表達式規則

發布時間: 2022-10-22 05:41:22

c語言,表達式書寫規則問題

④、y=z%x不對,取余的兩邊必須都是整數,而z是實型的!②、x+y=z不對,賦值表達式左邊是變數,不能是表達式!①、z=(y+x);x++這個書寫有沒有錯誤啊?是不是中間少個分號?③、y=ch+x這個是可以的,因為字元型的都是按ASCII碼存放的,運算時也是ASCII碼!

㈡ c語言的正確語法表達是什麼

#include <stdio.h> /*這是頭文件,包含了一些系統預定的一些函數,如輸入輸出,要想用這些函數 必須寫頭文件*/
main ()/*這是主函數 程序的執行都是從這里開始 定義函數 可以定義又返回值得函數,也可以無 返回值 但要在main 前加void ,這里是默認無返回值*/
#include <stdio.h>
main ()
{
int i,n,sum,t;
sum=0;
printf("please input n \n");
scanf("%d",&n);
for(i=1,i<=n,i++)
sum=sum+i;
printf("sum=%d",sum);

}

㈢ 符合C語言語法的表達式

B C

=左邊必須是左值(可以被賦值的值,也被稱作變數表達式,變數、數組表達式、指針表達式的值都是左值。但是算數、邏輯運算表達式、函數表達式的值不是左值所以不能被賦值)所以A、D錯誤

C是逗號表達式。(逗號表達式的值和類型都由逗號右邊的表達式決定,就是說連續逗號表達式比如a,b,c,d等價於a,(b,(c,(d)))

-
賦值僅僅是一種表達式,也有值和類型a = 1。的值是1類型是int,所以完全可以賦值給另一個int類型變數b = (a = 1)也就是b = a = 1。不存在不可以連續賦值的說法。

括弧表達式也是一樣。只要有類型和值就能賦值給對應的變數這是賦值的原則。

B和C的寫法在標准C編譯器上都是可以編譯通過的。

㈣ c語言語法的表達式有什麼要求

執行到那一句才有相應的效果,問號表達式可以改寫成if-else:

x = a > b ? i++ : i++;

等同於:

if(a > b)
x = i++;
else
x = i++;

所以最後x等於3,i自增了一次等於4。

為什麼一定要去研究那些沒用的旮旯呢,我從來不記什麼結合方向和運算符優先順序別,對於問號表達式,我只知道:

x = a > b ? i++ : i--;

如果a > b,那麼x = i++,否則x = i--,而整個表達式取了哪一個i的值,那個i的相關副作用運算(如果有的話,比如自增自減)才發生作用。如果你實在想不透就把它改寫成上面那樣的if-else語句,一目瞭然,沒必要學孔已己樣咬文嚼字在那些拐角旮旯里浪費時間。

BTW:你們的考試考運算符結合方向?天......

㈤ 正確的c語言表達式

B正確

(A)int(15.8%5) 錯誤,%是整數運算,並且int()是c++語法,c語言沒有這樣的強制轉換方式
(B)x=y+z+5,++y 正確
(C)x=25%5.0 錯誤,%是整數運算
(D)x=y*5=x+z y*5是個右值,不可對其賦值

㈥ 談談C語言的表達式。

用運算符將運算對象連接形成的式子就是表達式。表達式是描述數據加工的一種方法,只不過它描述的是比較簡單的數據加工過程.
C
語言中的表達式都是由運算對象和運算符組成的,表達式的一般構成規則如下:
(
l
)單個的常量、變數、函數調用都是表達式;
(
2
)
「前綴單目運算符表達式」是表達式;
(
3
)
「表達式後綴單目運算符」是表達式;
(
4
)
「表達式雙目運算符表達式」是表達式;
(
5
)
「表達式?表達式:表達式」是表達式;
(
6
)有限次使用上述規則獲得的運算式也是表達式。
由於在復雜的表達式中可能出現各種運算符,它們的優先順序別不同.因此.要注意使用圓括弧來改變運算次序。
每個表達式都可以按照其中運算符的優先順序和運算規則依次對運算對象進行運算,最終獲得一個數據,該數據稱為表達式的值。
表達式值的數據類型就稱為表達式的數據類型。由於表達式計算結果可能是整型、實型和邏輯型,所以表達式的數據類劃也可以分為核型、實型和邏輯型。在C
語言中邏輯型數據都是用整數來表示的,所以C
語育的表達式類型實際上只區分為整和實型,這兩種類型合稱為數值型。在程序或語句中使用表達式時,要按照語法和表達式的位置來確定表達式的准確類型。從構成表達式的運算符來劃分.C
語言的表達式主要分為:算術表達式、關系表達式、邏輯表達式、條件表達式、斌值表達式和逗號表達式。

㈦ c語言逗號表達式的運算規則是什麼

c語言逗號表達式是由左向右進行的:k=3*2=6,K+2=8,表達式返回8。

逗號表達式用法:

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

逗號表達式的要領:

(1) 逗號表達式的運算過程為:從左往右逐個計算表達式。

(2) 逗號表達式作為一個整體,它的值為最後一個表達式(也即表達式n)的值。

(3) 逗號運算符的優先順序別在所有運算符中最低。

舉個例子:

int a1,a2,b=2,c=7,d=5; // 第1行

a1=(++b,c--,d+3); // 第2行

a2=++b,c--,d+3; //第3行

對於給a1賦值的代碼,有三個表達式,用逗號分開,所以最終的值應該是最後一個表達式的值,也就是(d+3)的值,為8,所以a1的值為8。

對於給a2賦值的代碼,也是有三個表達式,這時的三個表達式為a2=++b、c--、d+3,(這是因為賦值運算符比逗號運算符優先順序高)雖然最終表達式的值雖然也為8,但b=4(第2行代碼運算完時,b=3,即第3行代碼運行時,b的值為4),所以a2=4。

㈧ C語言中完整表達式的概念

C 語言中的完整表達式的概念中,除了有需要表達的操作符(例如:!=、==,等等)、以及操作數之外,該表達式還必須要符合 C 語言的語法結構(例如:括弧的配對等),否則的話,即使操作符、操作數都具備,那麼該表達式也不能夠稱作是一個完整的邏輯表達式。舉例如下:
#include <stdio.h>
void main( )
{
int num ;
scanf("%d", &num ) ;
if( ( num < 0 ) || ( num > 100 ) ) /* 該表達式即為一個邏輯表達式 */
{
printf("num is Error !\n") ;
exit(1) ;
}
else
printf("num is correct !\n") ;
}
其中:if( ( num < 0 ) || ( num > 100 ) ) 就是一個正確、完整的邏輯表達式。該表達式用於判斷 num 的數值若小於 0,或者(用 || 表示) num 的數值大於 100,則認為 num 是錯誤的。
但是若想表達同樣的意思,if( ( num < 0 ) || ( num > 100 ) ,該表達式的其他地方都沒有改變,僅僅是右邊缺少了一個英文右括弧,那麼該表達式不符合 C 語言的語法結構,這樣的程序,C 編譯器也無法正確編譯運行,所以說該表達式就不是一個完整的表達式。

㈨ 簡述C語言中有哪些常用表達式

這種東西簡述不了,我給你來份大全
C語言語法參考大全(流程式控制制語句)----------------------------------------------------------------------------------------------------------01條件語句的一般形式為:if(表達式) 語句1;else 語句2;上述結構表示: 如果表達式的值為非0(TURE)即真, 則執行語句1, 執行完語 句1從語句2後開始繼續向下執行; 如果表達式的值為0(FALSE)即假, 則跳過語句1而執行語句2。注意: 1. 條件執行語句中"else 語句2;"部分是選擇項, 可以預設, 此時條件語句變成:if(表達式) 語句1;表示若表達式的值為非0則執行語句1 , 否則跳過語句1繼續執行。 2. 如果語句1或語句2有多於一條語句要執行時, 必須使用"{"和"}" 把這些語句包括在其中, 此時條件語句形式為:if(表達式){ 語句體1;}else{ 語句體2;}3. 條件語句可以嵌套, 這種情況經常碰到, 但條件嵌套語句容易出錯, 其原因主要是不知道哪個if對應哪else。例如: if(x>20||x<-10) if(y<=100&&y>x) printf("Good"); else printf("Bad");對於上述情況, Turbo C2.0規定: else語句與最近的一個if語句匹配, 上例中的else與if(y<=100&&y>x)相匹配。為了使else與if(x>20||x<-10)相匹配, 必須用花括弧。如下所示:if(x>20||x<-10){ if(y<=100&&y>x) printf("Good");}else printf("Bad");4. 可用階梯式if-else-if結構。階梯式結構的一般形式為:if(表達式1) 語句1;else if(表達式2) 語句2;else if(表達式3) 語句3; . .else 語句n;這種結構是從上到下逐個對條件進行判斷, 一旦發現條件滿點足就執行與它有關的語句, 並跳過其它剩餘階梯; 若沒有一個條件滿足, 則執行最後一個else語句n。最後這個else常起著"預設條件"的作用。同樣, 如果每一個條件中有多於一條語句要執行時, 必須使用"{"和"}"把這 些語句包括在其中。02switch語句在編寫程序時, 經常會碰到按不同情況分轉的多路問題, 這時可用嵌套if-else-fi語句來實現, 但if-else-if語句使用不方便, 並且容易出錯。對這種情況, Turbo C2.0提供了一個開關語句。開關語句格式為:switch(變數){ case 常量1: 語句1或空; case 常量2: 語句2或空; . . . case 常量n; 語句n或空; default: 語句n+1或空;}執行switch開關語句時, 將變數逐個與case後的常量進行比較, 若與其中一個相等, 則執行該常量下的語句, 若不與任何一個常量相等, 則執行default 後面的語句。注意:1. switch中變數可以是數值, 也可以是字元。2. 可以省略一些case和default。3. 每個case或default後的語句可以是語句體, 但不需要使用"{"和"}"括起來。下例的switch中變數為整數型。main(){int test;for(test=0; test<=10; test++){switch(test) /*變數為整型數的開關語句*/{case 1:printf("%d", test);break; /*退出開關語句*/case 2:printf("%d", test);break;case 3:printf("%d", test);break;default:puts("Error");break;}}}下例的switch中變數為字元型。#include<stdio.h>main(){char c;while(c!=27) /*循環直到按Esc鍵結束*/{c=getch(); /*從鍵盤不回顯接收一個字元*/switch(c){case A: /*接收的字元為A*/putchar(c);break; /*退出開關語句*/case B:putchar(c);break;default: /*接收的字元非A和B*/puts("Error");break;}}}03for循環for循環是開界的。它的一般形式為:for(<初始化>; <條件表過式>; <增量>) 語句;(1)初始化總是一個賦值語句, 它用來給循環控制變數賦初值;(2) 條件表達式是一個關系表達式, 它決定什麼時候退出循環;(3) 增量定義循環控制變數每循環一次後按什麼方式變化。這三個部分之間用";"分開。例如:for(i=1; i<=10; i++) 語句;上例中先給i賦初值1, 判斷i是否小於等於10, 若是則執行語句, 之後值增加1。再重新判斷, 直到條件為假, 即i>10時, 結束循環。注意:1. for循環中語句可以為語句體, 但要用"{"和"}"將參加循環的語句括起來。2. for循環中的"初始化"、"條件表達式"和"增量"都是選擇項, 即可以預設, 但";"不能預設。省略了初始化, 表示不對循環控制變數賦初值。 省略了條件表達式, 則不做其它處理時便成為死循環。省略了增量, 則不對循環控制變數進行操作, 這時可在語句體中加入修改循環控制變數的語句。3. for循環可以有多層嵌套。例16:main(){ int i, j, k; printf("i j k"); for (i=0; i<2; i++) for(j=0; j<2; j++) for(k=0; k<2; k++) printf(%d %d %d", i, j, k);}04while循環與do-while 循環while循環的一般形式為:while(條件) 語句;while循環表示當條件為真時, 便執行語句。直到條件為假才結束循環。並繼續執行循環程序外的後續語句.例17:#include<stdio.h>main(){char c;c=; /*初始化c*/while(c!=X0D) /*回車結束循環*/c=getche(); /*帶回顯的從鍵盤接收字元*/}上例中, while循環是以檢查c是否為回車符開始, 因其事先被初始化為空,所以條件為真, 進入循環等待鍵盤輸入字元; 一旦輸入回車, 則c=X0D, 條件為假, 循環便告結束。與for循環一樣, while循環總是在循環的頭部檢驗條件, 這就意味著循環可能什麼也不執行就退出。注意:1. 在while循環體內也允許空語句。例如:while((c=getche())!=X0D);這個循環直到鍵入回車為止。2. 可以有多層循環嵌套。3. 語句可以是語句體, 此時必須用"{"和"}"括起來。例18:#include<stdio.h>main(){char c, fname[13];FILE *fp; /*定義文件指針*/printf("File name:"); /*提示輸入文件名*/scanf("%s", fname); /*等待輸入文件名*/fp=fopen(fname, "r"); /*打開文件只讀*/while((c=fgetc(fp)!=EOF) /*讀取一個字元並判斷是否到文件結束*/putchar(c); /*文件未結束時顯示該字元*/}05do-while 循環do-while 循環的一般格式為:do語句;while(條件);這個循環與while循環的不同在於: 它先執行循環中的語句, 然後再判斷條件是否為真, 如果為真則繼續循環; 如果為假, 則終止循環。因此, do-while循環至少要執行一次循環語句。同樣當有許多語句參加循環時, 要用"{"和"}"把它們括起來。06continue 語句continue語句的作用是跳過循環本中剩餘的語句而強行執行下一次循環。continue語句只用在for、while、do-while等循環體中, 常與if條件語句一起使用, 用來加速循環。 main(){ char c; while(c!=0X0D) /*不是回車符則循環*/ { c=getch(); if(c==0X1B) continue; /*若按Esc鍵不輸出便進行下次循環*/ printf("%c", c); }}07break語句 break語句通常用在循環語句和開關語句中。當break用於開關語句switch中時, 可使程序跳出switch而執行switch以後的語句; 如果沒有break語句, 則將成為一個死循環而無法退出。當break語句用於do-while、for、while循環語句中時, 可使程序終止循環而執行循環後面的語句, 通常break語句總是與if語句聯在一起。 即滿足條件時便跳出循環。main(){ int i=0; char c; while(1) /*設置循環*/ { c=; /*變數賦初值*/ while(c!=13&&c!=27) /*鍵盤接收字元直到按回車或Esc鍵*/ { c=getch(); printf("%c", c); } if(c==27) break; /*判斷若按Esc鍵則退出循環*/ i++; printf("The No. is %d", i);}printf("The end");}
望採納,謝謝

㈩ 哪個是正確的C語言語法的表達式 A。d=9+e+f=d+9 B.d=9+e,f=d+9 C.d=9

正確的是B
A中9+e+f=d+9這樣的表達式是錯的,表達式等號的左邊只能是一個變數
C中9+e=e++和A錯誤相同
D中9+e++=d+7和AC錯誤相同