色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > C語言試題大全五

          C語言試題大全五

          作者: 時間:2016-11-24 來源:網絡 收藏
          1. 分析:
          struct bit
          { int a:3;
          int b:2;
          int c:3;
          };
          int main()
          {
          bit s;
          char *c=(char*)&s;
          cout< *c=0x99;
          cout << s.a < int a=-1;
          printf("%x",a);
          return 0;
          }
          輸出是什么?

          答案:
          4
          1
          -1
          -4
          ffffffff
          因為0x99在內存中表示為 100 11 001 , a = 001, b = 11, c = 100
          當c為有符合數(shù)時, c = 100, 最高1為表示c為負數(shù),負數(shù)在計算機用補碼表示,所以c = -4;同理
          b = -1;
          當c為有符合數(shù)時, c = 100,即 c = 4,同理 b = 3

          位域 :
          有些信息在存儲時,并不需要占用一個完整的字節(jié),而只需占幾個或一個二進制位。例如在存放一個開關量時,只有0和1 兩種狀態(tài),用一位二進位即可。為了節(jié)省存儲空間,并使處理簡便,C語言又提供了一種數(shù)據結構,稱為“位域”或“位段”。所謂“位域”是把一個字節(jié)中的二進位劃分為幾個不同的區(qū)域,并說明每個區(qū)域的位數(shù)。每個域有一個域名,允許在程序中按域名進行操作。這樣就可以把幾個不同的對象用一個字節(jié)的二進制位域來表示。一、位域的定義和位域變量的說明位域定義與結構定義相仿,其形式為:
          struct 位域結構名
          { 位域列表 };
          其中位域列表的形式為: 類型說明符位域名:位域長度
          例如:
          struct bs
          {
          int a:8;
          int b:2;
          int c:6;
          };
          位域變量的說明與結構變量說明的方式相同??刹捎孟榷x后說明,同時定義說明或者直接說明這三種方式。例如:
          struct bs
          {
          int a:8;
          int b:2;
          int c:6;
          }data;
          說明data為bs變量,共占兩個字節(jié)。其中位域a占8位,位域b占2位,位域c占6位。對于位域的定義尚有以下幾點說明:
          1. 一個位域必須存儲在同一個字節(jié)中,不能跨兩個字節(jié)。如一個字節(jié)所??臻g不夠存放另一位域時,應從下一單元起存放該位域。也可以有意使某位域從下一單元開始。例如:
          struct bs
          {
          unsigned a:4
          unsigned :0 /*空域*/
          unsigned b:4 /*從下一單元開始存放*/
          unsigned c:4
          }
          在這個位域定義中,a占第一字節(jié)的4位,后4位填0表示不使用,b從第二字節(jié)開始,占用4位,c占用4位。
          2. 由于位域不允許跨兩個字節(jié),因此位域的長度不能大于一個字節(jié)的長度,也就是說不能超過8位二進位。
          3. 位域可以無位域名,這時它只用來作填充或調整位置。無名的位域是不能使用的。例如:
          struct k
          {
          int a:1
          int :2 /*該2位不能使用*/
          int b:3
          int c:2
          };
          從以上分析可以看出,位域在本質上就是一種結構類型,不過其成員是按二進位分配的。
          二、位域的使用位域的使用和結構成員的使用相同,其一般形式為:位域變量名位域名位域允許用各種格式輸出。
          main(){
          struct bs
          {
          unsigned a:1;
          unsigned b:3;
          unsigned c:4;
          } bit,*pbit;
          bit.a=1;
          bit.b=7;
          bit.c=15;

          2.int (*s[10])(int) 表示的是什么
          答案:
          int (*s[10])(int) 函數(shù)指針數(shù)組,每個指針指向一個int func(int param)的函數(shù)。
          3. c和c++中的struct有什么不同?
          答案:
          c和c++中struct的主要區(qū)別是c中的struct不可以含有成員函數(shù),而c++中的struct可以。c++中struct和class的主要區(qū)別在于默認的存取權限不同,struct默認為public,而class默認為private


          關鍵詞: C語言試題大

          評論


          技術專區(qū)

          關閉