第 1 頁:選擇題 |
第 3 頁:程序改錯(cuò)題 |
第 4 頁:簡單應(yīng)用題 |
第 5 頁:綜合應(yīng)用題 |
點(diǎn)擊查看:2015年計(jì)算機(jī)二級(jí)考試《C++》上機(jī)?荚嚲韰R總
一、選擇題
1有下列程序:
#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。
2已知字母A的ASCIl代碼值為65,若變量kk為char型,下列不能正確判斷出kk中的值為大寫字母的表達(dá)式是( )。
A.kk>='A'&&kk<='Z'
B.!(kk>='A'‖kk<='2')
C.(kk+32)>='a'&&(kk+32)<='2'
D.isalpha(kk)&&(kk<=91)
參考答案:B
參考解析:選項(xiàng)A用邏輯與運(yùn)算符來連接關(guān)系表達(dá)式'A'<=kk并且kk<='z',介于'A'與'Z'之間為大寫字母。選項(xiàng)C用邏輯與運(yùn)算符來連接關(guān)系表達(dá)式(kk+32)>'a'和(kk+32)<='2',因?yàn)榇髮?A'與小寫'a',ASCIl碼相差32,由表達(dá)式可知C正確。選項(xiàng)D調(diào)用函數(shù)isalpha(),首先判斷kk是否為字母,接著通過與運(yùn)算(kk<=91)來判斷kk是否為大寫字母;而選項(xiàng)B的表達(dá)式給的結(jié)果是除了'A'與'z'的大寫字母,不符合題意。
3有如下程序:
#included
usingnamespacestd;
classTestClass
{
private:
intx,Y;
public:
TestClass(inti,intj)
{
x=i:
y=j;
}
voidprint()
{
cout<<"printl"<
}
voidprint()const
{
cout<<"print2"<
}
};
intmain()
{
constTestClassa(1,2);
print();
return0;
}
該程序運(yùn)行后的輸出結(jié)果是( )。
A.printlB.print2C.printlprint2D.程序編譯時(shí)出錯(cuò)
參考答案:B
參考解析:本題定義TestClass型常對(duì)象a,然后調(diào)用對(duì)象a中的成員函數(shù)print()。因?yàn)樵贑++中.如果一個(gè)對(duì)象被聲明為常對(duì)象,則不能調(diào)用該對(duì)象中的非const型成員函數(shù)。所以,這里調(diào)用的是對(duì)象中的const型成員函數(shù)voidprint()const,輸出為print2。
4有如下程序:
#include
usingnamespacestd;
classBase
{
public:
Base(){cout<<"BB";f();}
voidf(){cout<<"BF";}
};
classDerived:publicBase
{
public:
Derived(){cout<<"DD";}
voidf(){eout<<"Df";}
};
intmain(){Derivedd;return0;}
執(zhí)行上面的程序?qū)⑤敵? )。
A.BBBfDDB.BBDfDDDfC.DDD.DDBBBf
參考答案:A
參考解析:本題考查類的繼承和派生。派生類執(zhí)行構(gòu)造函數(shù)的一般次序?yàn)椋菏紫日{(diào)用基類構(gòu)造函數(shù);然后調(diào)用成員對(duì)象的構(gòu)造函數(shù);最后是派生類構(gòu)造函數(shù)中的內(nèi)容。題目中定義派生類對(duì)象d時(shí),先調(diào)用基類Base的構(gòu)造函數(shù),輸出BBBf,然后調(diào)用派生類Derived的構(gòu)造函數(shù),輸出DD。
5在計(jì)算機(jī)中,算法是指( )。
A.查詢方法B.加工方法C.解題方案的準(zhǔn)確而完整的描述D.排序方法
參考答案:C
參考解析:計(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它的基本特征分別是:可行性、確定性、有窮性和擁有足夠的情報(bào)。
6有如下程序:
#include
usingnamespacestd;
intmain( ){
intf,f1=0,f2=1;
for(inti=3;i<=6;i++){
f=f1+f2:
f1=f2;f2=f;
}
cout<
return0;
}
運(yùn)行時(shí)的輸出結(jié)果是( )。
A.2B.3C.5D.8
參考答案:C
參考解析:循環(huán)3次,分別每次計(jì)算出f1,f2和f的值,該題比較簡單,只需要細(xì)心即可。
7對(duì)于模板定義關(guān)鍵字class和typename說法不正確的是( )。
A.程序中的class并不能都替換為typename
B.class和typename都可互相替換
C.程序中的typename都能替換為class
D.程序中的部分class可以替換為typename
參考答案:B
參考解析:在C++程序中,typename是可以替換為class的,但class不能都替換為typename。
點(diǎn)擊查看試題筆記(2)8下面程序的執(zhí)行結(jié)果是( )。
#include"iostream.h"
voidmain()
{int*P,r;
P=newint:
*P=20:
r=sizeof(*p);
cout<
deleteP;}
A.程序錯(cuò)誤B.內(nèi)存為20地址的大小C.20D.4
參考答案:D
參考解析:本題考查指針和運(yùn)算符sizeof的運(yùn)用。sizeof可以運(yùn)算出各種數(shù)據(jù)類型所占內(nèi)存空間的多少。選項(xiàng)C中,指針P所指向的內(nèi)存地址中內(nèi)容是20。在用完申請(qǐng)后的內(nèi)存應(yīng)立刻釋放。
9類MyClass的定義如下,若要對(duì)value賦值,則下面語句正確的是( )。
classMyClass
{
public:
MyClass( ){}
MyClass(inti){value=newint(i);}
int*value;
};
A.MyClassmy;my.value=10;
B.MyClassmy;*my.value=10;
C.MyClassmy;my.*value=10;
D.MyClassmy(10);
參考答案:D
參考解析:因題目中定義的指針value是指淘變量i的,所以直接利用語句MyClass(inti){value=newint(i);}對(duì)value進(jìn)行賦值即可。
10當(dāng)變量C的值不為2、4、6時(shí),值也為“真”的表達(dá)式是( )。
A.(c==2)‖(c==4)‖(c==6)
B.(c>一2&&c<=6)‖(C!=3)‖(C!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
參考答案:B
參考解析:邏輯或“‖”運(yùn)算中,只要有一項(xiàng)為真,表達(dá)式的值就為真而邏輯與“&&”運(yùn)算必須兩邊都為真時(shí)才為真,在選項(xiàng)B中c的值不為2、4、6時(shí),表達(dá)式的值也為真。
11概要設(shè)計(jì)中要完成的事情是( )。
A.系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)
B.系統(tǒng)結(jié)構(gòu)和過程的設(shè)計(jì)
C.過程和接口的設(shè)計(jì)
D.數(shù)據(jù)結(jié)構(gòu)和過程的設(shè)計(jì)
參考答案:A
參考解析:軟件概要設(shè)計(jì)的基本任務(wù)是:設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(jì)、編寫概要設(shè)計(jì)文檔、概要設(shè)計(jì)文檔評(píng)審。
12有下列程序:
#include
#definePT3.5;
#defineS(x)PT*x*x;
voidmain( )
(inta=1.b=2;printf("%4.1f\n",S(a+b));}
程序運(yùn)行后的輸出結(jié)果是( )。
A.14.0B.31.5C.7.5D.程序有錯(cuò),無輸出結(jié)果
參考答案:D
參考解析:這個(gè)程序有錯(cuò)誤不能通過編譯。①#define宏定義后不可有分號(hào);②用分號(hào)隔開后,int只定義了a。b要重新定義。
13有下列程序:
#include
voidmain( )
{inta1,a2charc1,c2;
scanf("%d%c%d%C",&a1,&c1,&a2,&c2);
printf("%d%c%d%C",a1,c1,a2,c2);
}
若想通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序輸出結(jié)果是12,a,34.
A.12a34bB.
C.12,a,34,bD.
參考答案:A
參考解析:從程序的輸入格式控制方法判斷,輸入時(shí)各變量之間沒有分隔符,當(dāng)輸入相應(yīng)的變量對(duì)應(yīng)的值時(shí),相應(yīng)的變量能夠得到對(duì)應(yīng)的值,可以輸出要求的結(jié)果。
14下列虛基類的聲明中正確的是( )。
A.clasSvirtualB:publicA
B.virtualclassB:publicA
C.classB:publieAvirtual
D.classB:virtualpublicA
參考答案:D
參考解析:虛基類說明格式為:Virtual<繼承方式><基類名>其中,virtual是虛基類的關(guān)鍵詞。虛基類的說明是用在定義派生類時(shí),寫在派生類名的后面。即class<派生類名>:Virtual<繼承方式><基類名>。
15設(shè)有定義“chars[8];inti=0;”,下列不能將一行(不超過80個(gè)字符)帶有空格的字符國正確讀入的語句或語句組是( )。
A.gets(s);
B.while((s[i++]=getchar( ))!='\n');s[i]='\0';
C.seanf("%S",s);
D.do{scanf("%C",&s[i]);}while(s[i++]!='\n');s[i]='\0';
參考答案:C
參考解析:在scanf輸入函數(shù)中,格式字符s的作用是輸入一個(gè)字符串,直到遇到空格結(jié)束。所以選項(xiàng)C不能輸入包含空格的字符串。正確答案為選項(xiàng)C。
16下面關(guān)于虛函數(shù)的描述中正確的是( )。
A.虛函數(shù)是一個(gè)靜態(tài)成員函數(shù)
B.虛函數(shù)是一個(gè)非成員函數(shù)
C.虛函數(shù)可以在函數(shù)說明時(shí)定義,也可以在函數(shù)實(shí)現(xiàn)時(shí)定義
D.派生類的虛函數(shù)與基類中對(duì)應(yīng)的虛函數(shù)具有相同的參數(shù)個(gè)數(shù)和類型
參考答案:D
參考解析:本題考查虛函數(shù)的概念。虛函數(shù)是非靜態(tài)的成員函數(shù),它不能是友元函數(shù),但可以在另一個(gè)類中被聲明為友元函數(shù)。虛函數(shù)必須是類的成員函數(shù),虛函數(shù)聲明只能出現(xiàn)在類定義的函數(shù)原型聲明中,而不能在成員函數(shù)的函數(shù)體實(shí)現(xiàn)的地方,一般要求基類中說明了虛函數(shù)后,派生類說明的虛函數(shù)應(yīng)該與基類中虛函數(shù)的參數(shù)個(gè)數(shù)相等,對(duì)應(yīng)參數(shù)的類型相同。如果不相同,則將派生類虛函數(shù)的參數(shù)類型強(qiáng)制轉(zhuǎn)換為基類中虛函數(shù)的參數(shù)類型。
17下列錯(cuò)誤的定義語句是( )。
A.intx[][3]={{0},{1},{1,2,3}};
B.intx[4][3]={{1,2,3},{1,2,3),{1,2,3),{1,2,3}};
C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D.intx[][3]={1,2,3,4};
參考答案:C
參考解析:本題考查數(shù)組的定義一維數(shù)組定義和初始化是允許省行下標(biāo),不允許省列下標(biāo),故選項(xiàng)C錯(cuò)誤。
18數(shù)據(jù)庫管理系統(tǒng)是( )。
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D.一種操作系統(tǒng)
參考答案:B
參考解析:
數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。
19Sample是一個(gè)類,執(zhí)行下面語句后,調(diào)用Sample類的構(gòu)造函數(shù)的次數(shù)是( )。
Samplea[2],*p=newSample;
A.0B.1C.2D.3
參考答案:D
參考解析:構(gòu)造函數(shù)在對(duì)象被創(chuàng)建時(shí)由系統(tǒng)自動(dòng)調(diào)用,本題共創(chuàng)建3個(gè)對(duì)象。
20以下關(guān)于友元函數(shù)的敘述不正確的是( )。
A.友元函數(shù)提供了類之間數(shù)據(jù)共享的一個(gè)途徑
B.一個(gè)友元函數(shù)可以訪問任何類的任何成員
C.友元函數(shù)破壞了數(shù)據(jù)的封裝
D.友元函數(shù)增加了程序設(shè)計(jì)的靈活性
參考答案:B
參考解析:友元函數(shù)的作用在于提高程序的運(yùn)行效率,但是它破壞了類的封裝性和隱藏性,使得非成員函數(shù)可以訪問類的私有成員。只有在類中聲明了某個(gè)函數(shù)是自己的友元函數(shù)之后,該友元函數(shù)才能夠訪問本類的私有成員,而不是任何類的任何成員都可以訪問。
相關(guān)推薦:
各地2015全國計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間及入口匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |