幾道面試題

2021-05-27 22:20:38 字數 1697 閱讀 7087

1)下列程式片段執行時間排序

**1:

for(uint i = 0;i<1024;++i)

char* url = (char*)malloc(4096);

memset(url,0x0,4096);

free(url);

**2:

for(uint i = 0;i<1024;++i)

**3:

char* url = (char*)malloc(4096);    

for(uint i = 0;i<1024;++i)

free(url);

**4:

for(uint i = 0;i<10*1024;++i)

給出你認為的**耗時排序?

2)寫出下面**所犯的錯誤,並指出這種錯誤導致的後果

void to_upper(char* s,char* buffer)

buffer =(char*)malloc((strlen(s)+1)*sizeof(char));

memset(buffer,0x0,strlen(s)+1);

for(uint32_t i = strlen(s)-1;i>=0;--i) 

unsigned char t = s[i] - 'a';

buffer[i] = s[i] +('a'-'a')*(t<='z'-'a'?1:0);

int main(void)

char string = "123 , goodmorning  

4)下面兩個結構體定義中,為什麼第二個結構體要加乙個padding,這有什麼好處?

struct s_nopadding;

struct s_withpadding;

5) 第三題中的結構體中,如果定義s_nopadding t[1024];,則sizeof(t)是1024*3還是1024*4?

6)請問下面這段**這樣寫的好處?

typedef void(*pattern_fun)(uint32_t* code,uint32_t* data,size_t n);

pattern_fun pack=;

void pack0(uint32_t* code,uint32_t* data,size_t n) //pack1,pack2,pack3均類似,直接返回。

return;

int main

***x                       //一些初始化code,data,n的**

for(int i = 0;i<4096;++i)

pack[i%4](code,data,n);

***x               // 一些後續**

7)什麼是穩定的排序,舉乙個使用穩定排序的例子?

8)如果設計乙個快表,你會從哪些方面考慮,並給出你的設計?

9)分享乙個你感興趣的領域或者技術,並通過專研達到了某種技術高度。

10) 現代作業系統位址的單位是什麼?

下列**有什麼用處?

#define packet uint32_t   //packet表示一種資料封裝的型別,可以是整形

char* char_ptr = null;  

for (char_ptr = str; ((unsigned long int) char_ptr  & (sizeof (packet) - 1)) != 0; ++char_ptr)

幾道面試題

系統呼叫與函式的區別 從程式完成的功能來看,函式庫提供的函式通常是不需要作業系統的服務,函式是在使用者空間內執行的,除非函式涉及到i o操作等,一般是不會切到核心態的。系統呼叫是要求作業系統為使用者提供程序,提供某種服務,通常是涉及系統的硬體資源和一些敏感的軟體資源等。函式庫的函式,尤其與輸入輸出相...

幾道面試題

q 您在什麼情況下會用到虛方法?它與介面有什麼不同?q override與過載有什麼區別?q 值型別與引用型別有什麼區別?q 怎樣理解靜態變數?q 向伺服器傳送請求有幾種方式?q datareader與dataset有什麼區別?q 用.net做b s結構的系統,您是用幾層結構來開發,每一層之間的關係...

幾道面試題

1 hashtable和hashmap的區別?hashtable 執行緒安全,效率低。不允許null鍵和null值 hashmap 執行緒不安全,效率高。允許null鍵和null值 2 list,set,map等介面是否都繼承子map介面?list,set不是繼承自map介面,它們繼承自collec...