C語言練習1

2021-09-01 13:28:06 字數 1394 閱讀 4427

題目描述:

寫乙個函式返回引數二進位制中 1 的個數 比如: 十進位制15即二進位制 0000 1111 有4 個 1 

程式原型: 

int count_one_bits(unsigned int value) 

問題分析:

將十進位制轉化為2進製,轉化的同時判斷1的個數,最後將計算結果返回

**:

int count_one_bits(unsigned int value)

return n;

}

題目描述:

獲取乙個數二進位制序列中所有的偶數字和奇數字,分別輸出二進位制序列。例如:10轉為二進位制1010,奇數字:11 偶數字:00

問題分析:

兩種辦法:

1.先將十進位制數轉為二進位制。先輸入奇數字,定義乙個標誌變數,當標誌為奇數時輸出。偶數字同理。注意,需要另外乙個變數將傳入的引數儲存下來否則在計算完奇數字時會找不到原數。

2.將十進位制數轉化為二進位制數並儲存進陣列,然後按奇偶輸出陣列中的值。

**(第一種):

void list(unsigned int value)

printf("\n偶數字序列:");

n = 1;

while (val)

}

題目描述:

輸出乙個整數的每一位。例如123456 ,輸出:1 2 3 4 5 6

問題分析:

利用遞迴,對原數層層/10直到其為0,然後從遞迴最深層逐級返回%10。也可利用迴圈,不過正序輸出需先判斷傳入的為幾位數,比較麻煩。建議遞迴。

**:

void pri(int n)

}

題目描述:

程式設計實現: 兩個int(32位)整數m和n的二進位制表達中,有多少個位(bit)不同? 

輸入例子: 1999 2299 

輸出例子:7

問題分析:

同時對傳入的兩個數進行十進位制轉二進位制運算,並判斷當前為是否相等,如不相等n++,最後返回n。需注意,兩個數轉化為二進位制時位數可能不同,因此迴圈控制條件應為x!=0 || y!=0 (x,y表示傳入的兩個數)。

**:

int compare(int x, int y)

return n;

}

C語言練習1

分別將結果輸出到檔案out.dat這一項還未實現,c語言檔案內容還需要複習。請編寫乙個函式 jsvalue int m,int k,int xx 該函式的功能是 將大於整數 m 且緊靠 m 的 k 個素數存入陣列 xx 傳回。最後呼叫函式 writedat 讀取 10 組資料,分別得出結果且把結果輸...

C語言練習1

1.給定兩個整形變數的值,將兩個值的內容進行交換。define crt secure no warnings include include int main 2.不允許建立臨時變數,交換兩個數的內容 define crt secure no warnings include include int...

C語言練習 1

現在來通過練習來進一步了解c語言這種程式語言。首先第一題 列印100 200之間的素數 要列印素數首先要知道素數的概念,即在大於1的自然數中,除了1和它本身以外不再有其他因數。那麼可以確認程式設計思路,即通過迴圈結構,讓100 200之間的每乙個整數都與每乙個比自身小的正數相除取餘,如果餘數為0則證...