點(diǎn)擊查看:2016年計(jì)算機(jī)二級(jí)《C++》基礎(chǔ)練習(xí)題及答案匯總
1[填空題]運(yùn)算符重載仍然保持其原來的優(yōu)先級(jí)、 和 。
參考解析:結(jié)合性、語法結(jié)構(gòu)。
解析:運(yùn)算符重載不能改變操作數(shù)的個(gè)數(shù)、運(yùn)算符的優(yōu)先級(jí)、運(yùn)算符的結(jié)合性和運(yùn)算符的語法結(jié)構(gòu)。
2[單選題] 有以下程序:
#include
void fun(int a,int b,int C.
{ a=456,b=567,c=678;}
void main()
{
int X=10,Y=20,Z=30;
fun(X,Y,z);
aout<
}
輸出結(jié)果是( )。
A.30,20,10B.10,20,30C.456,567,678D.678,567,456
參考答案:B
參考解析:本題考查函數(shù)中變量的作用范圍,在主函數(shù)中給變餐x、Y、Z賦值,然后將其作為實(shí)參傳遞給了函數(shù)fun(),雖然在函數(shù)fun()中改變了這3個(gè)變量的值,但只是同名的局部變量,不影響函數(shù)中變量的值,所以在調(diào)用函數(shù)fun()結(jié)束后,主函數(shù)3個(gè)變量的值未改變。
3[單選題] 若有定義語句“doublex,y,*px,*Py;執(zhí)行了px=&x;py=&y;”后,正確的輸入語句是( )。
A.scanf("%f%f",x,y);B.scanf("%f%f"&x,&y);C.scanf("%If%le",px,py);D.scanf("%lf%If"x,y);
參考答案:C
參考解析:此題主要考查輸入函數(shù)的字符格式,lf和le表示以帶小數(shù)點(diǎn)的數(shù)學(xué)形式或指數(shù)形式輸入浮點(diǎn)數(shù)。
4[單選題] 繼承機(jī)制的作用是( )。
A.信息隱藏B.數(shù)據(jù)封裝C.定義新類D.數(shù)據(jù)抽象
參考答案:C
參考解析:數(shù)據(jù)封裝就是數(shù)據(jù)抽象,即信息隱藏;而繼承是實(shí)現(xiàn)程序復(fù)用的基礎(chǔ)。
5[單選題]若有如下類聲明
class My Class {
public:
MyClass() {cout <<1;}
};
執(zhí)行下列語句
MyClass a,b[2],*P[2];
以后,程序的輸出結(jié)果是( )。
A.11 B.111 C.1111 D.11111
參考答案:B
6[單選題] 下列選項(xiàng)中正確的語句是( )。
A.chars[];s="BOOK!";B.char*s;S={"BOOK!");C.chars[10];s="BOOK";D.char*S;s="BOOK!";
參考答案:D
參考解析:在選項(xiàng)D中,字符指針s指向字符串常量BOOK!。故選項(xiàng)D正確。
7[填空題] __________是一種特殊的成員函數(shù),它主要用來為對(duì)象分配內(nèi)存空間,對(duì)類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行對(duì)象的其他內(nèi)部管理操作。
參考解析:構(gòu)造函數(shù)
【解析】構(gòu)造函數(shù)的主要作用是對(duì)數(shù)據(jù)成員初始化,系統(tǒng)為成員分配內(nèi)存時(shí),保留這些存儲(chǔ)單元的原狀。
8[簡(jiǎn)答題]使用VC++6.0打開考生文件夾下的源程序文件2.cpp。完成函數(shù)fun(char*sl,char*s2)的空出部分。函數(shù)fun(char*s1,char*s2)的功能是將在字符串s1中下標(biāo)為偶數(shù)的字符,緊隨其后重復(fù)出現(xiàn)一次,放在一個(gè)新串s2中,s2中字符按原字符串中字符的順序排列。(注意0為偶數(shù))
例如:當(dāng)s1中的字符串為“abcdef”時(shí),s2中的字符串應(yīng)為“aaccee”。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include(iostream.h)
voidfun(char*s1,char*s2)
{
}
voidmain()
{
charsi[100】,s2【1OO];
cout<<"Pleaseenterstringstrin9:"<
cin.getline(s1,100);
fun(s1,s2);
cout<<"Theresultis:"<
return;
}
參考解析:
inti;
for(i=0;s1[i]!=0;i++)//循環(huán)判斷每一個(gè)字符
{
if(i%2==0)//判斷字符串中下標(biāo)為偶數(shù)位置
{
s2[i]=s1[3];
s2[i+1]=s1[i];
s2[i+2]='\0';//新串添加尾符
}
}
【解析】判斷一個(gè)字符串中的某一個(gè)字符下標(biāo)i是否為偶數(shù),可用“i%2==0”來判斷。對(duì)串s1中各個(gè)字符串逐個(gè)進(jìn)行考查,滿足條件的字符就順序放在新串s2中,否則就不存放。所有字符處理完成后,記得在新串s2的末尾加上結(jié)束符“'\0'。
9[簡(jiǎn)答題]使用VC6打開考生文件夾下的源程序文件2.cpp。閱讀下列函數(shù)說明和代碼,補(bǔ)充空出的代碼。函數(shù)sum(intn)返回1,2,3,…,n的和。其中n大于0。
程序要求使用遞歸實(shí)現(xiàn)上述功能。
注意:不能修改程序的其他部分,只能補(bǔ)充sum函數(shù)。
試題程序:
#include
#include
intsum(intn)
{
}
voidmain()
{
cout<<"1+2+3+…+100="<
endl;
return;
}
參考解析:return(n==1)?1:n+sum(n-1);
【解析】本題主要考查三目運(yùn)算符?:的使用和遞歸函數(shù)的編制。程序功能是計(jì)算前n個(gè)自然數(shù)的和,n為參數(shù)。程序的運(yùn)算過程如下,不是一般性,假設(shè)n為3,首先執(zhí)行sum(3),因?yàn)?不等于1,所以return語句返回的值為3+sum(3-1),然后執(zhí)行sum(3-1)即sum(2),2不等于1,所以return語句返回的值為2+sum(2-1),然后執(zhí)行sum(2-1)即sum(1),因?yàn)?等于1,所以return語句返回的值為1,即問號(hào)后的值,所以最終結(jié)果為3+2+1=6,而題中n為100,所以結(jié)果為5050。
10[填空題]下面程序的輸出結(jié)果是【9】。
#include
void main()
{
int a[6]={1,2,3,4,5,6};
for(int i=0;i <5;i++)
cout <<
cout <
}
參考解析:12345
相關(guān)推薦:
各地2016年全國(guó)計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |