當前位置:才華齋>計算機>C語言>

C語言筆試試題及答案

C語言 閱讀(1.35W)

引導語:C語言的應用範圍廣泛,具備很強的資料處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,以下是小編整理的C語言筆試試題及答案,歡迎參考閱讀!

C語言筆試試題及答案

選擇題((1)-(40)每小題1分,(41)-(50)每小題2分,共60分)

下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題卡相應位置上塗黑,答在試卷上不得分。

(1) 所謂"裸機"是指

A) 微控制器 B) 單板機

C) 不裝備任何軟體的計算機 D) 只裝備作業系統的計算機

(2) 下列儲存器中,存取速度最快的是

A) 軟盤 B) 硬碟 C) 光碟 D) 記憶體

(3) 系統軟體中最重要的是

A) 作業系統 B) 語言處理程式 C) 工具軟體 D) 資料庫管理系統

(4) CPU處理的資料基本單位為字,一個字的字長

A) 為8個二進位制位 B) 為16個二進位制位

C) 為32個二進位制位 D) 與CPU晶片的型號有關

(5) 列印當前螢幕內容應使用的控制鍵是

A) Scroll-Lock B) Num-Lock C) PgDn D) PrtSc(Print Screen)

(6) 能將高階語言源程式轉換成目標程式的是

A) 除錯程式 B) 解釋程式 C) 編譯程式 D) 編輯程式

(7) 二進位制數1110111.11轉換成十進位制數是

A) 119.375 B) 119.75 C) 119.125 D) 119.3

(8) 十六進位制數FF.1轉換成十進位制數是

A) 255.0625 B) 255.125 C) 127.0625 D) 127.125

(9) 3.5英寸軟碟片的一個角上有一個滑動塊,如果移動該滑塊露出一個小孔,則該軟盤

A) 不能讀但能寫 B) 不能讀也不能寫 C) 只能讀不能寫 D) 能讀寫

(10) 控制鍵^C的功能為

A) 終止當前操作 B) 系統復位

C) 暫停標準輸出裝置的輸出 D) 結束命令列

(11) 為命令處理程式,DOS系統啟動後,它

A) 駐留在外存,需要時再裝入記憶體 B) 常駐記憶體,包含所有內部命令

C) 不能處理外部命令 D) 不能處理字尾為的可執行檔案

(12) 為了將所有副檔名為的檔案改成副檔名為.P,應使用命令

A) REN * *.?AS B) REN PAS P

C) REN * *.P D) REN * *.P??

(13) 設當前盤中檔案XY.C的路徑為ABXU,當前目錄為AB。為了檢視檔案XY.C的內容,應使用命令

A) TYPE XUXY.C B) TYPE XUXY.C

C) DIR XUXY.C D) DIR ABXUXY.C

(14) 要將提示符改成當前盤當前目錄後加一個大於號">",應使用命令

A) PROMPT B) PROMPT $p$g C) PROMPT $$ D) PROMPT C>

(15) 設C盤根目錄中有一個批處理檔案,當前盤為A盤。為了執行該批處理檔案,下列命令中一定正確的是

A) C:A B) C: C) D)

(16) 設當前盤為C盤,將A盤根目錄下的檔案目錄資訊存放到當前盤當前目錄下的檔案AB中,應使用命令

A) TYPE A:>AB B) DIR >AB C) DIR A:>AB D) DIR >AB

(17) 可執行檔案所需要的輸入資料已經按格式存放在檔案XYZ中,要求將執行結果在印表機上列印輸出。下列命令中正確的是

A) ABCXYZ<PRN D) ABCPRN

(18) 在當前盤當前目錄下有一個檔案,其內容為

CD

MD XYZABBC

CD XYZABB

在正確執行上述檔案後,接著執行下列命令時,不會發生錯誤的是

A) MD C B) RD XYZ C) RD C D) RD B

(19) 下列命令組中兩個命令互相等價的是

A) TYPE 與 DIR

B) DISKCOMP A: B: 與 COMP A:*.* B:*.*

C) TYPE >> 與 COPY

D) TYPE > 與 COPY

(20) 設A盤為啟動盤,其目錄結構為

其中檔案的內容如下:

MD XYZ

CD DOSUSER

則由A盤啟動成功後,A盤的當前目錄是

A) DOSUSER B) XYZ C) 根目錄 D) DOS

(21) 在C語言提供的合法的關鍵字是

A) swicth B) cher C) Case D) default

(22) 在C語言中,合法的字元常量是

A) '84' B) 'x43' C) 'ab' D) ""

(23) 若已定義x和y為double型別,則表示式:x=1,y=x+3/2的值是

A)1 B)2 C)2.0 D)2.5

(24) 合法的陣列定義是

A)int a[]="string"; B)int a[5]={0,1,2,3,4,5};

C)vhst s="string"; D)char a[]={0,1,2,3,4,5};

(25) 設a為整型變數,不能正確表達數學關係:1010&&a>15

D)!(a<=10)&&!(a>=15)

(26) 若t為double型別,表示式t=1,t5,t++的值是

A) 1 B) 6.0 C)2.0 D)1.0

(27) 若有定義和語句:

char s[10]:s="abcd";printf("%s ",s);

則結果是(以下u代表空格)

A) 輸出abcd B) 輸出a C) 輸出abcduuuuu D) 編譯不通過

(28) 若有定義和語句:

int **pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;printf("%d ",*p,**pp);

則輸出結果是:

A)10,20 B)10,10 C)20,10 D)20,20

(29) 若有以下定義和語句:

int u=010,v=0x10,w=10;

printf("%d,%d,%d ,u,v,w);

則輸出結果是:

A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10

(30) 若有以下定義和語句

char c1='b',c2='e';

printf("%d,%c ",c2-c1,c2-'a'+"A");

則輸出結果是:

A)2,M B)3,E

C)2,E D)輸出項與對應的格式控制不一致,輸出結果不確定

(31) 若有以下定義:

char s[20]="programming",*ps=s;

則不能代表字元o的表示式是

A) ps+2 B)s[2] C) ps[2] D)ps+=2,*ps

(32) 若ij已定義為int型別,則以下程式段中內迴圈體的總的執行次數是

for (i=5;i;i--)

for(j=0;j<4;j++){...}

A)20 B)25 C)24 D)30

(33) 若有以下定義和語句:

char *s1="12345",*s2="1234";

printf("%d ",strlen(strcpy(s1,s2)));

則輸出結果是

A) 4 B)5 C)9 D)10

(34) 若有以下定義和語句:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

則不能表示a陣列元素的表示式是

A) *p B) a[10] C) *a D) a[p-a]

(35) 下面程式的輸出是

main()

{ char *s="121";

int k=0, a=0, b=0;

do {k++;

if(k%2==0) {a=a+s[k]-'0';

continue;}

b=b+s[k]-'0';

a=a+s[k]-'0';

}

while (s[k+1]);

printf("k=%d a=%d b=%d ",k,a,b);

A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 D)k=2 a=2 b=3

(36) 下面程式的輸出是

main()

{ unsigned a=32768;

printf("a=%d ",a);

}

A)a=32768 B)a=32767 C)a=-32767 D)a=-1

(37) 若有以下定義:

float x;int a,b;

則正確的switch 語句是

A)switch(x) B)switch(x)

{ case1.0:printf("* "); { case1,2:printf("* ");

case2.0:printf("** "); case3:printf("** ");

} }

C)switch (a+b) D)switch (a+b);

{ case 1:printf(" "); { case 1:printf(."* ");

case 1+2:printf("** "); case 2:printf("** ");

} }

(38) 若有定義:int x,y;char a,b,c;並有以下輸入資料(此處< CR> 代表換行符,/u代表空格):

1u2

AuBuC

則能給x賦整數1,給y賦整數2,給a賦字元A,給b賦字元B,給c賦字元C 的正確程式段是

A) scanf("x=%d y+%d",&x,&y);a=get);b=get);c=get);

B) scanf("%d %d",&x,&y);a=get);b=get);c=get);

C) scanf("%d%d%c%c%c,&x,&y,&a,&b,&c);

D) scanf("%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&c);

(39) 以下程式輸出的結果是

#include

#include

main()

{ char w[][10]={"ABCD","EFGH","IJKL","MNOP"},K;

for (k=1;k<3;k++)

printf("%s ",&w[k][k]);

}

A)ABCD B)ABCD

FGH EFG

KL IJ

M

C)EFG D)FGH

JK KL

O

(40) 若有以下的定義:

int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a;

則值為3的表式是

A) p+=2, *(p++) B) p+=2,*++p C) p+=3, *kp++ D) p+=2,++*p

(41) 假定所有變數均已正確說明,下列程式段執行後x的值是

a=b=c=0;x=35;

if(!a)x--;

else if(b);

if(c)x=3;

else x=4;

A)34 B)4 C)35 D)3

(42) 在以下一組運算子中,優先順序最高的'運算子是

A)<= B)= C)% D)&&

(43) 若有以下定義和語句:

int w[2][3],(*pw)[3];

pw=w;

則對w陣列元素非法引用是

A)*(w[0]+2) B)*(pw+1)[2] C)pw[0][0] D)*(pw[1]+2)

(44) 若有以下程式片段:

char str[]="ab 12"";

printf(%dd",strlen(str));

上面程式片段的輸出結果是

A)3 B)4 C)6 D)12

(45) 函式呼叫:strcat(strcpy(str1,str2),str3)的功能是

A) 將串str1複製到串str2中後再連線到串str3之後

B) 將串str1連線到串str2之後再複製到串str3之後

C) 將串str2複製到串str1中後再將串str3連線到串str1之後

D) 將串str2連線到串str1之後再將串str1複製到串str3中

(46) 以下對C語言函式的有關描述中,正確的是

A) 在C中,呼叫函式時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B) C函式既可以巢狀定義又可以遞迴呼叫

C) 函式必須有返回值,否則不能使用函式

D) C程式中有呼叫關係的所有函式必須放在同一個源程式檔案中

(47) 以下敘述中不正確的是

A) 在C中,函式中的自動變數可以賦初值,每呼叫一次,賦一次初值。

B) 在C中,在呼叫函式時,實在引數和對應形參在型別上只需賦值相容。

C) 在C中,外部變數的隱含類別是自動儲存類別。

D) 在C中,函式形參可以說明為register變數。

(48) 以下程式的輸出結果是

#include

subl(char a,char b) {char c; c=a;a=b;b=c;}

sub2(char* a,char b) {char c; c=*a;*a=b;b=c;}

sub3(char* a,char*b) {char c; c=*a;*a=*b;*b=c;} { char a,b;

a='A';b='B';sub3(&a,&b);puta);putb);

a='A';b='B';sub2(&a,b);puta);prtb);

a='A';b='B';sub1(a,b);puta);putb);

}

A) BABBAB B) ABBBBA C) BABABA D) BAABBA

(49) 設有如下定義:

struct sk

{int a;float b;}data,*p;

若有p=&data;,則對data中的a域的正確引用是

A)(*p).a B)(*p).a C)p->data.a D).a

(50) 以下對列舉型別名的定義中正確的是

A)enum a={one,two,three}; B)enum a {one=9,two=-1,three};

C)enum a={"one","two","three"}; D)enum a {"one","two","three"};

答案

一、選擇題((1)--(40)題每題1分,(41)--(50)題每題2分,共60分。

(1)C (2)D (3)A (4)D (5)D (6)C 7)B (8)A (9)C (10)A

(11)B (12)C (13)A (14)B (15)A (16)C (17)D (18)C (19)D (20)C

(21)D (22)B (23)C (24)D (25)A (26)D (27)D (28)D (29)A (30)B

(31)A (32)A (33)A (34)B (35)C (36)C (37)C (38)D (39)D (40)A

(41)B (42)C (43)B (44)C (45)C (46)A (47)C (48)A (49)B (50)B