計算機二級

當前位置 /首頁/計算機/計算機二級/列表

2022年全國計算機二級考試試題題庫(附答案)

計算機二級考試是全國計算機等級考試,四個等級中的一個等級,由教育部考試中心主辦,考核計算機基礎知識和使用一種高階計算機語言編寫程式以及上機除錯的基本技能。下面是小編為大家收集的2022年全國計算機二級考試試題題庫(附答案),歡迎閱讀,希望大家能夠喜歡。

2022年全國計算機二級考試試題題庫(附答案)

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

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

(1) 應用軟體是指

A) 所有能夠使用的軟體 B) 能被各應用單位共同使用的某種軟體

C) 所有微機上都應使用的基本軟體 D) 專門為某一應用目的而編制的軟體

(2) 下列述敘中錯誤的是

A) 計算機要經常使用不要長期閒置不用

B) 為了延長計算機的壽命,應避免頻繁開關計算機

C) 在計算機附近應避免磁場干擾

D) 計算機用幾小時後,應關機一會兒再用

(3) 下列字元中,ASCII碼值最小的是

A) A B) a C) Z D) x

(4) 用電晶體作為電子器件製成的計算機屬於

A) 第一代 B) 第二代 C) 第三代 D) 第四代

(5) 下列各不同進位制的四個無符號數中,最小的數是

A) (11011001)2 B) (37)8 C) (75)10 D) (2A)16

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

A) 77.C B) 77.3 C) E7.C D) E7.3

(7) 下列各無符號十進位制數中,能用八位二進位制表示的是

A) 296 B) 333 C) 256 D) 199

(8) 計算機的軟體系統可分類為

A) 程式與資料 B) 系統軟體與應用軟體

D) 作業系統與語言處理程式 D) 程式、資料與文件

(9) 486機中的CPU同時能處理的二進位制位數為

A) 8 B) 16 C) 32 D) 64

(10) 在使用計算機的過程中,需要重新啟動DOS,則要

A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵

(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①開啟計算機電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為

A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①

(12) 設當前盤中某一檔案路徑為ACBABC.C,當前目錄為A。下列命令中錯誤的是

A) CD.. B) RD ACB

C) TYPE ACBABC.C D) TYPE CBABC.C

(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一檔案。現要檢視檔案的內容,應使用命令

A) TYPE AB B) TYPE

C) TYPE D) DIR

(14) 自動批處理檔案必須放在

A) C盤根目錄中 B) A盤根目錄中

C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中

(15) 設當前盤當前目錄為C:USERXYP,且當前盤當前目錄為空,則下列命令中能正確執行的是

A) RD C:USERXYP B) RD USERXYP

C) MD USERXYPUSER D) MD USERXYPXY

(16) 下列DOS命令中,合法的是

A) DISKCOMP A.C B.C B) TYPE A.C >> B.C

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

(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯誤的是

A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:

(18) 下列DOS命令中錯誤的是

A) TYPE >PRN B) TYPE PRN

C) COPY * PRN D) COPY CON PRN

(19) 下列四組DOS命令中,互相等價的一組是

A) COPY A:*.* B:與DISKCOPY A: B:

B) COPY +與TYPE >>

C) COPY + 與COPY +

D) TYPE *>CON與COPY * CON

(20) 設C盤目錄結構如下:

且C盤根目錄下檔案的內容為

CD FORTRAN

CD TC

如果在A驅動器中插入一張根目錄中只有副檔名為.C的若干檔案(即A盤中無DOS系統檔案)的軟碟片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是

A) COPY A:*.C B) COPY A:*.C TC

C) COPY A:*.C FORTRAN D) CD USER

(21) C語言提供的合法的資料型別關鍵字是

A) Double B) short C) integer D) Char

(22) 在C語言中,合法的長整型常數是

A) 0L B) 4962710 C) 0.054838743 D) 2.1869e10

(23) 表示式:10!=9的值是

A) true B) 非零值 C) 0 D) 1

(24) 合法的C語言中,合法的長整型常數是

A) ' ' B) "A" C) 65 D) A

(25) 若有說明和語句:

int a=5;

a++;

此處表示式a++的值是

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

(26) 在下列選項中,不正確的賦值語句是

A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;

(27) 若有說明:int i,j=7, *p=&i;,則與i=j;等價的語句是

A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;

(28) 不能把字串:Hello!賦給陣列b的語句是

A) char b[10]={'H','e','l','l','o','!'};

B) char b[10];b="Hello!";

C) char b[10];strcpy(b,"Hello!");

D) char b[10]="Hello!";

(29) 若有以下說明:

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

char c='a',d,g;

則數值為4的表示式是

A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]

(30) 若有以下說明:

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

則數值為6的表示式是

A) *p+6 B) *(p+6) C) *p+=5 D) p+5

(31) 若有以下說明:

int w[3][4]o={{0,1},{2,4},{5,8}};

int(*p)[4]=w;

則數值為4的表示式是

A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]

(32) 若程式中有下面的說明和定義

struct abc

{int x;char y;}

struct abc s1,s2;

則會發生的情況是

A) 編譯進錯 B) 程式將順利編譯`連線`執行

C) 能順利通過編譯`連線`但不能執行 D) 能順利通過編譯`但連接出錯

(33) 能正確表示a≥10或a≤0的關係表示式是

A)a>=10 or a<=0 a="">=10│a<=0

C)a>=10││a<=0 a="">=10 ││a<=0

(34) 下面程式的輸出是

main()

{ int x=3,y=6,a=0;

while(x++!=(y+=o1))

{ a+o=1;

if(y

#include

main()

{ char ss[10]="12345";

strcat(ss,"6789");

gets(ss);printf("%s ",ss);

}

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(35) 下面程式的輸出是

main()

{ char *a="12134211";

int v1=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

{ default:v4++;

case '1': v1++;

case '3': v3++;

case '2': v2++; }

printf("v1=%d,v2=%d,v3=%d,v4=%d ",v1,v2,v3,v4); }

A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1

C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8

(36) 下面程式的輸出是

main()

{int k=11;printf("k=%d,k=%o,k=%x ",k,k,k);}

A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b

(37) 若有以下程式段,w和k都是整型變數:

w=k;

LB: if(w==0) go to LE;

w--;

printf("*");

goto LB;

LE: ┆

則不能與上面程式段等價的迴圈語句是

A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");

C)w=k; D)w=k;

while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);

(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入資料的程式段是

A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);

C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);

(39) 當執行下面程式且輸入:ABC時,輸出的結果是

#include

#include

main()

{ char ss[10]="12345";

gets(ss);printf("%s ",ss); }

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(40) 若有以下的說明和語句:

main()

{int t[3][2], *pt[3],k;

fpr(k=o; k<3;k++)pt[k]=t[k];

}

則以一選項中能正確表示t陣列元素地址的表示式是

A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]

(41) 下面程式輸出陣列中的最大值,由s指標指向該元素.

main()

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

flr(p=a, s=a; p-a<10; p++)

if(---?---)s=p;

printf("The max:%d",*s):

}

則在if語句中的判斷表示式應該是

A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s

(42) 下面程式的輸出是

#include

main()

{ char*a="abcdefgh";

fun(a);puts(a); }

fun (char * s)

{ int x=0,y;char c;

for(y=strlen(s)-1;x

A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba

(43) 若有以下函式呼叫語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函式呼叫語句中實參的個數是

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

(44) 下面程式的輸出是

main()

{ int t=1; fun(fun(t));}

fun(int h)

{ static int a[3]={1,2,3};

int k;

for(k=0;k<3;k++) a[k]+=a[k]-h;

for(k=1;k<3;k++) printf("%d",a[k]);

printf(" "); return(a[h]);}

A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,

1,5,9, 1,3,5, 0,4,8, -1,3,7,

(45) C語言中,函式的隱含儲存類別是

A)auto B)static C)extern D)無儲存類別

(46) 下面程式的輸出是

int w=3;

main()

{ int w=10; printf("%d ",fun(5)*w); }

fun(int k)

{ if(k==0) return w;

return(fun(k-1)*k); }

A)360 B)3600 C)1080 D)1200

(47) 要求函式的功能是交換x和y中的值,且通過正確呼叫返回交換結果。能正確招待此功能的函式是

A)funa(int *x,int *y) B) funb(int x,int y)

{int *p; {int t;

*p=*x;*x=*y;*y=*p;} t=x;x=y;y=t;}

C) func(int *x,int *y) D) fund(int x,int y)

{*x=*y;*y=*x;} {*x=*x+*y; *y=*x-*y; *x=*x-*y; }

(48) 要求函式的功能是在一維陣列中查詢值;若找到則返回所在的下標值,否則返回0;數列放在到中。不能正確執行的函式是

A)funa(int *a,int n,int x ) B)funb(int *a,int n,int x)

{ *a=x; {int k;

while(a[n]!=x)n--; for(k=1;k<=n;k++)

return n; if(a[k]==x)return k;

} return 0; }

C)func(int a[],int n,int x ) D) fund(int a[],int n,int x )

{ int *k; { int k=0;

a[0]=x;k=a+n; do

while(*k!=x) k--; k++;

return k-n; while((k<n+1)&&(a[k]!=x));< p="">

} if(a[k]==x)return k; else return 0; }

(49) 若有下面的說明和定義,則sizeof(struct aa) 的值是

struct aa

{ int r1;double r2; float r3;

union uu{char u1[5]; long u2[2]; } ua;

} mya;

A)30 B)29 C)24 D)22

(50) 用十進位制數表示表示式:12/012的運算結果是

A)1 B)0 C)14 D)12

二、填空題:(每空2分,共40分)

請將每空的正確答案寫在答題卡【1】-【20】序號的橫線上,答在試卷上不得分。

(1) 與八進位制小數0.1等值的十六進位制小數為 【1】 。

(2) DOS命令分為內部命令和外部命令,SYS命令屬於 【2】 。

(3) 要列印輸出當前盤當前目錄下的所有副檔名為的檔案內容,應使用的DOS命令為 【3】 。

(4) 設當前系統提示符為"C:USER>",執行命令"PROMPT $p"後,系統提示符變為 【4】 。

(5) 要建立當前盤當前目錄下的全部檔案與下一級子目錄的目錄資訊檔案MYDIR,應使用的DOS命令為 【5】 。

(6) 若想通過以下輸入語句給a賦於1,給b賦於2,則輸入資料的形式應該是 【6】 。

int a,b;

scanf("a=%b,b=%d,&a,&b);

(7) 函式mycmp (char*s,chat *t)的`功能是比較字串s和t的大小,當s等於t 時返回0,否則返回s和t的第一個不同字元的ASCOII碼的差值,即當s>t時返回正值, 當s等於t 時返回0,否則返回s和t的第一個不同字元的ASCOII碼的差值,即當s>t時返回正值, 當s<t時返回負值,請填空。< p="">

mycmp(char *s,char *t)

{ while(*s==*t)

{if(*s=='') return 0;

++s; ++t;}

return (【7】); }

(8) 下面程式的輸出是【8】 。

#define MAX 5

int a[MAX],k;

main()

{ fun1();fun3(); fun2(); fun3();

printf(" "); }

fun1()

{ for(k=0;k

fun2()

{ int a[MAX],k;

for(k=0;k<5;k++) a[k]=k; }

fun3()

{ int k;

for(k=0;k

(9) 若有以下定義和語句,則使指標p指向值為36的陣列元素的表示式是【9】 。

int a[10]={19,23,44,17,37,28,49,36},*p;

p=a;

(10) 下面程式的輸出是 【10】 。

main()

{ enum em{ em1=3,em2=1,em3};

char *aa[]={"AA","BB","CC","DD"};

printf("%s%s%s ",aa[em1],aa[em2],aa[em3]); }

(11) 下面函式要求用來求出兩個整數之和,並通過形參傳回兩數相加之和值,請填空。

int add(int x,int y, 【11】 z)

{ 【12】 =x+y;}

(12) 有以下說明定義和語句,可用引用結構體成員day, 請寫出引用結構體成員的其它兩種形式 【13】 、【14】 。

struct{int day;char mouth;int year;}a,*b; b=&a;

(13) 下面fun函式的功能是將形參x的值轉換成二進位制數,所得二進位制數的每一位數放在一維陣列中返回,二進位制數的最低位放在下標為0的元素中,其它依此類推。請填空。

fun(int x,int b[])

{ int k=0,r;

do

{ r=x% 【15】;

b[k++]=r;

x/=【16】; } while(x); }

(14) 現有如圖所示的儲存結構,每個結點含兩個域,data是指向字串的指標域,next是指向結點的指標域。請填空完成此結構的型別定義和說明。

head

struct link

{【17】 ; 【18】;} *head;

(15) 下面程式把從終端讀入的文字用@作為文字結束標誌)複製到一個名為的新檔案中,請填空。

#include

FILE *fp;

main()

{ char ch;

if((fp=fopen( 【19】))==NULL)exit(0);

while ((ch=get))!='@')fputc(ch,fp); 【20】

【參考答案】

一.選擇題((1)~(40)題每題1分,(41)~(50)題每題2分,共60分)

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

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

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

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

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

二.填空題(每空2分,共40分) ((1)至(5)題中所有字母都允許大、小寫或大小寫混合)

(1) 1 0.2或(0.2)16

(2) 2 外部命令(答外部不扣分)

(3) 3 COPY * PRN

(4) 4 C:USER

(5) 5 DIR >MYDIR

(6) 6 a=1,b=2

(7) 7 *s=*t

(8) 8 o246802468

(9) 9 p=p+7或p+=7

(10)10 DDBBCC

(11)11 int * 12 * z

(12)13 (*b) 14 b->day

說明:答案[13]和[14]可以互換

(13)15 2 16 2

(14)17 char *data 18 struct link *next

說明:答案[17]和[18]可以互換

(15)19 "","w" (說明:"w"內以w開頭的字串都可以) 20 fclose(fp)