點(diǎn)擊查看:2016年計(jì)算機(jī)二級(jí)《C++》基礎(chǔ)練習(xí)題及答案匯總
1[單選題]設(shè)有基類定義:
派生類采用何種繼承方式可以使成員變量b成為自己的私有成員( )。
A.私有繼承
B.保護(hù)繼承
C.公有繼承
D.私有、保護(hù)、公有
參考答案:A
參考解析:類的繼承中有三種繼承方式,他們和類的訪問級(jí)別相結(jié)合在派生類中可以產(chǎn)生多種 訪問級(jí)別;愔谐蓡T為保護(hù)的,在派生類中要為私有的,可以采用私有繼承;愔械谋Wo(hù)成員 在派生類中不是私有就是保護(hù),即級(jí)別只能降低而不能升高;愔械墓谐蓡T則可能為私有、保 護(hù)和私有。
2[單選題] 有下列程序:
#include
intfun(intx,inyy)
{if(x==y)return(x);
elsereturn((x+y)/2);
}
voidmain( )
{inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.3B.6C.8D.12
參考答案:B
參考解析:在程序中子函數(shù)fun(intX,inty)的功能是如果X的值等于y的值,則返回X的值,否則返回這兩個(gè)數(shù)的算術(shù)平均值,在主函數(shù)中首先計(jì)算fun(5,6),其值等于5,然后再計(jì)算fun(8,5),其值等于6。所以正確答案為選項(xiàng)B。
3[單選題]下列選項(xiàng)中,作為是數(shù)據(jù)庫系統(tǒng)的核心的是( )。
A.數(shù)據(jù)庫B.數(shù)據(jù)模型C.軟件工具D.數(shù)據(jù)庫管理系統(tǒng)
參考答案:D
參考解析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。DBMS建立在操作系統(tǒng)之上,實(shí)施對(duì)數(shù)據(jù)庫的統(tǒng)一管理和控制。
4[單選題] 下列程序的輸出結(jié)果是( )。#include
voidmain()
(char*str="12123434";
intx1=0,x2=0,x3=0,x4=0,i;
for(i=0;str[i]!='\0';i++)
switch(str[i])
{case'1':x4++;
case'2':x3++;
case'3':x2++;
case'4':x1++;
}
cout<
<","<
}
A.8,6,4,1B.8,6,3,2C.8,8,4,1D.8,6.4,2
參考答案:D
參考解析:本題考查循環(huán)的嵌套、for和switch語句的應(yīng)用、C++中各種條件判斷,循環(huán)語句的用法。只要注意在C++語言中,系統(tǒng)在字符指針的最后位置會(huì)增加一個(gè)字符串結(jié)束符'\0',執(zhí)行8次for循環(huán),再根據(jù)switch語句中的條件易知答案。
5[單選題]
A.
B.
C.
D.
參考答案:B
參考解析:
6[單選題]請(qǐng)閱讀以下程序:
上面程序的輸出結(jié)果是( )。
A.a=2,b=1 B.a=1,b=1 C.a=1,b=0D.a=2,b=2
參考答案:A
參考解析:本題考察switch語句的嵌套,以及break語句的使用規(guī)則,即break中斷當(dāng)前的執(zhí)行流,不再執(zhí)行下面的case語句,如果沒有break語句,則會(huì)順序執(zhí)行隨后語句。據(jù)此,讀程序可知,內(nèi)層switch執(zhí)行case 0分支,故a增1,調(diào)出內(nèi)層switch后,由于沒有break語句,隨后執(zhí)行外層switch的case 2分支,a又增1,b增1。故答案為A。
7[單選題]對(duì)長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是( )。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
參考答案:D
8[單選題] 下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是( )。
A.int operator一(FunNumber);
B.FunNumber operator一();
C.FunNumber operator一(int);
D.int operator一(FunNumber,F(xiàn)unNumber);
參考答案:D
參考解析:本題考查運(yùn)算符重載的一些規(guī)則:①一般情況下,單目運(yùn)算符最好重載為類的成員函數(shù),雙目運(yùn)算符則最好重載為類的友元函數(shù);②雙目運(yùn)算符=、()、[]、->不能重載為類的友元函數(shù);③類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的成員函數(shù),而不能定義為類的友元函數(shù);④若一個(gè)運(yùn)算符的操作需要修改對(duì)象的狀態(tài),選擇重載為成員函數(shù)較好;⑤若運(yùn)算符所需的操作數(shù)(尤其是第一個(gè)操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù);⑥當(dāng)運(yùn)算符函數(shù)是一個(gè)成員函數(shù)時(shí),最左邊的操作數(shù)(或者只有最左邊的操作數(shù))必須是運(yùn)算符類的一個(gè)類對(duì)象(或者是對(duì)該類對(duì)象的引用);如果左邊的操作數(shù)必須是一個(gè)不同類的對(duì)象,或者是一個(gè)內(nèi)部類型的對(duì)象,該運(yùn)算符函數(shù)必須作為一個(gè)友元函數(shù)來實(shí)現(xiàn)。所以答案為D。
9[單選題]下列數(shù)據(jù)結(jié)構(gòu)中,插入時(shí)不需要移動(dòng)其他元素的是( )。
A.有序線性鏈表B.無序線性鏈表C.棧和隊(duì)列D.以上三種都是
參考答案:D
參考解析:在線性鏈表中插入或刪除元素都不需要移動(dòng)其他元素,只需改變指針即可;棧只能在一端插入或刪除元素,也不需要移動(dòng)其他元素;隊(duì)列只能在一端插人元素.在另一端刪除元素,也不需 要移動(dòng)其他元素。
10[單選題]有如下程序:
#include
#include
using namespace std;
int main(){
cout << setfill('*')<
return 0;
}
運(yùn)行輸出結(jié)果是( )。
A.***123***456B.***123456***C.***123456D.123456
參考答案:C
參考解析:在主函數(shù)中第一次輸出時(shí)調(diào)用函數(shù)setfill('*')設(shè)置填充字符為‘*’,調(diào)用函數(shù) setw(6)設(shè)置每次輸出的寬度為6,所以第一次輸出123時(shí),多余的三個(gè)空位用‘*’填充,即結(jié)果為***123,第二次從輸出流中輸出456。
相關(guān)推薦:
各地2016年全國計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |