c語言中int a 1,b 3 switch a bcase 1 printfncase 2 1 printfn 對麼?詳解

2021-04-17 21:09:07 字數 3969 閱讀 2109

1樓:匿名使用者

#include

int main()

}這是我自己理解之後寫的,switch語句中case後要加break,case的所有情況寫完後還要加default語句,表示除

內case外的情況發生容時要怎麼做。本程式就沒有等於a+b的情況,需要default語句。

2樓:頹廢ю小寶

case 1:printf("*\n");break(分號後面都需來要自加break)

還有需要一個大反括號在結尾

switch(a+b)這個a+b是等於4的,即switch(4),但是

你switch語句裡面沒有符合條件的,所以就會直接跳出去的

3樓:匿名使用者

switch(表示式):

表示式的值與case之後的常量作比較,若二者相等,則執行該case後的語句。

4樓:匿名使用者

int a=1,b=3;switch(a+b){ case 1:printf("*\n");case 2+1:printf("** \n");

沒語法錯誤,不過switch 一般用於選擇,。

5樓:匿名使用者

挺對啊,不過沒有default

在c語言中case2+1這種寫法對嗎? 若定義:float x=1.5;int a=1,b=3,c=2;,則switch語句 switch((int)x)

6樓:匿名使用者

printf裡換行為\n

每個case結束要用break;終止,否則將會繼續執行下一個case

正確應為:

7樓:醉臥南窗聽秋雨

case 後面輸入一個空格,去掉switch後面的「;」

8樓:匿名使用者

switch((int)x);

這裡應該沒有;

9樓:

printf 語句裡 要\n

若有定義:float x=1.5;int a=1,b=3,c=2;,則正確的switch語句是 ( ) 5

10樓:顧小蝦水瓶

若有定源義:float x=1.5;int a=1,b=3,c=2;,則正確的switch語句bai是:

duswitch(a+b)

所以這一題選zhi擇c。

switch語句的基本形式dao

switch(表示式)

11樓:匿名使用者

對於swith(表示式)中的表示式,可以控制程式的執行過程,表示式的結果必須是整數、字元或列舉量值,a選項中,出現浮點型,b中switch()後面出現分號,d選項case1後面出現},是錯誤的

12樓:蔣卓軒

c答案解析復

[解析] switch 後的括號中只能是制整型或字元型表示式,選項

a中使用的是浮點型變數x,故不正確。選項b在switch的括號後面多了一個分號,故也不正確。switch的case標號後只能是常量或常量表示式,而不能是變數,所以選項d也不正確。

故應該選擇c

13樓:冬蟻想睡

switch的括號裡只能是結果為整型的表示式,也可以是列舉型,但實際上列舉型會轉換成整型。

14樓:

case 後面必須是不能是浮點數,必須是int 或者列舉,int 1,2,3,4, 列舉,a,w,r,s,q、、、

15樓:***x櫻

switch裡不可以用浮點數

下列程式的輸入結果是 main() {int x=1,a=0,b=0; switch(x){case 0:b++; case 1:a++; case 2:a++;b++; }

16樓:匿名使用者

這個例子告訴你switch語句不用break時的***。這幾個case會依次往下執行,結果如你如說。

17樓:

#include

void main()

printf("%d,%d\n",a,b); //所以輸出 2,1}

18樓:匿名使用者

switch(x)

x=1跳到case 1:a++;

case 2:前面沒用break;所以繼續a++;b++;

c語言中int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf

19樓:匿名使用者

c語言copy提供一種特殊的運算子——逗號運算子。用它將兩個表示式連線起來。如:

3+5,6+8

稱為逗號表示式,又稱為「順序求值運算子」。逗號表示式的一般形式為表示式1,表示式2

逗號表示式的求解過程是:先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式「3+5,6+8」的值為14。又如,逗號表示式

a=3*5,a*4

對此表示式的求解,讀者可能會有兩種不同的理解:一種認為「3*5,a*4」 是一個逗號表示式,先求出此逗號表示式的值, 如果a的原值為3,則逗號表示式的值為12,將12賦給a, 因此最後a的值為12。另一種認為:

「a=3*5」是一個賦值表示式」,「a*4」是另一個表示式,二者用逗號相連,構成一個逗號表示式。這兩者哪一個對呢?賦值運算子的優先順序別高於逗號運算子, 因此應先求解a=3*5(也就是把「a=3*5」作為一個表示式)。

經計算和賦值後得到a的值為15,然後求解a*4,得60。整個逗號表示式的值為60。

20樓:匿名使用者

c=(a+=a+2),(a=b,b+3);

->c=(a+=a+2);(a=b,b+3);

->c=(a+=a+2);a=b;b+3;

21樓:焚香木弋

int a=1,b=2,c=3;

c=(a+=a+2),(a=b,b+3);

相當於兩個順序語句:

先執行了c=(a+=a+2)這個語句得出c=a=a+1+2=4;

然後執行a=b,b+3;得出a=b=2;後面專的b+3單純是迷惑人

屬而已,不起作用。

所以輸出的答案是a=2,b=2,c=4;

22樓:沫宸萱

樓主自己敲下**執行結果不就知道了?

23樓:康康

2,2,4

可以自己編譯跑一下啊,比來問以後效率得多

若有定義:float x=1.5;int a=1,b=3,c=2;則正確的switch 語句是

24樓:匿名使用者

正確的switch 語句是 c

25樓:於白秋孛玉

switch()

括號表示式裡面,結果不能是實型,也就是不能為float。

所以a錯,b對。

這是編譯器規定的,所以自己記下來唄。

若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是

26樓:匿名使用者

選 c。

a錯,因為浮點型不能用在 switch中。

b錯,本來將浮點型強制轉換為整型之後用switch是可以的,但回它在swich((int)x)後面多了個分答號。

c對,a+b的結果也是整型,沒問題。

d錯,因為 case 後面只能跟常量,不能跟變數。所以不能 case c。

27樓:匿名使用者

答案c:

a:x不屬於int,char,或列舉型別

b:switch()不用加分號

d:變數不能作為case

c語言中,inta 3,b 2,c 1,為什麼賦值語句a b c 1錯誤了

賦值語句沒有錯,錯的應該是變數的說明語句 inta 3應該在變數與型別說明符間加空格以示區別 int a 3,b 2,c 1 沒有錯啊。include int main inta 3 這個連起來寫已經錯了。當然,排除你是筆誤。a b c 1,是合法的。沒有錯誤。在vs 2010中可以編譯通過。因為a...

在C語言中,設有如下定義 int a 1,b 2,c 3,d 4,m 2,n 2則執行表示式 m abn cd 後,n的值為,過程

n的值抄仍然為2,沒有改變!過程 先計算a b,值為0,賦給m的值為0,表示式m a b的值也是0。對於 邏輯運算,不管後面 n c d 的值如何,都不影響 m a b n c d 的最終結果,因此,c語言不再對表示式n c d進行計算。因而n的值沒有改變!n的值為2 a 1,b 2 m a b m...

inta01f輸出什麼,c語言中inta1,b2,cc10ba輸出結果為什麼

chenqin231 已經回答得非常棒了,0.1f這個值會被截斷,取其整數部分,所以,列印a值為0,希望能對你有所幫助,另外,建議你讀一些c語言方面的基礎書籍。a的值被截斷,當你用printf列印a值為0 應為 0 但是0.1f是float型別,前面應該有 int main int f int in...