C語言筆試試題及答案

引導語: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