ソフトウェア企業は、優れたプログラミングの才能を常に探し求めており、電話やオンラインの面接では、わずか数分で運命が決まることがよくあります。
優れたプログラマーは、システムの理解から一般的なプログラミング、さまざまな概念、テクノロジーに至るまで、可能な限り多才である必要があります。
以下は、プログラミング面接の質問トップ 50 とその回答のリストです。 すべての初心者が優れた能力を発揮するために知っておくべきさまざまな概念に光を当てます。
1. コンピュータ プログラミングとは
コンピュータプログラミングは、コンピュータによって実行される論理プロセスをエンコードするプロセスです。 これは、必要な指示を含むコンピューター言語を使用して実現されます。
このプロセスは、設計、コーディング、デバッグ、および更新にさらに分けることができます。
2. デバッグとは?
デバッグは、コンピューター プログラムのソフトウェア ソースのエラーを検出して排除するプロセスです。 これには多くの方法がありますが、ほとんどの開発環境には、作業を容易にする統合デバッガーが付属しています。
3. コンパイラとは?
コンパイラは、書かれたプログラムを受け取り、コンピュータが理解できる機械語に変換するソフトウェア プログラムです。
ただし、一般的なコンパイラ パッケージは、プリプロセッサ、コンピュータ言語をアセンブリ コードに変換するメイン コンパイラ、およびアセンブラで構成されます。
4. プリプロセッサとは何ですか?
プリプロセッサは、書かれたコンピュータ コードを分析して、必要なライブラリなどの依存関係を見つけて満たすプログラムです。
プリプロセッサが実行環境を含むすべてに問題がないことを確認した後、コンパイラはコードをアセンブリ コードに変換できます。
5. アセンブラとは?
アセンブラーは、アセンブリ言語と呼ばれる人間が読めるコンピューター コードの最低レベルを取り、それをコンピューターが操作できるマシン コードに変換するプログラムです。
アセンブリ言語は通常、コンパイラによって出力されますが、直接コーディングすることもできます。 アセンブリ プログラムには、次のようなコードが含まれる場合があります。
MOV ああ、02H
しかし、それを機械語にコンパイルすると、0110011110101010 と XNUMX しか得られません (例: XNUMX)。
6. プログラムはどのように実行されますか?
まず、オペレーティング システムは、指定されたプログラムをハード ディスク ストレージからシステム メモリ (RAM) にロードし、プログラムの最初のメモリ アドレスから実行を継続するように CPU に指示することによって、そのプログラムを実行できるようにします。 CPU は認識したコマンドを実行し、次のコマンドに移動します。多くの場合、この手順は XNUMX 秒間に何百万回も繰り返されます。
32 ビット CPU は 32 ビット (4 バイト、ダブルワード) 命令を一度に実行しますが、64 ビット CPU は 64 ビット (8 バイト、クワッドワード) 命令を一度に実行します。 これらの命令は CPU に組み込まれており、プログラミング コードをネイティブ CPU コマンド アドレスを表す XNUMX 進数に変換するのはアセンブラです。
7.を定義します サブルーチン
サブルーチンは、いつでも呼び出して実行できるプログラム内の一連の命令です。 つまり、サブルーチンは、電子メールの送信、ファイルのオープン、ログイン ページのブルート フォース攻撃などの特定のタスクを実装するために使用される関数、メソッド、またはプロシージャである可能性があります。
8.定義する 機械コード
マシン コードは、特定のマイクロプロセッサの実行命令とそれに関連するメモリ アドレスを保持する一連の XNUMX 進数です。
マシンコードは伝統的に、特定のマイクロプロセッサファミリ用に設計されたアセンブラによって出力されます。
9.説明する コンパイルされた言語と解釈された言語
コンパイルされたコンピューター言語は、コンピューターで実行される前に機械語に変換する必要がありますが、インタープリター言語は事前のコンパイルを必要としません。
解釈されたプログラムを実行すると、最初にインタープリターによって処理され、次にその場でコンパイルおよび実行されます。 これらの余分な手順により、Python などのインタープリター言語は、C などのコンパイル済み言語よりも遅くなります。
10. ループとは何ですか?
ループは、指定された基準が達成されるまで特定のステートメントを繰り返すことができるコード構造です。 この基準には、固定回数の反復または定義済み変数の変更を含めることができます。
11. 一般的なタイプのループを列挙する
コンピューター言語が異なれば、ループの解釈方法も異なります。 ただし、一般的な C ファミリのループ タイプには次のものがあります。
- While() ループ – ブール値である限り、特定のコードの実行を許可します その間() 条件が満たされています。
例えば、 while(2>1){print(“yahoo!”)};. - For(;;) ループ – XNUMX つの式 (初期化; 評価; アップデート) をテストする条件と、カウントをインクリメントする柔軟な方法を定義します。 また、コードを少なくとも XNUMX 回実行します。
- Do{} While() ループ – このタイプのループは、 行う{} かどうかを判断する前に、少なくとも XNUMX 回コーディングします。 その間() 条件はまだ真です。
12.反復と反復の説明 再帰
反復はループを使用して同じコードステップを実行することであり、再帰は関数が何度も自分自身を呼び出すプロセスです。 ただし、再帰の問題は、メモリの問題が発生するまで特定の深さにしか到達できないことです。
13. の仕事を説明する ブレイク アンド コンティニュー ループで
A 破る ステートメントはループの実行を終了し、残りのコンピューター コードの実行を継続します。 あ 続ける 一方、ステートメントはループを最初から繰り返します。
14. OOP とは何ですか?
OOP は Object Oriented Programming の略で、関数やプロシージャではなく、データやオブジェクトにソフトウェア設計を実装するプログラミング パラダイムです。
15. 手続き型プログラミングとは?
手続き型プログラミングは、実行される命令のシーケンスまたはステップを中心にコンピューター コードを編成するプログラミング パラダイムです。 名前が示すように、これは、イベントの初期段階からコードを開始し、予想されるイベントの終了で終了するトップダウン アプローチです。
16. 関数型プログラミングの説明
関数型プログラミングは、提供された引数の状態もデータも変更しない順次関数を適用することによってソフトウェア開発にアプローチするコンピューター プログラミング パラダイムです。
目標は、予期しない副作用なしで期待される結果を生成する、より堅牢なプログラムを作成することです。
17.説明する 高水準言語
高水準プログラミング言語は、コンピューターの詳細や性質よりも人間の理解に訴えるコンピューター言語です。
C や Python などの高レベルのプログラミング言語は理解しやすいですが、低レベルのアセンブリ言語は初心者にとって非常に混乱する可能性があります。
18.人気のリスト 低水準言語
低レベルのプログラミング言語は、アセンブリとマシン コードの XNUMX つだけです。
19. SQL インジェクション攻撃を定義する
SQL インジェクション攻撃は、開発者がプログラミング中に入力を適切にサニタイズしないことを期待して、ユーザー名やアドレス入力などの入力フィールドに SQL ステートメントを入力するプロセスです。 そして、このような攻撃が成功すると、攻撃者はサーバーへの管理者アクセスを取得できます。
20. SQL のテーブルとは何ですか?
SQL のテーブルは、列と行にグループ化されたデータのコレクションを指します。 各列には個別のデータ型があり、単一のデータベースに複数のテーブルを含めることができます。 一度に複数のテーブルをクエリすることもできます。
以下を使用してテーブルを作成します。
CREATE TABLE table_name(column1 データ型、column2 データ型、column3 データ型、…);
21. オブジェクトとクラスの違いを説明する
オブジェクトはクラスのインスタンスですが、クラスはオブジェクトの作成元となる設計図です。 オブジェクトは、色、高さ、重さ、速度などの状態とプロパティを持つことができます。
これらのプロパティは、少なくともデフォルト値で定義または初期化する必要があります。
22. XNUMX メガバイトは何ビットですか?
8,000,000 バイトは 1 ビット、8 メガは 10 であるため、XNUMX メガバイトには XNUMX ビットがあります。6.
23. float データ型を定義する
float は、小数を含む数値を表すデータ型です。 標準の整数よりも高いレベルの精度が必要な場合に使用されます。 フロートの例は次のとおりです。
0.013
or
25.932
24. HexaDecimal 0xFF は何の略ですか?
0xFF は 255 進数 11111111 またはバイナリ 0 を表します。16x は base1 または 9 進数表記を表し、15 から 0 まで続き、A から F で 15 を表します。したがって、0xF は 255 進数の XNUMX であり、XNUMXxFF は XNUMX 進数の XNUMX です。
25. 名前 プログラミングにおけるエラーの種類
コンピュータ プログラムには、主に次の 3 種類のエラーがあります。
- 構文エラー
- 論理エラー
- ランタイムエラー
26. 構文エラーとは?
構文エラーは、プログラミング言語の厳密な構文から逸脱している場合に発生します。 これは、関数に渡される間違ったパラメーターへの単純な文字の配置ミスが原因である可能性があります。 ほとんどのコンパイラには、エラーが発生したソース コードの行番号が含まれます。
27. 論理エラーとは?
論理エラーは、プログラムの動作に起因するエラーです。 そのため、プログラムは問題なく実行されるかもしれませんが、その目的を達成することはできません。 論理エラーはさまざまな方法で発生し、さまざまな理由で発生します。
28. ランタイム エラーとは何ですか?
ランタイム エラーは、プログラムの実行中に予期しない状況によって発生するコンピュータ プログラム エラーです。 そのため、たとえば、プログラムは問題なく動作しますが、メモリやネットワークの問題によってプログラムが誤動作する可能性があります。
29.説明する 強力な言語と弱い型付けの言語
厳密に型付けされた言語は、さまざまなデータ型とそれらを変換する方法について厳密ですが、弱く型付けされた言語は、データ型とその定義に対する制限が少なくなります。
多くの弱く型付けされた言語はデータ型を自動的に変換しますが、強く型付けされた言語はしばしば明示的な変換を必要とします。
30. MVC アーキテクチャとは?
MVC は Model-View-Controller を指し、ユーザー インターフェイスのソフトウェア開発パターンです。 プログラムロジックを3つの部分に分けます。
Sony Pregius S IMXXNUMX CMOS センサーを搭載した モデル 部分は、問題のオブジェクトの基礎となるデータ ロジックを処理します。 ビュー ユーザーへの情報の表示を処理し、 コントローラ ビューとモデル間のデータの流れを処理します。 MVC 設計は、オブジェクト指向プログラミングでよく使用されます。
31. を定義する アルゴリズム
アルゴリズムは、特定の問題を解決するために設計された一連の手順です。 これらの手順は通常、より小さなステップに分割され、コンピューターは毎回正確にそれらを実行します。
アルゴリズムの例には、顔認識、Google 検索、靴の結び方、データのエンコードまたは暗号化などがあります。
32。 何ですか 機械学習?
機械学習または ML は、システムがパターンを識別し、データの消費を通じて独自に決定を下すのを支援することに焦点を当てた人工知能のセクションです。
これにより、パフォーマンスまたは効率が向上します。 機械学習システムは、教師あり、教師なし、および強化ベースにすることができます。
33。 なに 正規表現?
正規表現または Regex は、テキスト ドキュメントで検索パターンを定義するために使用される文字列です。 さまざまなプログラミング言語が正規表現を実装しているか、一般的な正規表現ライブラリを使用しています。 テキスト内のすべての文字に一致する正規表現の例は次のとおりです。
(。*)
以下は mp3 ファイルのみに一致します。
.+\.(mp3)$
34. モジュラス (%) 演算子は何をしますか?
モジュラス演算子 % XNUMX つのオペランドを取り、XNUMX 番目のオペランドを使用して最初のオペランドを除算します。 次に、操作の残りを結果として返します。
これは、任意の整数を 2 で割って奇数と偶数をテストするためによく使用されます。0 の結果は偶数を意味し、1 は奇数を意味します。
35.説明する プロセスフォーク
フォークは フォーク() 実行中のプロセスがそれ自体のコピーを作成するために使用できる Unix および Linux システムの機能。 したがって、プロセスの分岐とは、プロセスを複製して、XNUMX つの類似した同時に実行されるプロセスを作成することです。
分岐のもう XNUMX つのタイプは、オープンソース プロジェクトのソース コードを取得し、そこからまったく新しいプログラムを作成することです。
36.説明する スレッドスポーン
スレッド生成は、プロセスを実行するための新しい CPU スレッドを作成するプロセスです。 スポーンは、プロセッサのマルチスレッド機能を活用するために計算集約型プログラムでよく使用されます。その成功は、実行中の CPU、コア数、および提供されるコアあたりのスレッド数に依存します。
37.何をしますか 予約語 平均?
予約語は、プログラミング言語で識別子として使用することを許可されていない用語です。 これには、関数、変数、およびラベルが含まれます。 それらはすでに定義されており、特定の意味を持っているため、予約されています。
38. よく使われる予約語を列挙する
言語によって、構文に基づいた予約語が異なります。 プログラミングで最も一般的な予約語は次のとおりです。
- IF
- TRUE
- 間違った情報
- SWITCH
- ELSE
- HOUSES
- ブーリアン
- リターン
- FUNCTION
- 休憩
- GOTO
39. 文字列とは?
文字列は一連の文字であり、多くの場合配列に保持され、テキスト データの定義に使用されます。 最も人気のある文字列は「hello world」です。
40. 変数とは?
変数は、プログラムの実行中に変化する可能性のある値です。 変数は、文字列や整数を含む任意のデータ型にすることができます。 たとえば、プログラムは次のように初期化されます。
int a = 0;
int b = 1;
その後、実行中に変更が行われます。
b = a+b; //b が変化した
41.定数とは何ですか?
定数は、プログラムの実行中に変更されることが想定されていない変数です。 良い例は、光や音の速度です。 プログラミング言語が異なれば、さまざまな方法で定数を定義できます。 たとえば、C では次のようになります。
const float middle_c = 261.62; //ピアノの中央のキー c は 261.6255 Hz です
42.配列を定義する
配列は、一度に複数の値を格納するために使用される変数の一種です。 多くの言語では、同様のデータ型の値のみを格納できますが、他の言語では異なる型の配列を処理できます。 配列の配列であり、乱雑になる可能性がある多次元配列を使用することもできます。
MQL4 で配列を定義するのは簡単です:
文字列 TextArray[100]; //XNUMX 個の文字列の配列
43。 何ですか 関数オーバーロード?
関数のオーバーロードは、開発者が同じ名前を共有するが異なる機能を持つ複数の関数を定義できるようにする方法です。 これは、異なる引数を持つ異なる関数バージョンを作成することによって実現されます。 コンパイラは、指定された引数の型と数によって必要な関数を認識します。
44.を定義します 参照渡し
参照による呼び出しは、引数の値のコピーを渡す標準的な方法とは対照的に、引数のメモリ アドレスを関数に渡す方法です。 参照呼び出しの目的は、引数が関数によって直接変更されることです。
45.説明する 算術演算子
これらは、プログラミング言語で算術演算を実行するために機能する特殊文字です。 算術演算子には次のものがあります。
- 加算または単項プラス (+)
- 減算または単項マイナス (-)
- 乗算 (*)
- 分割 (/)
- 係数 (%)。
46.説明する 論理演算子
論理演算子は、条件付きロジックに基づいて操作を実行するために使用される単語または記号です。 ほとんどの言語には、論理演算子が 3 つしかありません。
- そして (C、C++、JavaScript では &&)
- OR (|| C、C++、JavaScript)
- NOT (C、C++、JavaScript では!)
47. 論理 1 AND 0 =?
論理 1 AND 0 演算により、 false 0 番目のオペランドが 1 であり、正の出力を得るには、AND 演算の両方のオペランドを XNUMX または TRUE にする必要があるためです。
48. 論理否定 1 =?
論理 NOT 1 演算により、 false NOT 演算子は、指定したすべてを否定するため、1 を 0 に、0 を 1 に変換します。したがって、1 または TRUE オペランドを指定すると、0 または FALSE になります。
49. 論理 1 NAND 1 =?
論理 1 の NAND 1 操作は、 false 両方のオペランドが TRUE であり、NAND 演算子は常に XNUMX つの同様の入力を否定して反対の出力を生成するためです。
したがって、操作が 0 ナンド 0, 出力は 1 または TRUE になります。
50. 論理 1 XOR 1 =?
論理 1 XOR 1 演算は、 false 通常の OR 演算では、どちらかまたは両方の入力が TRUE の場合に TRUE が生成されますが、XOR (排他的 OR) 演算では、一方の入力のみが TRUE で他方が TRUE でない場合にのみ TRUE が生成されるためです。
結論
このトップ 50 の必見のプログラミング インタビューの質問とその回答のリストの最後に到達しました。 ご覧のとおり、プログラミングの世界は広大ですが、刺激的です。
同じインタビューは XNUMX つとありません。 したがって、このリストは適切なトピックの方向性を示していますが、各問題をよりよく理解するよう努める必要もあります.