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.與信息處理相關的行為和活動主要指信息的分類、計算、分析等,但不包含信息的收集和傳遞 C.現代信息技術的主要特征之一是以數字技術為基礎 D.計算機技術、通信技術均屬于信息技術 2. 下列有關數字技術與微電子技術的敘述中,錯誤的是___(2)___ A.數字技術是采用有限個狀態(主要是兩個狀態)來表示、處理、存儲和傳輸信息的技術 B.比特是信息的基本單位,1個比特可以表示8位二進制數 C.集成電路芯片是微電子技術的結晶,是現代信息產業的基礎 D.Moore定律是指"單塊集成電路的集成度平均每18-24個月翻一番" 3. 下列有關計算機發展與分類的敘述中,錯誤的是___(3)___。 A.數字電子計算機誕生于20世紀40年代,個人計算機(微型計算機)產生子20世紀80年代初 B.第4代計算機的CPU主要采用中小規模集成電路,第5代計算機采用超大規模集成電路 C.計算機分類有多種方法,按其內部邏輯結構通常分為16位機、32位機或64位機等,目前使用的PC機大多是32位機或64位機 D.巨型計算機一般采用大規模并行處理的體系結構,我國國防科技大學研制的"天 河1號,,巨型計算機,其性能可在全球巨型機排行榜中位居前10名 4. 下列有關PC機微處理器的敘述中,錯誤的是___(4)___ A.目前PC機所用的各種微處理器均由Intel公司設計和生產 B.微處理器通常由單片集成電路制成 C.一臺高性能PC機中通常包含多個微處理器 D.臺式PC機與筆記本PC機采用的微處理器通常有所不同 5. 下列有關PC機主板與芯片組的敘述中,錯誤的是 ___(5)___。 A.臺式PC機主板的物理尺寸已經標準化 B.有些主板將聲卡、網卡、顯卡的功能均集成在其中 C.芯片組是PC機各組成部分相互連接和通信的樞紐,它們與CPU芯片以及IO接 口同步發展 D.PC機主板上可安裝的內存條類型及內存最大容量與芯片組無關 6. 下列是PC機常用的四種外設接口,其中適用于連接硬盤和光驅的是___(6)___ A.RS-232 B.SATA C.IEEE-1394 D.VGA 7. 下列有關顯示器、顯示卡、打印機的敘述中,錯誤的是___(7)___ 。 A.目前常見的"寬屏"LCD顯示器,其屏幕的寬度與高度之比為4:3 B.對于集成顯卡來說,顯卡的功能主要是由主板上的芯片組來實現 C.無論是針式打印機,還是激光/噴墨打印機,均有黑白打印機與彩色打印機之分 D.打印機的主要性能指標之一是打印速度,其單位為PPM 8. 下列有關光盤存儲器的敘述中,錯誤的是 ___(8)___ A.DVD光盤刻錄機可以刻錄的光盤有CD-R、CD-RW、DVD-R和DVD-RW等類型 B.組合光驅("康寶")組合了CD刻錄機與DVD刻錄機的功能 C.藍光光驅(BD)使用藍色激光在光盤上讀寫信息 D.光盤刻錄機的讀/寫速度通常是不同的,一般來說讀取信息的速度快于刻錄的速度 9. 按照軟件著作權益的處置方式,軟件可以分為商品軟件、共享軟件、自由軟件等類型• 在下列相關敘述中,錯誤的是___(9)___。 A.商品軟件需要用戶付費才能得到其使用權 B.共享軟件是具有版權的軟件,允許用戶有條件的使用 C.自由軟件允許使用者隨意拷貝、傳播,允許修改其源代碼但必須公開修改內容 D.共享軟件、自由軟件均屬于免費軟件 10.下列有關Windows操作系統的敘述中,錯誤的是___(10)___ 。 A.Windows XP和Windows 7均分為32位版本和64位版本 B.一般來說,能安裝Windows 7的PC機也能安裝Windows XP C.無論是Windows XP還是Windows 7,其家庭版(基本版)均不支持多核處理器 D.目前來看,Windows比UNIX更容易受到病毒的侵擾 11.在下列有關算法的敘述中,錯誤的是___(11)___。 A.通俗地說,算法就是解決問題的方法和步驟 B.算法總是在執行了有限步的操作后終止 C.程序是算法的實現,程序與算法是一一對應的 D.算法解決的往往是一類問題而不是一個特定的問題 12.下列有關Microsoft Office 2000(及其后續版本)的敘述中,錯誤的是___(12)___ • A.由Word創建的文檔,用戶可以直接將其保存為HTML文件(即網頁) B.在Excel中用戶可以直接打開一些數據庫中的表文件(例如DBF文件) C.在FrontPage的"代碼"視圖中,用戶可以直接對HTML網頁進行編輯 D.在Access數據庫中每個表可以有多個主鍵 13.下列是與通信傳輸介質相關的敘述,其中錯誤的是___(13)___。 A.目前家用的電話線屬于五類雙絞線 B.目前入戶的有線電視電纜屬于寬帶同軸電纜 C.光纖是光導纖維的簡稱,光纖的纖芯是細石英玻璃絲 D.微波是一種電磁波,它具有類似光波的特性,在空間主要是直線傳播 14.因特網中的IP地址可以分為A類、B類、C類、D類等。在下列4個IP地址中,屬 于C類地址的是___(14)___ 。 A.28.129.200.19 B.88.129.200.19 C.188.129.200.19 D.222.129.200.19 15.在下列有關IP地址與域名的敘述中,錯誤的是___(15)___ • A.目前使用的IP協議主要是IPv4協議,其IP地址長度為32位 B.因特網是多個網絡互聯而成的,不同網絡中的主機可以具有相同的IP地址 C.域名是IP地址的文字表述形式,但不是所有的IP地址均有相應的域名 D.一個IP地址可以有多個對應的域名 16.通常所說的TCP/IP協議,是指由100多個協議組成的協議系列(包含下列幾個協議)• 在下列協議中,發送電子郵件主要依賴___(16)___. A.HTTP協議 B.FTP協議 C.Telnet協議 D.SMTP協議 17.下列有關采用ADSL技術接入因特網的敘述中,錯誤的是___(17)___ A.計算機中需要安裝(集成)以太網網卡 B.需要使用專用的ADSL MODEM設備 C.上行與下行傳輸速率相同,傳輸速率可達100Mbps D.可傳送數據、音頻、視頻等信息 18.下列有關漢字字符集及其編碼的敘述中,錯誤的是___(18)___ • A.GB2312是我國頒布的第一個漢字編碼國家標準,該標準包含了6000多個漢字 B.GB2312的所有字符在計算機內都采用2個字節來表示 C.GBK收錄了包括繁體字在內的20000多個漢字和符號,它向下兼容GB2312 D.GB18030是我國最新頒布的漢字編碼標準,它與GB2312和GBK均不兼容 19.語音在數字化時常用的取樣頻率為8kHz、量化位數為8bits。若聲道數為2,則每分鐘 的數字語音數據量在未壓縮時大約為 ___(19)___ A.64KB B.128KB C.1MB D.2MB 20.數字圖像文件有多種文件類型,不同類型的文件各有其特點。在下列4種文件類型中, 能夠將多張圖片保存在一個文件中且能產生動畫效果的是___(20)___ A.BMP B.JPG C.GIF D. PNG 第二部分 C語言程序設計 一、選擇題(用答題卡答題,答案依次填在21~30答題號內,共10分) 21.某程序需要使用一個代表常數3.14的符號常量名P,以下定義中正確的是___(21)___。 A.#define P 3.14; B.#define P(3.14) C.#define P=3.14; D.#define P 3.14 22.下列四個選項中,屬于C語言關鍵字的是___(22)___ 。 A.Float B.single C.double D.real 23.已知某編譯系統中signed int類型數據的長度是16位,該類型數據的最大值是___(23)___。 A.32767 B 24.以下關于if語句和switch語句的敘述中錯誤的是___(24)___。 A.if語句和switch語句都可以實現算法的選擇結構 B.if語句和switch語句都能實現多路(兩路以上)選擇 C.if語句可以嵌套使用 D.switch語句不能嵌套使用 25.已有聲明"char *s1="China",s2[10],*s3="Nanjing",*s4;",以下字符串賦值語句在執行時可能出 現錯誤的是___(25)___。 A.strcpy(s3,s1); B.strcpy(s4,s1); C.strcpy(s2,s1); D.strcpy(s2,s3); 26.已有聲明"int x=0,*p=&x;",以下語句中有語法錯誤的是___(26)___。 A.printf("%d",*x); B.printf("%d",&x); C.printf("%d",*p); D.printf("%d",x); 27.以下敘述中錯誤的是___(27)___。 A.在函數外可以聲明變量 B.變量聲明的位置決定了該變量名的使用范圍 C.函數調用時在函數內聲明的變量所得到的值將無法保存到該函數的下一次調用 D.在函數外聲明的變量,其值可以保存到該程序運行結束 28.已有聲明"int t=1;",則執行"printf("%d",(t+5,t++));"時輸出結果是___(28)___。 A.1 B 29.已有聲明"static char *p="Apple";",則執行語句"puts(p+2);"時輸出為___(29)___。 A.Apple B.Cpple C.pple D.ple 30.以下選項均欲聲明變量P,其中錯誤的是___(30)___ 。 A.typedef struct Person B.struct Person { char name[20]; {char name[20]; int age; int age; }Per; }; Per p; struct Person p; C.struct D.struct { char name[20]; {char name[20|; int age; int age; }Per; }p; Per p; 二、填空題(將答案填寫在答題紙的相應答題號內,每個答案只占一行,共30分) ●基本概念(5分) 1.C語言源程序中用十六進制表示整型常數必須以___(1)___開頭。 2.如果一個循環結構的循環體至少要執行一遍,則最適合描述該循環結構的語句是___(2)___語句。 3.若要聲明一個無符號整型變量x,則正確的聲明形式是" ___(3)___ int x;"。 4.已有聲明"int n=12;double a;",則執行語句"a=n/=5;"后,a的值為___(4)___。 5.若有數據類型定義如下: union A{float a1;float a2;}; 則表達式sizeof(union A)的值為___(5)___。 閱讀程序(13分) 6.以下程序運行時,輸出到屏幕的結果是___(6)___。 #include<stdio.h> enum color{BLACK,YELLOW,BLUE=3,GREEN,WHITE}; void main() {char *colorname[]={"Black","Yellow","Blue","Green","White"}; enum color cl=GREEN,c2=BLUE; printf("%s",colorname[c1-c2]); } 7.以下程序運行時,輸出到屏幕的結果是___(7)___。 #include<stdio.h> void main() {int a=0,b=1,d=10; if(a) if(b) d=20; else d=30; printf("%d\n",d); } 8.以下程序運行時,輸出到屏幕的結果中第一行是___(8)___,第二行是___(9)___ #include<stdio.h> void fun(int a,int *b) { a++; (*b)++; } void main() {int a[2]={1,1}; fun(a[0],&a[1]); printf("%d\n%d",a[0],a[1]); } 9.以下程序運行時,輸出到屏幕的結果中第一行是___(10)___,第二行是___(11)___, 第三行是___(12)___。 #include<stdio.h> #include<math.h> void main() {int a[100]={0},i,j,k; for(i=1;i<100;i++) a[i]=i+1; printf("%4d%4d%4d\n",a[0],a[1],a[2]); for(j=1;j<100;j++) { if(a[j]!=0) for(k=j+1;k<100;k++) if(a[k]%a[j]==0) a[k]=0; } for(k=1,i=0;k<100;k++) if(a[k]!=0) {printf("%4d",a[k]); i++; if(i%3==0)printf("\n"); } } 10.以下程序運行時,輸出到屏幕的結果中第一行是___(13)___,第二行是___(14)___。 #include<stdio.h> #include<math.h> int fun(int a,int b) {int n; while(a!=b) {n=abs(a-b); a=(a>b)?b:a; b=n; } return a; } void main() {printf("%d\n%d\n",fun(9,15),fun(9,5)); } 11.以下程序運行時,輸出到屏幕的結果中第一行是___(15)___,第二行是 ___(16)___ #include<stdio.h> int fun1(int p[ ],int n) {int i,s=0; for(i=0;i<n;i++) s+=p[i]; return s; } int fun2(int *s,int n) {if(n==1) return *s; else return (*s)+fun2(s+1,n-1); } void main() { int a[]={1,2,3,4,5); printf("%d\n%d",fun1(a,3),fun2(a,3)); } 12.以下程序運行時,輸出到屏幕的結果中第一行是__(17)___,第二行是___(18)___ 。 #include<stdio.h> #include<string.h> int fun(char str[]) {int i,j,len; len=strlen(str); for(i=0,j=0;str[i];i++) if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')) str[j++]=str[i]; str[j]='\0'; return len-j; } void main() {char ss[80]="It23is!"; int n; n=fun(ss); printf("%d\n%s\n",n,ss); } 完善程序(12分) 13.以下程序中judge函數的功能是判斷x指向的int類型數組(長度為n)中各元素之間的邏輯關系。 若n個元素的值均相等則輸出"all elements are same".若n個元素的值無序則輸出"no order";若 n個元素的值按升序排列則輸出"ascend".若n個元素的值按降序排列則輸出"descend',。 #include<stdio.h> void judge(___(19)___,int n) {int f,i=0; while(i<n-1&&x[i]==x[i+1]) i++; if(i==___(20)___) {printf("\n all elements are same"); return; } if(x[i]<x[i+1])f=1; else f=0; for(;i<n-1;i++) if(f&&x[i]>x[i+1]||!f&&___(21)___) {printf("\n no order"); return; } if(___(22)___) printf("\n ascend"); else printf("\n descend"); } void main() {int a[5]={1,2,3,4,5},b[5]={5,4,3,2,1},c[5]={1,4,2,3,5),d[5]={2,2,2,2,2}; judge(a,5); judge(b,5); judge(c,5); judge(d,5); } 14.下列程序的功能是判斷一個n階對稱方陣是否雙對稱方陣,4階對稱方陣是指a 4階雙對稱矩陣是指一個4階對稱矩陣的第1列與第4列對換,第2列與第3列對換后仍然是對稱 矩陣,函數issym(int m[][N],int n)的功能是判斷二維數組m中存放的一個n階方陣是否為 對稱矩陣,如果是則函數返回值1,否則返回值0,函數exchange(int a[][N],int n)的功能是 將一個二維數組a中存放的一個n階矩陣做橫向翻轉,即:將矩陣的第1列與第n列對換, 將第2列與第n-1列對換,...,直到n/2列為止 例如:對稱矩陣
是雙對稱矩陣 #include<stdio.h> #define N 10 void exchange(int a[][N],int n) { int i,j,t; for(j=0;j<n/2;j++) for(i=0;i<n;i++) {t=a[i][j]; ___(23)___=a[i][n-j-1]; a[i][n-j-1]=t; } } int issym(int m[][N],int n) { int i,j; for(i=0;i<n-1;i++) for(j=i;j<n;j++) if(___(24)___) /*對稱矩陣判斷*/ return 0; ___(25)___ ; } void main() { int a[N][N]; int n=4,i,j,r1,r2; for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); for(i=0;i<n;i++) {for(j=0;j<n.j++) printf("%4d",a[i][j]); printf("\n"); } r1=issym(a,n); exchange( ___(26)___); r2=issym(a,n); if((r1+r2==2)) printf("matrix is double symmetric\n"); else printf("matrix is not double symmetric\n"); } 15.函數deletelist的功能:在head指向的單向鏈表中查找是否出現多個x值相同的結點。如果發現存 在這樣的結點,則保留第一個結點,刪除其他重復出現的結點。 typedef struct point /*鏈表結點數據結構定義*/ {int x; struct point*next; } ___(27)___ ; POT *deletelist(POT *head) { POT *p,*p1,*p2; p=___(28)___; while(p->next!=NULL) {p1=p; p2=p->next; while(p2!=NULL) { if(p2->x==p->x) {p1->next=___(29)___; free(p2); p2=p1->next; } else {p1=p2; p2=p2->next; } } p=___(30)___; } return head; } 參考答案: 一、選擇題: (1)B (2)B (3)B (4)A (5)D (6)B(7)A (8)B (9)D (10)C (11)C(12)D (13)A (14)D (15)B(16)D (17)C (18)D (19)C (20)C(21).D (22).C (23).A (24).D (25).B(26).A (27).C (28).A (29).D (30).C 二、填空題 (1)0x (2)do while (3)unsigned (4)2.0 (5)4(6)Yellow (7)10 (8)1 (9)2 (10)0 2 3 (11)2 3 5 (12)7 11 13 (13)3 (14)1 (15)6(16)6 (17)3 (18)Itis (19)int *x(20)n-1 (21)x[i]<x[i+1] (22)f==1(23)a[i][j] (24)m[i][j]!=m[j][i](25)return 1 (26)a,n(27)POT (28)head (29)p2->next(30)p->next
|
|