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