最右2020年春募集筆記試験_C++エンジニア

2387 ワード

最右2020年春募集筆記試験_C++エンジニア
  • 単選題(8個)
  • 簡答題(2個)
  • プログラミング問題(2個)
  • 単選問題(8個)
    1.面接問題は先にスタックに入って、それからスタックの順序によってキューに入って、スタックのスタックの順序を与えて、キューのキューの順序と、スタックの最小容量を求めます
    2.26個の硬貨をあげて、その中の1枚は軽くて、天秤を通るのは何回比較して、やっと軽いものを見つけることができますか?
    3.与えられた小さなスタックのシーケンス、5、8、12、19、28、20、15、22、3を加えた後、小さなスタックのシーケンスを求めますか?
    4.プログラムを与え、結果を出す
    #include <stdio.h> 
    void main() { 
    	char c=256; 
    	int a=c; 
    	printf("%d
    "
    ,a + 1); }

    出力:1注:charタイプ1バイト(BYTE)、8ビット(bit)、c=256のバイナリは10000000と表示され、charは8ビット低いまま、つまり0となるのでa=0、最終出力は1
    5.スレッドとプロセスの違いについて、以下の言い方が正しいのは(AB)A.スレッドは同じプロセスの他のスレッドとデータを共有し、共通変数とメモリを使用する場合、同期機構Bのサブプロセスを使用して親プロセスのすべてのスタックとスタックのデータを得る必要があるため、資源管理と保護に不利であるC.スレッドに比べて、プロセスは単一SMP上で実行するのに適している.一方,スレッドはマシン間で移動できるD.マルチスレッドでは,各サブプロセスに独自のアドレス空間があるため,互いに通信する場合,スレッドはプロセスほど柔軟で便利ではない.
    注意:
  • プロセスは、リソース割り当ての最小単位であり、スレッドはプログラム実行の最小単位である.
  • プロセスには独自の独立したアドレス空間があり、プロセスを開始するたびに、システムはアドレス空間を割り当て、コードセグメント、スタックセグメント、およびデータセグメントを維持するためにデータテーブルを構築します.この操作は非常に高価です.一方,スレッドはプロセス中のデータを共有し,同じアドレス空間を用いるため,CPUが1つのスレッドを切り替えるコストはプロセスよりはるかに小さく,同時に1つのスレッドを作成するコストもプロセスよりはるかに小さい.
  • スレッド間の通信はより便利で、同じプロセスの下のスレッドはグローバル変数、静的変数などのデータを共有し、プロセス間の通信は通信方式(IPC)で行う必要がある.しかし、同期と反発をどのように処理するかは、マルチスレッドプログラムを記述する難点です.
  • しかし、マルチプロセスプログラムはより丈夫で、マルチスレッドプログラムは1つのスレッドが死んでいれば、プロセス全体も死んでしまいますが、1つのプロセスが死んでも別のプロセスに影響を与えません.プロセスには独自のアドレス空間があるからです.

  • 簡単な答え(2つ)
    1.工場モデル、実現するデータ応用?
    2.クライアント-サーバー、大量のデータを処理するには、TCP、メモリオーバーヘッド、CPUとネットワーク帯域幅の最適化戦略を聞く?
    プログラミング問題(2つ)
    1.n日以内の株価を与えて、どのように利益の最大を購入することを求めて、出力:購入日、販売日、差値