精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

我要投稿 投訴建議

華為面試題 c語(yǔ)言

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

華為面試題 c語(yǔ)言

  華為面試題 c語(yǔ)言(一)

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

華為面試題 c語(yǔ)言

  式成立。

  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

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

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

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

  樣例輸入: 5

  樣例輸出: 21【下面的代碼只輸出了所有的等式,沒有輸出個(gè)數(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("請(qǐng)輸入等式右邊的值\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語(yǔ)言(二)

  一面:

  介紹我的項(xiàng)目,針對(duì)我的項(xiàng)目中的點(diǎn)詢問是如何實(shí)現(xiàn)的

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

  Android與iOS運(yùn)行機(jī)制上有哪些不同?

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

  如何讓Service不被殺死?

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

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

  問我有什么要問他的?

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

  二面:

  二面是一個(gè)中年男人,一開始很嚴(yán)肅,聊了幾句后它就笑嘻嘻了。

  首先叫我介紹自己

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

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

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

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

  選一個(gè)你收獲最大的項(xiàng)目來(lái)談?wù)?(后面就是針對(duì)我的項(xiàng)目一直聊~)

  二面大概30分鐘左右,后面說我的'性格測(cè)試沒通過,讓我重新再做一次。然而,第二次性格測(cè)試還是沒通過,最終我還是因?yàn)樾愿駵y(cè)試沒通過的原因,與華為無(wú)緣。。。。

  華為面試題 c語(yǔ)言(三)

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

  一點(diǎn)小總結(jié):

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

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

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

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

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

  4) 靜態(tài)分配內(nèi)存需要在編譯前確 定內(nèi)存塊的大小,而動(dòng)態(tài)分配內(nèi)存不需要編譯前確定內(nèi)存大小,根據(jù)運(yùn)行時(shí)環(huán)境 確定需要的內(nèi)存塊大小,按照需要分配內(nèi)存即可。可以這么說,靜態(tài)內(nèi)存分配是 按計(jì)劃分配,而動(dòng)態(tài)內(nèi)存分配是按需分配。

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

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

  華為面試題 c語(yǔ)言(四)

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

  答:extern

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

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

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

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

  extern void print_externifo(); 和voidprint_externifo();

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

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

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

  舉個(gè)例子:

  #vimprint_extern.c #include extern void print_extern()//這里用不用extern都可以 { printf("helloextern test!!\n"); } #vim extern_test.c #include extern void print_extern();//其實(shí)這里用不用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語(yǔ)言】相關(guān)文章:

華為公司面試題04-29

華為C++筆試題05-20

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

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

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

有趣的C語(yǔ)言筆試題06-09

C語(yǔ)言的論文致謝詞01-09

C語(yǔ)言論文致謝11-25

C語(yǔ)言學(xué)習(xí)社會(huì)實(shí)踐報(bào)告12-09

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