專題訓練6全國計算機二級C語言考試練習及答案(近2年)_第1頁
專題訓練6全國計算機二級C語言考試練習及答案(近2年)_第2頁
專題訓練6全國計算機二級C語言考試練習及答案(近2年)_第3頁
專題訓練6全國計算機二級C語言考試練習及答案(近2年)_第4頁
專題訓練6全國計算機二級C語言考試練習及答案(近2年)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、溫故而知新,下筆如有神全國計算機二級C語言考試專項練習題2及答案一、選擇題(1)-(40)每小題1分,(41)-(50)每小題2分,共60分)下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。(1) 一個完整的計算機系統包括A主機、鍵盤與顯示器B計算機與外部設備C硬件系統與軟件系統D系統軟件與應用軟件(2) 十六進制數1000轉換成十進制數是A4096B1024C2048D8192(3) 十進制數269轉換成十六進制數是A10EB10DC10CD10B(4) 如果用八位二進制補碼表示帶符號的定點整數,則能表示的十進制數的范

2、圍是A-127到+127B-128到+128C-127到+128D-128到+127(5) 下列設備中,既可作為輸入設備又可作為輸出設備的是A鼠標器B打印機C鍵盤D磁盤驅動器(6) 下列各敘述中,正確的是A正數十進制原碼的補碼是原碼本身B所有的十進制小數都能準確地轉換為有限位二進制小數C漢字的計算機內碼就是國標碼D存儲器具有記憶能力,其中的信息任何時候都不會丟失(7) 在下列操作中,能導致DOS系統重新啟動但不進行系統自檢的是A加電開機B按+C按+D按RESET按鈕(8) 如果給定一個帶有通配符的文件名F*.?,則在下列各文件中,它能代表的文件名是AFA.EXEBF.CCEF.CDFABC.C

3、OM(9) DOS系統啟動后,下列文件中常駐內存的是A*.COMBFORMAT.COMCAUTOEXEC.BATDCOMMAND.COM(10) 設A盤的目錄結構為(畫方框的為目錄)如果當前盤為C盤,A盤的當前目錄為D2,則下列對A盤上文件QR.C的指定中,合法的是AD2D4QR.CBD4QR.CCA:D4QR.CDA:D2D4QR.C(11) 為了要將A盤當前目錄(不是根目錄)中所有擴展名為.C的文件同名復制到A痰哪柯糪USER中,正確的命令是ACOPY A:*.C USER*.CBCOPY A:*.C A:USERCCOPY A:*.C A:USERDCOPY A:*.C A:USER*.

4、C(12) 為了在屏幕上一次顯示當前盤當前目錄下的所有擴展名為.TXT的文件內容,下列命令中正確的是ATYPE *.TXTBTYPE *.TXT CONCCOPY *.TXT>CONDCOPY *.TXT CON(13) 設當前盤為A盤,為了將當前盤當前目錄下的文件AB1.TXT連接在C盤根目錄下的文件XYZ.TXT的后面,正確的命令是ACOPY C:XYZ.TXT+AB1.TXTBCOPY AB1.TXT>>C:XYZ.TXTCTYPE AB1.TXT>C:XYZ.TXTDCOPY AB1.TXT+C:XYZ.TXT>C:XYZ.TXT(14) 設A盤為啟動盤,

5、其目錄結構為(畫方框的為目錄)其中文件AUTOEXEC.BAT的內容為MD XYZCD DOSUSER則由A盤啟動成功后,A盤的當前目錄是ADOSUSERBXYZCDDOS(15) 下列DOS命令中為內部命令的是ACOMPBPATHCPRINTDFORMAT(16) 設當前盤為C盤,所用的所有軟盤已格式化且容量相同,則下列DOS命令中錯誤的是ADISKCOPY A: C:BDISKCOPY A: A:CCOPY A:*.*DCOPY A:*.* C:(17) 下列DOS命令中,有錯誤的是ATYPE AAB.FOR>PRNBTYPE ?AB.FORCCOPY *.C PRNDCOPY CO

6、N PRN(18) 設當前盤為C盤,在當前目錄下有全部的DOS系統文件與批處理命令文件AB.BAT,且該批處理命令文件的內容為FORMAT A:/4MD XYZCD XYZRD XYZMD XYZ如果在1.2軟盤驅動器A中插入一張360K容量的軟盤片,執行批自理命令文件AB.BAT后,結果A盤的目錄結構是A根目錄B根目錄-子目錄XYZ-子目錄XYZC根目錄 子目錄XYZ 子目錄XYZD根目錄-子目錄XYZ(19) 下列帶有通配符的文件名,能代表文件ABC.FOR的是A*BC.?BA?.*C?BC.*D?.?(20) 設當前盤為C盤,且C盤上含有子目錄DOS,A盤為只有根目錄的啟動盤(根目錄下只

7、有三個DOS系統文件與擴展名為. C的文件)。下列命令組中的兩個命令從效果上可以認為等價的是ADEL DOS與RD DOSBFORMAT A:與DEL A:*.*CFORMAT A: /S與DEL A:*.?DCOPY A:F1 F2與REN A:F1 F2(21) 設a、b和c都是int型變量,且a=3,b=4,c=5,則下面的表達式中,值為0的表達式是Aa&&bBa<=bCa|b+c&&b-cD!(a(22) 請讀程序片段:int i=65536; printf("%dn",i);上面程序片段的輸出結果是A65536B0C有語法錯誤

8、,無輸出結果D-1(23) 設ch是char型變量,其值為A,且有下面的表達式:ch=(ch>=A&&ch<=Z)?(ch+32):ch上面表達式的值是AABaCZDz(24) 若x和y都是int型變量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y);上面程序片段的輸出結果是A200B100C100 200D輸出格式符不夠,輸出不確定的值(25) 下面各語句行中,能正確進行賦字符串操作的語句行是Achar st45="ABCDE"Bchar s5=A,B,C,D,E;Cchar *s; s=&q

9、uot;ABCDE"Dchar *s; scanf("%s",s);(26) 若k是int型變量,且有下面的程序片段:k=-3if(k<=0) printf("#")else printf("&&&&");上面程序片段的輸出結果是A#B&&&&C#&&&&D有語法錯誤,無輸出結果(27) 若x是int型變量,且有下面的程序片段:for(x=3; x<6; x+) printf(x%2)?("*%d"

10、):("#%dn"),x);上面程序片段的輸出結果是A*3B#3C#3D*3#4#4 *4 *4#5 *5*5 #5(28) 請讀程序:#includef(char *s) char *p=s;while( *p!=0) p+;return(p-s);main() printf("%dn",f("ABCDEF");上面程序的輸出結果是A3B6C8D0(29) 請讀程序:#includemain() int a; float b, c;scanf("-?O",&a,&b,&C;printf(&

11、quot;na=%d, b=%f, c=%fn", a, b,C;若運行時從鍵盤上輸入9876543210(表示回車),則上面程序的輸出結果是Aa=98, b=765, c=4321Ba=10, b=432, c=8765Ca=98, b=765.000000, c=4321.000000Da=98, b=765.0, c=4321.0(30) 請讀程序:#includemain() int n2, i, j, k;for(i=0;i<2;i+) ni=0;k=2for(i=0;ifor(j=0;jprintf("%dn",nk);上面程序的輸出結果是A不確

12、定的值B3C2D1(31) 請讀程序片段:char str="ABCD", *p=str;printf("%dn",*(p+4);上面程序的輸出結果是A68B0C字符"D"的地址D不確定的值(32) 請讀程序片段:#includemain() int a, b;for(a=1;b=1;a<=100;a+) if(b>=20) break;if(b%3=1)b+=3;continue;b-=5;printf("%dn",a);上面程序的輸出結果是A7B8C9D10(33) 若要用下面的程序片段使指針變量p

13、指向一個存儲整型變量的報考存儲單元:int *p;p=_ malloc( sizeof(int);則應填入AintBinst *C(*int)D(int *)(34) 請讀程序片段(字符串內沒有空格):printf("%dn",strlen("ATSn0121");上面程序片段的輸出結果是A11B10C9D8(35) 請讀程序:#include#includemain() char*s1="AbCdEf", *s2="aB"s1+; s2+;printf("%dn",strcmp(s1,s2);

14、上面程序的輸出結果是A正數B負數C零D不確定的值(36) 請讀程序:#includefunc( int a, intB int c;c=a+b;return c;main() int x=6, y=7, z=8, r;r=func( x-,y=,x+y),z-);printf("%dn",r);上面程序的輸出結果是A11B20C21D31(37) 請讀程序:#includeint a=2,4,6,8;main() int i;int *p=a;for(i=0;i<4;i+) ai=*p+;printf("%dn",a2);上面程序的輸出結果是A6B

15、8C4D2(38) 請讀程序:#includechar fun(char *C if( *c<=Z && *c>=A) *c-=A-a;return *c;main() char s81, *p=s;gets(s);while(*p)*p=fun(p); putchar(*p); p+;putchar(n);若運行時從鍵盤上輸入OPEN THE DOOR(表示回車),則上面程序的輸出結果是AoPEN tHE doorBopen the doorCOPEN THE DOORDOpen The Door(39) 請讀程序:#includevoid fun( int *s

16、) static int j=0;dosj+=sj+1;while(+j<2);main() int k, a10=1,2,3,4,5;for(k=1; k<3; k+) fun(a);for(k=0; k<5; k+) printf("%d", ak);上面程序的輸出結果是A34756B23445C35743D12345(40) 請讀程序:#include#define SUB(X,Y) (X)*Ymain() int a=3, b=4;printf("%d", SUB(a+, b+);上面程序的輸出結果是A12B15C16D20(4

17、1) 請讀程序:#includemain() int mun=0;while(num<=2) num+; printf("%dn",num);上面程序的輸出結果是A1B1C1D12 2 23 34(42) 請讀程序:#includemain() float x,y;scan("%f",&x);if(x<0.0) y=0.0else if(x<5.0)&&(x!=2.0)y=1.0/(x+2.0);else if (x<10.0) y=1.0/x;else y=10.0;printf("%fn&qu

18、ot;,y);若運行時從鍵盤上輸入2.0(表示回車),則上面程序的輸出結果是A0.000000B0.250000C0.500000D1.000000(43) 請讀程序:#includemain() int x=1, y=0, a=0, b=0;switch(x) case 1:switch(y) case 0: a+;break;case 1: b+;break;case 2:a+; b+; break;printf("a=%d, b=%dn",a,B;上面程序的輸出結果是Aa=2, b=1Ba=1, b=1Ca=1, b=0Da=2, b=2(44) 若有下面的程序片段:

19、int a12=0, *p3, *pp, i;for(i=0; i<3; i+)pi=&ai*4;pp=p;則對數組元素的錯誤引用是App01Ba10Cp31D*(*(p+2)+2)(45) 請讀程序:#include#includemain() float x,y,z;scan("%f%f",&x,&y);z=x/y;while(1) if(fabs(z)>1.0) x=y; y=z; z=x/y;else breakprintf("%fn",y);若運行時從鍵盤上輸入3.6 2.4(表示回車),則輸出的結果是A1.

20、500000B1.600000C2.000000D2.400000(46) 請讀程序:#includef(in b, int n) int i, r;r=1;for(i=0; i<=n; i+) r=r*bi;return r;main() int x, a= 2,3,4,5,6,7,8,9;x=f(a, 3);printf("%dn",x);上面程序的輸出結果是A720B120C24D6(47) 請讀程序:#include#includevoid fun( char *s) char a10;strcpy( a, "STRING");s=a;ma

21、in() char *p;fun(p);x=f(a, 3);printf("%sn",p);上面程序的輸出結果是(表示空格)ASTRINGBSTRINGCSTRINGD不確定的值(48) 若已建立下面的鏈表結構,指針p、s分別指向圖中所示的結點,則不能將s所指的結點插入到鏈表末尾的語句組是As->next=NULL; p=p->next; p->next=s;Bp=p->next; s->next=p->next; p->next=s;Cp=p->next; s->next=p; p->next=s;Dp=(*p)

22、.next; (*s).next=(*p).next; (*p).next=s;(49) 請讀程序:#includevoid fun(float *pl, float *p2, float *s) s=( float * )calloc( 1, sizeof(float);*s=*p1+ *(p2+);main() float a2=1.1, 2.2, b2=10.0, 20.0, *s=a;fun(a, b, s)printf("%fn",*s);上面程序的輸出結果是A11.100000B12.100000C21.100000D1.100000(50) 請讀程序:#inc

23、lude#includevoid fun( char *w, int m) char s, *p1, *p2;p1=w; p2=w+m-1;while (p1 s=*p1+; *p1=*p2-; *p2=s;main() char a="ABCDEFG"fun( a, strlen(a);puts(a);上面程序的輸出結果是AGFEDCBABAGADAGACAGAAGAGDGAGGAGA二、填空題(每空2分,共40分)請將每空的正確答案寫在答題卡上【1】-【20】序號后的橫線上,答在試卷上不得分。(1) DOS命令分為內部命令與外部命令,XCOPY命令是 

24、;【1】 命令(2) 為了列出當前盤當前目錄中所有第三個字符為C的文件名的有關信息,應該用命令 【2】 。(3) 設當前盤為A盤,當前目錄為XY,A盤上的一個文件QR.C在當前目錄下的子目錄W中?,F已將A盤的當前目錄改為DXY,當前盤改為C盤,如需指定A盤上該文件應寫成 【3】 。(4) 用十六進制給存儲器中的字節地址進行編號,其地址編號是從0000到FFFF,則該存儲器的容量是【4】KB。(5) 設有兩個八位二進制數00010101與01000111相加,其結果的十進制表示為 【5】 

25、;。(6) 數學式子 寫成C語言表達式是 【6】 。(7) 下面程序的輸出結果是 【7】 。#includemain() static char b="Goodbye"char *chp=&b7;while( -chp >=&b0) putchar( *chp);putchar(n);(8) 下面程序的輸出結果是 【8】 。#includevoid as( 

26、;int x, int y, int *cp, int *dp) *cp=x+y;*dp=x-y;main() int a=4, b=3, c, d;as( a, b, &c, &d);printf( %d %dn", c, d);(9) 請讀程序:#includemain( int argc, char *ar

27、gv) int i;printf( %dn", argc);for( i=0; i<=argc+1; i+) printf( "%s ", argvi);printf("n");若上面的程序編譯、連接后生成可執行文件ABC.EXE,則輸入以下命令行abc file1 file2(表示回車)程序執行后的輸出結果是 【9】 。(10) 條件“20(11) 設二進制數a是001

28、01101,若想通過異或運算ab使a的高4位取反,低4位不變,則二進制數b應是 【11】 。(12) 若有以下說明和定義語句,則變量w在內存中所占的字節數是 【12】 。union aa float x, y;char c6;struct st  union aa v; float w5; double ave;  w;(13) 下面程序的輸出結果是 【13】

29、0;。#include #define N 5fun( char *s, char a, int n) int j;*s=a; j=n;while( ereturn j;main() char sN+1;int k, p;for( k=1; k<=N; k+)sk=A+k+1;printf( "%dn", fun(s, E,

30、0;N);(14) 下面程序的輸出結果是 【14】 。#includevoid fun( char *a1, char *a2, int n) int k;for( k=0; ka2k=( a1k-A-3+26)&+A;a2n=0;main() char s15="ABCD", s25;fun( s1, s2, 4);puts( s2);(15)&#

31、160;下面的findmax函數返回數組s中元素的下標,數組中元素的個數由t傳入,請填空。findmax( int s, int t) int k, p;for( p=0, k=p; pif( sp>sk) 【15】 。return k; (16) 下面程序的輸出結果是 【16】 。#include fun( int x) int p;if( x=0|

32、x=1) return(3);p=x-fun( x-2);return p;main() printf( "%dn", fun(9);(17) 下面程序的輸出結果是 【17】 。#include funa( int a, int b) return a+b;funb( int a, int b) return a-b;sub( int (

33、*t)(), int x, int y) return(*t)( x,y);main() int x, (*p)();p=funa;x=sub(p,9,3);x+=sub(funb, 8, 3);printf("%dn", x);(18) 下面程序的輸出結果是 【18】 。#include main() char *p= "BOOL", "OPK&

34、quot;, "H", "SP"int i;for(i=3; i>=0; i-,i-) printf( "%c", *pi);printf("n");(19) 為了建立如圖所示的存儲結構(即每個結點含兩個域,data是數據域,next是向結點的指針域),請填空。 data next struct link  char data; 【19】&#

35、160; node;(20) 下面的程序用來統計文件中字符的個數,請填空。#include main() FILE *fp;long num=0;if( fp=fopen("fname.dat","r")=NULL) printf( "Cant open file! n"); exit(0);while 【20】  fgetc(fp); num+;printf("num=%dn", num);fclose(fp);參考答案一選擇題(1)(40)題每

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論