![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2009年春江蘇省二級VC++考試試題與答案 |
絕密★啟用前 2009年春 江蘇省高等學(xué)校非計算機(jī)專業(yè)學(xué)生 計算機(jī)基礎(chǔ)知識和應(yīng)用能力等級考試 二級試卷 試卷語種: Visual C++ 說 明: 1.本試卷包括計算機(jī)基礎(chǔ)知識部分和程序設(shè)計部分,考試時間共120分鐘 2.本試卷滿分為60分,分選擇題和填空題,試卷不分A、B類型; 3.計算機(jī)基礎(chǔ)知識部分全部是選擇題(20分),程序設(shè)計部分分為選擇題(10分)和填空題(30分)兩種; 4.選擇題用答題卡答題。每一項(xiàng)有A、B、C、D四個可供選擇的答案,請選擇其中一個你認(rèn)為正確的答案,用HB鉛筆涂寫在答題卡的相應(yīng)答題號內(nèi)。每選對一項(xiàng)得1分,不選或選錯不得分; 5.填空題用答題紙答題。請將答案用藍(lán)、黑色鋼筆或圓珠筆填寫在答題紙的相應(yīng)答題號內(nèi),每個答案只占一行,不得換行。每填對一個答案得1分,不填或填錯不得分; 6.請認(rèn)真填寫并仔細(xì)核對答題卡和答題紙上的學(xué)校名稱、準(zhǔn)考證號和姓名是否填寫正確。 7.考試結(jié)束時將試卷、答題卡和答題紙放在桌上,不得帶走。待監(jiān)考人員收點(diǎn) 第一部分計算機(jī)基礎(chǔ)知識 1. 在下列有關(guān)現(xiàn)代信息技術(shù)的一些敘述中,正確的是 1 。 A.集成電路是20世紀(jì)90年代初出現(xiàn)的,它的出現(xiàn)直接導(dǎo)致了微型計算機(jī)的誕生 B.集成電路的集成度越來越高,目前集成度最高的已包含幾百個電子元件 C.目前所有數(shù)字通信均不再需要使用調(diào)制解調(diào)技術(shù)和載波技術(shù) D.光纖主要用于數(shù)字通信,它采用波分多路復(fù)用技術(shù)以增大信道容量‘ . 2. 最大的10位無符號二進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)是 2 .。 A.1023 B.1777 C.1000 D.1024 3. 在下列有關(guān)目前PC機(jī)CPU的敘述中,錯誤的是 3 。 A.CPU芯片主要是由Intel公司和AMD公司提供的 B."雙核"是指PC機(jī)主板上含有兩個獨(dú)立的CPU芯片 C.Pentium 4微處理器的指令系統(tǒng)由數(shù)百條指令組成 D.Pentium 4微處理器中包含一定容量的Cache存儲器 4. 在下列有關(guān)當(dāng)前PC機(jī)主板和內(nèi)存的敘述中,正確的是 4 。 A.主板上的BIOS芯片是一種只讀存儲器,其內(nèi)容不可在線改寫 B.絕大多數(shù)主板上僅有一個內(nèi)存插座,因此PC機(jī)只能安裝一根內(nèi)存條 C.內(nèi)存條上的存儲器芯片屬于SRAM(靜態(tài)隨機(jī)存取存儲器) D.目前內(nèi)存的存取時間大多在幾個到十幾個ns(納秒)之間 5. 在下列有關(guān)PC機(jī)輔助存儲器的敘述中,正確的是 5 。 A.硬盤的內(nèi)部傳輸速率遠(yuǎn)遠(yuǎn)大于外部傳輸速率 B.對于光盤刻錄機(jī)來說,其刻錄信息的速度一般小于讀取信息的速度 C.使用USB 2.0接口的移動硬盤,其數(shù)據(jù)傳輸速率大約為每秒數(shù)百兆字節(jié) D.CD-ROM的數(shù)據(jù)傳輸速率一般比USB 2.0還快 6. 在下列PC機(jī)I/O接口中,數(shù)據(jù)傳輸速率最快的是 6 。 A.USB 2.0 B.IEEE-1394 C.IrDA (紅外) D.SATA 7. 計算機(jī)軟件可以分為商品軟件、共享軟件和自由軟件等類型。在下列相關(guān)敘述中,錯誤的是 7 。 A.通常用戶需要付費(fèi)才能得到商品軟件的使用權(quán),但這類軟件的升級總是免費(fèi)的 B.共享軟件通常是一種"買前免費(fèi)試用"的具有版權(quán)的軟件 C.自由軟件的原則是用戶可共享,并允許拷貝和自由傳播 D.軟件許可證是一種法律合同,它確定了用戶對軟件的使用權(quán)限 8. 人們通常將計算機(jī)軟件劃分為系統(tǒng)軟件和應(yīng)用軟件。下列軟件中,不屬于應(yīng)用軟件類型的是 8 A.AutoCAD B.MSN C.Oracle D.Windows Media Player 9. 在下列有關(guān)Windows 98/2000/XP操作系統(tǒng)的敘述中,錯誤的是 9 。 A.系統(tǒng)采用并發(fā)多任務(wù)方式支持多個任務(wù)在計算機(jī)中同時執(zhí)行 B.系統(tǒng)總是將一定的硬盤空間作為虛擬內(nèi)存來使用 C.文件(夾)名的長度可達(dá)200多個字符 D.硬盤、光盤、優(yōu)盤等均使用FAT文件系統(tǒng) 10. 在下列有關(guān)算法和數(shù)據(jù)結(jié)構(gòu)的敘述中,錯誤的是 10 。 A.算法通常是用于解決某一個特定問題,且算法必須有輸入和輸出 B.算法的表示可以有多種形式,流程圖和偽代碼都是常用的算法表示方法 C.常用的數(shù)據(jù)結(jié)構(gòu)有集合結(jié)構(gòu)、線性結(jié)構(gòu)、樹形結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)等 D.數(shù)組的存儲結(jié)構(gòu)是一種順序結(jié)構(gòu) 11•因特網(wǎng)的IP地址由三個部分構(gòu)成,從左到右分別代表 11 。 A.網(wǎng)絡(luò)號、主機(jī)號和類型號 B.類型號、網(wǎng)絡(luò)號和主機(jī)號 C.網(wǎng)絡(luò)號、類型號和主機(jī)號 D.主機(jī)號、網(wǎng)絡(luò)號和類型號 12•在下列有關(guān)ADSL技術(shù)及利用該技術(shù)接入因特網(wǎng)的敘述中,錯誤的是 12 。 A.從理論上看,其上傳速度與下載速度相同 B.一條電話線上可同時接聽/撥打電話和進(jìn)行數(shù)據(jù)傳輸 C.利用ADSL技術(shù)進(jìn)行數(shù)據(jù)傳輸時,有效傳輸距離可達(dá)幾公里 D.目前利用ADSL技術(shù)上網(wǎng)的計算機(jī)一般需要使用以太網(wǎng)網(wǎng)卡 13.人們往往會用"我用的是 指的是數(shù)據(jù)通信中的 13 指標(biāo)。 A.最高數(shù)據(jù)傳輸速率 B.平均數(shù)據(jù)傳輸速率 C.每分鐘數(shù)據(jù)流量 D.每分鐘IP數(shù)據(jù)包的數(shù)目 14•計算機(jī)局域網(wǎng)按拓?fù)浣Y(jié)構(gòu)進(jìn)行分類,可分為環(huán)型、星型和 14 型等。 A.電路交換 B.以太 C.總線 D.對等 15.網(wǎng)絡(luò)信息安全主要涉及數(shù)據(jù)的完整性、可用性、機(jī)密性等問題。保證數(shù)據(jù)的完整性就是 15 。 A.保證傳送的數(shù)據(jù)信息不被第三方監(jiān)視和竊取 B.保證發(fā)送方的真實(shí)身份 C.保證傳送的數(shù)據(jù)信息不被篡改 D.保證發(fā)送方不能抵賴曾經(jīng)發(fā)送過某數(shù)據(jù)信息 16.某計算機(jī)系統(tǒng)中,西文使用標(biāo)準(zhǔn)ASCII碼、漢字采用GB2312編碼。設(shè)有一段純文本,其機(jī)內(nèi)碼為CB F5 DO B4 50 43 CA C7 D6 B8,則在這段文本中含有: 16 。 A.2個漢字和1個西文字符 B.4個漢字和2個西文字符 C.8個漢字和2個西文字符 D.4個漢字和1個西文字符 17.以下關(guān)于漢字編碼標(biāo)準(zhǔn)的敘述中,錯誤的是 17 。 A.GB 2312標(biāo)準(zhǔn)中所有漢字的機(jī)內(nèi)碼均用雙字節(jié)表示 B.我國臺灣地區(qū)使用的漢字編碼標(biāo)準(zhǔn)BIG 5收錄的是繁體漢字 C.GB 18030漢字編碼標(biāo)準(zhǔn)收錄的漢字在GB 2312標(biāo)準(zhǔn)中一定能找到 D.GB 18030漢字編碼標(biāo)準(zhǔn)既能與UCS(Unicode)接軌,又能保護(hù)已有中文信息資源 18.若波形聲音未進(jìn)行壓縮時的碼率為64kb/s,已知取樣頻率為8kHz,量化位數(shù)為8,那么它的聲道數(shù)是 18 。 A.1 B 19.從信息處理的深度來區(qū)分信息系統(tǒng),可分為業(yè)務(wù)處理系統(tǒng)、信息檢索系統(tǒng)和信息分析系統(tǒng)等。在下列幾種信息系統(tǒng)中,不屬于業(yè)務(wù)處理系統(tǒng)的是 19 。 A.DSS B.CAI C.CAM D.OA 20.在下列有關(guān)信息系統(tǒng)開發(fā)、管理及其數(shù)據(jù)庫設(shè)計的敘述中,錯誤的是 20 。 A.常用的信息系統(tǒng)開發(fā)方法可分為結(jié)構(gòu)化生命周期方法、原型法、面向?qū)ο蠓椒ê?/SPAN>CASE方法等 B.在系統(tǒng)分析中常常使用結(jié)構(gòu)化分析方法,并用數(shù)據(jù)流程圖和數(shù)據(jù)字典來表達(dá)數(shù)據(jù)和處理過程的關(guān)系 C.系統(tǒng)設(shè)計分為概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計,通常用E-R模型作為描述邏輯結(jié)構(gòu)的工具 D.從信息系統(tǒng)開發(fā)過程來看,程序 21.下列關(guān)于"for(e1;e2;e3) s1;"的描述中不正確的是______ A.存在"for(;;) s1;"的情況 B.表達(dá)式e1和e3可為空,但e2不能為空 C.表達(dá)式e2的值可增可減 D.循環(huán)體s1可以為空,但分號(;)必須有 22.下列函數(shù)定義中存在語法錯誤的是______ A.void f5();f6(){f5;cout<<200;} void f5(){cout<<100;} B.void f3(){cout<<100;} void f4(){tout<<200;} C.void f7(int a){if(a)f7(--a);cout<””;} D.void f1(){cout<<100;void f2(){tout<<200;}} 23.設(shè)有說明語句; int a=7,b=12,e; 以下表達(dá)式選項(xiàng)中,e值為2的是_______ A.e=b%=(a-a%5) B.e=b%=(a%=5) C.e=b%=b+1-a%5 D.e=(b%=a)-(a%=5) 24.以下敘述中不正確的是_____ A.一個函數(shù)中可以有多個return語句 B.一個函數(shù)中可以沒有return語句 C.一個return語句可返回多個值 D.一個return語句可不返回值 25.以下雙目運(yùn)算符中要求兩個操作數(shù)均為整型的運(yùn)算符是______。 A.|| B.&& C./ D % 26.以下對break語句的描述中,不正確的是______ A.break語句可用在循環(huán)語句中,其作用是結(jié)束本層循環(huán)的執(zhí)行 B.break語句可用在switch語句中,其作用是結(jié)束該switch語句的執(zhí)行 C.break語句可用在if語句中,其作用是結(jié)束該if語句的執(zhí)行 D.break語句在同一循環(huán)體中可以多處使用 27.以下對類的析構(gòu)函數(shù)的敘述中,正確的是______ A.析構(gòu)函數(shù)完成類的初始化 B.析構(gòu)函數(shù)完成對象的初始化 C.析構(gòu)函數(shù)完成撤銷對象的相關(guān)處理 D.析構(gòu)函數(shù)和成員函數(shù)一樣可以顯式地調(diào)用 28.以下有關(guān)多態(tài)性的敘述中不正確的是________ 。 A.C++語言的多態(tài)性分為編譯時的多態(tài)性和運(yùn)行時的多態(tài)性 B.編譯時的多態(tài)性通過重載函數(shù)來實(shí)現(xiàn) C.運(yùn)行時的多態(tài)性通過虛函數(shù)來實(shí)現(xiàn) D.函數(shù)重載和虛函數(shù)均可實(shí)現(xiàn)編譯時的多態(tài)性和運(yùn)行時的多態(tài)性 29.設(shè)已定義了一個類名為MyClass的類: MyClass sl,*s2,**s3,*s4 E2]; 當(dāng)該語句執(zhí)行后,調(diào)用該類的構(gòu)造函數(shù)的次數(shù)是 _______ A.1 B. 30.在公有派生的情況下,派生類中定義的成員函數(shù)能訪問其基類的_________。 A.公有成員和保護(hù)成員 B.公有成員和私有成員 C.保護(hù)成員和私有成員 D.公有成員、保護(hù)成員和私有成員 二、填空題(請將答案填寫在答題紙的相應(yīng)答題號內(nèi),每個答案只占一行) ●基本概念題(共5分) 1.以下循環(huán)語句的循環(huán)體的執(zhí)行次數(shù)為 ( ) 。 for(int s=0,j=1;j<=10;s+=j);j++; 2void類型的指針是其指向變量的數(shù)據(jù)類型是不固定的,對該類型指針進(jìn)行操作時,通常應(yīng)進(jìn)行________ 3.C++變量的存儲類型有自動類型、靜態(tài)類型、 _______和__________。 4.c++函數(shù)的參數(shù)傳遞方式有三種: (_________) 、指針傳遞和引用傳遞。 ●閱讀程序題(共13分) 5.[程序](2分) #include void fa(int&a,int&b) {int t=a;a=b;b=t;} void fb(int a,int b) { int t=a;a=b;b=t;} void main(void) {int c[2]={100,200},d[2]={300,400}; fa(c[0],c[1]); cout< rb(d[0],d[1]); cout< } 程序輸出的第一行是( ) ,第二行是( )。 6.[程序](2分) #include void main(void) { int n=0,m=0; for(int i=0;i<3;i++) for(int j=0;j<3;j++) if(j>=i)n++;m++; cout< }. 程序輸出的第一行是( ) ,第二行是( ) 。 7.[程序](2分) #include int a=10; void main(void) { int a=20,b=30; { int a=0,b=0; for(int i=1;i<4;i++){ a=a+b;b=::a+b; } cout<程序輸出的第一行是 ( ) ,第二行是( ) 。 8.[程序](3分) #include void f2(int x[],int n); void fl(int x[],int n) { cout< x[n]++; if(n<3){n=n+2;f2(x,n);} } void f2(int x[],int n) {cout< x[n]++; if(n<3){n=n+3;fl(x,n); } } void main(void) {int y[7]={3,4,5,6,7,8,9}; f1(y,0); for(int i=0;i<5;i++)cout< cout< } 程序輸出的第一行是( ) ,第二行是( ) ,第三行是( ) 9.[程序](2分) #include class A{ int n; public: static int s; A(int a){n=a;} void add(){s+=n;} void print(){cout< int get(){return n;} }; int A::s=0; class B:public A{ int y; public: B(int b,int c):A(c){y=b;} void p(){cout< }; void main(void) { A a1(10),a2(20); B b1(5,15),b2(10,15); a1.add();a2.add();b1.add();b2.add(); a1.print();a2.print(); b1.p();b2.p(); } 程序輸出的第一行是( ) ,第三行是( )。 10.[程序](2分) #include class A{ int x; public: A(int a){x=a;} virtual void print(){cout<<"x="< void fun(){print();} }; class B:public A{ int y: public: B(int a,int b):A(a){y=b;} void print(){cout<<"y="< void fun(){print();} }; class C:public B{ int z; public: C(int a,int b,int C):B(a,b){z=c;} void print(){cout<<"z="< void fun(){print();} }; void main(void) { A a1(5),*p1; B bl(10,15); C c1(20,30,40); a1.fun();b1.fun();c1.fun(); pl=&b1; pl->fun();p1=&c1;pl->fun(); } 程序輸出的第四行是() ,第五行是( ) ●完善程序題(共12分) 11.以下程序的功能是:采用插入排序的方法將數(shù)組s1中的元素升序排序,并刪除重復(fù)的元 素(值相同的元素只保存一個)。函數(shù)insert(int p[],int c,int x)將整數(shù)x插入到已排序 的數(shù)組P中(并仍保持升序),參數(shù)c為數(shù)組P的元素個數(shù)。函數(shù)sort(int s[],int n)將數(shù) 組s中的數(shù)據(jù)按升序排序。先將s[0]放到臨時數(shù)組tern[0]中,然后,依次從s中取一個 元素,若該元素不在數(shù)組tem中,則調(diào)用函數(shù)insert()將該元素插入到數(shù)組tern中。最后 將數(shù)組tem拷貝到數(shù)組s中。 [程序](4分) #include void insert(int p[],int c,int x) { for(int i=0;i if(p[i]>x)break; if(i==c)_____________; else{for(int J=c;j>i;j--)p[j]=P[j-1];________;} } int sort(int s[],int n) {int tem[200]; int len,j,k; tem[O]=s[O]; len=1: //len記錄數(shù)組tern中的元素個數(shù) for(j=1;j for(k=0;k if(s[j]==tem[k])_____________; } if(k>=len){ insert(_________);len=len+1; } } for(j=0;j retum len; //返回數(shù)組的大小 } ’ void main(void) {int s1[200]={34,22,11,55,66,30,22,100,66}; int n;n=sort(s1,9); for(int i=0;i cout<<'\n'; } 12.以下程序通過重載運(yùn)算符+、*實(shí)現(xiàn)集合(用數(shù)組表示)的并(u),交(n)運(yùn)算。集 的元素不能相同。兩個集合的并包含了兩個集合的所有元素。兩個集合的交僅包含 集合中共同存在的元素。設(shè)sl={1,2,3,4,5,6},s2={3,5,7,9,11}。s1 u s2={1, 4,5,6,7,9,11},s1 n s2={3,5}。 [程序](4分) #include class Set{ float x[20]; int size; public: int In(float e,int n) //元素e已在集合x中,則返回1,否則返回0 { int flag=0; for(int i=o;i return flag; } Set(float a[],int n) ‘ { x[0]=a[0];size=1; for(int i=1;i if(In(a[i],size)==0){ (________) ; size++; } } Set(){size=0;} Set operator +(Set); Set operator *(Set); Set &operator =(Set&); int GetSet(float y[]) { for(int i=0;i return size; } void print() { for(int i=0;i cout<<'\n'<<"size=”< }; } Set Set::operator +(Set a) { Set tem; for(int i=0;i tem.size=size; for(i=0;i if(tem.In(a.x[i]i,tern.size)==0)tem.x[tem.size++]=a.x[i]; return tem; } Set Set::operator *(Set a) { Set tem; tem.size=0; for(int i=0;i if(a.In(x[i],a.size)==1) tem.x[tem.size++]=x[i]; retum tem; } Set &Set::operator =(Set &a) {for(int i=0;i (__________) ; return *this; } void main(void) {float b1[6]={1,2,3,4,5,6}; float b2[6]={3,5,7,9,11},b3[6]; Set a1(b1,6),a2(b2,5),a3,a4,a5; a3=a1+a2;a3.print(); a5=a1*a2;a5.print(); int n=a1.GetSet(b3); for(int i=0;i cout<<'\n'< } 13,以下程序的功能是:先產(chǎn)生一條帶頭結(jié)點(diǎn)(鏈表的第一個結(jié)點(diǎn)不存儲數(shù)據(jù),而是存儲鏈表的 表長,即結(jié)點(diǎn)個數(shù))的無序鏈表,每一個結(jié)點(diǎn)包含一個整數(shù)。然后將該鏈表分成兩條帶頭結(jié) 點(diǎn)的鏈表:_條鏈表上的數(shù)據(jù)均為偶數(shù),另一條鏈表上的數(shù)據(jù)均為奇數(shù)。函數(shù)Cleate()創(chuàng)建 了一條帶有頭結(jié)點(diǎn)的單鏈表。函數(shù)Print()輸出鏈表上各結(jié)點(diǎn)的值。函數(shù)Split()把鏈表 分割成兩條鏈表,值為奇數(shù)的結(jié)點(diǎn)保留在原鏈表上,值為偶數(shù)的結(jié)點(diǎn)移到另一個鏈表中, 并將指向偶數(shù)鏈表的頭指針返回。 [程序](4分) #include struct Node{ int data; struct Node *next; }; Node *Create(void) //創(chuàng)建一條帶有頭結(jié)點(diǎn)的單向鏈表 { Node *p1,*head; int a; //創(chuàng)建頭結(jié)點(diǎn),頭結(jié)點(diǎn)的數(shù)據(jù)域儲存鏈表的結(jié)點(diǎn)個數(shù) head=new Node; head->data=0;head->next=0: cout<<"創(chuàng)建一條無序鏈表,請輸人數(shù)據(jù),以-l結(jié)束,\n"; cin>>a; while(a!=-1){ p1=new Node; pl->data=a;pl->next=head->next; _________; head->data++; cin>>a: } (___________) ; } void Print(Node *h) { h=h->next; while(h){eout< cout< } Node *Split(Node *&link) //link是-個帶頭結(jié)點(diǎn)的單鏈表 {Node *pl=link,*p2=link->next,*head; head=new Node; head->data=0;head->next=0; while(p2){ if(p2->data%2==O){ p1->next=p2->next;link->data--; p2->next=head->next; __________ ; head->data++; p2=p1->next; } else{pl=p2; ___________;} } return(head); } void main(void) { Node *h1,*h2; hl=Create(); cout<<"輸入的鏈表為:"< Print(h1); h2=Split(h1); cout<<"分割后的奇數(shù)鏈表為:"< Print(h1); cout<<"分割后的偶數(shù)鏈表為:"< Print(h2); }
一、選擇題 |