2017年9月計(jì)算機(jī)二級(jí)C++考試試題附答案
學(xué)習(xí)C++,既要會(huì)利用C++進(jìn)行面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì),也要會(huì)利用C++進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì),更要會(huì)利用模板進(jìn)行泛型編程。下面是小編收集的計(jì)算機(jī)二級(jí)C++考試試題附答案,希望大家認(rèn)真閱讀!
一、選擇題(每題2分,共70分)。
下列各題A、B、C、D四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫(xiě)在答題卡相應(yīng)位置上,答在試卷上不得分。
1.算法的空間復(fù)雜度是指( )。
A.算法程序的長(zhǎng)度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲(chǔ)空間
D.執(zhí)行過(guò)程中所需要的存儲(chǔ)空間
【答案】D
2.用鏈表表不線(xiàn)性表的優(yōu)點(diǎn)是( )。
A.便于隨機(jī)存取
B.花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少
C.便于插入和刪除操作
D.數(shù)據(jù)元素的物理順序與邏輯順序相同
【答案】C
3.下列關(guān)于棧的描述正確的是( )。
A.在棧中只能插入元素而不能刪除元素
B.在棧中只能刪除元素而不能插入元素
C.棧是特殊的線(xiàn)性表,只能在一端插入或刪除元素
D.棧是特殊的線(xiàn)性表,只能在一端插入元素,而在另一端刪除元素
【答案】D
4.下列敘述中正確的是( )。
A.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)
B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線(xiàn)性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線(xiàn)性結(jié)構(gòu)
C.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
D.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率
【答案】D
5.下列對(duì)列的敘述正確的是( )。
A.隊(duì)列屬于非線(xiàn)性表
B.隊(duì)列按”先進(jìn)后出”的原則組織數(shù)據(jù)
C.隊(duì)列在隊(duì)尾刪除數(shù)據(jù)
D.隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)
【答案】D
6.對(duì)下列二叉樹(shù)進(jìn)行前序遍歷的結(jié)果為( )。
A.DYBEAFCZX
B.YDEBFZXCA
C.ABDYECFXZ
D.ABCDEFXYZ
【答案】C
7.在面向?qū)ο蠓椒ㄖ校粚儆?ldquo;對(duì)象”基本特點(diǎn)的是( )。
A.一致性
B.分類(lèi)性
C.多態(tài)性
D.標(biāo)識(shí)唯一性
【答案】A
【解析】對(duì)象是面向?qū)ο蠓椒ㄖ凶罨镜母拍睿幕咎攸c(diǎn)有:標(biāo)識(shí)唯一性、分類(lèi)性、多態(tài)性、封裝性和模塊獨(dú)立性。故本題答案為A。
8.一間宿舍可住多個(gè)學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是( )。
A.一對(duì)一
B.一對(duì)多
C.多對(duì)一
D.多對(duì)多
【答案】B
【解析】一個(gè)實(shí)體宿舍可以對(duì)應(yīng)多個(gè)學(xué)生,而一個(gè)學(xué)生只能對(duì)應(yīng)一個(gè)宿舍,所以宿舍和學(xué)生之間是一對(duì)多關(guān)系。
9.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成( )。
A.屬性
B.關(guān)系
C.鍵
D.域
【答案】B
10.SQL語(yǔ)言又稱(chēng)為( )。
A.結(jié)構(gòu)化定義語(yǔ)言
B.結(jié)構(gòu)化控制語(yǔ)言
C.結(jié)構(gòu)化查詢(xún)語(yǔ)言
D.結(jié)構(gòu)化操縱語(yǔ)言
【答案】C
11.C++語(yǔ)言對(duì)C語(yǔ)言做了很多改進(jìn),C++語(yǔ)言相對(duì)于C語(yǔ)言的最根本的變化是( )。
A.增加了一些新的運(yùn)算符
B.允許函數(shù)重載,并允許設(shè)置缺省參數(shù)
C.規(guī)定函數(shù)說(shuō)明符必須用原型
D.引進(jìn)了類(lèi)和對(duì)象的概念
【答案】D
12.設(shè)有定義int a=1;float f=1.2;char c=’a';,則下列表示錯(cuò)誤的是( )。
A.++a;
B.f--;
C.C++;
D.8++;
【答案】D
13.下列程序的運(yùn)行結(jié)果為( )。
#include
void main()
{
int a=2:
int b=a+1;
cout<<
}
A.0.66667 B.0
C.0.7 D.0.66666666…
【答案】B
14.下列關(guān)于運(yùn)算符重載的敘述中,正確的.是( )。
A.通過(guò)運(yùn)算符重載,可以定義新的運(yùn)算符
B.有的運(yùn)算符只能作為成員函數(shù)重載
C.若重載運(yùn)算符+,則相應(yīng)的運(yùn)算符函數(shù)名是+
D.重載一個(gè)二元運(yùn)算符時(shí),必須聲明兩個(gè)形參
【答案】B
15.下列關(guān)于模板的敘述中,錯(cuò)誤的是( )。
A.調(diào)用模板函數(shù)時(shí),在一定條件下可以省略模板實(shí)參
B.可以用int、double這樣的類(lèi)型修飾符來(lái)聲明模板參數(shù)
C.模板聲明中的關(guān)鍵字class都可以用關(guān)鍵字typename替代
D.模板的形參表中可以有多個(gè)參數(shù)
【答案】D
16.要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是( )。
A.iostream
B.fstream
C.strstream
D.iomanip
【答案】B
17.下列描述中,不屬于面向?qū)ο笏枷胫饕卣鞯氖? )。
A.封裝性
B.跨平臺(tái)性
C.繼承性
D.多態(tài)性
【答案】B
18.有如下程序段:
Tnt i=4;int j=l;
int main(){
int i=8,j=i;
cout<}
運(yùn)行時(shí)的輸出結(jié)果是( )。
A.44
B.41
C.88
D.81
【答案】C
19.下面的哪個(gè)選項(xiàng)不能作為函數(shù)的返回類(lèi)型? ( )。
A.void
B.int
C.new
D.long
【答案】C
20.函數(shù)fun的返回值是( )。
fun(char*a,char*B.
{
int num=0,n=0;
while(*(a+num)!=‘\0’)num++;
while(b[n]){*(a+num)=b[n];num++;n++;}
return num;
}
A.字符串a(chǎn)的長(zhǎng)度
B.字符串b的長(zhǎng)度
C.字符串a(chǎn)和b的長(zhǎng)度之差
D.字符串a(chǎn)和b的長(zhǎng)度之和
【答案】D
二、改錯(cuò)題(20分)
【題目】
以下程序的功能是:根據(jù)字符串str中是否包含子串substr,決定如何將字符串str1插入到
str的不同位置。插入方法是:如果str中包含子串substr,則將str1插入到str中首次出現(xiàn)的子
串substr之后;否則,插入到str的尾部。
正確程序的輸出如下:
原字符串:aabcd12345 子字符串:abcd 插入字符串:ABC
新字符串:aabcdABC12345
含有錯(cuò)誤的源程序如下:
#include
#include
char *find(char *str,char *substr)
{
unsigned lent=strlen(str);
for(char *p1=str,*p2=substr;strlen(p1)>=len;p1++){
for(unsigned i=0;i
if(p1[i]!=p2[i])
break;
if(i>len)
return p1+len;
}
return 0;
}
char *insert(char *str,char *substr,char *str1)
{
char p=find(str,substr);
if(p)
strcat(str,str1);
else{
char *tmp=new char[strlen(str)+strlen(str1)+1];
strcpy(tmp,str1)
strcat(tmp,p);
strcpy(p,tmp);
delete []tmp;
}
return str;
}
void main()
{
char *str=new char[80],substr[]="abcd",str1[]="ABC";
strcpy(str,"aabcdl2345"); ’
cout<<"原字符串:"<
str=insert(str,substr,str1);
cout<<"新字符串:"<
delete []str;
}
【要求】
1.把上述程序錄入到文件myfa.cpp中,根據(jù)題目要求及程序中語(yǔ)句之間的邏輯關(guān)系對(duì)。
程序中的錯(cuò)誤進(jìn)行修改。程序中的注解可以不輸入。
2.改錯(cuò)時(shí),可以修改語(yǔ)句中的一部分內(nèi)容,增加少量的變量說(shuō)明、函數(shù)原型說(shuō)明或編譯預(yù)
處理命令,但不能增加其他語(yǔ)句,也不能刪除整條語(yǔ)句。
3.改正后的源程序文件myfa.cpp必須放在T盤(pán)根目錄下,供閱卷用。
【2017年9月計(jì)算機(jī)二級(jí)C++考試試題附答案】相關(guān)文章:
2017年9月計(jì)算機(jī)二級(jí)C++考試模擬試題及答案06-05
2017年9月計(jì)算機(jī)二級(jí)C++考試試題及答案06-08
2017年9月計(jì)算機(jī)二級(jí)C++考試試題06-22
2017年9月計(jì)算機(jī)二級(jí)C++考試模擬試題06-14
2017年9月計(jì)算機(jī)二級(jí)C++考試試題06-14
2017年全國(guó)計(jì)算機(jī)二級(jí)C++考試試題附答案06-23
2017年9月計(jì)算機(jī)二級(jí)JAVA考試檢測(cè)試題附答案06-19