高級軟件工程師試題B

1、          單選題(每題1分,共70分)算法

 

  1. 如下哪一個表述不正確___D___。

A.ARM是一個公司的名稱shell

B.ARM是對一類微處理器的通稱 數組

C.ARM是一種技術的名字編輯器

D.ARM是一款芯片的名稱函數

 

  1. ( D ) 命令是在vi編輯器中執行保存退出。

A  :q加密

B  ZZ操作系統

C  :q!命令行

D  :wq設計

  1. GCC的正確編譯流程爲 ( A ) 。

A 預處理-編譯-彙編-連接    3d

B 預處理-編譯-連接-彙編    

C 預處理-連接-編譯-彙編    

D 編譯-預處理-彙編-連接

 

 

  1. 下列命令中,刪除文件的命令是:___D___。

A. ls

B. mkdir

C. tail

D. rm

 

  1. 嵌入式處理器指令的執行週期不包括__A____。

A.啓動

B.取指令

C.指令譯碼

D.執行指令

 

  1. 將系統啓動代碼讀入內存是___C___的主要職責。

A.內存管理

B.VFS

C.Boot Loader

D.虛擬內存

 

  1. 下列不屬於嵌入設計處理器自己帶有的基本接口是___C___。

A.串口

B.並口

C.PCIE

D.AD/DA

 

  1. 下列選項中,描述錯誤的是__D__。

A.arch爲體系結構相關的代碼

B.block爲塊設備的通用函數

C.crypto只能用於加密和散列算法

D.ipc進程件通訊代碼

 

  1. SRAM與DRAM相比,優勢是___A___。

       A.SRAM比DRAM快

       B.DRAM與SRAM耗電多

       C.SRAM比DRAM存儲密度高

       D.以上都是

 

  1. 預處理後的文件後綴名爲___D___。
  2. .c
  3. .C
  4. .M
  5. .i

 

  1. 下列哪條指令把寄存器R0、R1的值相加後存到R2中:__C____。

A.AND R0, R1, R2

B.SUB R0, R1, R2

C.ADD R2, R1, R0

D.AND R1, R2, R0

 

  1. 下面描述不屬於Bootloader的第二階段的是:___A___。
    1. 硬件設備初始化
    2. 初始化本階段要使用到的硬件設備
    3. 檢測系統內存映射
    4. 爲內核設置啓動參數

 

  1. 下面關於UBOOT有點描述錯誤的是:___D___。
    1. 開發源碼
    2. 僅支持Linux操做系統
    3. 支持多個處理器系列
    4. 較高的可靠性和穩定性

 

  1. 對於「ls –l|more」操做,命令解釋程序運行進程ls和more使用瞭如下哪一種通訊方式___A___。

 

  1. 管道
  2. 消息隊列
  3. 套接字
  4. 信號

 

  1. 下列關於Linux根文件目錄,描述錯誤的是___C___。
  2. /bin目錄下存放通常用戶可使用的基本命令
  3. /sbin目錄下存放系統命令
  4. /dev目錄下存放設備文件
  5. /etc目錄下存放各類配置文件

 

 

1六、指令「LDMIA R0!, {R1, R2, R3, R4}」的尋址方式爲(  C  )。

              A. 當即尋址                                           B. 寄存器間接尋址

              C. 多寄存器尋址                                    D. 堆棧尋址

       1七、下列不屬於RISC計算機特色的是( C )。

              A. 流水線每週期前進一步。     B. 更多通用寄存器。

              C. 指令長度不固定,執行須要多個週期。 

              D. 獨立的Load和Store指令完成數據在寄存器和外部存儲器之間的傳輸。

       1八、USB接口移動硬盤最合適的傳輸類型爲(  B )。

           A. 控制傳輸             B. 批量傳輸             C. 中斷傳輸             D. 等時傳輸

       1九、在嵌入式系統設計中,嵌入式處理器選型是在進行( C  )時完成。

              A. 需求分析             B. 系統集成              C. 體系結構設計     D. 軟硬件設計

       20、無符號二進制數左移一位,則數值(  A  )。

              A. 增大一倍               B. 減少一倍                C. 增大10倍              D. 不變

2一、登錄系統後首先進入下列哪個目錄?(  D    )

      A./home

      B.root的主目錄

      C./root

      D.用戶本身的主目錄

2二、用」rm -i」,系統會提示什麼來讓你確認  ( B  )

      A.命令行的每一個選項

      B.是否真的刪除

      C.是否有寫的權限

      D.文件的位置

2三、除非特別指定,cp假定要拷貝的文件在下面哪一個目錄下( B  )

      A.home目錄

      B.當前目錄

      C.root目錄

      D.用戶目錄

2四、Linux的創始人是芬蘭Helsinki大學的學生,他是誰(  B )

      A.Andrew Tanenbaum

      B.Linus Torvalds

      C.Bill Gates

      D.Richard Stallman

2五、假如你獲得一個運行命令被拒絕的信息,你能夠用哪一個命令去修改它的權限使之能夠正常運行( B  )

      A.path=

      B.chmod

      C.chgrp

      D.chown

 2六、顯示用戶的主目錄的命令是什麼( A  )

      A.echo $HOME

      B.echo $USERDIR

      C.echo $ECHO

      D.echo $ENV

2七、用來分離目錄名和文件名的字符是什麼( A  )

      A.反斜槓 (/)

      B.點號 (.)

      C.減號 (-)

      D.星號 (*) 

2八、肯定myfile的文件類型的命令是什麼( C  )

      A.type myfile

      B.type -q myfile

      C.file myfile

      D.whatis myfile

2九、按_____鍵能停止當前運行的命令( B  )

      A.Ctrl-D

      B.Ctrl-C

      C.Ctrl-B

      D.Ctrl-F

30、哪一個符號加在命令後面能夠在後臺執行程序(    B     )

      A.@                         B.&

      C.#                             D.*

3一、經過shell執行一個命令,必須先敲入一個__B___

      A. 參數

      B.命令

      C.操做符

      D.終端ID號

3二、當登陸Linux時,一個具備惟一進程ID號的shell將被調用,這個ID是什麼?(  A )

      A.PID                                       B.UID

      C.NID                                      D.CID

3三、想查找system-config-network所在的目錄,經過什麼命令能夠實現?B

      A.whereis system-config-network

      B.which system-config-network
      C.look system-config-network

      D.show system-config-network

3四、經過下面哪一個命令能夠打印顯示當前工做的目錄(B)

      A.cd                               B.pwd

      C.ls                                 D.ls -l

3五、本機有兩塊硬盤,分別放置在IDE1和IDE2的主盤上,其中掛在IDE2上的主盤有三個主分區,在Linux下IDE2上的主盤第二個主分區的名稱爲:C

      A.hda2

      B.hdb2

      C.hdc2

      D.hdd2

 

36一個C程序的執行是從(  A ) 

 A.本程序的main函數開始,到main函數結束

B.本程序文件的第一個函數開始,到本程序文件的最後一個函數結束

C.本程序的main函數開始,到本程序文件的最後一個函數結束

D.本程序文件的第一個函數開始,到本程序main函數結束

37在一個單鏈表中,若要刪除由指針q所指結點的後繼,則(D)

A.p= q->next; p->next= q->next    B.p = q->next; p->next =p 

C.p= q->next; q->next= p->next    D.q->next= q->next->next; q->next=q

38下列四組選項中,均不是C語言關鍵字的選項是( A )  

A.define    B.getc    C.include   D.while

 IF           char       scanf        go

type          printf       case        pow

39C語言中的標識符只能由字母、數字和下劃線三種字符組成,且第一個字符( C ) 

 A.必須爲字母               B.必須爲下劃線

      C.必須爲字母或下劃線         D.能夠是字母,數字和下劃線中任一種字符

40下面四個選項中,均是不合法的浮點數的選項是  B

A)  160.    B)  123     C)一.18    D)一e3

      0.12        2e4.2     123e4          .234

     e3        .e5        0.0           1e3     

41棧結構一般採用的兩種存儲結構是(  A  )

  A、線性存儲結構和鏈表存儲結構   B、散列方式和索引方式  

  C、量表存儲結構和數組                  D、線性存儲結構和非線性存儲結構

42一個向量第一個元素的存儲地址是100,每一個元素的長度爲2,則第5個元素的地址是(   B   )

 A、110   B、108    C、100     D、120

43如有代數式3ae/bc,則不正確的C語言表達式是( C  ) 

 A. a/b/c*e*3      B.3*a*e/b/c

 C.3*a*e/b*c       D.a*e/c/b*3

44如下不正確的敘述是( D )  

A.在C程序中,逗號運算符的優先級最低

B.在C程序中,APH和aph是兩個不一樣的變量

C.若a和b類型相同,在執行了賦值表達式a=b後b中的值將放人a中,而b中的值不變。

D.當從鍵盤輸入數據時,對於整型變量只能輸入整型數值,對於實型變量只能輸入實型數值。

45在C語言中,要求運算數必須是整型的運算符是(  D )  

A. /   B. ++  c. !=   D.%

46如有定義:int a=7;float x=2.5,y=4.7;則表達式x+a%3*(int)(x+y)%2/4的值是 ( A)   

A.2·500000  B.2.7500OO  c. 3.500000  D. 0.000000。

47循環隊列用數組A[0,m-1]存放其元素值,已知其頭尾指針分別是front和rear,則當前隊列中的元素個數是(  A  )

     A、(rear-front+m)%m      B、rear-front+1  

     C、rear-front-1             D、rear-front

48向一個棧頂指針爲Top的鏈棧中插入一個s所指結點時,其操做步驟是(D )

A.Top->next=s            B.s->next= Top->next; Top->next=s

C.s->next= Top; Top =s     D.s->next= Top; Top = Top->next

49若x ,y均定義爲int型,z定義爲double型,如下不合法的scanf函數調用語句是( D  )

A.  scanf(" %d%lx,%le",&x,&y,&z);

B.  scanf("%2d * %d%lf"&x,&y,&z ); 

C.  scanf("%x %* d%o",&x,&y);

D.  scanf("%x%o%6.2f",&x,&y,&z);  

       50如下說法正確的是(  D   ) 

A.輸入項能夠爲一實型常量,如scanf("%f",3.5);

B.只有格式控制,沒有輸入項,也能進行正確輸入,如scanf("a=%d,b=%d");

C.當輸入一個實型數據時,格式控制部分應規定小數點後的位數,

如scanf("%4.2f",&f);

D.當輸入數據時,必須指明變量的地址,如scanf("%f",&f);

51根據下面的程序及數據的輸入方式和輸出形式,程序中輸入語句的正確形式應該爲(  C )

      main()

{char  ch1  ,ch2  ,ch3;

 輸入語句

printf("%c%c%c",ch1,ch2,ch3);}

 輸入形式:  A B C

 輸出形式:  A B

 A.  scanf("%c%c%c",&ch1,&ch2,&ch3);

 B.  scanf("%c,%c,%c", &ch1,&ch2, &ch3);

 C.  scanf("%c %c %c",&ch1,&ch2,&ch3);

 D.  scanf("%c%c",&ch1,&ch2,&ch3);

52下關於運算符優先順序的描述中正確的是(   C    )      

A.關係運算符< 算術運算符< 賦值運算符< 邏輯與運算符

B.邏輯 運算符< 關係運算符< 算術運算符< 賦值運算符

C.賦值運算符< 邏輯與運算符< 關係運算符< 算術運算符

D.算術運算符< 關係運算符< 賦值運算符< 邏輯與運算符  

53判斷char型變量c1是否爲小寫字母 正確表達式爲(  D    )

           A.' a' <=cl<=' z'    B.  (cl> = a)&&(cl<=z)

           C.(' a' >=cl)||(' z' < = cl)  D.(c1>='a')&&(cl<='z')

54執行如下語句後a的值爲(   C   ) 

int a,b,c;

a= b= c= 1;

++a||++b&&++c   

A.錯誤    B.  0      C.  2  D.  1

55下列運算符中優先級最低的是(  A    )

A.?:   B.&&     c.+     D.  !=

56如下程序的運行結果是(   C   ) 

          main()   

           {int m=5;

           if(m++> 5)  printf(" %d\n",m);

            e1se     printf("%d\n",m- - );

       }

     A.4    B.5   C.6    D.7

57如下程序的輸出結果是(  C   )  

#include <stdio.h>

main()

{

    int  a=100,x =10,y=20,okl=5,ok2=0;

        if(x<y)

        if(y!=10)

    if(!okl)  a=1;

     else

        if(ok2)  a=10;

        a=-1;

        printf( "%d\n",a );

       A.  1      B.  0    C.-1    D.值不肯定

58設有程序段(   C  ) 

     int  k=10;

       while  (k=0)  k= k—1;

     則下面描述中正確的是

A.  while循環執行10次      B.循環是無限循環

C.循環體語句一次也不執行   D.循環體語句執行一次

59下面程序的運行結果是      (   B  ) 

           #include  <stdio. h>

         main()    

           {int i;

for(i=1;i<=5;i++)

     switch(i%5)

{case  0:printf("* ");break;

     case  1  :printf("#");break;

     default  :printf("\n");

       case  2  :printf("&");}

           }

         A.#&&&*  B. #&   C.  #    D.#&

            &           &

            &           &*

60下面程序段(   D  )   

      for  (t=1;  t<=100;t++)

       {scanf("%d",&x);

            if(x<0)  continue;

           printf("%3d",t);}

     A. 當x<0時整個循環結束

     B. x>=0時什麼也不輸出

     C. printf函數永遠也不執行

     D.最多容許輸出100個非負整數

2、多選題(10每題330分)

一、下面代碼行的空格符合規範的是( AC     )

A.*pApple = 'a

B. flag =! BIsEmpty

C. p = &cMem

D. i ++

2 、設已有定義:float x;,則如下對指針變量p進行定義且賦初值的語句中不正確的是:(   ABC   )。

A、float *p=1024;                             B、int   *p=(float)x;

C、float p=&x;                                 D、float *p=&x;

三、 設變量x,y均已正肯定義並賦值,如下if語句中,在編譯時能產生正確信息的是(    ABD   )。

    A、if(x++);

B、if(x>y&&y!=0);

C、if(x>0)x--   else y++;

D、if(y<0){;}   else x++;

四、如下for循環的執行次序是(   A  )

for (x=0, y=0; (y=123)&&x<4; x++)

A  執行3次  

B. 循環次數不定    

C. 執行4次   

D. 是無限次循環

五、代碼文件由(    ABD    )組成

A.定義文件開頭處的版權和版本聲明

B. API函數的調用示例

C.全局變量的聲明

D.程序的實現體(包括數據和代碼)

      六、若用數組名做爲函數調用時的實參,則實際上傳遞給形參的是(  C )

      A.數組中所有元素的值         

      B.數組的第一個元素的值

      C.數組的首地址              

      D.   數組元素的個數

      七、下面程序的輸出結果是

#include <stdio.h>

int x,y ;

   f( )

   { int y, a = 25 , b=10;

     x =a + b; y = a - b;

     return;}

     main()

    {

      int a =9 , b =5;

      x = a+b; y = a-b;

     f();

     printf("d%,d%\n",x,y); }

 

     A. 14,4   B. 35,15    C.35,4    D. 14,15

      八、下列選項中正確的語句組是(   CD    )

A.char s[8]; s={"Beijing"}; B.char *s; s={"Beijing"};

             C.char s[8]="BeijingT"; D.char *s; s="Beijing";

九、如有定義:int *p[3];,則如下敘述中正確的是(   AD  )
A.定義了一個可指向一維數組的指針變量p
B.定義了一個指針數組p,該數組含有三個元素,每一個元素都是基類型爲int的指針
C.定義了一個名爲*p的整型數組,該數組含有三個int類型元素
D.定義了一個可指向一維數組的指針變量p,所指一維數組應具備三個int類型元素

十、下面程序的輸出結果是( C )

int x =1;

 f()

 {static int i = 2; int x = 10;

  x+=++i;

  printf("%d\n",x);}

 main()

 {

  int i;

  for (i=1;i<4;i++) {++x; f();}

  printf("%d\n",x);}

 A. 13,17,22,4   B.13,14,15,15     C.13,14,15,4     D.無答案

3、判斷題10每題110

44用do-while語句構成的循環,當while後的表達式的值爲零時結束循環。(  )

4五、結構體和共同體能夠相互欠套,均可以作爲函數的參數使用。(    )

4六、在C語言裏容許兩個同類型的結構體之間相互賦值,也能夠將一組常量賦給結構體。(    )

4七、在C語言裏只能對外部或靜態的數組進行初始化。(  )

4八、在C語言裏,一個共同體不是同時存放多個成員變量的,而是存放其中的一個值,可是不肯定是那個值。(    )

4九、%-20s的做用是告訴系統按照字符串的形式輸出,佔20列,向右對齊。(    )

50、賦值表達式是一種表達式,它能夠出如今任何容許表達式出現的地方,而賦值語句則不能。(   )

5一、continue語句的做用是跳過循環本中剩餘的語句而強行執行下一次循環。continue語句只用在for、while、do-while等循環體中,常與if條件語句一塊兒使用,用來加速循環。(    )

5二、在C語言裏數組的下標都是取整數,若是是小數將不會作處理。(  )

5三、如有定義:int   (*p)[4],則p是一個指向含有四個整型元素的一維數組       的指針。(   )

相關文章
相關標籤/搜索