2011年春江蘇省計算機二級C考試筆試真題 |
絕密★ 啟用前 2011年春 江蘇省高等學校非計算機專業學生 計算機基礎知識和應用能力等級考試 二級試卷 試卷語種:C語言 說 明: 1.本試卷包括計算機基礎知識部分和程序設計部分,考試時間共12 0分鐘; 2.本試卷滿分為60分,分選擇題和填空題,試卷不分A、B類型; 3.計算機基礎知識部分全部是選擇題(20分),程序設計部分分為選擇題(1 0 分)和填空題(30分)兩種; 4.選擇題用答題卡答題。每一項有A、B、C、D四個可供選擇的答案,請選 擇其中一個你認為正確的答案,用HB鉛筆涂寫在答題卡的相應答題號內。 每選對一項得1分,不選或選錯不得分; 5.填空題用答題紙答題。請將答案用藍、黑色鋼筆或圓珠筆填寫在答題紙的 相應答題號內,每個答案只占一行,不得換行。每填對一個答案得1分, 不填或填錯不得分; 6.請認真填寫并仔細核對答題卡和答題紙上的學校名稱、準考證號和姓名是 否填寫正確。 7.考試結束時將試卷、答題卡和答題紙放在桌上,不得帶走。待監考人員收 畢清點后,方可離場。 第一部分計算機基礎知識 1.下列有關通信技術的敘述中,錯誤的是___(1)___ 。 A. 無論是模擬通信還是數字通信,目前都是通過載波技術實現遠距離的信息傳輸 B. 多路復用技術可以降低信息傳輸的成本,常用的多路復用技術有TDM和FDM C. 衛星通信屬于微波通信,它是微波接力通信技術和空間技術相結合的產物 D. 目前 2.使用存儲器存儲二進位信息時,存儲容量是一項很重要的性能指標。存儲容量的單位有多種,下面不是存儲容量單位的是___(2)___ 。 A. TB B. XB C. GB D. MB 3.設有補碼表示的兩個單字節帶符號整數a=01001110和b=01001111。則a-b的結果用補碼表示為___(3)___ 。 A. 11111111 B. 10011101 C. 00111111 D. 10111111 4. 下列有關PC機主板上BIOS和CMOS的敘述中,錯誤的是___(4)___ 。 A. BIOS芯片是一塊閃爍存儲器,其存儲的信息關機后不會丟失 B. BIOS中包含加電自檢程序、系統自舉程序等 C. CMOS芯片屬于易失性存儲器,它使用電池供電 D. CMOS中存放著與硬件相關的一些配置信息,以及CMOS設置程序 5. 下列有關PC機中央處理器(CPU)和內存(內存條)的敘述中,錯誤的是___(5)___ 。 A. 目前PC機所使用的Pentium和Core 2微處理器的指令系統有數百條不同的指令 B. 所謂雙核CPU或四核CPU,是指CPU由兩個或四個芯片組成 C. DDR內存條、DDR2內存條在物理結構上有所不同,例如它們的引腳數目不同 D. 通常臺式機中的內存條與筆記本電腦中的內存條不同,不能互換 6. 下列有關PC機I/O總線與I/O接口的敘述中,正確的是___(6)___ 。 A.PC機中串行總線的數據傳輸速率總是低于并行總線的數據傳輸速率 B. SATA接口主要用于連接光驅,不能連接硬盤 C. 通過USB集線器,一個USB接口理論上可以連接127個設備 D. IEEEl394接口的連接器與USB連接器完全相同,均有6根連接線 7. 藍光光盤(BD)是全高清影片的理想存儲介質,其單層盤片的存儲容量大約為___(7)___ 。 A.4.7GB B. 8.5GB C.17GB D.25GB 8. 下列有關PC機常用I/O設備(性能)的敘述中,錯誤的是___(8)___。 A. 通過掃描儀掃描得到的圖像數據可以保存為多種不同的文件格式,例如JPEG、 TIF等 B. 目前數碼相機的成像芯片均為CCD類型,存儲卡均為SD卡 C. 刷新速率是顯示器的主要性能參數之一,目前PC顯示器的刷新速率一般在60Hz以上 D. 從彩色圖像輸出來看,目前噴墨打印機比激光打印機有性價比優勢 9. 下列有關計算機軟件的敘述中,錯誤的是___(9)___ · A. 軟件的主體是程序,單獨的數據和文檔資料不能稱為軟件 B. 軟件受知識產權(版權)法的保護,用戶購買軟件后僅得到了使用權 C. 軟件的版權所有者不一定是軟件的作者(設計人員) D. 共享軟件允許用戶對其進行修改,且可在修改后散發 10.PC機從硬盤啟動Windows XP操作系統是一個比較復雜的過程·在這個過程中,它需 要經過以下這些步驟: I.裝入并執行引導程序 Ⅱ.讀出主引導記錄 Ⅲ.裝入并執行操作系統 Ⅳ.加電自檢 在上述步驟中,正確的工作順序是___(10)___ A. I、Ⅱ、Ⅲ、Ⅳ B. Ⅳ、I、lI、Ⅲ C. Ⅳ、II、I、Ⅲ D. Ⅳ、Ⅲ、II、I 11.下列有關算法和程序關系的敘述中,正確的是___(11)___ A. 算法必須使用程序設計語言進行描述 B. 算法與程序是一一對應的 C. 算法是程序的簡化 D. 程序是算法的具體實現 12.采用ADSL方式接入因特網時,ADSLModem將電話線傳輸信道分為三個信息通道: 語音通道、上行數據通道、下行數據通道。下列有關這三個信息通道的敘述中,錯誤 的是 ___(12)___ · A. 語音通道的頻帶最寬、采用的頻率最高,以保證電話通話的質量 B. 通常上行數據通道的數據傳輸速率低于下行數據通道的數據傳輸速率 C. ADSL的數據傳輸速率是根據線路情況自動調整的 D. 這三個信息通道可以同時工作,即可以同時傳輸信息(數據) 13.無線局域網是以太網與無線通信技術相結合的產物,其采用的網絡協議主要是IEEE 制訂的___(13)___ 。 A. IEEE 802.3 B. IEEE 802.11 C. IEEE 1394 D. IEEE 1394b 14.在因特網中目前主要采用IPv4協議,IP地址長度為32位,只有大約36億個地址。新的第6版IP協議(IPv6)已經將IP地址的長度擴展到___(14)___ 位,幾乎可以不受限制地提供地址。 A. 48 B. 64 C. 128 D. 256 . 15.因特網由大量的計算機和信息資源組成,它為網絡用戶提供了非常豐富的網絡服務。 下列與www服務相關的敘述中,錯誤的是___(15)___ 。 A. WWW采用客戶機/服務器工作模式 B. 網頁到網頁的鏈接信息由URL指出 C. 瀏覽器是客戶端應用程序 D. 所有的網頁均是HTML文檔 16.目前Windows操作系統支持多種不同語種的字符集,即使同一語種(例如漢語)也可 有多種字符集。下列字符集中,不包括“臺”、“灣”等繁體漢字的是___(16)___ 。 A. GBK B. Big5 C. GB2312 D. GBl8030 17.下列與數字圖慟圖形相關的敘述中,錯誤的是___(17)___ 。 A. 彩色圖像在數字化過程中需進行分色處理,然后對不同的基色進行取樣和量化 B. 如果某RGB圖像的像素深度為12,則可表示的顏色數目為2 C. 數碼相機常用JPEG格式保存圖像文件,該格式的圖像大多采用有損壓縮編碼 D.圖形是計算機合成的圖像,也稱為矢量圖形 18.文件的擴展名用于標記文件的類型,用戶應該盡可能多地知曉各類文件的擴展名。下列文件中,屬于數字視頻的文件是___(18)___ A. ABC.RMVB B. ABC.DLL C. ABC.PDF D. ABC. 19.下列幾種類型的系統軟件中,不屬于計算機集成制造系統(CIMS)范疇(或者說,與CIMS無直接關系)的是___(19)___。 A. GIS B. CAM C. MRP D. ERP 20.下列有關Microsoft PowerPoint 2003和Microsoft FrontPage 2003軟件的敘述中,錯誤的是 20 。 A. 型用PowerPoint編輯演示文稿時,可以將每張幻燈片保存為JPEG圖片 B. 利用PowerPoint編輯演示文稿時,可以錄制聲音 。 C. 利用FrontPage制作網頁時,無法直接查看網頁的HTML代碼 D. 利用FrontPage制作網頁時,背景圖片可以設置為“水印”效果 第二部分C語言程序設計 一、選擇題(用答題卡答題,答案依次填在21--30答題號內,共1O分) 21.以下關于預處理命令的敘述中錯誤的是___(21)_____ 。 A.預處理命令由預處理程序解釋 B.程序中的預處理命令是以#開始的 C.若在程序的一行中出現多條預處理命令,這些命令都是有效的 D.預處理命令既可以出現在函數定義的外部,也可以出現在函數體內部 22.有如下程序段: char p1[80]=” strcpy(p1,strcat(p2,p3)); printf(“%s\n”,p1); 執行該程序段后的輸出是______(22)______ A.NanJingYoungOlympic B.YoungOlympic C.Olympic D. 23。已知有聲明”int x[2][3]={0},*p=x[0];”,以下表達式中有語法錯誤的是__(23)____ · A.x[0]=1 B.p[0]= 24.程序中已有預處理命令”#include <math.h>“和聲明”char x=4,y,*z;”,以下表達式中能通過編譯且無警告信息的是___(24)___ A.y=sqrt(x)%2 B.y=“x” C.y=’x’+1 D.y=&’x’ 25.已知有定義和聲明: struct {int x;}a[4]={{1},{1},{4},{6}},b; 以下語句中語法正確的是___(25)___ 。 A.if(a[0]==a[1]) b=a[O]; B。if(a[0].x==a[1].x) b=a[0]; C.if(a[0]一>x==a[1]->x) b=a[0]; D。if(!(a[0]-a[1])) b=a[0]; 26.已有聲明”int x,a=3,b=2;”,則執行賦值語句”x=a>b++?a++:b++;”后,變量x、a、b的值分別為___(26)___ 。 A.3 4 3 B.3 3 27.下面選項中可用作變量名的是___(27)___ A.Case B.a-b C.$cd D.2ab 28.執行以下程序后的結果是___(28)___ 。 #include<stdio.h> void main() { int x=3; do { printf(“%d\t”,x=x-3); }while(!x); } A.輸出一個數:0 B.輸出一個數;3 C.輸出2個數:0和-3 D.無限循環,反復輸出數 29.以下關予c語言函數的敘述中,正確的是___(29)___ 。 A.在一個函數體中可以定義另一個函數,也可以調用其他函數 B.在一個函數體中可以調用另一個函數,但不能定義其他函數 + C.在一個函數體中不可調用另一個囂數,也不能定義其他函數 D。在一個函數體中可以定義另一個函數,但不能調用其他函數 30.設有聲明”int a=4,b=3,c=5;”,以下4個程序段中有3個程序段的執行效果是相同的,另一個執行效果不同的是___(30)___ 。 A。if(a>b)c=a,a=b,b=c; C.if(a>b)c=a;a=b;b=c; B.if(a>b){c=a,a=b,b=c;} D.if(a>b){c=a;a=b;b=c;} 二、填空題(將答案填寫在答題紙的相應答題號內,每個答案只占一行,共30分) ● 基本概念 1.除goto語句外,在循環結構中執行___(1)____語句可提前結束本次循環直接進入下一次循環. 2.若有程序段”int a[10],*p=a,*q;q=&a[5];”,則表達式q-p的值是___(2)___ 。 3.執行語句序列”int a,b;a=b=4;a+=b%3;”后,變量a、b的值分別是___(3)___ 。 4.執行程序段”int x=0x 5.使用TURBO C系統編譯C語言源程序后生成的文件名后綴是___(5)___ . · 閱讀程序 6.以下程序運行時輸出到屏幕的結果是___(6)___ 。 #include<stdio.h> #define L 10 #define C L+L void main() { int Area; Area=C*L; printf(“%d\n”,Area); } 7.以下程序運行時輸出到屏幕的結果是___(7)___ 。 #include <stdio.h> enum{A,B,C=4} i; void main() { int k=0; for(i=B;i<C;i++) k++; printf(“%d”,k); } 8.以下程序運行時輸出到屏幕的結果是___(8)___。 #include<stdio.h> void fun(int a) { printf("%d",a%10); if((a=a/10)!=0) fun(a); } void main() {int a=-13; if(a<0) {printf("-"); a=-a; } fun(a); } 9.以下程序運行時若輸入”2010 #include<stdio.h> #include <string.h> char *fun(int n) { static char s[20]; static int c; char t[10]={0},i=0,j,k; while(n>0) t[i++]=n%10+'0',n=n/10; puts(t); for(j=0;j<i/2;j++) k=t[j],t[j]=t[i-1-j],t[i-1-j]=k; strcat(s,t); if(c<1) {strcat(s,"/");c++;} else strcat(s,"\0"); return s; } void main() { int i,m;char *p; for(i=0;i<2;i++) {scanf("%d",&m); p=fun(m); } puts(p); } 1O.以下程序運行時輸出到屏幕的結果中第一行是___(11)___,第二行是___(12)___ , #include<stdio.h> #define M 3 #define N 4 void fun(int a[M][N]) { int i,j,p; for(i=0;i<M;i++) { p=0; for(j=1;j<N;j++) if(a[i][p]>a[i][j]) p=j; printf("%d\n",a[i][p]); } } void main() { int a[M][N]={{-1,5,7,4},{5,2,4,3},{8,2,3,0}}; fun(a); } 11.以下程序運行時輸出到屏幕的結果中第一行是___(13)___,第二行是___(14)___ , #include<stdio.h> int f(int *x,int *y,int z) { *x=*y; *y=z; z=*x; return z; } void main() { int a=1,b=2,c=3,d; d=f(&a,&b,c); printf(“%2d%2d\n%2d%2d_\ll”,a,b,c,d); } 12.以下程序運行時輸出到屏幕的結果中第一行是___(15)___,第二行是___(16)___ , #include "stdio.h" struct grade { int id; char level[3]; int score[3]; }; char fun(struct grade *t) { int i,count=0,total=0; for(i=0;i<3;i++) { if(t->level[i]=='A')count++; total=total+t->score[i]; } total=total+count; if(count==3)total++; return(total>380?'Y':'N'); } void main() { int i; struct grade stu[3]={{106,"AAA",130,132,115}, {107,"BAB",113,125,104}, {109,"AAB",128,135,114}}; for(i=0;i<2;i++) printf("\%d %c\n",stu[i].id,fun(&stu[i])); } 13.以下程序運行時輸出到屏幕的結果中第一行是___(17)___。第二行是___(18)___ . #include <stdio.h> int fun(int a[],int *p) { int i,n; n=*p; p=&a[n-1]; for(i=n-2;i>=0;i--) if(a[i]>*p) p=&a[i]; return *p; } void main() { int a[5]={18,2,16,3,6},x=5,y; y=fun(a,&x); printf("%d\n",x); printf("%d\n",y); } · 完善程序 14.以下程序的功能是驗證下列公式是否成立。請完善程序使其達到要求的功能。 將x取某一值時公式等號左側的函數值表示為f(x),等號右側的級數值表示為g(x),若f(x)與g(x)的相對誤差小于10 f(x)與g(x)的相對誤差計算公式: include<stdio.h> #include<math.h> void main() {double x,f,g,term; int n; printf(“\n input x(-1<x<1):”); scanf(“___(19)___“,&x); f=1/______(20)_____ ; n=1; g=term=1; while(fabs(term)>1e-10) {term=term* ___(21)___) ; g=g+term; ___(22)___ ; } if(fabs(f-g)/(fabs(f)+fabs(g))<1e-6) printf(“\ntrue x=%f,f=%f,g=%f”,x,f,g); else printf(“\nfalse x=%f,f=%f,g=%f”,x,f,g); } 15. 以下程序的功能是:將輸入的十進制整數轉換為指定進制的字符串形式,itob函數的形參s指向的數組用于保存將形參n的值轉換為base進制數后的字符串形式。請完善程序使其達到要求的功能。 #include<stdio.h> void reverse(char s[]) { int i,j; char temp; for(j=0;s[j]!=’\ for(i=O,j--;i<j;___(23)___,j--) {temp=s[i]; s[i]=s[j]; s[j]=temp; } } void itob(int n,char s[],int base) { int i=0,sign,t; if((sign=n)<O) n=-n; while(n>0) { t= ___(24)___ if(t>=1O) s[i++]=t-10+’A’; else s[i++]=___(25)___ n=n/base; } if(sign<0) s[i++]=’-‘; ___(26)___ ; reverse(s); } void main() { char str[100]; int n,base; printf(”請輸入被轉換的十進制整數和進位制的基數:\n”); scanf(“%d%d",&n,&base); itob(n,str,base); printtf(”轉換結果為:\n”); printf(“(10進制數)%d->%s(%d進制數)\n”,n,str,base); } 16.存儲一組整數的某單向鏈表結點定義為: typedef struct n { int x; struct n *next; }NODE; 函數NODE *sort(NODE *head)采用插入法對head指向的單向鏈表中存儲的數據按成員x的值從小到大排序。 算法提示:對鏈表中從第2個結點開始直到最后結點范圍內的每個結點做以下操作:若第i個結點(i從2開始)的成員x值大于或等于第i-1個結點的成員x值,則保持第i個結點在鏈表中的位置不變:否則,先將第i個結點從鏈表中刪除(使第i-1個結點的指針域指向第i+1個結點),再將已脫離鏈表的原第i個結點插入到鏈表的前i-1個結點中,并保持插入結點后鏈表的前i個結點按成員x值從小到大有序。請完善sort函數使其達到要求的功能。 NODE *sort(NODE *head) { ___(27)___ *p1,*p2,*q1,*q2; p1=head; p2=p1->next; while(p2) { if(p1->x<=p2->x) { p1=p2; ___(28)___=p2->next; } else {p1->next=___(29)___ ; /*從鏈表中刪除p2指向的結點*/ /*以下程序段實現將p2指向的結點插入鏈表中*/ q1=head; q2=q1->next; if(p2->x<head->x) {p2->next=___(30)___; head=p2; } else {q1=head; q2=head->next; while(p2->x>q2->x) { q1=q2; q2=q2->next; } p2->next=q2; q1->next=p2; } p2=p1->next; } } return head; }
|