2015年6月江蘇省計算機二級C++考試真題 |
2015年6月份增考 江蘇省計算機等級考試二級C++真題 本套題目的詳細視頻講解見:http://school.njwww.net/kecheng/detail_963233 1.下列關于信息技術的敘述中,錯誤的是________ A.信息技術的發展歷史不足百年,它是隨著計算機技術的發展而逐漸發展起來的 B.信息技術已經成為當今社會最有活力,最有效益的生產力之一 C.現代信息技術的主要特點之一是以電(光)信號來傳輸信息 D.目前常講的新一代信息技術包括大數據、云計算、移動互聯網等技術 2.下列關于目前臺式PC機的敘述中,錯誤的是______ A.芯片組是PC機各組成部分相互連接和通信的樞紐,它實現了PC機總線的功能 B.大多數CPU芯片中集成有高速緩沖存儲器(cache),其工作速度很快(與CPU速度相差不大) C.目前PCI-E總線是PC機最為重要的I/O總線之一,大多數的獨立顯卡使用該總線接口 D.USB3.0與USB2.0的接口連接器相同,區別在于前者的數據傳輸速度是后者的一倍以上 3.下列關于I//O設備的敘述中,錯誤的是______ A.目前鍵盤和鼠標等設備可以通過無線方式與PC主機相連接 B.光學分辨率是掃描儀的主要性能指標之一,目前普通家用掃描儀的分辨率已達幾千dpi C.傳統顯示器的寬度與高度之比一般是1:1,現在主流的液晶顯示器的寬高之比是4:3 D.目前用于打印數碼照片的打印機主要是噴墨打印機 4.下列關于PC機外存儲器,錯誤的是__________ A.移動硬盤通常采用USB接口或eSata接口,可隨時插上或拔下(即支持"熱插拔") B.存儲卡是閃存做成的一種固態存儲器,所有存儲卡的形狀,大小,接口都是相同的 C.固態硬盤(簡稱SSD)是基于半導體存儲器芯片的一種存儲設備,其接口規范、功能及使用方法與普通硬盤幾乎相同 D.DVD盤片有單面單層、單面雙層、雙面單層和雙面雙層等品種,單面單層的120mm DVD存儲容器約4.7GB 5.從操作系統發布的時間來看,下列四個Windows操作系統中最早發布的是________ A.Windows Xp B.Windows 2000 C.Windows Vista D.Windows 7 6.下面給出的四個語言中,不屬于程序設計語言的是______ A.Lisp語言 B.Matlab語言 C.Html語言 D.Ada語言 7.下列關于數字通信技術的敘述中,錯誤的是________ A.光纖具有通信容量大,傳輸距離遠,不會受高壓線和雷電電磁感應影響 B.移動通信技術的發展已經歷的四代,目前我國所有的智能手機均使用3G C.我國自行研發的北斗衛星導航定位系統日趨成熟,并已逐漸投入商業運行 D.路由器的主要作用是將兩個或多個計算機網絡進行互連 8.Internet使用TCP/IP協議實現了全球范圍的計算機網絡的互連,連接在 Internet上的每一臺主機都有一個IP地址,目前使用的IPv4標準,其IP地址為_____ A.32位 B.64位 C.96位 D.128位 9.在下列的漢字標準中,不屬于漢字編碼標準的是______ A.GB2312-80 B.GB8566-88 C.GBK D.GB18030-2000 10.由于采用的壓縮編碼方式及數據組織方式的不同,聲音文件形成了 多種不同的文件格式,在下列四種文件中,不屬于數字聲音文件的是_____ A.APE B.WMA C.MP3 D.TIF C++程序設計理論部分 1.下列選項中不能作為C++自定義標識符的是______ A.scanf B.void C.Struct D._int 2.下列敘述不正確的是_______ A.純虛函數是一種特殊的虛函數,它必須有具體的實現 B.純虛函數是一種特殊的虛函數,它沒有具體的實現 C.抽象類至少包含一個純虛函數 D.抽象類不能用于創建對象 3.設有以下說明語句 char s1[]="hello"; char s2[]={'h','e','l','l','o'}; int b; 則下列語句中正確的是_______ A. cout>>s1+s2; B.b=s1==s2; C. strlen(s1); D.strcat(s1,s2); 4.在_____情況下適宜采用inline來定義函數 A.函數體含有循環語句 B.函數體含有遞歸語句 C.加快程序的運行速度 D.函數代碼多,不常被調用 5.設有雙引號括起來的說明語句: int a[6][3]={0,2,8},(*p)[3]=a; 以下選項中不能表示地址的表達式是______ A. a[5] B.p[1]+0 C.p[1] D.**p+0 6.填空題 #include class A{ int a; public: A(int aa=0) {a=aa;} }; class B:public A { int b; public: B(int aa=0, int bb=0):A(aa) {b=bb;} ~B() {cout<<"Destructor B!"< }; void main() { B x(5), y(6,7); } 程序輸出的第一行是_________,第二行是____________- 7.填空題 #include char *fun(char *s, char *p) { char *p1=p; for(; *s ;){ if(!(*s>=0 && *s <='9')) *p++=*s++; s++; } *p=0; return p1; } void main(void) { char str1[]="abcd123456"; char str2[50]; cout<< fun(str1,str2) < cout<< str2 < } 程序的輸出第一行是_______,第二行是_________ 8.填空題 #include int f(int n, int x) { x+=1; if(n==3) return x; else return x+f(n+1,x+1); } void main() { cout< cout< cout< } 程序的輸出第一行是____,第二行是_________,第三行是_________ 9.填空題 #include class count { static int n; public: count(){ n++; } void show(){ cout< } ~count() { cout< n--; } }; int count::n=0; void main() { count a; a.show(); { count b[4]; b[3].show(); } a.show(); } 程序共輸出_____行,其中第一行輸出為_____,最后一行輸出為______ C++程序設計操作題 1.完善程序 【題目】以下程序通過重載運算符”*”,實現求兩個一維數組對應元素之積的運算。設數組a,b分別為: int a[10]={1,2,3,4,5,6,7,8,9,10}; int b[10]={1,2,3,4,5,6,7,8,9,10}; 則數組a和b對應元素相乘后所得到的運算結果為 {1,4,9,16,25,36,49,64,81,100} 提示:程序中通過重載運算符"=",實現了一維數組的賦值運算。 【程序】 #include #include "string.h" class Arr { int x[10]; public: Arr(){ for(int i=0;i<10;i++) x[i]=0; } Arr(int *p) { for(int i=0;i<10;i++) __________; } Arr operator *(Arr a){ Arr t; for(int i=0;i<10;i++) __________; return t; } Arr operator =(Arr a){ for(int i=0;i<10;i++) __________; return *this; } void show(){ for(int i=0;i<10;i++) __________; } }; void main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int b[10]={1,2,3,4,5,6,7,8,9,10}; Arr arr(a),brr(b),c; c = __________; c.show(); } 2.(改錯題) 【題目】下列程序的功能為:任意輸入一個4位自然數,然后輸出該自然數的 各位數字所能組成的最小自然數.例如:輸入1593,輸出1359;輸入3002, 輸出23。注意:如果輸入了非法數據,如82,則程序應提示重新輸入數據, 直到輸入正確數據為止 【程序】 含有錯誤的程序為: #include void input(int a) //輸入數據并檢查其合理性,直到輸入的數據合理為止 { int n; cout<<"Please input a 4-bits number:"; cin>>n; cout< cin>>n; } *a=n; } int min(int a) { int x[4], m; int i, j; for(i=0; a; i++, a/=10) x[i]= a/10; for(i=0; i<3; i++) for(j=i+1; j<4; j++) if(x[i]>x[j]) { m=x[i]; x[i]=x[j]; x[j]=m; } for(i=0, m=0; i<4; i++) return m; } void main(void) //注意:不允許修改主函數 { int a; input(&a); cout<} 1.打開T盤中 myfb.cpp,根據題目要求及程序中語句之間的邏輯關系對程序中的錯誤進行修改。程序中的注解可以不輸入。 2.改錯時,可以修改語句中的一部分內容,增加少量的變量說明、函數原型說明或編譯預 處理命令,但不能增加其他語句,也不能刪除整條語句。 3.將改正后的源程序文件myfb.cpp必須放在T盤根目錄下,供閱卷用。 3. (編程題): 【題目】為使電文保密,往往按一定規律將其轉換成密文,收報人再按約定的規律 將其譯回原文。例如,將26個大小寫字母分別看成-個圓環,可以按以以下規律將原 文轉換成密文:將字母A轉成E.即轉換成其后的第四個字母,V轉換成Z, W轉換 成A,X轉換成B.Y轉換成C,Z轉換成D.小寫字母按同樣的規律轉換,如a轉換成 e。字母按上述規律轉換(加密),其它字符不變.如"OK China!"轉換成"SO Glmre!"。試建立一個類Encode.完成加密工作。 具體要求如下: (1)私有數據成員 ●char *str:str指向存放原文字符串的動態內存空問。 (2)公有成員函數 ●Encode(char *s1) :構造函數,根據參數s1指向的字符串的大小,動態申 請內存空問,讓str指向該空間.用s1所指向的字符串初始化str指向的字符 串. ●~Encode() : 析構函數,釋放str所指向的動態內存空問。 ●void change(char *s2) :將str所指向的原文字符串轉換成密文,并將密文存 放到s2所指向的存儲空間中。 ●void print() : 輸出原文 (3)在主函數中完成對給類的測試。定義兩個字符數組text1和text2。先輸入 一行字符串(原文)到text1中,用text1初始化一個Encode類的對象v,調用成員函數 輸出原文,再調用成員函數change將獲得的密文送到text2中,最后輸出密文,當用 "OK China"作為測試用的原文時,程序輸出的結果是: OK China! SO Glmre! 【要求】 打開T盤中myfc.cpp文件(空文件),編寫后的源文件myfc.cpp必須保存在T盤的 根目錄下,供閱卷用 1.完善程序答案 x[i]=*p++ t.x[i]=x[i]*a.x[i] x[i]=a.x[i] cout< arr*brr 2.改錯題答案 1. void input(int a) 修改為 void input(int *a) 2. while(n<1000 && n>9999) 修改為 while(n<1000 || n>9999) 3. x[i]= a/10; 修改為 x[i]= a; 4. m=(m+x[i])*10; 修改為: m=m*10+x[i]; 本套題目的詳細視頻講解見:http://school.njwww.net/kecheng/detail_963233 |