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...