![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2015年秋江蘇省計(jì)算機(jī)二級(jí)VC++真題試卷 |
1. 下列移動(dòng)通信技術(shù)標(biāo)準(zhǔn)中,中國移動(dòng)通信集團(tuán)公司(簡(jiǎn)稱"中國移動(dòng)")采用的第四代移動(dòng)通信(4G)技術(shù)標(biāo)準(zhǔn)是_______。 A.WCDMA B.TD-SCDMA C.TD-LTE D.FDD-LTE C 解析:中國移動(dòng)4G的通信技術(shù)標(biāo)準(zhǔn)是TD-LTE 4 2. 二進(jìn)制數(shù)(1010)與十六進(jìn)制數(shù)(B2)相加,結(jié)果為__________ 。 A . 八進(jìn)制274 B. 八進(jìn)制273 C.八進(jìn)制314 D.八進(jìn)制313 A 解析: 二進(jìn)制1010轉(zhuǎn)換為十進(jìn)制是1*2^3+1*2^1=10,十六進(jìn)制B2轉(zhuǎn)換為十進(jìn)制是11*16^1+2*16^0=178。所以是10+178=188。188轉(zhuǎn)換為8進(jìn)制是除以8逆序取余法,所以是274八進(jìn)制 1 3. 下列有關(guān)PC及其組成部件的敘述中,錯(cuò)誤的是______。 A.主板BIOS存儲(chǔ)器和CMOS存儲(chǔ)器都是易失性存儲(chǔ)器,它們均由主板上的電池供電 B.芯片組是PC各組成部分相互連接和通信的樞紐,它是與CPU芯片及外設(shè)同步發(fā)展的 C.主板上所能安裝的內(nèi)存最大容量及可使用的內(nèi)存條的類型在一定程序上由芯片組決定 D.作為高速緩沖存儲(chǔ)器的cache通常是SRAM,主存儲(chǔ)器通常是DRAM A 解析:BIOS屬于非易失性存儲(chǔ)器,不需要供電。CMOS屬于易失性存儲(chǔ)器,需要由主板上的電池供電。 2 4. 目前廣泛使用的打印機(jī)主要有針式打印機(jī)、激光打印機(jī)和噴墨打印機(jī)。下列有關(guān)這些打印機(jī)的敘述中,錯(cuò)誤的是______。 A.9針的針式打印機(jī)是指打印頭由9根鋼針組成 B.激光打印機(jī)的主要消耗材料之一是炭粉/硒鼓 C.噴墨打印機(jī)與激光打印機(jī)的打印速度均用每分鐘打印的頁數(shù)來衡量 D.目前激光打印機(jī)均為黑白打印機(jī),而噴墨打印機(jī)均為彩色打印機(jī) D 解析: 激光打印機(jī)與噴墨打印機(jī)均有黑白與彩色打印機(jī) 2 5. 某計(jì)算機(jī)系統(tǒng)中,西文使用標(biāo)準(zhǔn)ASCII碼、漢字采用GB2312編碼。設(shè)有一段純文本,其機(jī)內(nèi)碼為CB F5 D0 B4 50 43 CA C7 D6 B8,則在這段文本中含有:_________。 A.2個(gè)漢字和1個(gè)西文字符 B.4個(gè)漢字和1個(gè)西文字符 C.8個(gè)漢字和2個(gè)西文字符 D.4個(gè)漢字和2個(gè)西文字符 D 解析:1個(gè)漢字是由兩個(gè)字節(jié)構(gòu)成的,且機(jī)內(nèi)碼都大于127,題目給出的機(jī)內(nèi)碼都是十六進(jìn)制數(shù)表示的,轉(zhuǎn)換為十進(jìn)制后,CB,F5,D0,B4,CA,C7,D6,B8都是高于127的,因?yàn)閮蓚(gè)字節(jié)構(gòu)成一個(gè)漢字,所以是4個(gè)漢字,50,43轉(zhuǎn)換為十進(jìn)制后不高于127所以是2個(gè)西文。 3 6. 下列關(guān)于Microsoft Office軟件(以2007/2010版本為例)功能的敘述中,錯(cuò)誤的是_____。 A.Word具有中文簡(jiǎn)繁(體)轉(zhuǎn)換功能 B.Excel處理的數(shù)據(jù)可以來自Access數(shù)據(jù)庫 C.PowerPoint演示文稿可以設(shè)置為隨機(jī)放映 D.在Access中,利用查詢可以修改表中的數(shù)據(jù) C 解析:PPT無法設(shè)置為隨機(jī)放映。 6 7. 因特網(wǎng)中的IP地址可以分為A類、B類、C類、D類等。在下列4個(gè)IP地址中,屬于C類地址的是______。 A. 28. 129. 200. 19 B.88. 129. 200. 19 C. 188. 129. 200. 19 D.222. 129. 200. 19 D 解析:在IPv4地址中,共有4個(gè)數(shù)字,如果第1個(gè)數(shù)字<=127屬于A類地址,如果第1個(gè)數(shù)字大于等于128且小于192的屬于B類地址,如果第1個(gè)數(shù)字>=192且小于224的屬于C類地址。所以選項(xiàng)A與選項(xiàng)B是A類IP地址,選項(xiàng)C是B類IP地址,選項(xiàng)D是C類IP地址。 4 8. 目前有線電視( CATV)系統(tǒng)已經(jīng)廣泛采用數(shù)字技術(shù)傳輸電視節(jié)目。下列是有關(guān)數(shù)字有線電視的相關(guān)敘述,其中錯(cuò)誤的是______。 A.?dāng)?shù)字有線電視采用光纖同軸電纜混合網(wǎng),其主干線部分采用光纖連接到"小區(qū)" B.?dāng)?shù)字有線電視網(wǎng)絡(luò)依賴于時(shí)分多路復(fù)用技術(shù) C.借助數(shù)字有線電視網(wǎng)絡(luò)接人因特網(wǎng),需要專用的Cable Modem或互動(dòng)式機(jī)頂盒 D.借助數(shù)字有線電視網(wǎng)絡(luò)接人因特網(wǎng)的多個(gè)終端用戶共享連接段線路的帶寬 B 解析: 數(shù)字有線電視網(wǎng)絡(luò)依賴于頻分多路復(fù)用技術(shù) 4 9. 目前Windows操作系統(tǒng)支持多種不同語種的字符集,即使同一語種(如漢語)也可有多種字符集。下列字符集中,不包括"臺(tái)"、"灣"等繁體漢字的是_______。 A.GBK B.Big5 C.GB 2312 D.GB 18030 C 解析:GB2312是我國頒布的第1個(gè)漢字編碼標(biāo)準(zhǔn),不包括繁體漢字。 5 10. 由于采用的壓縮編碼方式及數(shù)據(jù)組織方式的不同,圖像文件形成了多種不同的文件格式。在下列4種數(shù)字圖像格式中,用數(shù)碼相機(jī)、智能手機(jī)拍照時(shí)通常保存為____。 A.BMP格式 B.JPEG格式 C.GIF格式 D.TIF格式 B 解析:BMP屬于Windows程序設(shè)計(jì)使用的圖像格式。JPEG屬于壓縮編碼格式,GIF用于網(wǎng)頁動(dòng)畫,TIF屬于掃描儀或桌面出版格式。 5 1. 撤銷一個(gè)對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用______。 A.友元函數(shù) B.缺省構(gòu)造函數(shù) C.析構(gòu)函數(shù) D.拷貝構(gòu)造函數(shù) C 解析:創(chuàng)建對(duì)象時(shí)自動(dòng)調(diào)用構(gòu)造函數(shù),撤銷一個(gè)對(duì)象時(shí),自動(dòng)調(diào)用析構(gòu)函數(shù)。 7 2. 以下關(guān)于類的靜態(tài)數(shù)據(jù)成員的描述中,錯(cuò)誤的是______。 A.說明靜態(tài)數(shù)據(jù)成員時(shí)要在前面加上修飾符static B.靜態(tài)數(shù)據(jù)成員需要在類體外進(jìn)行初始化 C.可以通過類名或?qū)ο竺妙惖撵o態(tài)數(shù)據(jù)成員 D.靜態(tài)數(shù)據(jù)成員不是所有對(duì)象共有的 D 解析: 靜態(tài)數(shù)據(jù)成員是所有對(duì)象共有的 7 3. 設(shè)有語句序列"char str[15]; cin> >str;",當(dāng)輸入為”O(jiān)bject windows programming!”時(shí),數(shù)組str中保存的是____。 A. Object Windows Programming\0 B. Object C. Object Windows D. Object Windows Programming! B 解析: 通過cin輸入時(shí)遇到空格,回車都認(rèn)為輸入結(jié)束,所以結(jié)果是Object。可以通過cin.getline(str,15)來獲取前面的14個(gè)字符Object Windows賦值給變量str。 5 4. 下列運(yùn)算符中,不能被重載的是 _____。 A.成員運(yùn)算符 B.[] C.new D.!= A 解析:有5個(gè)運(yùn)算符不能被重載,包括 ., .*, ->*,::,?:共5個(gè),其中 .屬于成員運(yùn)算符 8 5. C++中,this指針____。 A.必須顯式聲明 B.創(chuàng)建對(duì)象后,將指向該對(duì)象 C.屬于某個(gè)成員函數(shù) D.可以被靜態(tài)成員函數(shù)使用 B 解析:this指針是隱含的,它明確地表示出了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對(duì)象,當(dāng)一個(gè)對(duì)象調(diào)用成員函數(shù)時(shí),編譯程序先將對(duì)象的地址復(fù)制給this指針,然后調(diào)用成員函數(shù),每次成員函數(shù)存取數(shù)據(jù)成員時(shí),則隱含使用this指針。 7 6.[程序] #include<iostream.h> void swap (int &a,int b) { int temp; temp = a++ ; a=b++; b= temp; cout<<a<< ", "<<b<<endl; } void main( ) { int a=2,b=6; swap(a,b) ; cout<<a<<","<<b<<endl; } 程序輸出的第一行是_____________, 第二行是_____________。 6,2@6,6 解析: 因文字解析不如視頻清晰,具體見視頻詳細(xì)講解 6 7.[程序] 程序輸出的第一行是_____________, 第三行是_____________, 第五行是_____________。 #include <iostream.h> class S { int x; public : void setx (int i){ x=i; } int getx() { return x; } }; void main() { S *p,sample[40] ; sample[0].setx(3) ; for(int i=1; i<39; i++) { sample[i].setx(sample[i-1].getx()+1) ; } for(i=0; i<36; i+=7){ p = sample+i; cout<<p->getx()<<endl; } cout<<endl; } 3@17@31 解析: 因文字解析不如視頻清晰,具體見視頻詳細(xì)講解 7 8.[程序] 程序輸出的第一行是_____________, 第二行是_____________, 第三行是_____________。 #include <iostream.h> class Sample { protected : int x; public : Sample(){ x=0; } Sample(int val){ x= val; } void operator++( ){ x++ ; } }; class Derived : public Sample{ int y; public : Derived():Sample(){ y=0; } Derived(int val1,int val2) : Sample (val1){ y = val2 ; } void operator--( ) { x-- ; y-- ; } void disp() { cout<<"x="<<x<<" y="<<y<<endl; } }; void main () { Derived d(2,7); d.disp( ) ; ++d; d.disp(); --d; --d; d.disp(); } x=2 y=7@x=3 y=7@x=1 y=5 解析: 因文字解析不如視頻清晰,具體見視頻詳細(xì)講解 7 9.[程序] 程序輸出的第一行是_____________, 第二行是_____________。 #include<iostream.h> int c; class A { int a; static int b; public: A(){ a=0; c=0; } void seta( ) { a++ ; } void setb( ) { b++ ; } void setc( ) { c++ ; } void display( ) { cout<<a<< ","<<b<< ","<<c<<endl; } }; int A::b=0; void main ( ) { A a1,a2; a1.seta( ); a1.setb( ); a1.setc( ); a1.display( ) ; a2.seta( ) ; a2.setb ( ) ; a2.setc( ) ; a2.display( ) ; } 1,1,1@1,2,2 解析: 因文字解析不如視頻清晰,具體見視頻詳細(xì)講解 7 【操作題】 10.完善程序 【題目】以下程序首先利用兩個(gè)元素值遞增的數(shù)組建立兩條結(jié)點(diǎn)值遞增的鏈表A和B,然后將A、B合并成鏈表C,C中的結(jié)點(diǎn)值仍然保持遞增。 程序輸出為: 有序鏈表A結(jié)點(diǎn)值為: 1 5 8 12 15 18 20 25 30 60 有序鏈表B結(jié)點(diǎn)值為: 2 3 8 10 15 28 33 45 90 A、B兩有序鏈表合并后得到的有序鏈表C的結(jié)點(diǎn)值為: 1 2 3 5 8 8 10 12 15 15 18 20 25 28 30 33 45 60 90 [程序] #include <iostream.h> typedef struct Node { int data; Node *next; }*LinkList; LinkList create(int *a,int n){ LinkList p1,p2, head; int i=0; head =new Node; head->data = a[i++] ; p2 = head; while ( i<n){ p1 = new Node; p1->data = a[i++] ; p2->next = p1 ; ______(1)______; } p2->next= NULL; return head; } void print( LinkList head) { while(head) { cout.width (4) ; cout<<head->data; ______(2)______; } cout<<endl; } void merge( LinkList A, LinkList B, LinkList &C){ LinkList r; C = NULL; while(A!=NULL && B!=NULL) { if(A->data<=B->data) { if(C==NULL){ C=A; r=A; } else { r->next = A ; r= r->next ; } ______(3)______ ; } else { if( C == NULL){ C=B; r=B; } else { r->next = B ; r = r->next; } B= B->next; } } if(B!=NULL) r->next = B ; else ______(4)______; } void main( ) { int a[ ] = {1,5,8, 12,15,18,20,25,30,60}; int b[ ] = {2,3,8,10,15,28,33,45,90}; LinkList A,B,C; int n = sizeof(a)/sizeof(int) ; A=create( a,n) ; n= sizeof( b)/sizeof( int); B =create(b,n); cout<< "有序鏈表A結(jié)點(diǎn)值為:\n "; print(A); cout<< "有序鏈表B結(jié)點(diǎn)值為:\n "; print(B); merge(A,B,C); cout<<" A、B兩有序鏈表合并后得到的有序鏈表C的結(jié)點(diǎn)值為:\n "; print(C); } 【要求】 (1)打開T盤中的myfa.cpp文件,根據(jù)題目要求及程序中語句之間的邏輯關(guān)系對(duì)程序進(jìn)行完善; (2)完善后的源程序文件myfa.cpp必須保存在T盤的根目錄下,供閱卷用。 p2=p1@head = head->next@A =A->next@r->next = A (1)p2=p1 (2)head = head->next (3)A =A->next (4)r->next = A 解析: 因文字解析不如視頻清晰,具體見視頻詳細(xì)講解 6 11.改錯(cuò)題 【題目】以下程序的功能是:將數(shù)組看成環(huán)形結(jié)構(gòu),將數(shù)組中的元素循環(huán)移動(dòng)k位。若k>0,則循環(huán)右移;若k<0,則循環(huán)左移;例如,對(duì)初始數(shù)組{2,3,4,5,6,7,8,9},若k=3,則循環(huán)右移3位后變?yōu)?/SPAN>{7,8,9,2,3,4,5,6};對(duì)同樣的初始數(shù)組,若k=-5,則循環(huán)左移5位也能得到相同的結(jié)果。 正確程序的輸入/輸出結(jié)果如下(下劃線部分為鍵盤輸入): 原數(shù)組:1,2,3,4,5,6,7,8,9,10 請(qǐng)輸入一個(gè)整數(shù)k : 4 原數(shù)組循環(huán)移動(dòng)4位后變?yōu)椋?/SPAN>7,8,9,10,l,2,3 ,4,5,6 含有錯(cuò)誤的源程序如下: #include <iostream.h> void move(int * a,int n) { int p=a[n-1] ; for(int i=n-1; i>=0; i--) a[i]=a[i-1]; a[i]=a[p]; } void rotate(int a[], int n,int k) { int i; if(k<0) k=n-k; k = k/n; for(i= 0; i<k; i++) move( a,n) ; } void output( int *a,int n) { for(int i= 0; i<n-1; i++) cout<<a[i]<<endl; cout<<a[i]<<endl; } void main() { int a[]={1,2,3,4,5,6,7,8,9,10}; cout<<"原數(shù)組:"; output(a,10); cout<<"請(qǐng)輸入一個(gè)整數(shù)k:"; int k; cin>>k ; rotate( a, 10, k); cout<<"原數(shù)組循環(huán)移動(dòng)"<<k<<"位后變?yōu)椋?/SPAN>"; output(a,10); } 【要求】 (1)打開T盤中的myfb.cpp文件,根據(jù)題目要求及程序中語句之間的邏輯關(guān)系對(duì)程序中的錯(cuò)誤進(jìn)行修改; (2)改錯(cuò)時(shí),可以修改語句中的一部分內(nèi)容,增加少量的變量說明、函數(shù)原型說明或編譯預(yù)處理命令,但不能增加其他語句,也不能刪除整條語句; (3)改正后的源程序文件myfb.cpp必須保存在T盤的根目錄下,供閱卷用。 for(int i=n-1; i>0; i--)@a[i]=p@ k=n+k@k=k%n (1)for(int i=n-1; i>=0; i--) 修改為 for(int i=n-1; i>0; i--) (2)a[i]=a[p]; 修改為a[i]=p; (3)k=n-k; 修改為:k=n+k; (4) k = k/n; 修改為k=k%n; 4分 解析: 因文字解析不如視頻清晰,具體見視頻詳細(xì)講解 6 12.編程題 【題目】設(shè)數(shù)組a派生出數(shù)組b的規(guī)則為 (1)私有數(shù)據(jù)成員如下: ·double a[5],b[5]:數(shù)組a,派生數(shù)組b。 (2)公有成員函數(shù)如下: ·Array( double t[],int n):構(gòu)造函數(shù),用參數(shù)t的前n個(gè)元素初始化成員數(shù)組a。 ·double ave():計(jì)算并返回?cái)?shù)組a中所有元素的平均值。 ·double dat():計(jì)算并返回?cái)?shù)組a中全部n個(gè)元素的方差。 ·void fun():根據(jù)題意派生數(shù)組b。注:頭文件math.h中函數(shù)double pow( double x, double y)的返回值為x的y次方。 ·void print():輸出成員數(shù)組。 (3)定義數(shù)組并測(cè)試類Array 在主函數(shù)中定義一個(gè)數(shù)組,并使用該數(shù)組對(duì)類Array進(jìn)行測(cè)試,要求輸出原數(shù)組和派生數(shù)組。 輸出示例: 原數(shù)組a: 6.1 2.6 15.8 4.3 1.72 派生數(shù)組b: 0. 078 6135 0.0619398 0.0126703 0.0738 0.0541302 【要求】 打開T盤中的myfc.cpp文件(空文件),編寫后的源程序文件myfc.cpp必須保存在T盤的根目錄下,供閱卷用。 答案 #include <iostream> #include <math.h> using namespace std ; //1分 class Array { double a[5] ,b[5] ; //1分 public: Array(double t[] ,int n) //3分 { for(int i= 0; i<n; i++) a[i]=t[i]; } double ave() //3分 { double t=0; for(int i= 0; i<5; i++) t+=a[i]; return t/5; } double dat( ){ //3分 double d=0,u; u=ave( ); for(int i=0; i<5; i++) d+=(a[i]-u)*(a[i]-u); d = d/5 ; return d; } void fun() //4分 { double pi= 3.1415926,e= 2.71828; double t1 =sqrt(2 * pi * dat()) ,t2; for(int i= 0; i<5; i++) { t2=-(a[i]-ave())*(a[i]-ave())/(2*dat()); b[i] =pow(e,t2)/t1; } } void print( ) //3分 { int i; cout<< "原數(shù)組a:\n "; for(i=0; i<5; i++) cout<<a[i]<<'\t'; cout<<endl; cout<<"派生數(shù)組b:\n"; for(i=0; i<5; i++) cout<<b[i]<<'\t'; cout<<endl; } }; int main() //4分 { double d[5] ={6.1,2.6,15.8,4.3,1.72}; Array test(d,5) ; test.fun( ) ; test.print( ) ; return 0; } |