組込みソフトウェア技術者の小さな円が質問の猿の概要2(返事を)に直面します

最後の小円ジャーク猿が、これは更新され、一連の「組込みソフトウェア技術者のインタビューの質問1」をまとめており、読んでみんなを歓迎し、私はあなたが、ときに最初の回答を参照して見て何かをする彼らの最初の、そして完了していないことを示唆していますそれに対する正しい答えとは、あまりにも多くのチキンスープを言っていない自分自身を行う方法を参照して、少し猿の円は、次の質問を見てあなたを取ります。

1、CHAR * S = "AAA";のprintf( "%sの"、S); S [0] = 'B';のprintf( "%sの"、s)は、間違っていますか?

答え:「AAA」は、文字列定数です。sが文字列定数へのポインタであるため、問題のときの発言。cosntチャー* S =「AAA」、それは一定であるためには、そう[0]が割り当て合法的ではないのです。

2、CHAR * 3のconstpはcharのconst * p個ののconstのchar * pは、違いは何ですか?

答え:CHAR *のconstのp; //定数ポインタ、pの値を変更することはできません

チャーCONST * P; //ポインタ定数、定数の値は、* Pのconst char型を指すように変更することができない; //及びチャーCONST * P

チャー* CONST pはchar型ポインタがポインタであり、ある一定の、すなわち、P = Q同様の文が間違って、変更することはできません。

チャーのconst * pとCONSTのchar * pは、定数を変更することができないとして、見なされる文字の文字ポインタの同じタイプ、すなわち、* P = Q同様の文が間違っています。

図3に示すように、32ビットマシンは、マシンは何へのポインタでありますか?

答え:ちょうどライン上のアドレスバスのビット数がどのように多くのポインタを見てください。マシンの後80386のデータバス32です。したがって、ビットの数は、ポインタが4バイトです。

4.私は、次のコードを尋ねる問題がどのようなものです:

INT {main()のキャラ。char * strの=&; strcpyの(STR、 "こんにちは"); printf(STR)。0を返します。}

答え:ないようstrのメモリ領域を割り当て、問題が異常なコピーで文字変数ポインタアドレスに文字列を発生します。けれども出力は正しいのですが、理由は固有の国境を越えた行動読み書きプログラムがクラッシュしました。

5、組込みシステムは、多くの場合、あなたが無限ループを書くためにCをどのように使用するか、無限ループを使用します。

回答:{}(1)が、又は(;;)のため

6、いくつかのプロセス同期メカニズムを引用し、それぞれの長所と短所を比較します。

回答:原子セマフォ機構スピンチューブ、ランデブー、分散システムをロック

7つのプロセス間の双方向通信

回答:共有ストレージシステムのメッセージングシステム配管:ファイルシステムをベース

図8に示すように、デッドロック4のために必要な条件

回答:排他的、要求は不可侵のまま、ループ

9。配列とリンクされたリストとの間の差

回答:配列:データが順次格納され、さらには固定サイズのテーブルである:ランダムデータを格納することができ、動的にサイズを変更することができ

10、マクロ定義を有する既知の配列表、要素の数が決定されたデータ

答案:#defineNTBLの#define NTBL(のsizeof(テーブル)/はsizeof(表[0]))

11、プログラムの結果を書きます

int型の合計(INT A)

自動int型のC = 0; 

静的INT B = 3。

C + = 1;

B + = 2;

リターン(A + B + C)。

}

main()の無効

私はint型。

int型のA = 2;

(; Iは5 <; I ++はI = 0)のための

printf( "%dを、" SUM(A))。

}

}

A:8,10,12,14,16の問題は比較的簡単です。注bがあれば、その値は次の呼び出しに静的グローバル変数は、元の割り当てをすることができる保持することができる限り静的と宣言しました。

= 10; 12は、<stdio.hの>メイン(){A、B、C、Dをint型コンテンツの#includeを出力する次のコードを記述してくださいbは= ++; C = ++; D = 10 * ++。 printf( "B、C、D:%のDは、%D、%dの" A、B、C、D);戻り0;}

答案:10,12,120 = 10。B ++を=; // A = 11、B = 10、C = ++; // A = 12、C = 12、D = 10 * ++; // A = 13、D = 120

組込みソフトウェア開発者の第2のセットは、我々は、感じて、良いん友人については、それは非常に強固な基盤であるべきであり、あなたが状態で仕事を探しているなら、あなたは安全に試すことができますどのように、ここでは上の質問に直面して、感じていますかない非常に滑らかな友人は、落胆することはありません、知識を再学習しないだろう、それ、あなたがに行くことができる小さな円のサル、それを十分に把握を入れないで、見て。


おすすめ

転載: www.cnblogs.com/xiaoyuanquan/p/11016488.html