C语言笔试经典编程题目(汇总帖)
生活随笔
收集整理的這篇文章主要介紹了
C语言笔试经典编程题目(汇总帖)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這個帖子可能會長期更新。
1.寫一個宏,計算結構體中某變量相對于首地址的偏移,其實就是模擬實現offsetof
#define OFFSETOF(st_type, mem_name) (size_t)&(((st_type*)0)->mem_name)2.寫一個宏,可以將一個整數的二進制位的奇數位和偶數位交換。
#define SWAP(num) (num = (((num&0x55555555)<<1)+((num&0xaaaaaaaa)>>1)))3.請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之后的字符串為We%20Are%20Happy。(很經典)
class Solution { public:void replaceSpace(char* str, int length) {//數空格int spacecnt = 0;char* p = str;while (*p){if (*p == ' ')spacecnt++;p++;}int newlen = length + 2 * spacecnt;int end1 = length - 1;int end2 = newlen - 1;while (end1 != end2){if (str[end1] != ' '){str[end2--] = str[end1--];}else{str[end2--] = '0';str[end2--] = '2';str[end2--] = '%';end1--;}}} };
4.Fibonacci數列是這樣定義的:
F[0] = 0
F[1] = 1
for each i ≥ 2: F[i] = F[i-1] + F[i-2]
因此,Fibonacci數列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci數列中的數我們稱為Fibonacci數。給你一個N,你想讓其變為一個Fibonacci數,每一步你可以把當前數字X變為X-1或者X+1,現在給你一個數N求最少需要多少步可以變為Fibonacci數。
5.寫一個程序,判斷當前機器大小端。
這個題前面寫過,兩種解法
C語言深度解析之一:數據存儲_何以過春秋的博客-CSDN博客
C語言深度解析之六:自定義類型詳解(結構體+枚舉+聯合)_何以過春秋的博客-CSDN博客
總結
以上是生活随笔為你收集整理的C语言笔试经典编程题目(汇总帖)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广数系统加工中心编程_数控铣床与数控加工
- 下一篇: 数字图像处理——相关检测