C語言10 12作業

2021-10-25 18:02:29 字數 1642 閱讀 9072

1、 消除小數點後面的零

**:#include

int main()

2、 十進位制轉二進位制

**:#include

void binary_cal(int n)

int main(void)

return 0;

}3、 查原碼、反碼、補碼

(1)原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值. 比如如果是8位二進位制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

(2)正數的反碼是其本身.負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反.

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

(3)補碼的表示方法是:

正數的補碼就是其本身.負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)

4、 單精度浮點數二進位制儲存

首先將乙個小數如:235.725的小數部分取出,即:0.725,將其乘以進製數二進位制就乘以2後得到1.45,取其整數部分1為二進位制小數的第一項(十分位),在將小數部分0.45乘2得0.9,取其整數部分為二進位制小數的第二位(百分位)0,在將其小數部分0.9乘2,得1.8,取其整數部分為二進位制小數的第三位(千分位)1,取其小數部分0.8再乘2……以此類推,直到值為0或形成迴圈小數則停止。

**://此處小數字轉二進位製到第八位,如果想要更多,可以設定i的大小

#include

#include

void binarycal(int n)

int main(void) //判斷正負

int a;

a=(int)x;

binarycal(a);

printf(".");

float b=x-a;

for(int i=0;i<8;i++)

return 0;

}5、 二進位制、十進位制、八進位制、十六進製制相互轉換

(1) 十進位制轉二進位制前面已經給出,然後將程式裡的2改為8即可得十進位制轉八進位制的程式。至於十六進製制,加入if判定r即可

(2) 下面討論其它進製轉為十進位制即可,這樣它們也能進一步間接借助十進位制轉換。

二進位制轉十進位制**:

#include

int main(void)

八進位制轉十進位制**:

#include

int main(void)

十六進製制轉十進位制**:

#include

int main(void)

6、 查什麼是記憶體溢位、記憶體洩露

記憶體溢位 out of memory,是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory;比如申請了乙個integer,但給它存了long才能存下的數,那就是記憶體溢位。

記憶體洩露 memory leak,是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記憶體洩露危害可以忽略,但記憶體洩露堆積後果很嚴重,無論多少記憶體,遲早會被占光。

7、 為什麼unsigned short 定義,輸出65535,加一就是零?

unsigned char 表示無符號,bai所以範圍在 0-65535,加一則溢位,直接返回零。

PAT乙級1012 數字分類(C語言)

給定一系列正整數,請按要求對數字進行分類,並輸出以下 5 個數字 a 1 能被 5 整除的數字中所有偶數的和 a 2 將被 5 除后餘 1 的數字按給出順序進行交錯求和,即計算 n 1 n 2 n 3 n 4 a 3 被 5除后餘 2 的數字的個數 a 4 被 5 除后餘 3 的數字的平均數,精確到...

c語言作業

printf 函式是格式化輸出函式,一般用於向標準輸出裝置 如顯示器 按規定格式輸出資訊,可以在 和字母之間插進數字表示最大場寬。例如 對於整型型別資料而言,輸出函式 printf 我做了 5d個仰臥起坐 n 83 中的 5d 表示輸出5位整型數,不夠5位右對齊 對於浮點型別資料而言,輸出函式 pr...

c語言作業

一.思維導圖 二.if else switch for while do while 1.if else語句 if 條件1 else 遇到的問題 1.if後忘加 2.對於多個if else語句,else屬於哪個if不確定。解決方法 在編譯器中執行 養成在if後新增 的習慣。2.switch語句 使用...