雜題 一些程式基礎的小題目

2021-04-21 21:02:39 字數 1005 閱讀 5936

這些是以前面試過或者是看過的程式題目,現在先記下來,以後翻翻。

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...