成年人在线观看视频免费,国产第2页,人人狠狠综合久久亚洲婷婷,精品伊人久久

我要投稿 投訴建議

華為面試題 c語言

時間:2021-02-06 13:17:23 面試問題 我要投稿

華為面試題 c語言

  華為面試題 c語言(一)

  題目:輸入一個正整數(shù) X,在下面的等式左邊的數(shù)字之間添加+號或者-號,使得等

華為面試題 c語言

  式成立。

  1 2 3 4 5 6 7 8 9 = X

  比如:

  12-34+5-67+89 = 5

  1+23+4-5+6-7-8-9 = 5

  請編寫程序,統(tǒng)計滿足輸入整數(shù)的所有整數(shù)個數(shù)。

  輸入: 正整數(shù),等式右邊的數(shù)字

  輸出: 使該等式成立的個數(shù)

  樣例輸入: 5

  樣例輸出: 21【下面的代碼只輸出了所有的等式,沒有輸出個數(shù)】

  代碼如下:

  #include

  void dfs(int layer, int currentResult, int lastOp, int lastSum);

  const char sym[3] = {'+' , '-' , ' '};

  int ops[21] = {0};

  int result , num;

  void main()

  {

  while (1)

  {

  printf("請輸入等式右邊的值\n");

  scanf("%c",&result);

  printf("\n以下是使等式成立的公式:\n");

  dfs(1,0,0,0);

  }

  return ;

  }

  void dfs(int layer, int currentResult, int lastOp, int lastSum)

  {

  int i;

  lastSum *= (layer > 9) ? 100 : 10;

  lastSum += layer;

  if(layer == 9)

  {

  currentResult += (lastOp) ? (-1 * lastSum) : lastSum;

  if(currentResult == result)

  {

  ++num;

  printf("1");

  for(i = 2 ; i <= 9 ; ++i)

  {

  if(sym[ops[i-1]] != ' ')

  printf(" %c ", sym[ops[i-1]]);

  printf("%d", i);

  }

  printf(" = %d\n" , result);

  }

  return;

  }

  ops[layer] = 2;

  dfs(layer + 1 , currentResult , lastOp , lastSum);

  currentResult += (lastOp)? (-1 * lastSum) : lastSum;

  ops[layer] = 0;

  dfs(layer + 1 , currentResult , 0 , 0);

  ops[layer] = 1;

  dfs(layer + 1 , currentResult , 1 , 0);

  }

  華為面試題 c語言(二)

  一面:

  介紹我的項目,針對我的項目中的點詢問是如何實現(xiàn)的

  Activity生命周期?為什么Activity要這么設(shè)計?這樣設(shè)計有什么好處?

  Android與iOS運行機制上有哪些不同?

  為什么Android用起來沒有iOS流暢?為了讓Android系統(tǒng)更流暢,應(yīng)該從哪些方面做好?

  如何讓Service不被殺死?

  Android系統(tǒng)分層?Library層起什么作用?

  如果一個應(yīng)用要升級需要注意哪些方面?(我回答服務(wù)端api要兼容,如果只是小bug就通過補丁方式,但是貌似面試官不滿意,就引導(dǎo)我說數(shù)據(jù)方面的,我才知道原來是想要我說本地數(shù)據(jù)的兼容)

  問我有什么要問他的?

  還有其他的一些問題,記不太清了….

  二面:

  二面是一個中年男人,一開始很嚴肅,聊了幾句后它就笑嘻嘻了。

  首先叫我介紹自己

  本科在哪讀的(普通二本)

  家里有多少人,是農(nóng)村的還是城市的,家里生活水平怎么樣?

  有沒有女朋友、女朋友是哪里人、女朋友有沒有工作?

  為什么不留武漢(我簡歷填杭州),不留武漢你女朋友同意嗎?

  選一個你收獲最大的項目來談?wù)?(后面就是針對我的項目一直聊~)

  二面大概30分鐘左右,后面說我的'性格測試沒通過,讓我重新再做一次。然而,第二次性格測試還是沒通過,最終我還是因為性格測試沒通過的原因,與華為無緣。。。。

  華為面試題 c語言(三)

  程序的局部變量存在于(堆棧)中,全局變量存 在于(靜態(tài)區(qū) )中,動態(tài)申請數(shù)據(jù)存在于( 堆)中。

  一點小總結(jié):

  1、關(guān)于堆棧,印象最深的就是在做uboot移植,在你準(zhǔn)備進入c代碼時 ,你必須給c代碼一個良好的運行環(huán)境,其中重要的一項就是設(shè)置堆棧。

  2、關(guān)于靜態(tài)內(nèi)存分配和動態(tài)內(nèi)存分配的區(qū)別及過程

  1) 靜態(tài)內(nèi)存 分配是在編譯時完成的,不需要占用CPU資源;動態(tài)分配內(nèi)存是在運行時完成的 ,動態(tài)內(nèi)存的分配與釋放需要占用CPU資源;

  2) 靜態(tài)內(nèi)存分配是在棧上 分配的,動態(tài)內(nèi)存是堆上分配的;

  3) 動態(tài)內(nèi)存分配需要指針或引用數(shù)據(jù) 類型的支持,而靜態(tài)內(nèi)存分配不需要;

  4) 靜態(tài)分配內(nèi)存需要在編譯前確 定內(nèi)存塊的大小,而動態(tài)分配內(nèi)存不需要編譯前確定內(nèi)存大小,根據(jù)運行時環(huán)境 確定需要的內(nèi)存塊大小,按照需要分配內(nèi)存即可?梢赃@么說,靜態(tài)內(nèi)存分配是 按計劃分配,而動態(tài)內(nèi)存分配是按需分配。

  5) 靜態(tài)分配內(nèi)存是把內(nèi)存的 控制權(quán)交給了編譯器,而動態(tài)內(nèi)存是把內(nèi)存的控制權(quán)交給了程序員;

  綜 上所述,靜態(tài)分配內(nèi)存適合于編譯時就已經(jīng)可以確定需要占用內(nèi)存多少的情況, 而在編譯時不能確定內(nèi)存需求量時可使用動態(tài)分配內(nèi)存;但靜態(tài)分配內(nèi)存的運行 效率要比動態(tài)分配內(nèi)存的效率要高,因為動態(tài)內(nèi)存分配與釋放需要額外的開銷; 動態(tài)內(nèi)存管理水平嚴重依賴于程序員的水平,如果處理不當(dāng)容易造成內(nèi)存泄漏。

  華為面試題 c語言(四)

  如何引用一個已經(jīng)定義過的全局變量?

  答:extern

  可以用引用頭文件的方式,也可以用extern關(guān)鍵字,如果用引用頭文件方式來引用某個在頭文件中聲明的全局變理,假定你將那個變量寫錯了,那么在編譯期間會報錯,如果你用extern方式引用時,假定你犯了同樣的錯誤,那么在編譯期間不會報錯,而在連接期間報錯。

  此外,extern修飾符可用于指示C或者C++函數(shù)的調(diào)用規(guī)范。比如在C++中調(diào)用C庫函數(shù),就需要在C++程序中用extern “C”聲明要引用的函數(shù)。這是給鏈接器用的,告訴鏈接器在鏈接的時候用C函數(shù)規(guī)范來鏈接。主要原因是C++和C程序編譯完成后在目標(biāo)代碼中命名規(guī)則不同

  1.extern用在變量聲明中常常有這樣一個作用,你在*.c文件中聲明了一個全局的變量,這個全局的變量如果要被引用,就放在*.h中并用extern來聲明。

  2.如果函數(shù)的聲明中帶有關(guān)鍵字extern,僅僅是暗示這個函數(shù)可能在別的源文件里定義,沒有其它作用。即下述兩個函數(shù)聲明沒有區(qū)別:

  extern void print_externifo(); 和voidprint_externifo();

  extern在 函數(shù)中的使用:

  如果定義函數(shù)的c/cpp文件在對應(yīng)的頭文件中聲明了定義的函數(shù),那么在其他c/cpp文件中要使用這些函數(shù),只需要包含這個頭文件即可。

  如果你不想包含頭文件,那么在c/cpp中聲明該函數(shù)。一般來說,聲明定義在本文件的函數(shù)不用“extern”,聲明定義在其他文件中的函數(shù)用“extern”,這樣在本文件中調(diào)用別的文件定義的函數(shù)就不用包含頭文件include“*.h”來聲明函數(shù),聲明后直接使用即可。

  舉個例子:

  #vimprint_extern.c #include extern void print_extern()//這里用不用extern都可以 { printf("helloextern test!!\n"); } #vim extern_test.c #include extern void print_extern();//其實這里用不用extern都是可以的 main() { print_extern(); }

  編譯:

  #gcc –c print_extern.c –o print_extern.o #gcc print_extern.o extern_test.c –o extern_test #./extern_test

【華為面試題 c語言】相關(guān)文章:

華為公司面試題04-29

華為C++筆試題05-20

經(jīng)典c++面試題06-03

華為的Java面試題及答案11-22

華為面試參考面試題答案11-12

有趣的C語言筆試題06-09

C語言的論文致謝詞01-09

C語言論文致謝11-25

C語言學(xué)習(xí)社會實踐報告12-09

關(guān)于C語言游戲開發(fā)筆試題06-19