![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2010秋江蘇省二級C++考試真題 |
|||||
絕密★ 啟用前 2010年秋 江蘇省高等學校非計算機專業(yè)學生 計算機基礎知識和應用能力等級考試 二級試卷 試卷語種:C++語言 說 明: 1.本試卷包括計算機基礎知識部分和程序設計部分,考試時間共12 0分鐘; 2.本試卷滿分為60分,分選擇題和填空題,試卷不分A、B類型; 3.計算機基礎知識部分全部是選擇題(20分),程序設計部分分為選擇題(1 0 分)和填空題(30分)兩種; 4.選擇題用答題卡答題。每一項有A、B、C、D四個可供選擇的答案,請選 擇其中一個你認為正確的答案,用HB鉛筆涂寫在答題卡的相應答題號內。 每選對一項得1分,不選或選錯不得分; 5.填空題用答題紙答題。請將答案用藍、黑色鋼筆或圓珠筆填寫在答題紙的 相應答題號內,每個答案只占一行,不得換行。每填對一個答案得1分, 不填或填錯不得分; 6.請認真填寫并仔細核對答題卡和答題紙上的學校名稱、準考證號和姓名是 否填寫正確。 7.考試結束時將試卷、答題卡和答題紙放在桌上,不得帶走。待監(jiān)考人員收 畢清點后,方可離場。 第一部分 計算機基礎知識 1.微電子技術是信息技術領域中的關鍵技術,它以集成電路為核心.下列有關集成電路的敘述中,錯誤的是 ___(1)___ A. 現(xiàn)代集成電路使用的半導體材料只能是硅(Si),不能使用其它任何半導體材料 B. 集成度是指集成電路包含的電子元件數(shù)目,可分為SSI、MSI、VLSI等 C. Moore定律指出,單塊集成電路的集成度平均18--24個月翻一番 D. 我國第二代身份證中嵌入了集成電路芯片,可以實現(xiàn)電子防偽和數(shù)字管理功能 2. 數(shù)據(jù)傳輸速率是數(shù)據(jù)通信中重要的性能指標。Gb/s是數(shù)據(jù)傳輸速率的計量單位之一,其正確含義是 ___(2)___ 。 A.每秒兆位 B.每秒千兆位 C.每秒百兆位 D.每秒百萬位 3. 所謂"變號操作"是指將一個整數(shù)變成絕對值相同但符號相反的另一個整數(shù)。假設使用補碼表示的8位整數(shù)x=10010101,則經(jīng)過變號操作后結果為___(3)___. A.01101010 B.00010101 C.11101010 D.01101011 4. 下列有關PC機主板的敘述中,錯誤的是 ___(4)___ 。 A. 主板的物理尺寸沒有標準,各廠家均可自行定義 B. 主板上包含芯片組,它是PC機各組成部分相互連接和通信的樞紐 C. 主板上包含BIOS和CMOS芯片 D. 主板上包含CPU插座、內存條插槽及其它類型的插槽 5. 下列有關PC機中央處理器(CPU)和內存(內存條)的敘述中,正確的是 __(5)____ . A.PC機所采用的CPU都是Intel公司生產的Pentium系列芯片,其它廠商生產的 CPU都與之不兼容 B. 目前已有雙核的微處理器(例如Core 2 Duo),但還沒有四核的微處理器 c. 通常來說,DRAM的速度比SRAM的存取速度慢 D. 一般來說,一個內存條上僅有一個DRAM或SRAM芯片 6. 下列有關PC機I/O總線與I/O接口的敘述中,錯誤的是 __(6)____ . A. 目前PC機中協(xié)調與管理總線操作的總線控制器包含在主板上的芯片組中 B. 總線最重要的性能是數(shù)據(jù)傳輸速率,其單位通常為MB/s或GB/s C. SATA接口的數(shù)據(jù)傳輸速率通常低于USB 2.0的數(shù)據(jù)傳輸速率 D. USB連接器有4個引腳,其中一個引腳連接+5V電源 7. 下列有關PC機常用I/O設備的敘述中,錯誤的是__(7)____。 A. 目前臺式機鍵盤通常有一百零幾個按鍵,筆記本電腦的鍵盤有八十幾個按鍵 B. 目前流行的鼠標是光電鼠標,其與主機的接口有PS/2與USB兩種 C. 寬屏LCD顯示器的寬高比為16:9或16:10 D. 打印速度是打印機的重要性能指標,速度單位通常為dpi 8. 下列有關PC機外存儲器的敘述中,錯誤的是___(8)___ 。 A. 目前硬盤的盤片大多為3.5、2.5或1.8英寸,一個硬盤中可有一個或多個盤片 B. 目前有些u盤可以模擬硬盤和光盤存儲器啟動操作系統(tǒng) C. 目前光盤存儲器主要分為CD、DVD和BD三種,它們均采用紅外激光進行讀寫 D. 目前光驅的速率通常用多少倍速表示 9. 下列有關計算機軟件的敘述中,錯誤的是___(9)___. A. 軟件一般是指程序及其相關的數(shù)據(jù)和文檔資料 B. 從軟件的用途考慮,軟件可以分為系統(tǒng)軟件和應用軟件,主要的系統(tǒng)軟件有操作系統(tǒng)、語言處理系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)等。 C. 從軟件的權益來考慮,軟件可以分為商品軟件、共享軟件和自由軟件,共享軟件和自由軟件均為無版權的免費軟件 D.Linux是一種系統(tǒng)軟件、自由軟件 10.到目前以止,Windows系列操作系統(tǒng)已推出多個版本。在下列版本中,最新的Windows 版本是___(10)___ A. Windows7 B. Windows Me C. Windows XP D. Windows 11.下列有關Windows XP操作系統(tǒng)功能的敘述中,錯誤的是___(11)___. A. 系統(tǒng)通過"時間片”輪轉策略支持多任務處理 B. 系統(tǒng)利用SPOOLing技術進行存儲管理 C. 在設備管理中引入了緩沖技術,以減少I/O操作的等待時間 D. 系統(tǒng)支持PnP功能,并按ACPI標準進行電源管理 12.在因特網(wǎng)中某臺主機的IP地址為 的主機號為 ___(12)___ 。 A. 20 B. 13.局域網(wǎng)中需要傳輸?shù)臄?shù)據(jù)必須預先組織成若干數(shù)據(jù)幀,每一數(shù)據(jù)幀的格式如下圖所示: 上圖中最末部分"?”表示的是___(13)___ 。
A.協(xié)議信息 B.校驗信息 C.冗余信息 D.結束標志 14.目前網(wǎng)絡用戶接入因特網(wǎng)有多種方式,例如ADSL、HFC等。通過HFC接入因特網(wǎng)時采用的網(wǎng)絡是___(14)____。 A. 有線電話網(wǎng) B. 有線電視網(wǎng) C. 無線局域網(wǎng) D. 移動電話網(wǎng) 15.下列網(wǎng)絡協(xié)議中,直接與電子郵件傳輸相關的網(wǎng)絡協(xié)議是___(15)___。 A.FTP B.SMTP C.TELNET D.NNTP 16.下列有關計算機中文本與文本處理的敘述中,錯誤的是 ___(16)____ A. 西文字符主要是采用ASCII字符集,基本ASCII字符集共有256個字符 B. 我國最早采用的漢字字符集是GB2312,包含6000多個漢字和若干個非漢字字符 C. 無論采用何種方式輸入漢字,在計算機中保存時均采用統(tǒng)一的漢字內碼 D. 簡單文本和豐富格式文本中字符信息的表示相同,區(qū)別在于格式信息的表示 17.彩色圖像所使用的顏色描述方法稱為顏色模型(即顏色空間)。下列四種顏色模型中, 彩色噴墨打印機使用的是___(17)___. A. RGB B. HSB C. YUV D. CMYK 18.文件的擴展名用于標記文件的類型,用戶應該盡可能多地知曉各類文件的擴展名,下 列文件中,屬于數(shù)字聲音的文件是______ A. ABC.RM B. ABC.WMA C. ABC.MKV D. ABC.SWF 19.信息系統(tǒng)軟件開發(fā)瀑布模型包括系統(tǒng)規(guī)劃、系統(tǒng)分析、系統(tǒng)設計、系統(tǒng)實施和系統(tǒng)維 護等幾個階段。下面各項工作中,屬于系統(tǒng)實施階段的是___(19)___ A.問題定義 B.可行性研究 C.系統(tǒng)測試 D.繪制E-R圖 20.下列有關Micmsoft Word 2003和Microsoft Excel 2003軟件的敘述中,錯誤的是___(20)___ A. 利用Word軟件編輯文檔,可以將其保存為TXT、DOC、RTF和HTM格式文件 B. 利用Word軟件編輯文檔時,可以統(tǒng)計選定文本的字符數(shù) C. 在Excel軟件中,可以打開(導入)TXT、DBF、HTML格式的文件(數(shù)據(jù)) D. Excel文件可以設置打開權限密碼,但不可以單獨設置修改權限密碼 第二部分 C++語言程序設計 一、選擇題(用答題卡答題,答案依次填在21--30答題號內) 21.對于for和do…while循環(huán)語句,以下描述正確的是___(21)___。 A.for語句中的循環(huán)體至少執(zhí)行一次 B.兩個語句中的循環(huán)體可能都不執(zhí)行 C.do...while語句中的循環(huán)體至少執(zhí)行一次 D.兩個語句中的循環(huán)體至少執(zhí)行一次 22.設有說明語句;int hh[4]={2,3,4},*p=hh;則以下選項中存在語法錯誤的是___(22)___ A.p++; B.hh++; C.(*p)++; D.(*hh)++ 23.以下說明語句中,不存在語法錯誤的是___(23)___ 。 A.int s=26,this=30; B.int _s1=25,-s2=100; C.int n;cin>>n;int arr[n]; D.char str[]={"I am a student"}; 24.設有語句;int a=10,b=20,c=30;則執(zhí)行語句;cout<<(a,b,c);其輸出結果是___(24)___ A.10 B 25.以下關于運算符重載的敘述中,正確的是___(25)___ 。 A.c++已有的任何運算符都可以重載 B.可以重載C++中沒有的運算符 C.運算符重載時可改變其優(yōu)先級 D.運算符重載時可改變其實現(xiàn)的功能 26.設有函數(shù)原型說明;float *f(int,float);,則函數(shù)f的返回值為___(26)___ . A.一個實數(shù) B.指向一個實數(shù)的指針 C.該函數(shù)的地址 D.指向一個函數(shù)的指針 27.下列有關構造函數(shù)的敘述中,不正確的是___(27)___ . A.可以定義沒有構造函數(shù)的類 B.任何一個類必定有構造函數(shù) C.類的構造函數(shù)可以重載 D.構造函數(shù)沒有返回值 28.下列有關類成員的敘述中,不正確的是___(28)___ 。 A.當不指定類成員的訪問權限時則為私有成員 B.友元函數(shù)可訪問類中的任一成員 C.指定為public的成員不允許在類外訪問 D.成員函數(shù)可訪問類中的任一成員 29.以下關于類和對象的敘述中,不正確的是___(29)___ . A.不同的類可以產生相同類型的對象 B.類是一種類型,它定義了數(shù)據(jù)和操作 C.對象是類的實例 D.任一對象必屬于某一個類 30.以下關于指針運算的敘述中,不正確的是___(30)___ A.可以將NULL賦給任一指針變量 B.兩個同類型的指針變量可進行相等或不等的比較運算 C.指針變量的值加上整常數(shù)n,可使該指針指向當前元素后的第n個元素 D-指向同一數(shù)組的兩個指針變量,在任何情況下,兩指針變量相減都是無意義的 二、填空題(請將答案填寫在答題紙的相應答題號內,每個答案只占一行) ●基本概念題,共5分 1.每一個類均有構造函數(shù)和析構函數(shù),這兩個函數(shù)中不可以定義為虛函數(shù)的是___(1)___ 2.定義了宏;#define F(x,y,z) x/y*z 執(zhí)行語句;b=F(3+4,2+2,4+4);后變量b的值為___(2)___ 3.函數(shù)重載和運算符重載實現(xiàn)的多態(tài)性屬于___(3)___多態(tài)性. 4.為使函數(shù)不返回任何值,定義函數(shù)時應在函數(shù)名前加保留字(關鍵字)___(4)___ . 5.C++存儲類型的四種說明符分別是;auto,static,extern和___(5)___ 。 ●閱讀程序題,共13分 6.[程序] (2分) #include <iostream.h> void main(void) { int c2,c3,c5,m=20; c2=c3=c5=0; for(int i=1;i<=m;i++){ if(i==15 || i==14)continue; if(i%2==0) c2++; if(i%3==0) c3++; if(i%7==0) c5++; } cout<<c2<<endl<<c3<<endl<<c5<<endl; } 執(zhí)行程序后輸出的第一行是___(6)___, 第三行是___(7)___ 7.[程序] (2分) #include<iostream.h> int f(int a,int &b,int *c) { a+=b; b+=*c;*c+=a; return (a+b+*c); } void main(void) { int x=5,y=5,z=6,sum; for(int i=0;i<2;i++){ sum=f(x,y,&z); cout<<x<<'\t'<<y<<'\t'<<z<<'\t'<<sum<<'\n'; } } 執(zhí)行程序后輸出的第一行是___(8)___,第二行是___(9)___。 8.[程序] (2分) #include <iostream.h> void f(int s[],int *y) { static int t=3; *y=s[t]; s[t]*=2; t--; } void main(void) { int a[]={1,2,3,4},i; int x=0; for(i=0;i<4;i++){ f(a,&x); cout<<x<<endl; } for(i=0;i<4;i++) cout<<a[i]<<'\t'; cout<<'\n'; } 執(zhí)行程序后輸出的第二行為___(10)___,最后一行為 ___(11)___。 9.[程序](3分) #include<iostream.h> void f(int x,int y) { char res[10]={0}; int i=0,rem; do{ rem=x%y; x=x/y; if(rem<10) res[i]='0'+rem;else res[i]='A'+rem-10; i++; }while(x!=0); i--; for(;i>=0;i--) cout<<res[i]; cout<<endl; } void main(void) { f(23,10); f(45,8); f(50,16); } 執(zhí)行程序后輸出的第一行是___(12)___,第二行是___(13)___,第三行是___(14)___. 10.[程序] (2分) #include <iostream.h> char st[]="Your friend!"; void f2(int ); void f1(int i) { cout<<(st+i)<<endl; if(i<3){ i+=2; f2(i); } } void f2(int i) { cout<<st[i]<<endl; if(i<3){ i+=2; f1(i); } } void main(void) { int i=0; f1(i); } 執(zhí)行程序后輸出的第一行是___(15)___,第二行是___(16)___. 11.[程序](2分) #include<iostream.h> class A{ public: A(char *s){cout<<s<<endl;} A(){ }; }; class B:public A{ //L1 public: B(char *s1,char *s2):A(s1) { cout<<s2<<endl;} }; class C : public A{ //L2 public: C(char *s1,char *s2):A(s1) { cout<<s2<<endl;} }; class D:public B,public C{ public: D(char *s1,char *s2,char *s3,char *s4):B(s1,s2),C(s1,s3) { cout<<s4<<endl;} }; void main(void) { D *ptr= new D("students","study","C++","hard"); delete ptr; } 執(zhí)行程序后共輸出___(17)___行. 若分別將L1行改為;class B : virtual public A{ //L1 L2行改為:class C:virtual public A{ //L2 則執(zhí)行程序后共輸出___(18)___行。 ●完善程序題,共12分 12.以下程序的功能是;從鍵盤上輸入一個大于等于3的整數(shù),將其分解為質因子的乘積并輸 出.例如,輸入50時,則輸出;50;2*5*5;輸入45時,則輸出;45=3*3*5;輸入37時.則出;37=37. [程序] (4分) #include <iostream.h> int prime(int x) //求大于x的最小質數(shù)(素數(shù)) { int flag=1; x++; while(___(19)___){ int i=2; while(i<x){ if(___(20)___)break; i++; } if(i<x)x++;else flag=0; } return x; } void f(int n) //將n分解為若干個質數(shù)之積 { int flag=1; int i=2; //保證i為質數(shù) do{ while(___(21)___){ if(flag==1){ cout<<i; flag=0; } else cout<<'*'<<i; n=n/i; } ___(22)___ }while(i<n); if(n!=1) if(flag==1) cout<<n;else cout<<'*'<<n; } void main(void) { int x; do{ cout<<"請輸入一個整數(shù),若小于3則重輸;"; cin>>x; }while(x<3); cout<<x<<'='; f(x); cout<<endl; } 13.以下程序的功能是:實現(xiàn)兩個字符串拼接,函數(shù)strcat(char *s1,char *s2)先將s1所指向的字符串拷貝到s所指向的動態(tài)申請的存儲空間,接著將s2所指向的字符串拼接s所指向的字符串后面,函數(shù)返回拼接后的字符串。 [程序](4分) #include <iostream.h> char *strcat(char *s1,char *s2) { char *s, *p, *q; int len1=0,len2=0; p=s1; while(*p!='\0'){ len1++; p++; } p=s2; while(*p!='\0'){ len2++; p++; } s=q=___(23)___ ; p=s1; for(int i=0;i<len1;i++)*q++=*p++; p=s2; while(___(24)___); ___(25)___ } void main(void) { char s1[]="visual"; char s2[]="is esay"; char *s; s=___(26)___; cout<<s<<endl; delete []s; } 14.下面程序的功能是;將兩個有序鏈表(降序捧序)合并為一個有序鏈表,函數(shù)merge(node *h1,node *h2)將由h1和h2分別指向的己排序的兩個鏈表,合并為一個依然有序的鏈表。注意;對于數(shù)據(jù)大小相同的結點,都要保留在合并后的鏈表上。主函數(shù)產生兩條已降序排序的鏈表,并輸出合并后鏈表上的數(shù)據(jù)值. 例如,原鏈表上各結點的數(shù)據(jù)依次為; h1:15,9,8,7,3 h2:15,12,10,7,3,2 合并后得到的新鏈表為;15,15,12, 10,9,8,7,7,3,3,2 【程序](4分) #include<iostream.h> struct node{ int data; node*next; }; node *merge(node *h1,node *h2) { if(h1==NULL) return h2; if(h2==NULL) return h1; node *h=NULL; if(___(27)___){ h=h1; h1=h1->next; } else{ h=h2; h2=h2->next; } node *p=h; while(___(28)___){ if(h1->data >=h2->data){ p->next=h1; p=h1; h1=h1->next; } else{ p->next=h2; p=h2; h2=h2->next; } } if(h1 !=NULL) ___(29)___; else if(h2!=NULL) p->next=h2; return h; } void main(void) { node a[5]={{15},{9},{8},{7},{3}}; node b[6]={{15},{12},{10),{7},{3},{2}}; node *h,*h1,*h2,*p; int i; h1=a; h2=b; for(i=0;i<4;i++) a[i].next=&a[i+1]; //形成a鏈表 a[4].next=NULL; for(i=0;i<5;i++) b[i].next=&b[i+1]; //形成b鏈表 b[5].next=NULL; ___(30)___ ; p=h; while(p){ cout<<p->data<<'\t'; p=p->next; } cout<<endl; } 答案: 1.A 2.B 3.D 4.A 5.C 6.C 7.D 8.C 9.C 10.A 11.B 12.D 13.B 14.B 15.B16.A 17.D 18.B 19.C 20.D (21)C (22)B (23)D (24)C (25)D (26)B (27)A (28)C (29)A (30)D 二:填空 (1)構造 (2)17 (3)編譯 (4)void (5)register (6)9 (7)1 (8)5 11 16 37 (9)5 27 32 75 (10)3 (11)2 4 6 8 (12)23 (13)55 (14)32 (15)Your friend! (16)u (17)5 (18)3 (19)flag (20)x%i==0 (21)n%i==0 (22)i++ (23)new char[len1+len2+1] (24)*q++=*p++ (25)return s (26)strcat(s1,s2) (27)h1->data>h2->data (28)h1!=0 && h2!=0 (29)p->next=h1 (30)h=merge(h1,h2)
|
|||||