top 40 c programming interview questions
最もよく聞かれるCプログラミングインタビューの質問と回答:
Cプログラミング言語は、1969年から1973年の間にベル研究所のデニスリッチーによって開発されました。彼はこの新しいプログラミング言語を使用して、UNIXオペレーティングシステムを再実装します。
Cは、汎用プログラミング要件に使用される高水準構造化指向プログラミング言語です。基本的に、Cはそのライブラリ関数のコレクションです。また、ユーザー定義関数を追加して、それらをCライブラリに含めることも柔軟です。
Cプログラミング言語の主な用途には、言語コンパイラ、オペレーティングシステム、アセンブラ、テキストエディタ、プリントスプーラ、ネットワークドライバ、最新のプログラム、データベース、言語インタプリタ、およびユーティリティが含まれます。
最も一般的なCプログラミングインタビューの質問
さあ。
Q#1)Cプログラミング言語の主な機能は何ですか?
回答:機能は次のとおりです。
- 移植性 :プラットフォームに依存しない言語です。
- モジュール性: 大きなプログラムを小さなモジュールに分割する可能性。
- 柔軟性: プログラマーが言語を制御する可能性。
- 速度: Cはシステムプログラミングをサポートしているため、他の高級言語と比較して高速でコンパイルおよび実行されます。
- 拡張性 :プログラマーによる新機能の追加の可能性。
Q#2)Cに関連する基本的なデータ型は何ですか?
回答:
- Int – 数値を表す(整数)
- 浮く - 小数部のある番号。
- ダブル– 倍精度浮動小数点値
- Char- 1文字
- 無効– 値のない特殊用途タイプ。
Q#3)構文エラーの説明は何ですか?
回答: プログラムの作成中に発生する間違い/エラーは、構文エラーと呼ばれます。スペルミスのあるコマンドまたは誤ったcaseコマンド、メソッド/関数の呼び出しにおける誤った数のパラメーター、データ型の不一致は、構文エラーの一般的な例として識別できます。
Q#4)Cでインクリメントおよびデクリメントステートメントを作成するプロセスは何ですか?
回答: このタスクを実行するには、2つの方法があります。
- インクリメント(++)およびデクリメント(-)演算子を使用します。
例 x = 4の場合、x ++は5を返し、x-は3を返します。
- 従来の+または–記号を使用します。
例 x = 4の場合、x + 1を使用して5を取得し、x-1を使用して3を取得します。
Q#5)プログラミング言語で予約語とは何ですか?
回答: 標準C言語ライブラリの一部である単語は、 予約語 。これらの予約語には特別な意味があり、意図した機能以外のアクティビティに使用することはできません。
例: void、intを返します。
Q#6)Cのダングリングポインタの説明は何ですか?
回答: 任意の変数のメモリアドレスを指すポインタがあるが、しばらくしてその場所を指すポインタを保持したまま変数がメモリ位置から削除された場合、Cではダングリングポインタと呼ばれます。
Q#7)静的関数とその使用法を説明してください。
回答: 関数定義の前にstaticキーワードが付いている関数は、静的関数として定義されます。静的関数は、同じソースコード内で呼び出す必要があります。
Q#8)abs()関数とfabs()関数の違いは何ですか?
回答: どちらの関数も絶対値を取得するためのものです。 abs()は整数値用で、fabs()は浮動型数値用です。 abs()のプロトタイプはライブラリファイルの下にあり、fabs()はの下にあります。
Q#9)Cでワイルドポインタについて説明してください。
回答: Cコードの初期化されていないポインタは、 ワイルドポインター 。それらは任意のメモリ位置を指し、プログラムの動作不良やプログラムのクラッシュを引き起こす可能性があります。
Q#10)++ aとa ++の違いは何ですか?
回答: 「++ a」は接頭辞付きインクリメントと呼ばれ、インクリメントは最初に変数で発生します。 「a ++」は接尾辞インクリメントと呼ばれ、インクリメントは操作に使用される変数の値の後に発生します。
Q#11)Cプログラミングの=記号と==記号の違いを説明してください。
回答: ‘==’は、左側の値または式を右側の値または式と比較するために使用される比較演算子です。
「=」は、右側の値を左側の変数に割り当てるために使用される代入演算子です。
Q#12)Cのプロトタイプ関数の説明は何ですか?
xmlファイルとは何ですか?どのように開くのですか?
回答: プロトタイプ関数は、コンパイラへの次の情報を含む関数の宣言です。
- 関数の名前。
- 関数の戻り値の型。
- 関数のパラメータリスト。
この例では、関数の名前はSumであり、戻り値の型は整数データ型であり、2つの整数パラメーターを受け入れます。
Q#13)Cのデータ型の循環的な性質の説明は何ですか?
回答: 開発者がデータ型の範囲を超える値を割り当てる場合、Cの一部のデータ型には特別な特性があります。コンパイラエラーは発生せず、値は循環順序に従って変化します。これは循環性と呼ばれます。 Char、int、longintデータ型にはこのプロパティがあります。さらに、float、double、およびlong doubleデータ型には、このプロパティがありません。
Q#14)ヘッダーファイルとCプログラミングでの使用法を説明してください。
回答: プログラムで使用されている関数の定義とプロトタイプを含むファイルは、ヘッダーファイルと呼ばれます。ライブラリファイルとも呼ばれます。
例: ヘッダーファイルにはprintfなどのコマンドが含まれており、scanfはstdio.hライブラリファイルからのものです。
Q#15)デバッグ時に削除するよりも、コメントシンボルにいくつかのコードブロックを保持するコーディングの慣習があります。これはデバッグ時にどのように影響しますか?
回答: この概念はコメントアウトと呼ばれ、これはエラーの考えられる理由をスキャンするコードの一部を分離する方法です。また、この概念は、コードが問題の理由でない場合はコメントから簡単に削除できるため、時間を節約するのに役立ちます。
Q#16)Cでループステートメントと使用可能なループタイプの一般的な説明は何ですか?
回答: ステートメントまたはステートメントのグループを繰り返し実行できるステートメントは、ループとして定義されます。
次の図は、ループの一般的な形式を説明しています。
Cには4種類のループステートメントがあります。
- whileループ
- Forループ
- Do…WhileLoop
- ネストされたループ
Q#17)ネストされたループとは何ですか?
回答: 別のループ内で実行されるループは、 ネストされたループ 。最初のループは外側のループと呼ばれ、内側のループは内側のループと呼ばれます。内側のループは、外側のループで定義された回数だけ実行されます。
Q#18)Cの関数の一般的な形式は何ですか?
回答: Cの関数定義には、4つの主要なセクションが含まれています。
return_type function_name( parameter list ) { body of the function }
- 戻り値の型 :関数の戻り値のデータ型。
- 関数名: 関数の名前。関数のアクティビティを説明する意味のある名前を付けることが重要です。
- パラメーター :必要なアクションを実行するために使用される関数の入力値。
- 機能本体 :必要なアクションを実行するステートメントのコレクション。
Q#19)Cプログラミング言語のポインター上のポインターとは何ですか?
回答: 別のポインター変数のアドレスを含むポインター変数は、ポインター上のポインターと呼ばれます。この概念は、ポインター変数によって保持されているデータを指すために2回逆参照します。
この例では、** yは変数aの値を返します。
Q#20)キーワード「Break」を使用できる有効な場所はどこですか?
回答: Breakキーワードの目的は、実行中のコードブロックからコントロールを引き出すことです。ループステートメントまたはswitchステートメントにのみ表示されます。
Q#21)ヘッダーファイルが二重引用符( '')と中括弧()で囲まれている場合の動作の違いは何ですか?
回答: ヘッダーファイルが二重引用符(“”)で囲まれている場合、コンパイラは最初に作業ディレクトリで特定のヘッダーファイルを検索します。見つからない場合は、インクルードパスでファイルを検索します。ただし、ヘッダーファイルが中括弧()で囲まれている場合、コンパイラは作業ディレクトリで特定のヘッダーファイルのみを検索します。
Q#22)シーケンシャルアクセスファイルとは何ですか?
回答: 一般的なプログラムは、データをファイルに保存し、ファイルから既存のデータを取得します。シーケンシャルアクセスファイルでは、このようなデータはシーケンシャルパターンで保存されます。このようなファイルからデータを取得する場合、必要な情報が見つかるまで、各データが1つずつ読み取られます。
Q#23)スタックデータ構造型でデータを保存する方法は何ですか?
回答: データは、を使用してスタックデータ構造タイプに格納されます ファーストインラストアウト(FILO) 機構。特定のインスタンスでアクセスできるのは、スタックの最上位のみです。保存メカニズムはPUSHと呼ばれ、取得はPOPと呼ばれます。
Q#24)Cプログラムアルゴリズムの重要性は何ですか?
回答: アルゴリズムが最初に作成され、ソリューションのあり方に関する段階的なガイドラインが含まれています。また、考慮すべき手順と、プログラム内で必要な計算/操作が含まれています。
Q#25)ネストされたforループを使用してCで次の出力を行うための正しいコードは何ですか?
回答:
#include int main () { int a; int b; /* for loop execution */ for( a = 1; a <6; a++ ) { /* for loop execution */ for ( b = 1; b <= a; b++ ) { printf('%d',b); } printf('
'); } return 0; }
Q#26)サンプルコードで関数toupper()の使用法を説明しますか?
回答: Toupper()関数は、文字とともに使用するときに値を大文字に変換するために使用されます。
コード:
diffコマンドを使用して2つのファイルを比較する方法
#include #include int main() { char c; c = 'a'; printf('%c -> %c', c, toupper(c)); c = 'A'; printf('
%c -> %c', c, toupper(c)); c = '9'; printf('
%c -> %c', c, toupper(c)); return 0; }
結果:
Q#27)指定されたコードの出力を返すwhileループのコードは何ですか?
#include int main () { int a; /* for loop execution */ for( a = 1; a <= 100; a++ ) { printf('%d
',a * a); } return 0; }
回答:
#include int main () { int a; while (a<=100) { printf ('%d
', a * a); a++; } return 0; }
Q#28)次のリストから間違った演算子フォームを選択してください(== 、、> =、<=) and what is the reason for the answer?
回答: 不正な演算子は「」です。この形式は、条件ステートメントを作成する場合は正しいですが、Cプログラミングで等しくないことを示すのは正しい操作ではありません。次のようにコンパイルエラーが発生します。
コード:
#include int main () { if ( 5 10 ) printf( 'test for ' ); return 0; }
エラー:
Q#29)Cプログラムで1行のコードを囲むために中括弧({})を使用することは可能ですか?
回答: はい、エラーなしで動作します。一部のプログラマーは、これを使用してコードを整理することを好みます。ただし、中括弧の主な目的は、数行のコードをグループ化することです。
Q#30)Cで修飾子を説明してください。
回答: 修飾子は、変数へのストレージスペース割り当ての変更を示すために使用される基本データ型のプレフィックスです。
例– 32ビットプロセッサでは、intデータ型のストレージスペースは4です。修飾子を付けて使用すると、ストレージスペースは次のように変化します。
- Long int: ストレージスペースは8ビットです
- 短い整数: 収納スペースは2ビット
Q#31)Cプログラミング言語で使用できる修飾子は何ですか?
回答: Cプログラミング言語では、次の5つの修飾子を使用できます。
- ショート
- 長いです
- 手話
- 署名なし
- 長い長い
Q#32)Cプログラミング言語で乱数を生成するプロセスは何ですか?
回答: コマンドrand()は、この目的で使用できます。この関数は、zero(0)から始まる整数を返します。次のサンプルコードは、rand()の使用法を示しています。
コード:
#include #include int main () { int a; int b; for(a=1; a<11; a++) { b = rand(); printf( '%d
', b ); } return 0; }
出力:
Q#33)サンプルプログラムで改行エスケープシーケンスを説明してください。
回答: 改行エスケープシーケンスは nで表されます。これは、新しい行がコンパイラーに対して開始され、それに応じて出力が作成されるポイントを示します。次のサンプルプログラムは、改行エスケープシーケンスの使用法を示しています。
コード:
/* * C Program to print string */ #include #include int main(){ printf('String 01 '); printf('String 02 '); printf('String 03
'); printf('String 01
'); printf('String 02
'); return 0; }
出力:
Q#34)32768をintデータ型変数に格納することは可能ですか?
回答: Intデータ型は、– 32768〜32767の値のみを格納できます。32768を格納するには、intデータ型で修飾子を使用する必要があります。 Long Intを使用できます。また、負の値がない場合は、unsignedintも使用できます。
Q#35)Cプログラミング言語でカスタマイズされたヘッダーファイルを作成する可能性はありますか?
回答: はい、新しいヘッダーファイルを作成することは可能で簡単です。プログラム内で使用される関数プロトタイプを含むファイルを作成します。名前から「#include」セクションにファイルを含めます。
Q#36)Cプログラミング言語で動的データ構造を説明してください。
回答: 動的データ構造は、メモリに対してより効率的です。メモリアクセスは、プログラムの必要に応じて行われます。
Q#37)お互いにポインタを追加することは可能ですか?
回答: ポインタを一緒に追加する可能性はありません。ポインタにはアドレスの詳細が含まれているため、この操作から値を取得する方法はありません。
Q#38)間接参照とは何ですか?
回答: 変数または任意のメモリオブジェクトへのポインタを定義した場合、変数の値への直接参照はありません。これは間接参照と呼ばれます。しかし、変数を宣言すると、その値を直接参照します。
Q#39)Cプログラミング言語で使用できるnullポインタへの方法は何ですか?
回答:ヌルポインターは3つの方法で使用できます。
- エラー値として。
- 番兵として。
- 再帰的データ構造で間接参照を終了します。
Q#40)モジュラープログラミングの説明は何ですか?
回答: メインプログラムを実行可能なサブセクションに分割するプロセスは、モジュールプログラミングと呼ばれます。この概念は再利用性を促進します。
結論
質問者は、ポインタを使用したメモリ管理、その構文の知識、および基本的なCプログラム構造を使用するいくつかのサンプルプログラムを含むCプログラミング言語の概念に基づいています。候補者の演劇と実践の知識は、質問で調べられます。