1樓:匿名使用者
-32768正確 乙個整型變數只能容納-32768~32767範圍內的數,無法表示大於32767的數。遇此情況就發生溢位,但執行時並不報錯。數值達到最大值時後,從最小值計數,所以32768=32767+1,在c裡就又回到-32768了
把int b;改成long b; b=%ld 再試試看
2樓:
根據編譯器的不同而不同
有可能是你的編譯器把你的int自動變成了long int,這樣計算就可以正確
大多數都是顯示
-32768
為什麼你自己算一下記憶體下補碼的表示就明白了
3樓:匿名使用者
樓主,你定義的是無符號型資料,輸出的時候是有符號整型資料。
有符號整型的表示數範圍為:-32768----32767;
所以32768必定是負數。
int型別是兩個位元組寬度,長整型是4個位元組;
除無符號資料型別資料外,所有資料型別的最高位均為符號位。
4樓:匿名使用者
不同計算機用來存放int型資料的位元組數是不同的。答案上使用的計算機是用4位元組來儲存的,你的計算機是用8位元組儲存的。
c語言,以下程式執行後的輸出結果是
5樓:匿名使用者
c=(a+=a-=5)是乙個
表示式,(a=b,b+3)是另乙個表示式。
a=0,a=a-5=-5,a=a+a=(-5)+(-5)=-10,將值賦給c,c=-10,此時,a=-5
a=b,將b的值賦給a,a=0,執行b+3=0+3=3,這個3不對任何變數賦值。
因此最終結果a=0,b=0,c=-10
輸出a、b、c的值,輸出0,0,-10
以下程式執行後的輸出結果是_______。
6樓:匿名使用者
在第乙個判斷處,由於(a結果是1,再算1面的語句,即a和c交換數,此時a=5,c=3,b不變是4,t為3。再後面的(a>c,c>b)此為逗號表示式,先算a>c,為真,再算c>b,為假,結果取假,不執行t=b;這個語句。只執行b=a;a=t;即b=5,a=3.
所以最後的結果是:a=3,b=5,c=3
7樓:謬賜撒瑾
200if(x==y)t=x;x=y;y=t;這裡沒有大括號的話,if(x==y)
只能控制
t=x;,無論
if結果如何,x=y;y=t;
都會執行
c語言問題。。下列程式執行後的輸出結果是
8樓:匿名使用者
應該是6
void func(int *a,int b)b是陣列位址 也就是指標 會改變呼叫者的值 *a為0 b[0]=0+6
所以選a 6
c語言有以下程式,...,程式執行後的輸出結果為( )
10、以下程式執行後的輸出結果是( ) main() { int x=20; printf(
9樓:妖★燎雨
答案是1,0 因為根據算數優先順序從左到右進行運算(0<x)為真,真就是1,1<20也為真所以為1,然後下一條0<x為真就是1,x<20為假就是0,1與上0就是0
c語言求解 閱讀下面程式,程式執行後的輸出結果為_____。
10樓:心若初見
c忘記,c++的話bai
,是乙個轉換,
du乙個型別zhi強制轉換,因為字元可dao以轉化為整內形,整形可以轉化為字容符,只要對應ascii表就可以知道(這個表是用整數表示);第一次迴圈,0轉化,9轉化,然後自增自減,a輸出0到4**化字元,askii碼),b是9到5(一樣ascii)碼;。c++對應的是:0為空格,其他是特殊符號,這個你自己可以程式設計看看。
c語言,以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?
輸出1 3 這是遞迴了,所以先是fun 3 進入後發現3 2 1,所以又繼續func 3 2 也就是fun 1 進入發現1 2 0,就執行prinft,輸出1,然後fun 1 就返回了 返回出去正好是fun 3 的prinft,輸出3 進入fun 3 進入fun 1 輸出1退出fun 1 輸出3退出...
c語言簡單程序執行後輸出結果是請詳細講解一下
5,3,4 第一 給a,b,c,t四個變數賦值 第二 判斷條件,不符合,不執行 第三 判斷條件,符合,執行 t a 4,a c 5,c t 4 第四 輸出a,b,c的值.補充問題 h代表數字72,a代表65,o代表79,然後h a o 72 65 79 86,輸出a的值就為86,其中的h,a,o代表...
c語言以下程式的輸出結果是a為什麼
輸出結果是字元z 位元組是20是因為 10 定義了你為x資料組準備了10個位子,沒個位子可以存放乙個資料 佔2節 10 2 20 位元組 printf c 由於沒有輸出列表所以c編譯器不知道是列印哪個變數裡的值 他產生的當然是個隨機數.假定int型別變數占用兩個位元組,其有定義 int x 10 則...