<strike id="6q0um"></strike>
  • <strike id="6q0um"><s id="6q0um"></s></strike>
  • <ul id="6q0um"></ul><strike id="6q0um"></strike>

    當(dāng)前位置:高考升學(xué)網(wǎng) > 招聘筆試題 > 正文

    微軟筆試題和面試題答案解析與答案(三)

    更新:2023-09-15 23:38:50 高考升學(xué)網(wǎng)

      1、下面的程序運(yùn)行時哪里會出現(xiàn)錯誤:

      struct S

      {

      int i;

      int p;

      };

      int main()

      {

      S s;

      int p = &s.i;

      p[0] = 4;

      p = 3;

      s.p = p;

      s.p = 1;

      s.p[0] = 2;

      return 0;

      }

      【題目解析】

      這道題考的是對結(jié)構(gòu)體內(nèi)存使用情況的理解。在32位的操作系統(tǒng)中,int和指針類型的變量占用空間都是4個字節(jié)。在本題中 &s.i的值實(shí)際就是 &s的值,所以“int p = &s.i”也就相當(dāng)于把p指向了結(jié)構(gòu)體s的地址的起始位置。如圖1所示。

      圖1

      假設(shè) &s的值為0x12300,則p的值也是0x12300,p[0]指的是從0x12300開始的連續(xù)4個字節(jié)的空間,p指的是從0x12304(注意!不是0x12301)開始的連續(xù)4個字節(jié)的空間。這樣,p[0]也就相當(dāng)于s.i,p也就相當(dāng)于s.p,分析到這一步,可以確定程序運(yùn)行到“s.p=p;”這里不會出錯。繼續(xù)往下看。

      在進(jìn)行了“s.p=p;”的賦值之后,s.p指向的是s的首地址,此時s.p[0]相當(dāng)于s.i,s.p相當(dāng)于s.p。

      下一句“s.p=1”執(zhí)行過之后,此時s.p的值為1,也就是指向內(nèi)存的0x00001處,隱患出現(xiàn)了。在執(zhí)行“s.p[0]=2”的時候,實(shí)際上是向內(nèi)存0x00001起始的連續(xù)四個字節(jié)寫入0x00000002,而那塊內(nèi)存不屬于這個程序,會出現(xiàn)訪問非法內(nèi)存的錯誤。

      VC解析的匯編代碼如下(部分),有興趣的可以參考一下。

      ; 14: S s;

      ; 15: int p = &s.i;

      00401028 lea eax,[ebp-8]

      0040102B mov dword ptr [ebp-0Ch],eax

      ; 16: p[0] = 4;

      0040102E mov ecx,dword ptr [ebp-0Ch]

      00401031 mov dword ptr [ecx],4

      ; 17: p = 3;

      00401037 mov edx,dword ptr [ebp-0Ch]

      0040103A mov dword ptr [edx+4],3

      ; 18: s.p = p;

      00401041 mov eax,dword ptr [ebp-0Ch]

      00401044 mov dword ptr [ebp-4],eax

      ; 19: s.p = 1;

      00401047 mov ecx,dword ptr [ebp-4]

      0040104A mov dword ptr [ecx+4],1

      ; 20: s.p[0] = 2;

      00401051 mov edx,dword ptr [ebp-4]

      00401054 mov dword ptr [edx],2

      2、ABCDEF各是一個0~9的數(shù)字,根據(jù)下面的條件確定A~F的值

      ABCDEF2 = CDEFAB

      CDEFAB2 = EFABCD

      【題目解析】

      以下答案由winion提供

      ABCDEF各是一個0~9的數(shù)字,根據(jù)下面的條件確定A~F的值

      ABCDEF2 = CDEFAB

      CDEFAB2 = EFABCD

      一看到題目,我立即就想到了1/7,它正好滿足這個數(shù)字的性質(zhì)。所以答案是142857.

      ......

      1/7=0.142857

      2/7=0.285714

      3/7=0.428571

      4/7=0.571428

      5/7=0.714285

      6/7=0.857142

      然后是循環(huán),注意到?jīng)]有,都是142857這六個數(shù)字。

      以下答案由大輝提供

      ABCDEF2 = CDEFAB

      CDEFAB2 = EFABCD

      2AB = CD

      2EF = 1AB

      2CD+1 = EF

      8AB+2 = 100+AB

      AB = 14

      以下答案由dawangzi16 提供

      1. E>2C>4A;==>a=1or2;

      2. 因?yàn)镋F2=AB ,結(jié)合式子1得:(if A=2 then E=8 or 9 此時不成立) 所以 A=1; E=5;

      同時得出F大于5; 此時:1BCD5F2=CD5F1B;CD5F1B2=5F1BCD;

      3。因?yàn)?B2=CD 所以推出:c=3或2; 又由CD2=5F; 推出C=2 ; D>5;

      此時:1B2D5F2=2D5F1B;2D5F1B2=5F1B2D;

      4。因?yàn)?B2 = 2D 而且D>5,推出B<5 ;當(dāng) B=3時 D=6;B=4時D=8;

      又因?yàn)?F2=1B 所以 B為偶數(shù)。 從而 B=4 ,D=8;

      此時 14285F2=285F14;285F142=5F1428;

      5。不難看出 F=7;

      從而得解

      以下答案由 xiahui 提供

      令A(yù)B=x, CDEF=y;

      則(10000x+y)2 = 100y+x;

      19999x = 98y

      28577x = 714y

      故得AB=14,CDEF=2857

    相關(guān)文章

    最新圖文

    久久亚洲精品国产精品婷婷| 91亚洲导航深夜福利| 亚洲欧洲国产经精品香蕉网| 亚洲成人精品久久| 亚洲男人的天堂www| 亚洲一区爱区精品无码| 中文字幕无码精品亚洲资源网| 亚洲国产精品一区二区第一页免 | 久久久久久a亚洲欧洲AV| 国产精品亚洲а∨无码播放| 国产亚洲婷婷香蕉久久精品| 亚洲国产精品成人精品无码区在线| 亚洲综合色婷婷七月丁香| 亚洲中文字幕无码一区二区三区 | 亚洲人成中文字幕在线观看| 亚洲午夜久久久影院伊人| 亚洲一区二区三区偷拍女厕| 亚洲av一综合av一区| 亚洲精品高清视频| 亚洲欧洲精品在线| ASS亚洲熟妇毛茸茸PICS| 亚洲日本一线产区和二线| 亚洲精品成a人在线观看☆| 久久久亚洲精华液精华液精华液 | 亚洲 自拍 另类小说综合图区| 少妇亚洲免费精品| 一本色道久久综合亚洲精品高清 | 亚洲伊人久久大香线蕉结合| 亚洲人成影院在线高清| 亚洲永久在线观看| 亚洲AV无码男人的天堂| 亚洲精品无码99在线观看| 亚洲中文字幕无码永久在线| 亚洲国产一区二区a毛片| 亚洲国语在线视频手机在线| 精品国产成人亚洲午夜福利| 久久精品国产亚洲AV| 久久亚洲2019中文字幕| 久久精品国产亚洲AV果冻传媒| 亚洲综合免费视频| 亚洲中文字幕乱码熟女在线|