一、 單選題(每題1分,共70分)
- 以下哪個表述不正確___D___。
A.ARM是一個公司的名稱
B.ARM是對一類微處理器的通稱
C.ARM是一種技術的名字
D.ARM是一款芯片的名稱
- ( D ) 命令是在vi編輯器中執行保存退出。
A :q
B ZZ
C :q!
D :wq
- GCC的正確編譯流程為 ( A ) 。
A 預處理-編譯-匯編-鏈接
B 預處理-編譯-鏈接-匯編
C 預處理-鏈接-編譯-匯編
D 編譯-預處理-匯編-鏈接
- 下列命令中,刪除文件的命令是:___D___。
A. ls
B. mkdir
C. tail
D. rm
- 嵌入式處理器指令的執行周期不包括__A____。
A.啟動
B.取指令
C.指令譯碼
D.執行指令
- 將系統啟動代碼讀入內存是___C___的主要職責。
A.內存管理
B.VFS
C.Boot Loader
D.虛擬內存
- 下列不屬於嵌入設計處理器本身帶有的基本接口是___C___。
A.串口
B.並口
C.PCIE
D.AD/DA
- 下列選項中,描述錯誤的是__D__。
A.arch為體系結構相關的代碼
B.block為塊設備的通用函數
C.crypto只能用於加密和散列算法
D.ipc進程件通信代碼
- SRAM與DRAM相比,優點是___A___。
A.SRAM比DRAM快
B.DRAM與SRAM耗電多
C.SRAM比DRAM存儲密度高
D.以上都是
- 預處理后的文件后綴名為___D___。
- .c
- .C
- .M
- .i
- 下列哪條指令把寄存器R0、R1的值相加后存到R2中:__C____。
A.AND R0, R1, R2
B.SUB R0, R1, R2
C.ADD R2, R1, R0
D.AND R1, R2, R0
- 下面描述不屬於Bootloader的第二階段的是:___A___。
- 硬件設備初始化
- 初始化本階段要使用到的硬件設備
- 檢測系統內存映射
- 為內核設置啟動參數
- 下面關於UBOOT有點描述錯誤的是:___D___。
- 開發源碼
- 僅支持Linux操作系統
- 支持多個處理器系列
- 較高的可靠性和穩定性
- 對於“ls –l|more”操作,命令解釋程序運行進程ls和more使用了以下哪種通信方式___A___。
- 管道
- 消息隊列
- 套接字
- 信號
- 下列關於Linux根文件目錄,描述錯誤的是___C___。
- /bin目錄下存放一般用戶可以使用的基本命令
- /sbin目錄下存放系統命令
- /dev目錄下存放設備文件
- /etc目錄下存放各種配置文件
16、指令“LDMIA R0!, {R1, R2, R3, R4}”的尋址方式為( C )。
A. 立即尋址 B. 寄存器間接尋址
C. 多寄存器尋址 D. 堆棧尋址
17、下列不屬於RISC計算機特點的是( C )。
A. 流水線每周期前進一步。 B. 更多通用寄存器。
C. 指令長度不固定,執行需要多個周期。
D. 獨立的Load和Store指令完成數據在寄存器和外部存儲器之間的傳輸。
18、USB接口移動硬盤最合適的傳輸類型為( B )。
A. 控制傳輸 B. 批量傳輸 C. 中斷傳輸 D. 等時傳輸
19、在嵌入式系統設計中,嵌入式處理器選型是在進行( C )時完成。
A. 需求分析 B. 系統集成 C. 體系結構設計 D. 軟硬件設計
20、無符號二進制數左移一位,則數值( A )。
A. 增大一倍 B. 減小一倍 C. 增大10倍 D. 不變
21、登陸系統后首先進入下列哪一個目錄?( D )
A./home
B.root的主目錄
C./root
D.用戶自己的主目錄
22、用”rm -i”,系統會提示什么來讓你確認 ( B )
A.命令行的每個選項
B.是否真的刪除
C.是否有寫的權限
D.文件的位置
23、除非特別指定,cp假定要拷貝的文件在下面哪個目錄下( B )
A.home目錄
B.當前目錄
C.root目錄
D.用戶目錄
24、Linux的創始人是芬蘭Helsinki大學的學生,他是誰( B )
A.Andrew Tanenbaum
B.Linus Torvalds
C.Bill Gates
D.Richard Stallman
25、假如你得到一個運行命令被拒絕的信息,你可以用哪個命令去修改它的權限使之可以正常運行( B )
A.path=
B.chmod
C.chgrp
D.chown
26、顯示用戶的主目錄的命令是什么( A )
A.echo $HOME
B.echo $USERDIR
C.echo $ECHO
D.echo $ENV
27、用來分離目錄名和文件名的字符是什么( A )
A.反斜杠 (/)
B.點號 (.)
C.減號 (-)
D.星號 (*)
28、確定myfile的文件類型的命令是什么( C )
A.type myfile
B.type -q myfile
C.file myfile
D.whatis myfile
29、按_____鍵能中止當前運行的命令( B )
A.Ctrl-D
B.Ctrl-C
C.Ctrl-B
D.Ctrl-F
30、哪個符號加在命令后面可以在后台執行程序( B )
A.@ B.&
C.# D.*
31、通過shell執行一個命令,必須先敲入一個__B___
A. 參數
B.命令
C.操作符
D.終端ID號
32、當登錄Linux時,一個具有唯一進程ID號的shell將被調用,這個ID是什么?( A )
A.PID B.UID
C.NID D.CID
33、想查找system-config-network所在的目錄,通過什么命令可以實現?B
A.whereis system-config-network
B.which system-config-network
C.look system-config-network
D.show system-config-network
34、通過下面哪個命令可以打印顯示當前工作的目錄(B)
A.cd B.pwd
C.ls D.ls -l
35、本機有兩塊硬盤,分別放置在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
39、C語言中的標識符只能由字母、數字和下划線三種字符組成,且第一個字符( 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個非負整數
二、多選題(10題每題3分共30分)
1、下面代碼行的空格符合規范的是( 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;
3、 設變量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++;
4、以下for循環的執行次序是( A )
for (x=0, y=0; (y=123)&&x<4; x++)
A 執行3次
B. 循環次數不定
C. 執行4次
D. 是無限次循環
5、代碼文件由( ABD )組成
A.定義文件開頭處的版權和版本聲明
B. API函數的調用示例
C.全局變量的聲明
D.程序的實現體(包括數據和代碼)
6、若用數組名作為函數調用時的實參,則實際上傳遞給形參的是( C )
A.數組中全部元素的值
B.數組的第一個元素的值
C.數組的首地址
D. 數組元素的個數
7、下面程序的輸出結果是( A )
#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
8、下列選項中正確的語句組是( CD )
A.char s[8]; s={"Beijing"}; B.char *s; s={"Beijing"};
C.char s[8]="BeijingT"; D.char *s; s="Beijing";
9、若有定義:int *p[3];,則以下敘述中正確的是( AD )
A.定義了一個可指向一維數組的指針變量p
B.定義了一個指針數組p,該數組含有三個元素,每個元素都是基類型為int的指針
C.定義了一個名為*p的整型數組,該數組含有三個int類型元素
D.定義了一個可指向一維數組的指針變量p,所指一維數組應具有三個int類型元素
10、下面程序的輸出結果是( 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.無答案
三、判斷題(10題每題1分共10分)
44、用do-while語句構成的循環,當while后的表達式的值為零時結束循環。( )
45、結構體和共同體可以相互欠套,都可以做為函數的參數使用。( )
46、在C語言里允許兩個同類型的結構體之間相互賦值,也可以將一組常量賦給結構體。( )
47、在C語言里只能對外部或靜態的數組進行初始化。( )
48、在C語言里,一個共同體不是同時存放多個成員變量的,而是存放其中的一個值,但是不確定是那個值。( )
49、%-20s的作用是告訴系統按照字符串的形式輸出,占20列,向右對齊。( )
50、賦值表達式是一種表達式,它可以出現在任何允許表達式出現的地方,而賦值語句則不能。( )
51、continue語句的作用是跳過循環本中剩余的語句而強行執行下一次循環。continue語句只用在for、while、do-while等循環體中,常與if條件語句一起使用,用來加速循環。( )
52、在C語言里數組的下標都是取整數,如果是小數將不會做處理。( )
53、若有定義:int (*p)[4],則p是一個指向含有四個整型元素的一維數組 的指針。( )