c語言 下列程式執行後的輸出結果是1為什麼

2021-06-17 08:04:54 字數 2490 閱讀 9006

1樓:

36 輸出:-1

x=0xffff 如果用十六進位制表示的話,數前面要加0x以表示是十六進位制。

ffff用二進位制表示就是16個1,1111111111111111,轉換成十進位制就是2^16-1,即65535。因為int型資料範圍是+32767~-32768,二進位制在計算機中表示時,第一位是符號位(這些知識如果學了原碼、補碼、反碼就會了解了),65535超了範圍,第一位變成了符號位,1代表負數,所以變成了-1

x--是x先計算,再減一,所以先輸出-1,x的值再減一,變成-2.

37 a case後面不能是實型

b a是整形,case後面是實型

d swith()括號裡面不能是表示式

2樓:

-1在計算機中的編碼就是0xffff;

switch中的case x;

x只能是正整數

3樓:

計算機中數都是以補碼形式存在的,0xffff就是-1的補碼,另外這次程式是switch結構的,所以x應為正整數,你所說的另外3項是不需要輸出的,因為有default阿!!!

4樓:負家子弟

對於char型來說0xffff就是-1,而x--是現輸出後作自減操作,所以輸出-1.

對於switch...case結構來講,

switch (表示式1) 中的表示式1必須返回一個整型;

case 表示式2 中的表示式2也必須是整型;

綜上所述只有c是正確的(d case 2少了個分號、printf拼寫錯誤、switch()後面多了個分號)

c語言題 求執行結果 給出解釋. 下列程式段執行後的輸出結果是( )

5樓:你若安好

這段**最抄後輸出的是-4,(ps:/n應該是\n)a?b:

c語句的意思是 1.假如a(邏輯表示式或0、1)的邏輯值為0,則語句的值為b(b為表示式則取最後的值)2.假如a的邏輯值為1,則取c的值。

在你的語句中a對應的為“k

不懂可追問

6樓:好嘞啊啊啊啊

k

判斷 k

答案d應該是-4 而不是4

7樓:摩羯橋穎穎

選a~~ 條件運算子,右結合性,,k

8樓:匿名使用者

int k=-4,a=3,b=2,c=1;

printf("%d\n",k輸出:-4

k

9樓:匿名使用者

k=-4嗎,感覺這題有問題阿

c語言:下列程式執行時若輸入 1abcedf2df<回車>輸出結果為( )

10樓:匿名使用者

1abcedf2df

vc6.0執行試過了。

#include

main()

printf("\n");

第一次 a=0那麼根據ascii表檢視是null也就是空字元。第一次輸入1,(a%2)是求和2的餘數

結果是0而且1也不在a和z之間,所以if後面的ch=ch-'a'+'a';不執行。a變成1,輸

出 ch也就是1.

第二次 a=1 輸入a, (a%2)餘數是1不為0,而且a在a-z範圍內,所以執行ch=ch-'a'+'a'。

ch=ch-('a'-'a')=ch-32 注意看ascii表 a比a 要大32.,大寫字母要比小寫字母小32.

這樣ch-32就是可以把ch變成大寫字母。所以輸出a 。a++變2

第三次 a=2 輸入b (a%2)餘數是0,這樣if那個條件因為有&&所以兩邊都滿足才會執行條件 語句。於此ch=ch-'a'+'a'就不執行了。直接輸出b

1ab....

由此類推即可。

希望對您有所幫助!:)

11樓:匿名使用者

輸出結bai果:1abcedf2df

首先說a%2!=0,也就du是在a為奇數時才zhi

成立,ch>='a'&&ch<='z'是判斷輸入dao字元是不是小

回寫字元,如果是答,把它轉換成大寫ch=ch-'a'+'a';

判斷一個字元a增加一個,轉換的字元為:2、4、6、10,1和8字元位數字,不需要準轉換。

a從0開始計算a%2!=0,第一個字元時,a=0,但是字元為數字字元,不用轉換;

a=1時,a%2!=0成立,輸入字元為a,滿足後面的條件,轉換為大寫a;

a=2時,a%2!=0不成立,不轉換;

a=3時,a%2!=0成立,輸入字元為c,滿足後面的條件,轉換為大寫c;

以此類推。

c語言題下面程式段執行後輸出結果是

c沒有錯 static的變數 系統會全部初始化為0的 j 3,實際上第三列 從來沒賦過值 當然是0 答案是對的,你想一下,在兩個for 迴圈中,a 0 0 0,a 0 1 1,a 0 2 2,a 0 3 a 0 7 都是為0的,下面以此類推,這個的原理很簡單,就是我們已經定義了一個二維陣列a 8 8...

c語言讀下列程式,寫出程式的輸出結果希望有詳細解析

輸出結果為 max value is 36 因為主程式內的雙重迴圈,對陣列的每個元素都乘以3並放回原處。輸出語句則呼叫函式,求取這個二維 陣列中的最大值,所以函式返回值是36 c語言 讀下列程式,寫出程式的輸出結果。希望有詳細的解析 標頭檔案,輸入輸出 字串處理 include include 定義...

C語言以下程式的執行結果是

答案錯誤。應該11。或者 有誤。void main if j 2 0 j 10,所以滿足條件,執行j 20後,j 200。繼續迴圈。printf d n i 最終結束迴圈的條件是i 1000,故i輸出為1001,與j無關 i 10,j 10 j 200,i 11 程式結束 怎麼會是1001?是11啊...