這些是以前面試過或者是看過的程式題目,現在先記下來,以後翻翻。
1、十進位制數n轉二進位制
(1)、每次和1按位與(n&1),n >> 1
(2)、c++中用bitset:bitsetbs(n);
2、n的二進位制有幾個1
count = 0;
while( n = n&(n-1) ) /* 每次少乙個1 */
count++;
關於指標的題目。
(1)、char s = "abcdefghijk";
char e = *(char*) ( (int*)(&s[3]) + 1);
問e的值
(2)、char s = "abcd";
short int h = *(short int *)s;
問h的值(注意是little endian的cpu)
3、void trimspace(char *s) 功能是:去掉字串s中多餘的空格,要實現這個函式
(下面是參考stl中unique的實現而來,原理嘛,上機試試就知道了)
void trimspace(char *s)
++curr;
s[curr - s] = '/0';
}4、用乙個位元組的額外空間,迴圈右移字串。(時間上限為o(n))
voie rotate(char *s, int len, int m) /* 將長為len的串迴圈右移m位 (m 小於 n)*/
方法:比如原串為 a = "a1a2a3...anb1b2b3...bm"(1,2,3...m,n是下標哈) m+n = len
現為了變為b = "b1b2b3..bma1a2a3...an"
如下:(1)、將a1a2a3..an倒過來變成 c = "an...a3a2a1b1b2b3...bm"
(2)、將c串中的b1b2b3...bm也倒過來,變成d="an...a3a2a1bm...b3b2b1"
(3)、將d串整體倒置即得所求:e = "b1b2b3...bma1a2a3...an"
一些面試小題目 12小球
現有12個小球,它們外形一模一樣,但其中乙個小球與其他11個小球的重量不相同 現有12個小球,它們外形一模一樣,但其中乙個小球與其他11個小球的重量不相同現在有個沒砝碼的天平,問怎樣在3次之內利用這個天平把小球找出來?分三組 每組四個,第一組編號1 4,第二組5 8,第三組9 12.第一次稱 天平左...
一些c c 小題目的總結1
1 一般賦值語句的概念和方法。求下程式輸出 include int main 這裡主要是想總結 按位與和邏輯與的區別。答案 x 4 x 1 x 4 x 1 x 4 x 1 2 i 和 i的區別 閱讀 寫輸出 include int main i是先自加,再用,i 先用再自加。i效率較i 高一些。答案...
原型的乙個小題目
題目要求 建立乙個shape物件,該物件有乙個type屬性和gettype 方法 定義乙個原型為shape的 建構函式,用 建立的物件應有三個物件屬性 a b c,分別用於表示三角形的三條邊 在物件原型中新增乙個名為getperimeter 的新方法,用下面的 來進行測試 var t new 1,2...