日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言笔试经典编程题目(汇总帖)

發布時間:2023/12/31 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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數。

#include <stdio.h> #include <math.h>int main() {int a = 0;int b = 1;int c = 1;int n = 0;scanf("%d", &n);while (1){if (b == n){printf("0\n");break;}else if (b > n){if (abs(a - n) > abs(b - n)){printf("%d\n", abs(b - n));}else{printf("%d\n", abs(a - n));}break;}a = b;b = c;c = a + b;}return 0; }

5.寫一個程序,判斷當前機器大小端。

這個題前面寫過,兩種解法

C語言深度解析之一:數據存儲_何以過春秋的博客-CSDN博客

C語言深度解析之六:自定義類型詳解(結構體+枚舉+聯合)_何以過春秋的博客-CSDN博客

總結

以上是生活随笔為你收集整理的C语言笔试经典编程题目(汇总帖)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。