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