㈠ 什麼是非法表達式,為什麼就不合法了呢,比如a+1=c+b,還有其他的。
首先, 等號表示賦值,不是比較, 比較的話用==
賦值=的左邊必須是一個可寫的變數,其餘的如數字都是非法的。
㈡ (15) 以下選項中非法的表達式是A)0<=x<100 B) i=j==0 C) (char)(65+3) D) x+1=x+1
他們都有問題,正確答案為D,A項可以那樣寫。
選項A)在c語言中是一個合法的關系表達式,但它並不代表數學式o<=x<
100。計算0<=x<100時,從左到右結合,先計算0<=x,其結果只能是0或1,然後再比較0<
100或1<100。根據運算符的優先順序,選項B)先判斷j==0是否成立,其結果只能是0或1,然後再將0或1賦給i。選項C)中,(char)(65+3)為類型強制轉換,將整數型數據轉換為字元型。選項D)是將一個數據賦給一個表達式,等號左邊不合要求,所以錯誤。
㈢ 在C語言中,下面標識符非法的是() A.sum& B abc3 C name D SUM
那你首先得知道什麼是標識符
和其他高級語言一樣,在C語言中用來表示對變數,符號常量,函數,數組,類型等數據對象命名的有效字元序列統稱為標識符.簡單地說,標識符就是一個名字.
在C語言中,規定標識符只能由 字母 , 數字 , 下劃線組成, 且第一個字元必須為字母或下劃線.
合法的標識符如下:
sum,average,_total,Class,day,month,Student,Student_name,tan,louts_1_2_3,BASIC,li_ling等
非法的標識符如下:
M.D.John,#123,3D45,a>b等
補充:
(1).標識符只能由字母、數字和下劃線三類字元組成
(2).第一個字元必須是字母(第一個字元也可以是下劃線,但被視作系統自定義的標識符)
(3).大寫字母和小寫字母被認為是兩個不同的字元,如A和a是兩個不同的標識符
(4).標識符可以任意長,但只有前32位有效。有些舊的C版本對外部標識符的限制為6位。這是由於鏈接程序的限制所總成的,而不是C語言本身的局限性
㈣ C語言判斷表達式 是否非法
1合法,其就等於 a = (b = (c = 1))
而2並不合法,因為賦值對象(即在等號左邊)的必須是一個變數,而(a+b)是一個常量,所以不合法。
㈤ qq 各位 一道C語言問題(關於非法的表達式)
應該是D吧,x + 1在C裡面是左值嗎?
0 <= x < 100是個布爾表達式,只不過其意義不和數學表達式的相同,布爾表達式求值是從左往右的,這里的這個表達式的值無論如何都是true,1和0肯定小於100,像這種寫法只是得不到0 <= x < 100的數學表達式測試結果(比如x取 >= 100),但其句法在C語言中是合法的。
㈥ 若變數已正確定義,以下非法的表達式是(B) A、a/=b+c B、a%(4.0) C
A
a/=b+c 等價於
a = a/b + c,只要b不等於0,這個表達式就是合法的
B
a%(4.0)
%是去余數運算符,余數只有對整數才有意義,對浮點數沒有意義。我們可以說5除以2,等於2,余數為1。
但是5除以2.2,就沒有餘數的概念。這里雖然4.0就是整數4,但是對於計算機來說是浮點數,浮點數不能去余數,是非法的
C
a=1/2*(x=y=20,x*3)
括弧優先順序最高,先計算括弧裡面的x=y=20,x*3,這是一個逗號表達式,從左到右計算,最右邊的表達式的值作為整個括弧表達式的值。
即先計算x=y=20,然後計算x*3=20*3=60,60作為(x=y=20,x*3)表達式的結果
上面的表達式就等價於
a=1/2*60
所以是合法的
㈦ C語言題目 以下非法的賦值語句是
選C,因為先進行i+1,這時候表達式已經是常量了,不能進行++運算。
C語言在賦值語句的使用中需要注意以下幾點:
1、由於在賦值符「=」右邊的表達式也可以又是一個賦值表達式, 因此,下述形式 變數=(變數=表達式); 是成立的,從而形成嵌套的情形。 其展開之後的一般形式為:變數=變數=…=表達式; 例如:a=b=c=d=e=5;按照賦值運算符的右接合性,因此實際上等效於:e=5; d=e; c=d; b=c; a=b;
2、注意在變數==說明==中給變數賦初值和賦值語句的區別。 給變數賦初值是變數說明的一部分,賦初值後的變數與其後的其它同類變數之間仍必須用逗號間隔,而賦值語句則必須用分號結尾。 例如:int a=5,b,c;
3、在變數說明中,不允許連續給多個變數賦初值。 如下述說明是錯誤的:int a=b=c=5必須寫為int a=5,b=5,c=5;而賦值語句允許連續賦值。
4、注意賦值表達式和賦值語句的區別。 賦值表達式是一種表達式,它可以出現在任何允許表達式出現的地方,而賦值語句則不能。
(7)在c語言中非法的表達式擴展閱讀:
C語言的特點
1、語言簡潔,緊湊,使用方便,靈活
2、運算符豐富
3、數據類型豐富,具有現代語言的各種數據結構
4、具有結構化的控制語句。
5、語法限制不太嚴格,程序設計自由度大。
6、C語言允許直接訪問物理地址,能進行位(bit)操作,能實現匯編語言的大部分功能,可以直接對硬體進行操作。
7、生成目標代碼質里高,程序執行效率高。
8、用C語言編寫的程序可移植性好(與匯編語言比)。
㈧ c語言中非法字元有哪些
首先看定義,用單引號括起來的單個字元,或用雙引號括起來的一串字元即字元常量。
C '&' 是用單引號括起來的單個字元,正確。
A '\xff' B '\65' D'\028' 是用單引號括起來的多個字元,但因它們前面都 有一個轉義符 『\『 ,就不能說它們都不符合定義,都不合法的。
A '\xff' 中 '\x' 組合表示是一個十六進制數 ffH = 10 進制的 255 ,它代表一個不可見字元的ASCII 碼, 合法 。
B '\65' 同理 '\' + 三個十進制數 '\ddd' 表示的是 八進制數。'\65' = '\065' = 10 進制的 53, 是 『F』 的ASCII 碼表示。單 字,合法。
D '\028' 同上表示是八進制數,但八進制數中逢八則進一,是不會出現 8 的,所以格式雖對但數值錯了。不合法。
㈨ 在C語言中,以下非法的表達式是( ) A. 0<=x<=100; B. i=j==0; C. (char)(65+3); D. x+1=x+1;
A的意思是(0<=x)<=100;(比較運算符從左到右計算)
//先返回0<=x的值,正確為1錯誤為0,再把它的值與100進行比較,因為0和1都比100小
B的意思是i=(j==0);(比較運算符級別比賦值運算符高)
//先返回j==0的值,正確為1錯誤為0,再把它的值賦值給i
C的意思是把整型數65+3的值強制轉換為字元類型char,返回ASCII為68的'D'
D的意思是將x+1賦值給x+1,因為x+1是個右值,只能放在賦值運算符的右邊,所以非法
答案為D
第二題是B
++(i+1)等價於i+1=i+1+1,因為i+1是右值,所以非法
㈩ 在C語言中,以下非法的表達式是( ) A. 0<=x<=100; B. i=j==0; C. (char)(65+3); D. x+1=x+1;
D x+1=x+1