1024国产,91精品国产综合久久福利,中文字幕成人免费视频,日本人的色道免费网站,曰本一级毛片免费,www.日日爱,国产黑丝视频

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

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

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

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

  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;

  }

  【題目解析】

  這道題考的是對(duì)結(jié)構(gòu)體內(nèi)存使用情況的理解。在32位的操作系統(tǒng)中,int和指針類型的變量占用空間都是4個(gè)字節(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開(kāi)始的連續(xù)4個(gè)字節(jié)的空間,p指的是從0x12304(注意!不是0x12301)開(kāi)始的連續(xù)4個(gè)字節(jié)的空間。這樣,p[0]也就相當(dāng)于s.i,p也就相當(dāng)于s.p,分析到這一步,可以確定程序運(yùn)行到“s.p=p;”這里不會(huì)出錯(cuò)。繼續(xù)往下看。

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

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

  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各是一個(gè)0~9的數(shù)字,根據(jù)下面的條件確定A~F的值

  ABCDEF2 = CDEFAB

  CDEFAB2 = EFABCD

  【題目解析】

  以下答案由winion提供

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

  ABCDEF2 = CDEFAB

  CDEFAB2 = EFABCD

  一看到題目,我立即就想到了1/7,它正好滿足這個(gè)數(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這六個(gè)數(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 此時(shí)不成立) 所以 A=1; E=5;

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

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

  此時(shí):1B2D5F2=2D5F1B;2D5F1B2=5F1B2D;

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

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

  此時(shí) 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

最新圖文

2020年河北新聞網(wǎng)兩學(xué)一做

時(shí)間:2023-09-18 07:0:24

2020年河北新聞網(wǎng)兩學(xué)一做

時(shí)間:2023-09-15 11:0:59

兩學(xué)一做學(xué)習(xí)教育知

時(shí)間:2023-09-21 06:0:30