C語言判斷正誤。。賦值的問題,C語言 判斷直接賦值問題

2022-07-20 07:20:14 字數 5157 閱讀 1347

1樓:匿名使用者

char *s;//定義一個字元類指標

s="olympic";//s指向的是字串 "olympic" 裡的第一個字元 "o" ,s可理解為字串

第二句若改成指向字元類指標的指標就可以正確賦值了,如下:

char **s;

s = ;

這樣的s可理解為指向字串的指標,也可以理解為二維陣列

2樓:匿名使用者

可以這麼理解第二句:

char *s;//定義一個字元型指標,即可以理解為字串;//這個是一個長度為一的字串陣列,裡面只有一個字串,但它是一個陣列

所以字串型別的s不能與字串陣列的等起來所以可以改成:

char **s;//這裡有兩個*號s=;

3樓:

定義s是字元指標,第一個s就是賦了個字串。第二個「{}」,指令碼語言裡定義有,c語言裡沒有啊。

4樓:手機使用者

樓主是把 = 和 == 弄混淆了。在c語言裡,一個 = 是賦值,兩個連著寫成 == 才是做比較是否相等。你把這裡改成 if(j==0) i++;else i--; 就是你期待的結果 i值為11了。

if括號裡面的判斷條件也看作表示式,這個表示式的值是0時,其表示布林型的false,值為非0時,表示true。所以一個括號裡面寫成賦值語句 ,其結果就是表示式值為 0,所以 if(false) 然後就執行 else 的語句去了。

c語言 判斷直接賦值問題

5樓:匿名使用者

首先判斷y是否大於z,若大於,則執行 x+2這個語句,並把x+2的值賦給x

若小於,則先執行x-2,然後將x-2的值賦給x,

然後執行逗號表示式,得到的值為2(最後一個,但對結果沒有影響,由於=的優先順序要大於逗號表示式的優先順序,所以語句會先賦值,然後進行逗號執行)

6樓:匿名使用者

先執行(y>z)如果是真,則執行x=x+2,否則執行x=x-2,3,2。x=x-2,3,2後面的逗號為逗號運算子,按順序執行,結果為最後一個逗號後的內容。所以我認為如果執行這句的話結果應該是2

7樓:匿名使用者

表示式1,表示式2

逗號表示式的求解過程是先求解表示式1,再求解表示式2,整個逗號表示式的值是表示式2的值。

可以看出你給的表示式為一個(表示式3)?:表示式1:表示式2的結構,表示式3為真時值為表示式1的值,否則為表示式2的值.

據此x= (y>z) ? x+2:x-2, 3,2執行過程是先看y是否大於z,結果真執行x+2,假則為執行x-2,3,2.

從左至右執行.假設進入該語句是x=3,y=2,z=1,則結果為x=5,若y=2,z=3,則為2.

c語言中賦值語句有什麼規則要求

8樓:mono教育

賦值語句是由賦值表示式再加上分號構成的表示式語句。 其一般形式為: 變數=表示式。

由於在賦值符「=」右邊的表示式也可以又是一個賦值表示式,因此,下述形式變數=(變數=表示式);是成立的,從而形成巢狀的情形。其之後的一般形式為:變數=變數=…=表示式;

在變數說明中,不允許連續給多個變數賦初值。如下述說明是錯誤的:inta=b=c=5必須寫為inta=5,b=5,c=5;而賦值語句允許連續賦值。

賦值語句

將確定的數值賦給變數的語句叫做賦值語句。各程式設計語言有自己的賦值語句,賦值語句也有不同的型別。所賦「值」可以是數字,也可以是字串和表示式。

注意很多語言都使用「等於號」(即「=」)來作為賦值號,所以可能和和平時的理解不同,在使用的時候應予以注意。

9樓:匿名使用者

上一節我們學習了c語言中的單目運算子,這一節我們學習c語言中賦值操作需要注意的點。

下列c語言賦值語句中正確的是,不正確的是,為什麼

10樓:匿名使用者

1全部1是正確的。c=22的值是給c賦值22;b++是先參與表示式計算,後自加。所以表示式相當於:

c=22;

d=c-b;

b=b+1;

2是不正確的。強制型別轉換要加括號,應該是:

k = (int)(a+b);

3是正確的。單獨一個分號是空語句的意思,不做任何操作;

4也是正確的。大括號表示一個邏輯塊,只有一分號表示這個邏輯塊中只有一條空語句。

11樓:孟羽然

1、正確。c=22的值是22;b++是先參與表示式計算,後自加。所以表示式相當於:

c=22;

d=c-b;

b=b+1;

2、不正確。強制型別轉換要加括號,應該是:

k = (int)(a+b);

3、正確。單獨一個分號是空語句的意思,不做任何操作;

4、正確。大括號表示一個邏輯塊,這個邏輯塊中只有一條空語句。

12樓:匿名使用者

2是不正確的

1.d=(c=22)-(b++); 等於 c=22;d=c-(b++)

3.;就是什麼都不做

4.跟3一樣

13樓:

1)是正確的

2)不正確,應該是強制轉換(int)(a+b)3)是語句,但不是賦值語句

4)是複合賦值語句

14樓:

2)不正確,應該是強制轉換要帶括號k=(int)(a+b);

c語言中語句中 "連等" 問題

15樓:董茜茜

第一題a=4,b=4。賦值語句是將c的值分別賦給a和b

第二題a=2,b=2。a=b>=c?d:

b等價於a=((b>=c)?d:b)其中b>=c為假則((b>=c)?

d:b)的值為b的值,然後將b的值賦給a。因此a=2,b=2

16樓:匿名使用者

連等關鍵有兩點:

1、運算子的優先順序跟結合性。

2、一個賦值表示式是有值的,值就是被賦的值,比如a=3 ,這個賦值表示式的值就是3,若有b=(a=3),則b的值為3.

例如:a=b=c中只有一個運算子,等號,所以優先順序是一樣的,而等號的結合性是從右向左的(也就是等式從右往左計算),所以a=b=c 等同於 a=(b=c),故a=4,b=4;

17樓:匿名使用者

這兩題關鍵兩點:

1.運算子的優先順序跟結合性。

2.一個賦值表示式是有值的,值就是被賦的值,比如a=3 ,這個賦值表示式的值就是3,若有b=(a=3),則b的值為3.

第一題:a=b=c中只有一個運算子,等號,所以優先順序是一樣的,而等號的結合性是從右向左的(也就是等式從右往左計算),所以a=b=c 等同於 a=(b=c),故a=4,b=4;

第二題:

優先順序 : 關係運算子》"?:">賦值運算子,故a=b>=c?d:b 等價雨 a= ( (b>=c)?d:b );

所以 a=2,b=2;

關於運算子的優先順序可以參考

18樓:

1:a=4;b=4;

2: a=2;a=2.

19樓:匿名使用者

問題1可能是a=4,b=4

問題2是a=b=2

c語言中賦值表示式跟賦值語句有什麼區別如題 謝謝了

20樓:王蕾蕾

後者帶分號,是一個完成的語句,可以參與編譯的,表示式不行採納哦

為什麼下面的語句不是正確的賦值表示式?

21樓:黎約踐踏豬

1全部三個都是錯的, 賦值語句,右運算(從右向左運算),最後的值賦的值給了 = 號右邊的變數; 1.賦值運算一般編寫的時候不常用連續賦值的,就算真的要連續賦值,也是右值也都應該是一個變數,故 a a=7+b+c=a+7 b a=7+b++=a+7 都是錯的,連續賦值時,= 號右邊(中間部分)是表示式,不是一個變數 2.賦值運算,最後都是要把算出來的一個值,賦值給最左最左邊的變數,左邊必須是一個變數,用來接收 返回的值,不能使表示式,故:

c a+1=7+b,b++,a+7 也是錯的!

22樓:廖小明

a: 賦值運算時,出現在賦值運算子左邊的表示式應該是引用一個儲存物件,例如變數。不可以是一個數值計算表示式。

所以錯! b:同上 c:

不用看 明顯是錯的,a+1=7+b,b++,a+7 看看=號左邊和右邊 a+1 是變數,可惜不能成為儲存物件,右邊一切正常 7+b,b++,a+7(不理會語法的情況下) 題目考的應該是:賦值運算時,出現在賦值運算子左邊的表示式應該是引用一個儲存物件,例如變數。不可以是一個數值計算表示式。這句話

23樓:凌風柏得

3個都是錯的 a裡邊7+b+c是右值,無法被賦值 b裡邊7+b++同樣的道理 c裡a+1也是右值,無法被賦值

24樓:允兒

樓主該好好看看左值和右值,左值的意思就是可以放在賦值符號左邊的變數或表示式。

25樓:灰機

c明示不是賦值語句 a+1=7+b是判斷語句 a+7根本不是一個語句

26樓:雲凝冬

c肯定錯的,a+7賦值給誰也不知道。 a,b應該是可以的

c語言列舉型別賦值的問題

27樓:匿名使用者

定義一個變數是列舉型別,可以先定義一個列舉型別名,然後再說明這個變數是該列舉型別。

例如:enum weekday;

定義了一個列舉型別名 enum weekday,然後定義變數為該列舉型別。例如:

enum weekday day;

當然,也可以直接定義列舉型別變數。例如:

enum weekday day;

注意。① 列舉元素不是變數,而是常數,因此列舉元素又稱為列舉常量。因為是常量,所以不能對列舉元素進行賦值。

② 列舉元素作為常量,它們是有值的,c 語言在編譯時按定義的順序使它們的值為,1,2,…合法

C語言for迴圈賦值問題,C語言中用for迴圈賦值陣列

在第一次迴圈以後,漏掉了將j清零的操作,這樣在i 1與i 2時,j 4,不會進入輸出的第二級迴圈 c語言中用for迴圈賦值陣列 include main a 0 到a 9 這10個數依次賦值0到9for i 0 i 10 i a i i a 20 到a 29 這10個數全部賦值成9for i 20 ...

c語言中賦值

b a,b中的值是5,a中的值還是5,要是寫a b,由於b沒有賦予初值,編譯器可能報錯或者a被賦予一個隨機值!int a,b a 5 b a,這時候 a 和 b 都等於 5。int a,b a 5 a b,由於 b 為賦值,所以 a 和 b 的值都不確定。int a,b a,b中均是隨即數a 5 a...

C語言賦值和初始化的區別,c語言賦值中什麼叫初始化賦值,和賦值有什麼區別嗎

在定義了一個變數後就會給變數分配一個地址,但不會自動賦值,只有執行的時候,若變數依然沒有賦值,結果要使用此變數的時候會隨機賦值。定義一個某型別的變數,系統就會給它分配一個地址,大小就是這個型別的大小。如果你沒初始化,系統中這個變數指向的地址裡邊可能以前已經存了一個數,這個數是多少?未知的。所以說變數...