欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      IT公司筆試題總結(jié)

      時間:2019-05-14 16:11:03下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《IT公司筆試題總結(jié)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《IT公司筆試題總結(jié)》。

      第一篇:IT公司筆試題總結(jié)

      1.引用與指針有什么區(qū)別?

      1.引用必須被初始化,指針不必。

      2.引用初始化以后不能被改變,指針可以改變所指的對象。3.不存在指向空值的引用,但是存在指向空值的指針。

      2.堆棧溢出一般是由什么原因?qū)е碌模?/p>

      沒有回收垃圾資源。3.什么函數(shù)不能聲明為虛函數(shù)? constructor函數(shù)不能聲明為虛函數(shù)。4.寫出float x 與“零值”比較的if語句。if(x>0.000001&&x<-0.000001)

      5.不能做switch()的參數(shù)類型是:

      switch的參數(shù)不能為實型

      6.頭文件中的 ifndef/define/endif干什么用? 預處理

      答:防止頭文件被重復引用

      7.#include 和 #include “filename.h” 有什么區(qū)別?

      答:

      對于#include ,編譯器從標準庫路徑開始搜索filename.h

      對于#include “filename.h”,編譯器從用戶的工作路徑開始搜索filename.h

      8.在C++ 程序中調(diào)用被 C 編譯器編譯后的函數(shù),為什么要加 extern “C”聲明?

      答:函數(shù)和變量被C++編譯后在符號庫中的名字與C語言的不同,被extern “C”修飾的變量和函數(shù)是按照C語言方式編譯和連接的。由于編譯后的名字不同,C++程序不能直接調(diào)用C 函數(shù)。C++提供了一個C 連接交換指定符號extern“C”來解決這個問題。

      9.char str1[] = “abc”;

      char str2[] = “abc”;

      const char str3[] = “abc”;

      const char str4[] = “abc”;

      const char *str5 = “abc”;

      const char *str6 = “abc”;

      char *str7 = “abc”;

      char *str8 = “abc”;

      cout <<(str1 == str2)<< endl;cout <<(str3 == str4)<< endl;

      cout <<(str5 == str6)<< endl;

      cout <<(str7 == str8)<< endl;

      結(jié)果是:0 0 1 1

      str1,str2,str3,str4是數(shù)組變量,它們有各自的內(nèi)存空間;而str5,str6,str7,str8是指針,它們指向相同的常量區(qū)域。

      10.main()

      {

      int a[5]={1,2,3,4,5};

      int *ptr=(int *)(&a+1);

      printf(“%d,%d”,*(a+1),*(ptr-1));

      }

      答:2,5

      *(a+1)就是a[1],*(ptr-1)就是a[4], 執(zhí)行結(jié)果是2, 5。&a+1不是首地址+1,系統(tǒng)會認為加一個a數(shù)組的偏移,是偏移了一個數(shù)組的大小(本例是5個int)。int *ptr=(int *)(&a+1);則ptr實際是&(a[5]),也就是a+5

      原因如下:

      &a 是數(shù)組指針,其類型為 int(*)[5];而指針加1要根據(jù)指針類型加上一定的值,不同類型的指針+1之后增加的大小不同;a是長度為5的int數(shù)組指針,所以要加 5*sizeof(int)。所以ptr實際是a[5]。但是prt與(&a+1)類型是不一樣的(這點很重要),所以prt-1只會減去 sizeof(int*)。a,&a的地址是一樣的,但意思不一樣,a是數(shù)組首地址,也就是a[0]的地址,&a是對象(數(shù)組)首地 址,a+1是數(shù)組下一元素的地址,即a[1],&a+1是下一個對象的地址,即a[5]。

      11.交換兩個變量的值,不使用第三個變量。即a=3,b=5,交換之后a=5,b=3;

      答:有兩種解法, 一種用算術(shù)算法, 一種用^(異或)

      a = a + b;

      b = a – b;

      a = a – b;

      or

      a = a^b;// 只能對int,char..b = a^b;

      a = a^b;

      or

      a ^= b ^= a;

      12.列舉幾種進程的同步機制,并比較其優(yōu)缺點。

      答:原子操作、信號量機制、自旋鎖、管程、會合、分布式系統(tǒng)

      13.進程死鎖的原因和4個必要條件

      答:資源競爭及進程推進順序非法;互斥、請求保持、不可剝奪、環(huán)路

      14.要對絕對地址0×100000賦值,我們可以用(unsigned int*)0×100000 = 1234;那么要是想讓程序跳轉(zhuǎn)到絕對地址是0×100000去執(zhí)行,應該怎么做?

      答:*((void(*)())0×100000)();

      首先要將0×100000強制轉(zhuǎn)換成函數(shù)指針,即:(void(*)())0×100000。然后再調(diào)用它: *((void(*)())0×100000)();用typedef可以看得更直觀些:

      typedef void(*)()voidFuncPtr;

      *((voidFuncPtr)0×100000)();

      15.unsigned char *p1;

      unsigned long *p2;

      p1=(unsigned char *)0×801000;

      p2=(unsigned long *)0×810000;

      請問

      p1+5=______;

      p2+5=______;

      答案:801005;810014。不要忘記了這個是16進制的數(shù)字,p2要加20變?yōu)?6進制就是14

      16、設(shè)有以下說明和定義:

      typedef union {long i;int k[5];char c;} DATE;

      struct data { int cat;DATE cow;double dog;} too;DATE max;

      則語句 printf(“%d”,sizeof(too)+sizeof(max));的執(zhí)行結(jié)果是:______

      答:DATE是一個union, 變量公用空間.里面最大的變量類型是int[5], 占用20個字節(jié).所以它的大小是20

      data是一個struct, 每個變量分開占用空間.依次為int4 + DATE20 + double8 = 32.所以結(jié)果是 20 + 32 = 52.當然?在某些16位編輯器下, int可能是2字節(jié),那么結(jié)果是 int2 + DATE10 + double8 = 20 1.代碼找錯題(題目1)

      void test1(){ char string[10];char* str1=“0123456789”;strcpy(string, str1);} 代碼找錯題(題目2)

      void test2(){ char string[10], str1[10];for(I=0;I<10;I++){ str1[i] ='a';} strcpy(string, str1);} 代碼找錯題(題目3)

      Void test3(char* str1)

      {

      char string[10];

      if(strlen(str1)<= 10)

      {

      strcpy(string, str1);

      }

      }

      在swap函數(shù)中,p是一個“野”指針,有可能指向系統(tǒng)區(qū),導致程序運行的崩潰。在VC++中DEBUG運行時提示錯誤“Access Violation”。該程序應該改為:

      解答:

      test1: 字符串str1需要11個字節(jié)才能存放下(包括末尾的'