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