![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2013秋江蘇省計算機等級考試C語言筆試真題 |
絕密★ 啟用前 2013年秋 江蘇省高等學校非計算機專業(yè)學生 計算機基礎(chǔ)知識和應(yīng)用能力等級考試 二級試卷 試卷語種:C語言 說 明: 1.本試卷包括計算機基礎(chǔ)知識部分和程序設(shè)計部分,考試時間共12 0分鐘; 2.本試卷滿分為60分,分選擇題和填空題,試卷不分A、B類型; 3.計算機基礎(chǔ)知識部分全部是選擇題(20分),程序設(shè)計部分分為選擇題(1 0 分)和填空題(30分)兩種; 4.選擇題用答題卡答題。每一項有A、B、C、D四個可供選擇的答案,請選 擇其中一個你認為正確的答案,用HB鉛筆涂寫在答題卡的相應(yīng)答題號內(nèi)。 每選對一項得1分,不選或選錯不得分; 5.填空題用答題紙答題。請將答案用藍、黑色鋼筆或圓珠筆填寫在答題紙的 相應(yīng)答題號內(nèi),每個答案只占一行,不得換行。每填對一個答案得1分, 不填或填錯不得分; 6.請認真填寫并仔細核對答題卡和答題紙上的學校名稱、準考證號和姓名是 否填寫正確。 7.考試結(jié)束時將試卷、答題卡和答題紙放在桌上,不得帶走。待監(jiān)考人員收 畢清點后,方可離場。 第一部分 計算機基礎(chǔ)知識 一、選擇題(用答題卡答題,答案依次填在1—20題號內(nèi)) 1.在下列有關(guān)信息、信息技術(shù)、信息化、信息產(chǎn)業(yè)的相關(guān)敘述中,錯誤的是___l___ 。 A.信息、物質(zhì)與能量是客觀世界的三大構(gòu)成要素,沒有信息則任何事物都沒有意義 B.現(xiàn)代信息技術(shù)的主要特征之一是以計算機及其軟件為核心 C.信息化的概念起源于上世紀90年代,我國的信息化建設(shè)起步于本世紀初 D.信息產(chǎn)業(yè)主要包括信息設(shè)備制造業(yè)、信息服務(wù)業(yè)、信息開發(fā)業(yè)等 2.對二進制數(shù)01與01分別進行算術(shù)加和邏輯加運算,其結(jié)果用二進制形式表示分別為 ___2___ 。 A.01、 10 B.10、 01 C.01、 01 D.10、 10 3.芯片組是PC機各組成部分相互連接和通信的樞紐。下列關(guān)于芯片組的描述中,錯誤的是___3___ 。 A.芯片組是主板上的重要部件,它直接固定在主板上,通常不可更換 B.芯片組與CPU的類型必須相配 C.芯片組提供了CPU的時鐘信號 D.所有外部設(shè)備的控制功能都集成在芯片組中 4.關(guān)于PC機主板上的CMOS芯片,下面說法中正確的是___4___ 。 A. CMOS芯片需要一個電池給它供電,否則其中的數(shù)據(jù)在主機斷電后會丟失 B.CMOS芯片用于存儲加電自檢程序 C.CMOS芯片用于存儲BIOS,是易失性的 D. CMOS芯片用于存儲計算機系統(tǒng)的配置參數(shù),它是只讀存儲器 5.USB是一種可以連接多個設(shè)備的總線式串行接口,目前在PC機及各種數(shù)碼設(shè)備中普遍使用。在下列相關(guān)敘述中錯誤的是 ___5___ 。 A. USB接口有USB l.0、USB l.1、USB 2.0和USB 3.0之分 B.通過USB接口給外部I/O設(shè)備提供電源時,電源為+5V C.目前廣泛使用的USB 2.0的最高數(shù)據(jù)傳輸速率可達每秒數(shù)十兆字節(jié) D.借助于“USB集線器”可以擴展PC機的USB接口數(shù)目,使得一個USB接口理論上能連接1024個設(shè)備 6.顯示器是計算機必不可少的一種圖文輸出設(shè)備,其作用是將數(shù)字信號轉(zhuǎn)換為光信號,使文字與圖形在屏幕上顯示出來。下列相關(guān)敘述中錯誤的是 ___6___ 。 A.目前PC機使用的顯示器主要有兩類,即CRT顯示器和LED顯示器 B.顯示器屏幕大小以顯示屏的對角線長度來度量 C.PC機的顯示控制器過去大多數(shù)做成插卡的形式,為了降低成本,現(xiàn)在顯示控制器已經(jīng)越來越多地集成在主板芯片組或CPU芯片中 D.目前顯卡主要使用AGP接口或PCI-E x16接口,前者性能優(yōu)于后者 7.下列有關(guān)PC機常見外部存儲器的敘述中,錯誤的是 ___7___ 。 A.移動硬盤通常采用微型硬盤加上特制的配套硬盤盒構(gòu)成,采用USB接口與主機相連接 B.目前U盤可以模擬光驅(qū)和硬盤啟動操作系統(tǒng) C.存儲卡是用閃存做成的一種固態(tài)存儲器,具有與U盤相同的多種優(yōu)點,目前所有PC機都配置了讀卡器,以便對存儲卡進行讀寫操作 D. SSD是基于半導體存儲器芯片的一種外存儲設(shè)備,可被用在便攜式計算機中代替常規(guī)的硬盤 8.下列關(guān)于計算機軟件的敘述中,錯誤的是 ___8___ 。 A.軟件的含義比程序更宏觀、更物化一些。一般情況下,軟件往往指的是設(shè)計比較成熟、功能比較完善、具有某種使用價值的程序 B.軟件產(chǎn)品一般是指軟件開發(fā)廠商交付給用戶用于特定用途的一整套程序、數(shù)據(jù)及相關(guān)的文檔(包括安裝和使用手冊等) C.免費軟件一般是指用戶可共享的軟件,允許隨意拷貝、修改其源代碼,允許自由傳播 D. MS Office軟件包中包含多個軟件產(chǎn)品,安裝時用戶可以進行有選擇的安裝 9.下列關(guān)于Windows操作系統(tǒng)處理器管理的說法中,錯誤的是 ___9___ 。 A.處理器管理的主要目的是提高CPU的使用效率 B.多任務(wù)處理是將CPU時間劃分成時間片,輪流為多個任務(wù)服務(wù) C.并行處理系統(tǒng)可以讓多個CPU同時工作,提高計算機系統(tǒng)的性能 D.多任務(wù)處理要求計算機必須使用多核CPU 10.下列關(guān)于程序設(shè)計語言的說法中,正確的是 ___10___ 。 A.高級語言程序的執(zhí)行速度比低級語言程序快 B.高級語言就是人們?nèi)粘J褂玫淖匀徽Z言 C.高級語言與CPU的邏輯結(jié)構(gòu)無關(guān) D.無需經(jīng)過翻譯或轉(zhuǎn)換,計算機就可以直接執(zhí)行用高級語言編寫的程序 11.下列關(guān)于目前最常用的無線通信信道的說法中,錯誤的是 ___11___ 。 A.無線電波可用于傳輸模擬信號,也可以用于傳輸數(shù)字信號 B.利用微波可將信息集中向某個方向進行定向傳輸,以防止他人截取信號 C.短波通信適用于環(huán)球通信 D.激光能在長距離內(nèi)保持聚焦并能穿透物體,因而可以傳輸很遠的距離 12.目前我國和歐洲廣泛使用的GSM(全球通)手機屬于 ___12___ 移動通信。 A.第一代 B.第二代 C.第三代 D.第四代 13.以下選項中,只有 ___13___ 可用作某臺主機的lP地址。 A.62.26.1.256 B.202.119.24.5 C.78.0.0.0 D.223.268.129.1 14.因特網(wǎng)中主機的符號名被稱為它的域名。下列關(guān)于域名的敘述中,錯誤的是 ___14___。 A.域名是IP地址的一種符號表示 B.上網(wǎng)的每臺計算機都有一個IP地址,所以也有各自的域名 C.把域名翻譯成IP地址的軟件稱為域名系統(tǒng)DNS D.運行域名系統(tǒng)DNS的主機叫做域名服務(wù)器,每個校園網(wǎng)都有一個域名服務(wù)器 15.目前采用無線方式接入因特網(wǎng)的技術(shù)主要有無線局域網(wǎng)(WLAN)接入、GPRS移動電話網(wǎng)接入和 A.采用無線局域網(wǎng)接入方式,可以在任何地方接入 B.采用 C.目前大多數(shù)智能手機支持WLAN接入技術(shù) D.目前采用移動電話上網(wǎng)的費用還比較高 16.下列關(guān)于網(wǎng)絡(luò)信息安全措施的敘述中,正確的是 ___16___ 。 A.帶有數(shù)字簽名的信息是未泄密的信息 B.防火墻可以防止外界接觸到內(nèi)部網(wǎng)絡(luò),從而保證內(nèi)部網(wǎng)絡(luò)的絕對安全 C.數(shù)據(jù)加密的目的是在網(wǎng)絡(luò)通信被竊聽的情況下仍然保證數(shù)據(jù)的安全 D.使用最好的殺毒軟件可以殺掉所有的病毒 17.下列有關(guān)字符編碼標準的敘述中,正確的是 ___17___ 。 A. UCS/Unicode編碼的目標是實現(xiàn)全球不同語言文字的統(tǒng)一編碼 B.ASCII、GB2312、GBK是我國為適應(yīng)漢字信息處理需要而制定的一系列漢字編碼標準 C. UCS/Unicode編碼與GB2312編碼保持向下兼容 D. GB18030標準就是Unicode編碼標準,它是我國為了與國際標準UCS接軌而發(fā)布的一種漢字編碼標準 18.與計算機能合成圖像一樣,計算機也能合成(生成)聲音。計算機合成聲音分為合成語音和合成音樂兩類,其中合成音樂的文件擴展名為 ___18___ 。 A.WAV B.MID C.MP3 D.WMA 19.彩色圖像所使用的顏色描述方法稱為顏色模型。顯示器使用的顏色模型為RGB三基色模型,彩色打印機所使用的顏色模型大多為 ___19___ 。 A.YUV B.HSB C.CMYK D.RGB 20.數(shù)字視頻信息的數(shù)據(jù)量相當大,對存儲、處理和傳輸都是極大的負擔,為此必須對其進行壓縮。目前數(shù)字有線電視和衛(wèi)星電視所傳輸?shù)臄?shù)字視頻采用的壓縮編碼標準大多是 ___20___ 。 A.MPEG-1 B.MPEG-2 C.MPEG-4 D.MPEG-7 第二部分 C語言程序設(shè)計 一、選擇題(用答題卡答題,答案依次填在21- 30答題號內(nèi),共10分) 21.在C語言源程序中,不能用于表示整型常數(shù)的數(shù)制是 ___21___ 。 A.十六進制 B.八進制 C.十進制 D.二進制 22.以下選項中不符合C語言標識符命名規(guī)則的是 ___22___ 。 A.printf B._00 C.&a D.FOR 23.以下選項中,可作為C語言合法表達式的是 ___23___。 A.3.0%2 B.3=2=1=0 C.{3,2,1,0} D.(3,2,1,0) 24.若有宏定義"#define S(x,y) x/y",則執(zhí)行語句"printf("%d",S(6+3,2+2));"后的輸出是___24___ 。 A.9 B.2 C.9.5 D.2.25 25.表達式"3<2 || -1 && !0"的值是___25___。 A.2 B. 1 C.0 D.-1 26.已知有聲明"char s[10];",若要將鍵盤輸入的連續(xù)5個字母字符存儲到s數(shù)組中,則以下選項 中錯誤的輸入語句是 ___26___ 。 A.gets(&s[0]); B. scanf("%s",s+1); C. gets(s); D.scanf("%s",s[1]); 27.已知有聲明"int a[10]={1,2,3,4,5,6,7,8},*p=&a[5];",則*(p-3)的值是 ___27___ . A.6 B.3 C.2 D. 1 28.以下數(shù)組聲明中錯誤的是 ___28___. A.int num[2][4]={{1,2},{3,4),{5,6}}; B.int num[][3]={{1,2},{3,4},{5,6}}; C.int num[]= {1,2,3,4,5,6}; D.int num[][4]={1,2,3,4,5,6}; 29.已知有聲明"typedef char STRING; STRING s[10];",則sizeof(s)的值是 ___29___。 A.20 B.10 C.5 D.4 30.已知有聲明"struct date{ int y,m;}a={2013,5},b={0};",以下選項中合法的語句是___30___ 。 A.if (a>b) b=a; B. a++; C.b=a; D.b=(a.y,a.m); 二、填空題(將答案填寫在答題紙的相應(yīng)答題號內(nèi),每個答案只占一行,共30分) ● 基本概念(5分) 1.可以表示數(shù)學式 2.已知y為float類型的變量,執(zhí)行語句"(int)y;"后,y的類型是 ___(2)___ 。 3.已知有聲明"int a[5]={5,4,3,2,1},i=3;",執(zhí)行語句"a[i++]++;printf("%d",a[i]);"后,屏幕輸出為 ___(3)___ 。 4.已知有聲明"int a[3][4];",若要求正確執(zhí)行語句"p=a[0];",則p的聲明應(yīng)是 ___(4)___ 。 5.若要用fopen函數(shù)以文本方式打開或新建一個可讀可寫文件,要求: (1)若指定的文件存在則打開它, 否則新建一個文件;(2)使寫入的數(shù)據(jù)追加在該文件的末尾,并且在不關(guān)閉文件的情況下能讀出原有數(shù)據(jù)及寫入的新數(shù)據(jù);則在fopen中"文件打開方式"的正確形式應(yīng)是 ___(5)___ 。 ● 閱讀程序(13分) 6.以下程序運行時,輸出到屏幕的結(jié)果是 ___(6)___ 。 #include <stdio.h> int main() { int a=6,b=15,t=a; while (t%b! =0) t+=a; printf("%d",t); return 0; } 7.以下程序運行時,輸出到屏幕的結(jié)果是 ___(7)___ . #include <stdio.h> void fun(char *a,char *b) { while(*a=='*')a++; while((*b=*a)!='\0') {b++; a++; } } int main() { char *s="*****a*b**",t[80]; fun(s,t); puts(t); return 0; } 8.以下程序運行時,輸出到屏幕的結(jié)果是 ___(8)___ 。 #include <stdio.h> void fun (int n) { int t; putchar (n%10+'0'); t=n/100; if(t!=0) fun (t); } int main() { int m=12345; fun (m); printf("\n"); return 0; } 9.以下程序運行時,輸出到屏幕的結(jié)果是__(9)___ #include <stdio.h> #include <string.h> void f(char s[],char t[]) { int i,m=strlen(t),k; for(i=0;s[i]!='\0';i++) if(s[i]>='a'&& s[i]<='z') { k=t[i%m]-'0'; s[i]=(s[i]-'a'+k)%26+'a'; } } int main() { char s1[10]="Be2013"; f(s1, "123"); puts(s1); return 0; } 10.以下程序運行時,輸出到屏幕的結(jié)果中第一行是___(10)___,第二行是___(11)___ 。 #include<stdio.h> void fun(int *t) { static int i=0; do t[i]+=t[i+1]; while(++i<3); } int main() { int i,a[10]= {1,2,3,4,5}; for(i=1;i<3;i++) fun(a); for(i=0;i<4;i++) printf("%d",a[i]); printf("\n%d\n",a[i]); return 0; } 11.以下程序運行時,輸出到屏幕的結(jié)果中第一行是___(12)___ ,第三行是 ___(13)___ 。 #include <stdio.h> #define N 3 int main() { int a[N][N],b[N*Nl={1,1},i,j; for(i=2;i<N*N;i++) b[i]=b[i-1]+b[i-2]; for(i=0;i<N;i++) for(j=0;j<N;j++) a[i][j] =b[i*N+j]; for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%5d', a[i][j]); printf("\n"); } return 0; } 12.以下程序運行時,輸出到屏幕的結(jié)果中第一行是___(14)___ ,第二行是___(15)___ 。 #include <stdio.h> void fun(int a[],int n) { int i,j,t; for (i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } int main() { int aa[6]={1,2,3,4,5,6},i; fun(aa+2,3); for(i=0;i<6;i++) { printf("%d", aa[i]); if((i+1)%3==0) printf ("\n"); } return 0; } 13.以下程序運行時,輸出到屏幕的結(jié)果中第一行是__(16)___,第三行是___(17)___,第四行是___(18)___ 。 #include<stdio.h> struct n { int x; char c; }; void fun(struct n *b) { b++->x=20; b->c='y'; } int main() { struct n a[2]={10,'x'}; fun (a); printf("%d\n%c\n%d\n%c\n",a[0].x,a[0].c,a[1].x,a[1].c); return 0; } ● 完善程序(12分) 14.以下程序的功能是: (1)模擬scanf函數(shù)調(diào)用時格式字符串中轉(zhuǎn)換說明"%le"的轉(zhuǎn)換功能,即接收鍵盤輸入的一個以小數(shù)形式或指數(shù)形式表示的實數(shù)字符串,將該字符串轉(zhuǎn)換成double類型數(shù)據(jù); (2)以小數(shù)形式輸出該double類型數(shù)據(jù)。例如,若輸入"123.4",則輸出123. 400000;若輸入 "123. 4e5",則輸出12340000.000000。 #include <stdio.h> double toDouble (char *s) { int e=0; double t=0, idx=1.0; char *p, sign='+'; for(p=s; *p &&(*p==' '|| *p=='\t');p++); /*跳過前面的空白符*/ if(*p=='+' || *p=='-') sign=*p++; /*符號處理*/ while(*p>='0' && *p<='9') /提取整數(shù)部分母/ { t=t*10+(*p-'0'); p++; } if(*p=='.') { ___(19)___; /*越過小數(shù)點,繼續(xù)處理小數(shù)部分*/ idx/=10; while(*p>='0' && *p<='9') { t+=(*p-'0')*idx; p++; idx/=10; } } if (sign=='-') ___(20)___ ; if(*p !='e' && *p !='E') /*若無指數(shù)部分,則結(jié)束轉(zhuǎn)換*/ return t; p++; sign='+'; /*提取指數(shù)部分*/ if(*p=='+' || *p=='-') sign=*p++; while(*p>='0' && *p<='9') { e= ___(21)___ ; p++; } if(sign=='-')idx=0.1; else idx=10; vrhile (e>0) { t*=idx; ___(22)___ ; } return t: } int main() { char ss[80]; gets (ss); printf("%f\n", toDouble (ss)); return 0; } 15.以下程序中函數(shù)int check (int *a,int *b,int len)的功能是:(1)將a指向的包含len個元素的整型數(shù)組中所有相鄰元素值之差的絕對值依次存放在b指向的一維數(shù)組中;(2)檢查b數(shù)組中所有元素的值是否組成一個公差大于0的等差數(shù)列,若是則函數(shù)返回1,否則函數(shù)返回0。例如:當a指向數(shù)組各元素的值是{-3,-2,1,6,13)時,b指向數(shù)組各元素的值{1,3,5,7}組成一個公差為2的等差數(shù)列,因此函數(shù)返回1。 #include <stdio.h> #include <math.h> #define M 5 #define N 10 /*tongj函數(shù)統(tǒng)計a指向二維數(shù)組每行中存放的連續(xù)非0整數(shù)個數(shù)并依次保存到n指向的數(shù)組中*/ void tongj(int a[][N],int n[]) { int i,j; for (i=0; i<M; i++) { j=0; while(a[i][j]!=0 && j<N) j++; ______(23)_____ ; } } int check(int *a, int *b, int len) { int i,g; if(len<=3) return 0; for (i=0;i<len-1;i++) b[i]=0; for(i=0; i<len-1; ++i) { g=a[i+1]-a[i]; if(g<0)____(24)___; b[i]=g; ) g=b[1]-b[0]; if(g<=0) return 0; for (i=2; i<len-1;i++) if(___(25)___!=g) return 0; return 1; } int main() { int a[M][N]= {{-3,-2,1,6,13},{1,2,3,4},{2,5,4,6}, {1,2,5,7,11,6,13,7},{5,2,4}},b[N]; int n[M],i,j,x; tongj(a,n); for (i=0;i<M; i++) {x=check( ___(26)___ ); if (x==1) printf("\nYes "); else printf("\nNo "): for (j=0; j<n[i]-1;j++) printf("%4d", b[j]); } printf("\n"); return 0; } 16.已知一個單向鏈表結(jié)點的數(shù)據(jù)結(jié)構(gòu)定義如下: struct node { char data; struct node *next; }; 函數(shù)struct node *cre (char *s)的功能是:根據(jù)s指向的字符串建立一個結(jié)點類型為struct node頭指針為h的單向鏈表,使h鏈表中各結(jié)點的數(shù)據(jù)域分別存儲s指向字符串中所有大寫字母的編碼,函數(shù)返回h鏈表首結(jié)點的地址.例如,若s指向的字符串為"3Aa26Bx5Y9",則h指向的鏈表如下圖所示。 #include <stdio. h> #include <stdlib. h> struct node { char data; struct node *next; }; struct node *cre(char *s) { struct node *p,*p1,*h; if (___(27)___) return NULL; h=p1=p=(struct node *)malloc(sizeof(struct node)) ; p->data=*s ; s++; while (*s) { if(*s>='A' && *s<='Z') { p= (struct node *) malloc (sizeof (struct node)) ; p->data=*s ; ___(28)____ = p; p1=p ; } s++; } ___ (29)___ =NULL; ___(30)___; } void print(struct node *h) { struct node *p=h; while (p!=NULL) { printf ("% p=p->next ; } printf ("\n") ; } int main() { struct node *head=NULL; char *p=”3Aa26Bx5Y9"; head=cre (p) ; print (head) ; return 0; } (1) C (2) B (3) D (4) A (5) D (6) D (7) C(8) C. (9) D(10) C (11) D(12)B (13) B(14) B(15) A(16) C(17) A (18)B(19)C(20)B 21. D 22. C 23. D 24. A 25. B 26. D 27. B 28. A 29. B 30. C (1) pow( x,1.0/3)/(a+b)或 pow( x,1/3.0)/(a+b)或 pow( x,1.0/3.0)/(a+b) (2) float (3)1 (4)int *p; (5)"a+" (6)30 (7)a*b** (8) 531 (9) Bg2013 (10) 3579 (11) 5 (12)1 1 2 (13)13 21 34 (14) 125 (15) 436 (16) 20 (17) 0 (18) y (19)p++或++p (20) t =- t (21) e * 10 +*p - '0' (22) e--或 --e (23) n[i] =j (24) g =- g或 g = abs( g) (25) b[i] - b[i-1] (26)a[i], b, n[i] (27)*s=='\0'或 *s==0 或!*s (28) p1 -> next (29) p1 -> next或 p -> next (30) return h |