國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷1(共108題)_第1頁(yè)
國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷1(共108題)_第2頁(yè)
國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷1(共108題)_第3頁(yè)
國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷1(共108題)_第4頁(yè)
國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷1(共108題)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷1(共4套)(共108題)國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、if語(yǔ)句的語(yǔ)法格式可描述為:格式1=if(<條件>)<語(yǔ)句>或格式2:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>關(guān)于上面的語(yǔ)法格式,下列表述中錯(cuò)誤的是()。A、<條件>部分可以是一個(gè)if語(yǔ)句,例如if(if(a=0)…)…B、<語(yǔ)句>部分可以是一個(gè)if語(yǔ)句,例如if(…)if(…)…C、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語(yǔ)句1>和<語(yǔ)句2>的位置,語(yǔ)句功能不變D、<語(yǔ)句>部分可以是一個(gè)循環(huán)語(yǔ)句,例如if(…)while(…)…標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是if語(yǔ)句。If語(yǔ)句的條件部分是一個(gè)表達(dá)式而不是語(yǔ)句,因此選項(xiàng)A敘述錯(cuò)誤。2、若x和y是程序中的兩個(gè)整型變量,則下列if語(yǔ)句中正確的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;C、if(x==0)y=1elsey=2;D、if(x==0)y=1;elsey=2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ifelse語(yǔ)句的形式為:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>所以符合以上形式的ifelse語(yǔ)句為選項(xiàng)A)。3、+下列語(yǔ)句中,與語(yǔ)句“n=(a>b?(b>c?1:0):0);”的功能等價(jià)的是()。A、if(a<=b)n=0;B、if((a>b)‖(b>c))n=1;elsen=0;C、if(a>b)if(b>c)n=1;elsen=0;elsen=0;D、if(a>b)n=1;elseif(b<=c)n=1;elseif(b>c)n=1;elsen=0;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:條件表達(dá)式(a>b?(b>c?1:0):0)的含義是,如果a>b成立,則此表達(dá)式的值等于條件表達(dá)式(b>c?1:0)的值,否則其值等于0。而條件表達(dá)式(b>c?1:0)的含義是,如果b>c成立,其值等于1,否則其值等于0。4、有如下程序#include<iostream>usingnamespacestd;intmain(){chara;cin>>a;if(a=’*’)cout<<"***"<<endl;elsecout<<"###"<<endl;return0;}輸入字符+時(shí),程序的運(yùn)行結(jié)果是()。A、***B、###C、***###D、無(wú)輸出標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題的考點(diǎn)是雙分支選擇語(yǔ)句的執(zhí)行流程,答題的關(guān)鍵點(diǎn)在于選擇條件的判定。雙分支選擇語(yǔ)句的執(zhí)行流程是首先計(jì)算if后表達(dá)式的值,如果表達(dá)式的值為非零,則執(zhí)行if后面的分支,否則執(zhí)行與其匹配的else后面的分支。本題執(zhí)行時(shí)雖然輸入變量a的值為‘+’,但是在執(zhí)行if后括號(hào)內(nèi)表達(dá)式(a=’*’)的時(shí),由于此表達(dá)式為賦值表達(dá)式,因此表達(dá)式的值為賦值號(hào)右邊的值’*’,其ASCII碼的值非零,執(zhí)行if后面的輸出語(yǔ)句“***”后回車(chē)。5、執(zhí)行語(yǔ)句序列()。inti=0;while(i<25)i+=3;cout<<i;輸出結(jié)果是A、24B、25C、27D、28標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是循環(huán)語(yǔ)句while的使用。i為3的倍數(shù),當(dāng)i=24時(shí),i<25,執(zhí)行while的循環(huán)體i+=3,則i=27,不滿(mǎn)足i<25的條件,結(jié)束循環(huán)。6、有如下程序:intx=3;do{x-=2;cout<<x}while(!(--x));執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、1B、30C、1-2D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是do-while循環(huán)語(yǔ)句。do-while循環(huán)首先執(zhí)行do語(yǔ)句中的循環(huán)體,再判斷是否需要繼續(xù)執(zhí)行循環(huán)。題目中do語(yǔ)句“x-=2”,while語(yǔ)句中“--x”即x為0,取反為非0,循環(huán)繼續(xù)執(zhí)行;執(zhí)行“x-=2”和“--x”取反后,循環(huán)結(jié)束程序退出。7、執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>1:--i)cout<<’*’;A、48B、49C、50D、51標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是for循環(huán)語(yǔ)句。For循環(huán)中i從50開(kāi)始逐漸遞減,直到i=1時(shí)退出,而此時(shí)沒(méi)有機(jī)會(huì)執(zhí)行到循環(huán)體,因此一共執(zhí)行了49次循環(huán)體,所以最終輸出的是49個(gè)字符‘*’。8、執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>1;I-=2)cout<<’*’;A、24B、25C、26D、50標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是for循環(huán)語(yǔ)句。執(zhí)行循環(huán)語(yǔ)句,變量i從50遞減,每次減2,所以循環(huán)會(huì)執(zhí)行25次,輸出25個(gè)‘*’。9、有如下程序:#include<iostream>usingnamespacestd;intmain(){intsum;for(inti=0;i<6;i+=3){sum=1;for(intj=i;j<6;j++)sum+=j;}cout<<sum<<endl;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、3B、10C、12D、15標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由題干可以知道,外層循環(huán)會(huì)進(jìn)行兩次,且第一次的結(jié)果我們可以不去理會(huì)和計(jì)算,讀者仔細(xì)觀察能發(fā)現(xiàn),在第一次的循環(huán)以后sum和j都會(huì)被重新賦值,所以外層第二次循環(huán)如下:此時(shí)i=3,sum=3內(nèi)層循環(huán)開(kāi)始如下:j=3,j<6,sum=6;i=4,j<6,sum=10,j=5,j<6,sum=15,j=6退出內(nèi)層循環(huán)。得到sum=15。10、有如下程序段:inti=5;while(inti=0){cout<<’*’;i--;}運(yùn)行時(shí)輸出“*”的個(gè)數(shù)是()。A、0+B、1C、5D、無(wú)窮標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閣hile循環(huán)中,因?yàn)閕的值等于0,所以while循環(huán)體一次也不執(zhí)行。因而運(yùn)行時(shí)輸出“*”,的個(gè)數(shù)是0。11、有如下程序段:inti=1;while(1){i++;if(i==10)break;if(i%2==0)cout<<’*’;}執(zhí)行這個(gè)程序段輸出字符*的個(gè)數(shù)是()。A、10B、3C、4D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這段程序代碼的功能是計(jì)算在1~10(包括10)之間偶數(shù)i的個(gè)數(shù),如果整數(shù)i為偶數(shù),則輸出一個(gè)‘*’,共有4個(gè)偶數(shù),所以共輸出4個(gè)‘*’。12、下列循環(huán)語(yǔ)句中有語(yǔ)法錯(cuò)誤的是()。A、inti;for(i=1;i<10;i++)cout<<’*’;B、inti,j;for(i=1,j=0;i<10;i++,j++)cout<<’*’;C、inti=0;for(;i<10;i++)cout<<’*’;D、for(1)cout<<’*’;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:這道題目主要考查for循環(huán)語(yǔ)句的語(yǔ)法。for循環(huán)語(yǔ)句的語(yǔ)法格式如下:for(<表達(dá)式1>;<表達(dá)式2>;<表達(dá)式3>)<語(yǔ)句>,在三個(gè)表達(dá)式都省略的情況下,其格式如下for(;;),這時(shí)for循環(huán)語(yǔ)句是一個(gè)死循環(huán)。13、有如下程序:#include<iostrearn>usingnamespacestd;intmain(){inta[6]={23,15,64,33,40,58};ints1,s2;s1=s2=a[0];for(int*p=a+1;p<a+6;p++){if(s1>*p)s1=*p;if(s2<*p)s2=*p;}cout<<s1+s2<<endl;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、23B、58C、64D、79標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量s1和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的值等于15,它小于23,所以把15賦給變量s1;執(zhí)行第二次for循環(huán)時(shí),*p的值等于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于15,小于64,因而變量s1,s2的值不會(huì)再發(fā)生變化,最終值為15+64=79。14、有如下程序:#include<iostrearn>usingnamespacestd;intmain(){inti,s=0;for(i=1;s<20;i+=2)s+=i*i;cout<<i<<endl;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、3B、5C、7D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在這段程序中for循環(huán)共執(zhí)行3次,每次循環(huán)變量i的值增2,在執(zhí)行第三次循環(huán)語(yǔ)句時(shí),變量s的值等于25,大于20而退出循環(huán),此時(shí)再執(zhí)行循環(huán)變量i加2運(yùn)算,所以最后變量i的值等于7。15、要定義一個(gè)具有5個(gè)元素的一維數(shù)組vect,并使其各元素的初值依次是30,50,-88,0和0,則下列定義語(yǔ)句中錯(cuò)誤的是()。A、intvect[]={30,50,-88};B、intvect[]={30,50,-88,0,0};C、intvect[5]={30,50,-88};D、intvect[5]={30,50,-88,0,0};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是一維數(shù)組定義時(shí)的初始化。當(dāng)數(shù)組聲明時(shí)沒(méi)有給出數(shù)組的大小但是有初始化列表時(shí),數(shù)組的大小就由列表中元素的個(gè)數(shù)來(lái)確定。所以選項(xiàng)A中數(shù)組只定義3個(gè)元素,不符合題目。16、已知數(shù)組arr的定義如下:.intarr[5]={1,2,3,4,5};下列語(yǔ)句中輸出結(jié)果不是2的是()。A、cout<<arr+1<<endl;B、cout<<*(arr+1)<<endl;C、cout<<arr[1]<<endl;D、cout<<*art<<endl;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D)中,輸出*arr的值就是數(shù)組flit[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組arr[5]的第二元素2。17、要定義整型數(shù)組x,使之包括初值為0的三個(gè)元素,下列語(yǔ)句中錯(cuò)誤的是()。A、intx[3]={0,0,0};B、intx[]={0};C、statieintx[3]={0};D、intx[]={0,0,0};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:當(dāng)數(shù)組聲明時(shí)沒(méi)有給出數(shù)組的大小,但是有初始化列表時(shí),數(shù)組的大小就由列表中元素的個(gè)數(shù)來(lái)確定。對(duì)于選項(xiàng)B)定義數(shù)組x時(shí),沒(méi)有給出數(shù)組的大小,初始化時(shí)只給出了一個(gè)元素0。所以數(shù)組x只包含一個(gè)元素為0的元素。18、有如下語(yǔ)句序列:charstr[10];cin>>str;當(dāng)從鍵盤(pán)輸入"Ilovethisgame"時(shí),str中的字符串是()。A、IlovethisgameB、IlovethiC、IloveD、I標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由于字符\0作為字符串的結(jié)束標(biāo)志,所以當(dāng)從鍵盤(pán)上輸入“Ilovethisgame”時(shí),只把字母I輸入字符串str。19、字符串“a+b=12\n\t”的長(zhǎng)度為()。A、12B、10C、8D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目給出的字符串含有7個(gè)字符,再加字符串的結(jié)束字符,所以共8個(gè)字符。20、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constdouble*point;C、intconstbuffer=256;D、double*constpoint;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是常指針和指針常量的概念。常指針是指向一個(gè)常量的指針變量,指針自身的內(nèi)容可以改變但指針指向的內(nèi)容不可以改變;指針常量是一個(gè)常量,即不能修改指針自身的內(nèi)容,但可以通過(guò)指針修改其所指向的內(nèi)容。D選項(xiàng)中指針常量point沒(méi)有初始化,編譯無(wú)法通過(guò)。21、語(yǔ)句int*p=&k;定義了指針p,與這個(gè)語(yǔ)句等效的語(yǔ)句序列是()。A、int*p;p=&k;B、int*p;p=k;C、int*p;*p=&k;D、int*p;*p==k標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針的賦值。題目中的語(yǔ)句int*p=&k;定義了一個(gè)int類(lèi)型的指針p,并將變量k的地址&k賦給指針p。所以等效語(yǔ)句是:int*p;p=&k;22、有如下定義:inta[5]={1,3,5,7,9},*p=a;下列表達(dá)式中不能得到數(shù)值5的是()。A、a[2]B、a[3]C、*(p+2)D、*p+4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是指針引用數(shù)組元素。B選項(xiàng)中,a[3]是數(shù)組的第四個(gè)元素,即7;其它選項(xiàng)的引用均可得到5。23、下列語(yǔ)句中,正確的是()。A、char*myString="Hello-World!";B、charmyString="Hello-World!";C、charmyString[11]:="Hello-World!";D、charmyString[12]="Hello-World!";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)于B來(lái)說(shuō),會(huì)造成溢出,對(duì)于C和D來(lái)說(shuō)同樣如此,因?yàn)椤癏ello-world!”一個(gè)是12個(gè)字符組成,加上空字符一共13個(gè),所以都會(huì)造成溢出,只有A是將字符串的地址賦給字符型指針。24、下列定義語(yǔ)句中,錯(cuò)誤的是()。A、intpx*;B、char*acp[10];C、char(*pac)[10];D、int(*p)();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指針變量聲明的一般形式為:<數(shù)據(jù)類(lèi)型>*<變量名>,在選項(xiàng)A)中,*放在變量名的后面,所以是錯(cuò)誤的。25、有如下程序段:inti=0,j=1;int&r=i;//①r=j;//②in*p=&i;//③*p=&r;//④其中會(huì)產(chǎn)生編譯錯(cuò)誤的語(yǔ)句是()。A、④B、③C、②D、①標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針和引用。本題中,語(yǔ)句①是一條合法的引用聲明語(yǔ)句,使得變量i被r引用;語(yǔ)句②通過(guò)引用r將變量j的值賦給變量i;語(yǔ)句③聲明了指針變量p,并初始化指向變量i;語(yǔ)句④中*p代表了變量i的值,要將&r賦給*p,這會(huì)使編譯器產(chǎn)生類(lèi)型不符的錯(cuò)誤提示。國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷第2套一、選擇題(本題共27題,每題1.0分,共27分。)1、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){charstr[100],*p;cout<<"Pleaseinputastring:";cin;str;p=str;for(inti=0;*p!=’\0’;p++,i++);cout<<"i"<<endl;return0;}運(yùn)行這個(gè)程序時(shí),若輸入字符串為:abcdefgabcd則輸出結(jié)果是()。A、7B、12C、13D、100標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是默認(rèn)輸入格式。本題輸入數(shù)據(jù)類(lèi)型為char,因此輸入的數(shù)據(jù)是“從第一個(gè)非空白字符開(kāi)始到下一個(gè)空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefgabcd,其中abcdefg后有空格。所以輸入后str中的字符串為“abcdefg”:主函數(shù)中接下來(lái)for語(yǔ)句的作用是計(jì)算字符串p的長(zhǎng)度,故最終輸出字符串“abcdefg”的長(zhǎng)度7。2、if語(yǔ)句的語(yǔ)法格式可描述為:格式1:if(<條件>)<語(yǔ)句>或格式2:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>關(guān)于上面的語(yǔ)法格式,下列表述中錯(cuò)誤的是()。A、<條件>部分可以是一個(gè)if語(yǔ)句,例如if(if(a==0)…)…B、<語(yǔ)句>部分可以是一個(gè)if語(yǔ)句,例如if(…)if(…)…C、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語(yǔ)句1>和<語(yǔ)句2>的位置,語(yǔ)句功能不變D、<語(yǔ)句>部分可以是一個(gè)循環(huán)語(yǔ)句,例如if(…)while(…)…標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是if語(yǔ)句。If語(yǔ)句的條件部分是一個(gè)表達(dá)式而不是語(yǔ)句,因此選項(xiàng)A敘述錯(cuò)誤。3、若x和y是程序中的兩個(gè)整型變量,則下列if語(yǔ)句中正確的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;C、if(x=0)y=1elsey=2;D、if(x=0)y=1;elsey=2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ifelse語(yǔ)句的形式為:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>所以符合以上形式的ifelse語(yǔ)句為選項(xiàng)A)。4、執(zhí)行語(yǔ)句序列()。inti=0;while(i<25)i+=3;cout<<i;輸出結(jié)果是A、24B、25C、27D、28標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是循環(huán)語(yǔ)句while的使用。i為3的倍數(shù),當(dāng)i=24時(shí),i<25,執(zhí)行while的循環(huán)體1+一3,則1=27,不滿(mǎn)足j<25的條件,結(jié)束循環(huán)。5、有如下程序:intx=3;do{x一=2;cout<<x,}while(!(一x));執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、1B、30C、1一2D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是do一while循環(huán)語(yǔ)句。do一while循環(huán)首先執(zhí)行do語(yǔ)句中的循環(huán)體,再判斷是否需要繼續(xù)執(zhí)行循環(huán)。題目中do語(yǔ)句“x一=2”,while語(yǔ)句中“一一x”即x為0,取反為非0,循環(huán)繼續(xù)執(zhí)行;執(zhí)行“x一=2”和“一一x”取反后,循環(huán)結(jié)束程序退出。6、執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是()。for(intl=50;i>1:一i)cout<<’*’;A、48B、49C、50D、51標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是for循環(huán)語(yǔ)句。For循環(huán)中i從50開(kāi)始逐漸遞減,直到i=1時(shí)退出,而此時(shí)沒(méi)有機(jī)會(huì)執(zhí)行到循環(huán)體,因此一共執(zhí)行了49次循環(huán)體,所以最終輸出的是49個(gè)字符‘*’。7、執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;1>1;I一=2)cout<<’*’;A、24B、25C、26D、50標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是for循環(huán)語(yǔ)句。執(zhí)行循環(huán)語(yǔ)句,變量i從50遞減,每次減2,所以循環(huán)會(huì)執(zhí)行25次,輸出25個(gè)’*’。8、有如下程序段:int1=5;while(inti=0){cout<<’*’;i--;)運(yùn)行時(shí)輸出“*”的個(gè)數(shù)是()。A、0B、1C、5D、無(wú)窮標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閣hile循環(huán)中,因?yàn)閕的值等于0,所以while循環(huán)體一次也不執(zhí)行。因而運(yùn)行時(shí)輸出“*”的個(gè)數(shù)是0。9、有如下程序段:inti=1,while(1){i++;if(i==10)break;if(i%2==0)cout<<’*’;}執(zhí)行這個(gè)程序段輸出字符*的個(gè)數(shù)是()。A、10B、3C、4D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這段程序代碼的功能是計(jì)算在1—10(包括10)之間偶數(shù)i的個(gè)數(shù),如果整數(shù)i為偶數(shù),則輸出一個(gè)‘*’,共有4個(gè)偶數(shù),所以共輸出4個(gè)‘*’。10、下列循環(huán)語(yǔ)句中有語(yǔ)法錯(cuò)誤的是()。A、inti;for(i=1;i<10,1++)cout<<’*’;B、inti,j;for(i一l,j=0;i<10;i++,j++)cout<<’*’;C、inti=0;for(;i<10,1++)cout<<’*’;D、for(1)cout<<’*’;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:這道題目主要考查for循環(huán)語(yǔ)句的語(yǔ)法。for循環(huán)語(yǔ)句的語(yǔ)法格式如下:for(<表達(dá)式1>;<表達(dá)式2>;<表達(dá)式3>)<語(yǔ)句>,在三個(gè)表達(dá)式都省略的情況下,其格式如下for(;;),這時(shí)for循環(huán)語(yǔ)句是一個(gè)死循環(huán)。11、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){intf,f1=0,f2=1;for(inti.3;i<=6;i++){f=f1+f2:fl=f2;f2=f;}cout<<f<<endl;return0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、2B、3C、5D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中for循環(huán)語(yǔ)句執(zhí)行4次,第一次循環(huán)結(jié)束時(shí),變量f的值等于1,f1的值等于1,f2的值等于1;第二次循環(huán)結(jié)束時(shí),變量f的值等于2,f1的值等于1,f2的值等于2;第三次循環(huán)結(jié)束時(shí),變量f的值等于3,f1的值等于2,f2的值等于3:第四次循環(huán)結(jié)束時(shí),變量f的值等于5,f1的值等于3,f2的值等于5;結(jié)束循環(huán)。12、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){.inta[6]={23,15,64,33,40,58};ints1,s2;sl=s2=a[0];for(int*p=a+l;p<a+6;p++){if(sl>*p)sl=*p;if(s2<*p)s2=*p;}cout<<sl+s2<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、23B、58C、64D、79標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量s1和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的值等于15,它小于23,所以把15賦給變量s1;執(zhí)行第二次for循環(huán)時(shí),*p的值等于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于15,小于64,因而變量s1,s2的值不會(huì)再發(fā)生變化,最終值為15+64=79。13、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){inti,s=0;for(i=1;s<20;1+=2)s+=i*i;cout<<i<<endl;retum0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、3B、5C、7D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在這段程序中for循環(huán)共執(zhí)行3次,每次循環(huán)變量i的值增2,在執(zhí)行第三次循環(huán)語(yǔ)句時(shí),變量s的值等于25,大于20而退出循環(huán),此時(shí)再執(zhí)行循環(huán)變量i加2運(yùn)算,所以最后變量i的值等于7。14、要定義一個(gè)具有5個(gè)元素的一維數(shù)組vect,并使其各元素的初值依次是30,50,一88,0和0,則下列定義語(yǔ)句中錯(cuò)誤的是()。A、intvect[]={30,50,一88};B、intvect[]={30,50,一88,0,0};C、intvect[5]={30,50,一88};D、intvect[5]={30,50,一88,0,0};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是一維數(shù)組定義時(shí)的初始化。當(dāng)數(shù)組聲明時(shí)沒(méi)有給出數(shù)組的大小但是有初始化列表時(shí),數(shù)組的大小就由列表中元素的個(gè)數(shù)來(lái)確定。所以選項(xiàng)A中數(shù)組只定義3個(gè)元素,不符合題目。15、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是()。A、a[2]="WIN"B、strcpy(a[2],"WIN")C、a[2][3]=’W’D、a[0][1]=a[0][1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要是對(duì)字符數(shù)組的考查。選項(xiàng)A中a[2]為一個(gè)地址,所以不能用等號(hào)進(jìn)行賦值操作。16、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5};下列語(yǔ)句中輸出結(jié)果不是2的是()。A、cout<<*arr+1<<end1;B、cout<<*(arr+1)<<end1;C、cout<<arr[1]<<end1,D、cout<<*art<<end1;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D)中,輸出*arr的值就是數(shù)組arr[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組arr[5]的第二元素2。17、有如下類(lèi)定義:ciassA{char*a;public:A():a(0){}A(char*aa){∥把a(bǔ)a所指字符串拷貝到a所指向的存儲(chǔ)空間a=___;strcpy(a,aa);}~A()(delete[]a;}};橫線處應(yīng)填寫(xiě)的表達(dá)式是()。A、newchar[strlen(aa)+1]B、char[strlen(aa)+1]C、char[strlen(aa)]一D、newchar[sizeof(aa)一1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)strlen(aa)返回字符串a(chǎn)a中字符的個(gè)數(shù),不包括末尾的空字符。所以在內(nèi)存空間創(chuàng)建字符數(shù)組a時(shí),需要字符數(shù)組的長(zhǎng)度是strlen(aa)+1。18、要定義整型數(shù)組x,使之包括初值為0的三個(gè)元素,下列語(yǔ)句中錯(cuò)誤的是()。A、intx[3]={0,0,0};B、intx[]={0};C、staticintx[3]={0};D、intx[]={0,0,0};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:當(dāng)數(shù)組聲明時(shí)沒(méi)有給出數(shù)組的大小,但是有初始化列表時(shí),數(shù)組的大小就由列表中元素的個(gè)數(shù)來(lái)確定。對(duì)于選項(xiàng)B)定義數(shù)組x時(shí),沒(méi)有給出數(shù)組的大小,初始化時(shí)只給出了一個(gè)元素0。所以數(shù)組x只包含一個(gè)元素為0的元素。19、有如下語(yǔ)句序列:charstr[10];cin>>str;當(dāng)從鍵盤(pán)輸入"Ilovethisgame"時(shí),str中的字符串是()。A、IlovethisgameB、IlovethiC、IloveD、"I"標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由于字符\0作為字符串的結(jié)束標(biāo)志,所以當(dāng)從鍵盤(pán)上輸入“Ilovethisgame”時(shí),只把字母I輸入字符串str。20、字符串“a+b=12\n\t”的長(zhǎng)度為()。A、12B、10C、8D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目給出的字符串含有7個(gè)字符,再加字符串的結(jié)束字符,所以共8個(gè)字符。21、下列有一維數(shù)組a的定義中,語(yǔ)法正確的是()。A、inta(10);B、intn=7,a[n];C、intn;cin>>n,inta[n];D、constintsi2e=10,inta[size],標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:定義一維數(shù)組的一般格式為:類(lèi)型標(biāo)識(shí)符數(shù)組名[常量表達(dá)式];常量表達(dá)式的值表示元素的個(gè)數(shù),即數(shù)組長(zhǎng)度。常量表達(dá)式中可以包括常量、常變最和符號(hào)常量,但不能包含變量。也就是說(shuō),C++不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即數(shù)組的大小不依賴(lài)于程序運(yùn)行過(guò)程中變量的值。22、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){int*p,*p=9;cout<<"Thevalueatp:"<<*p;return0;}編譯運(yùn)行程序?qū)⒊霈F(xiàn)的情況是()。A、編譯時(shí)出現(xiàn)語(yǔ)法錯(cuò)誤,不能生成可執(zhí)行文件B、運(yùn)行時(shí)一定輸出:Thevalueatp:9C、運(yùn)行時(shí)一定輸出:Thevalueatp:*9D、運(yùn)行時(shí)有可能出錯(cuò)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是指針的使用。本題中,在給*p賦值前,指針p并沒(méi)有指向一個(gè)具體的對(duì)象。此時(shí)可以通過(guò)編譯,但運(yùn)行時(shí)由于p中為隨機(jī)值,該賦值可能會(huì)破壞內(nèi)存中某個(gè)重要的地址空間的內(nèi)容,導(dǎo)致程序出錯(cuò)。23、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffeF256;B、constdouble*point;C、intconstbuffeF256;D、double*constpoint;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是常指針和指針常量的概念。常指針是指向一個(gè)常量的指針變量,指針自身的內(nèi)容可以改變但指針指向的內(nèi)容不可以改變;指針常量是一個(gè)常量,即不能修改指針自身的內(nèi)容,但可以通過(guò)指針修改其所指向的內(nèi)容。D選項(xiàng)中指針常量point沒(méi)有初始化,編譯無(wú)法通過(guò)。24、有如下說(shuō)明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()。A、*p+9B、*(p+8)C、*p+=9D、p+8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是指針的運(yùn)用。選項(xiàng)A中,*p返回的是數(shù)組元素a[0]的值,所以最后結(jié)果是1+9=10;選項(xiàng)B是指針p后移8個(gè)單位位置處的值,即a[8]其值為9;選項(xiàng)C中表達(dá)式的值和選項(xiàng)A相同;選項(xiàng)D的值是一個(gè)地址值,該值無(wú)法確定。25、語(yǔ)句int*p=&k;定義了指針p,與這個(gè)語(yǔ)句等效的語(yǔ)句序列是()。A、int*p;p=&k;B、int*p;p=k;C、int*p;*p=&k;D、int*p;*p=k標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針的賦值。題目中的語(yǔ)句int*p=&k;定義了一個(gè)int類(lèi)型的指針p,并將變量k的地址&k賦給指針p。所以等效語(yǔ)句是:int*p;p=&k;。26、下列定義語(yǔ)句中,錯(cuò)誤的是()。A、intpx*;B、char*acp[10];C、char(*pac)[10];D、int(*p)();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指針變量聲明的一般形式為:<數(shù)據(jù)類(lèi)型>*<變量名>,在選項(xiàng)A)中,*放在變量名的后面,所以是錯(cuò)誤的。27、若字符指針p所指向的字符串為"abcdefg",在執(zhí)行語(yǔ)句()。char*ap=newchar[strlen(p)+1];之后,ap指向的字符數(shù)組的元素個(gè)數(shù)為A、9B、8C、7D、6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符指針p所指向的字符串為”abcdefg”,所以函數(shù)strlen(p)的值等于7,再加l,等于8。國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷第3套一、選擇題(本題共27題,每題1.0分,共27分。)1、有如下程序:#includeusingnamespacestd;intmain(){charstr[100],*p;cout<<"Pleaseinputastring:";cin;str;p=str;for(inti=0;*p!=’\0’;p++,i++);cout<<"i"<A、7B、12C、13D、100標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是默認(rèn)輸入格式。本題輸入數(shù)據(jù)類(lèi)型為char,因此輸入的數(shù)據(jù)是“從第一個(gè)非空白字符開(kāi)始到下一個(gè)空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefgabcd,其中abcde龜后有空格。所以輸入后s仃中的字符串為“abcdefg”;主函數(shù)中接下來(lái)for語(yǔ)句的作用是計(jì)算字符串p的長(zhǎng)度,故最終輸出字符串“abcdefg”的長(zhǎng)度7。2、if語(yǔ)句的語(yǔ)法格式可描述為:格式1:if(<條件>)<語(yǔ)句>或格式2:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>關(guān)于上面的語(yǔ)法格式,下列表述中錯(cuò)誤的是()。A、<條件>部分可以是一個(gè)if語(yǔ)句,例如if(if(a==0)…)…B、<語(yǔ)句>部分可以是一個(gè)if語(yǔ)句,例如if(…)if(…)…C、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語(yǔ)句1>和<語(yǔ)句2>的位置,語(yǔ)句功能不變D、<語(yǔ)句>部分可以是一個(gè)循環(huán)語(yǔ)句,例如if(…)while(…)…標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是if語(yǔ)句。If語(yǔ)句的條件部分是一個(gè)表達(dá)式而不是語(yǔ)句,因此選項(xiàng)A敘述錯(cuò)誤。3、若x和y是程序中的兩個(gè)整型變量,則下列if語(yǔ)句中正確的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;C、if(x=)y=1elsey=2;D、if(x==0)y=1;elsey=2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ifelse語(yǔ)句的形式為:if(<條件>1<語(yǔ)句l>else<語(yǔ)句2>所以符合以上形式的ifelse語(yǔ)句為選項(xiàng)A)。4、下列語(yǔ)句中,與語(yǔ)句“n=(a>b?(b>c?l:0):0);”的功能等價(jià)的是()。A、if(a<=b)n=0;B、if((a>b)‖(b>c))n=1;elsen=0;C、if(a>b)if(b>c)n=1;elsen=0;elsen=0;D、if(a>b)n=1;elseif(b<=c)n=1;elseif(b>c)n=1;elsen=0;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:條件表達(dá)式(a>b?(b>c?1:0):0)的含義是,如果a>b成立,則此表達(dá)式的值等于條件表達(dá)式(b>c?1:0)的值,否則其值等于0。而條件表達(dá)式(b>c?1:0)的含義是,如果b>c成立,其值等于1,否則其值等于0。5、有如下程序#includeusingnamespacestd;intmain(){chara:cin>>a;if(a=’*’)cout<<"***"<A、***B、###C、***###D、無(wú)輸出標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題的考點(diǎn)是雙分支選擇語(yǔ)句的執(zhí)行流程,答題的關(guān)鍵點(diǎn)在于選擇條件的判定。雙分支選擇語(yǔ)句的執(zhí)行流程是首先計(jì)算if后表達(dá)式的值,如果表達(dá)式的值為非零,則執(zhí)行if后面的分支,否則執(zhí)行與其匹配的else后面的分支。本題執(zhí)行時(shí)雖然輸入變量a的值為‘+’,但是在執(zhí)行if后括號(hào)內(nèi)表達(dá)式(a=’*’)的時(shí),由于此表達(dá)式為賦值表達(dá)式,因此表達(dá)式的值為賦值號(hào)右邊的值’*’,其AscII碼的值非零,執(zhí)行if后面的輸出語(yǔ)句“***”后回車(chē)。6、執(zhí)行語(yǔ)句序列()。inti=0:while(i<25)i+=3;cout<A、24B、25C、27D、28標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是循環(huán)語(yǔ)句while的使用。i為3的倍數(shù),當(dāng)i=24時(shí),i<25,執(zhí)行while的循環(huán)體i+=3,則i=27,不滿(mǎn)足i<25的條件,結(jié)束循環(huán)。7、有如下程序:intx=3:do{x-=2:cout<A、1B、30C、1-2D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是do-while循環(huán)語(yǔ)句。do-while循環(huán)首先執(zhí)行do語(yǔ)句中的循環(huán)體,再判斷是否需要繼續(xù)執(zhí)行循環(huán)。題目中do語(yǔ)句“x-=2”,while語(yǔ)句中“--x”即x為0,取反為非0,循環(huán)繼續(xù)執(zhí)行;執(zhí)行“x-=2”和“--x”取反后,循環(huán)結(jié)束程序退出。8、執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>1:--i)cout<<’*’;A、48B、49C、50D、51標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是for循環(huán)語(yǔ)句。For循環(huán)中i從50開(kāi)始逐漸遞減,直到i=1時(shí)退出,而此時(shí)沒(méi)有機(jī)會(huì)執(zhí)行到循環(huán)體,因此一共執(zhí)行了49次循環(huán)體,所以最終輸出的是49個(gè)字符‘*’。9、執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>1;I-=2)cout<<’*’;A、24B、25C、26D、50標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是for循環(huán)語(yǔ)句。執(zhí)行循環(huán)語(yǔ)句,變量i從50遞減,每次減2,所以循環(huán)會(huì)執(zhí)行25次,輸出25個(gè)‘*’。10、有如下程序:#includeusingnamespacestd;intmain(){intsum;for(inti=0;i<6;i+=3){sum=i;for(intj=i;j<6;j++)sum+=j;}cout<A、3B、10C、12D、15標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由題干可以知道,外層循環(huán)會(huì)進(jìn)行兩次,且第一次的結(jié)果我們可以不去理會(huì)和計(jì)算,讀者仔細(xì)觀察能發(fā)現(xiàn),在第一次的循環(huán)以后sum和j都會(huì)被重新賦值,所以外層第二次循環(huán)如下:此時(shí)i=3,sum=3內(nèi)層循環(huán)開(kāi)始如下:j=3,j<6,sum=6;j=4,j<6,sum=10,j=5,j<6,sum=15,j=6退出內(nèi)層循環(huán)。得到sum=15。11、有如下程序段:inti=5:while(inti=0){cout<<’*’;i--;}運(yùn)行時(shí)輸出“*”的個(gè)數(shù)是()。A、0B、1C、5D、無(wú)窮標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閣hile循環(huán)中,因?yàn)閕的值等于0,所以while循環(huán)體一次也不執(zhí)行。因而運(yùn)行時(shí)輸出“*”的個(gè)數(shù)是0。12、有如下程序段:inti=1;while(1){i++;if(i==10)break;if(i%2==0)cout<<’*’;}執(zhí)行這個(gè)程序段輸出字符*的個(gè)數(shù)是()。A、10B、3C、4D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這段程序代碼的功能是計(jì)算在1~10(包括10)之間偶數(shù)i的個(gè)數(shù),如果整數(shù)i為偶數(shù),則輸出一個(gè)‘*’,共有4個(gè)偶數(shù),所以共輸出4個(gè)‘*’。13、有如下程序:#includeusingnamespacestd;intmain(){inti,s=0;for(i=1;s<20;i+=2)s+=i*i;cout<A、3B、5C、7D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在這段程序中for循環(huán)共執(zhí)行3次,每次循環(huán)變量i的值增2,在執(zhí)行第三次循環(huán)語(yǔ)句時(shí),變量s的值等于25,大于20而退出循環(huán),此時(shí)再執(zhí)行循環(huán)變量i加2運(yùn)算,所以最后變量i的值等于7。14、要定義一個(gè)具有5個(gè)元素的一維數(shù)組vect,并使其各元素的初值依次是30,50,一88,0和0,則下列定義語(yǔ)句中錯(cuò)誤的是()。A、intvect[]={30,50,一88};B、intvect[]={30,50,一88,0,0};C、intvect[5]={30,50,一88};D、intvect[5]={30,50,一88,0,0};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是一維數(shù)組定義時(shí)的初始化。當(dāng)數(shù)組聲明時(shí)沒(méi)有給出數(shù)組的大小但是有初始化列表時(shí),數(shù)組的大小就由列表中元素的個(gè)數(shù)來(lái)確定。所以選項(xiàng)A中數(shù)組只定義3個(gè)元素,不符合題目。15、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是()。A、a[2]="WIN"B、strcpy(a[2],"WIN")C、a[2][3]=’W’D、a[0][1]=a[0][1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要是對(duì)字符數(shù)組的考查。選項(xiàng)A中a[2]為一個(gè)地址,所以不能用等號(hào)進(jìn)行賦值操作。16、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5};下列語(yǔ)句中輸出結(jié)果不是2的是()。A、cout<<*arr+1<B、cout<<*(art+1)<C、cout<D、cout<<*art<標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D)中,輸出*arr的值就是數(shù)組arr[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組arr[5]的第二元素2。17、有如下類(lèi)定義:ciassA{char*a:public:A0:a(0){}A(char*aa){//把a(bǔ)a所指字符串拷貝到a所指向的存儲(chǔ)空間a=_________;strcpy(a,aa);}~A()(delete[]a;}};橫線處應(yīng)填寫(xiě)的表達(dá)式是()。A、newchar[strlen(aa)+1]B、char[strlen(aa)+1]C、char[strlen(aa)]D、newchar[sizeof(aa)一1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)strlen(aa)返回字符串a(chǎn)a中字符的個(gè)數(shù),不包括末尾的空字符。所以在內(nèi)存空間創(chuàng)建字符數(shù)組a時(shí),需要字符數(shù)組的長(zhǎng)度是strlen(aa)+1。18、字符串“a+b=12kn\t”的長(zhǎng)度為()。A、12B、10C、8D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目給出的字符串含有7個(gè)字符,再加字符串的結(jié)束字符,所以共8個(gè)字符。19、有如下程序:#includeusingnamespacestd;intmain(){int*p;*p=9:cout<<"Thevalueatp:"<<*p;return0;}編譯運(yùn)行程序?qū)⒊霈F(xiàn)的情況是()。A、編譯時(shí)出現(xiàn)語(yǔ)法錯(cuò)誤,不能生成可執(zhí)行文件B、運(yùn)行時(shí)一定輸出:Thevalueatp:9C、運(yùn)行時(shí)一定輸出:Thevalueatp:*9D、運(yùn)行時(shí)有可能出錯(cuò)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是指針的使用。本題中,在給*p賦值前,指針p并沒(méi)有指向一個(gè)具體的對(duì)象。此時(shí)可以通過(guò)編譯,但運(yùn)行時(shí)由于p中為隨機(jī)值,該賦值可能會(huì)破壞內(nèi)存中某個(gè)重要的地址空間的內(nèi)容,導(dǎo)致程序出錯(cuò)。20、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constdouble*point;C、intconstbuffer=256;D、double*constpoint;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是常指針和指針常量的概念。常指針是指向一個(gè)常量的指針變量,指針自身的內(nèi)容可以改變但指針指向的內(nèi)容不可以改變;指針常量是一個(gè)常量,即不能修改指針自身的內(nèi)容,但可以通過(guò)指針修改其所指向的內(nèi)容。D選項(xiàng)中指針常量point沒(méi)有初始化,編譯無(wú)法通過(guò)。21、語(yǔ)句int*p=&k;定義了指針p,與這個(gè)語(yǔ)句等效的語(yǔ)句序列是()。A、int*p;p=&k;B、int*p;p=k;C、int*p;*p=&k;D、int*p;*p=k標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針的賦值。題目中的語(yǔ)句int*p=&k;定義了一個(gè)int類(lèi)型的指針p,并將變量k的地址&k賦給指針p。所以等效語(yǔ)句是:int*p;p=&k;。22、有如下定義:inta[5]={1,3,5,7,9},*p=a;下列表達(dá)式中不能得到數(shù)值5的是()。A、a[2]B、a[3]C、*(p+2)D、*p+4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是指針引用數(shù)組元素。B選項(xiàng)中,a[3]是數(shù)組的第四個(gè)元素,即7;其它選項(xiàng)的引用均可得到5。23、下列語(yǔ)句中,正確的是()。A、char*myString="Hello-World!";B、charmyString="Hello-World!";C、charmyString[11]="Hello-World!";D、charmyString[12]="Hello-World!";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)于B來(lái)說(shuō),會(huì)造成溢出,對(duì)于C和D來(lái)說(shuō)同樣如此,因?yàn)椤癏ello—world!”一個(gè)是12個(gè)字符組成,加上空字符一共13個(gè),所以都會(huì)造成溢出,只有A是將字符串的地址賦給字符型指針。24、下列定義語(yǔ)句中,錯(cuò)誤的是()。A、intpx*;B、char*acp[10];C、char(*pac)[10];D、int(*p)();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指針變量聲明的一般形式為:<數(shù)據(jù)類(lèi)型>*<變量名>,在選項(xiàng)A)中,*放在變量名的后面,所以是錯(cuò)誤的。25、有如下語(yǔ)句序列:intx=100,&r==x:cout<A、100-100B、100-0012FF7CC、0012FF7C-100D、0012FF7C-0012FF7C標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在語(yǔ)句intx=100,&r==x;中聲明r初始化對(duì)x的引用,所以x和&r的值都是100。26、若字符指針p所指向的字符串為"abcdefg",在執(zhí)行語(yǔ)句()。char*ap=newchar[strlen(p)+1];之后,ap指向的字符數(shù)組的元素個(gè)數(shù)為A、9B、8C、7D、6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符指針p所指向的字符串為"abcdefg",所以函數(shù)strlen(p)的值等于7,再加1,等于8。27、有如下程序段:inti=0,j=1;int&r=i;//①r=j;//②int*p=&i://③*p=&r;//④其中會(huì)產(chǎn)生編譯錯(cuò)誤的語(yǔ)句是()。A、④B、③C、②D、①標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針和引用。本題中,語(yǔ)句①是一條合法的引用聲明語(yǔ)句,使得變量i被r引用;語(yǔ)句②通過(guò)引用r將變量j的值賦給變量i;語(yǔ)句③聲明了指針變量p,并初始化指向變量i;語(yǔ)句④中*p代表了變量i的值,要將&r賦給*p,這會(huì)使編譯器產(chǎn)生類(lèi)型不符的錯(cuò)誤提示。國(guó)家二級(jí)C++機(jī)試(基本控制結(jié)構(gòu)、數(shù)組、指針與引用)模擬試卷第4套一、選擇題(本題共29題,每題1.0分,共29分。)1、有如下程序:#includeusingnamespacestd;intmain(){charstr[100],*p;cout<<"Pleaseinputastring:";cin;str;p=str;for(inti=0;*p!=ˊ\0ˊ;p++,i++);cout<<"i"<A、7B、12C、13D、100標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是默認(rèn)輸入格式。本題輸入數(shù)據(jù)類(lèi)型為char,因此輸入的數(shù)據(jù)是“從第一個(gè)非空白字符開(kāi)始到下一個(gè)空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefgabcd,其中abcdefg后有空格。所以輸入后str中的字符串為“abcdefg”:主函數(shù)中接下來(lái)for語(yǔ)句的作用是計(jì)算字符串p的長(zhǎng)度,故最終輸出字符串“abcdefg”的長(zhǎng)度7。2、if語(yǔ)句的語(yǔ)法格式可描述為:格式1:if(<條件>)<語(yǔ)句>或格式2:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>關(guān)于上面的語(yǔ)法格式,下列表述中錯(cuò)誤的是()。A、<條件>部分可以是一個(gè)if語(yǔ)句,例如if(if(a==0)…)…B、<語(yǔ)句>部分可以是一個(gè)if語(yǔ)句,例如if(…)if(…)…C、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語(yǔ)句1>和<語(yǔ)句2>的位置,語(yǔ)句功能不變D、<語(yǔ)句>部分可以是一個(gè)循環(huán)語(yǔ)句,例如if(…)while(…)…標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是if語(yǔ)句。If語(yǔ)句的條件部分是一個(gè)表達(dá)式而不是語(yǔ)句,因此選項(xiàng)A敘述錯(cuò)誤。3、若x和y是程序中的兩個(gè)整型變量,則下列if語(yǔ)句中正確的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;C、if(x==0)y=1elsey=2;D、if(x==0)y=1;elsey=2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ifelse語(yǔ)句的形式為:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>所以符合以上形式的ifelse語(yǔ)句為選項(xiàng)A)。4、執(zhí)行語(yǔ)句序列()。inti=0;while(i<25)i+=3;cout<<i;輸出結(jié)果是A、24B、25C、27D、28標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是循環(huán)語(yǔ)句while的使用。i為3的倍數(shù),當(dāng)i=24時(shí),i<25,執(zhí)行while的循環(huán)體i+=3,則i=27,不滿(mǎn)足j<25的條件,結(jié)束循環(huán)。5、有如下程序:intx=3;do{x=2;cout<<x;}while(!(-x));執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、1B、30C、1-2D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是do-while循環(huán)語(yǔ)句。do-while循環(huán)首先執(zhí)行do‘語(yǔ)句中的循環(huán)體,再判斷是否需要繼續(xù)執(zhí)行循環(huán)。題目中do語(yǔ)句“x=2”,while語(yǔ)句中“--x”即x為0,取反為非0,循環(huán)繼續(xù)執(zhí)行;執(zhí)行“x=2”和“--x”取反后,循環(huán)結(jié)束程序退出。6、執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>1-=2)cout<<ˊ*ˊ;A、24B、25C、26D、50標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是for。循環(huán)語(yǔ)句。執(zhí)行循環(huán)語(yǔ)句,變量i從50遞減,每次減2,所以循環(huán)會(huì)執(zhí)行25次,輸出25個(gè)‘*’。7、有如下程序:#includeusingnamespacestd;intmain(){intsum;for(inti=0;i<6;i+=3){sum=i;for(intj=i;j<6;j++)sum+=j;}cout<<sum<A、3B、10C、12D、15標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由題干可以知道,外層循環(huán)會(huì)進(jìn)行兩次,且第一次的結(jié)果我們可以不去理會(huì)和計(jì)算,讀者仔細(xì)觀察能發(fā)現(xiàn),在第一次的循環(huán)以后sum和j都會(huì)被重新賦值,所以外層第二次循環(huán)如下:此時(shí)i=3,sum=3內(nèi)層循環(huán)開(kāi)始如下:j=3,j<6,sum=6;j=4,j<6,sum=10,j=5,j<6,sum=15,j=6退出內(nèi)層循環(huán)。得到sum=15。8、有如下程序段:inti=5:while(inti=0){cout<<ˊ*ˊ;i--;}運(yùn)行時(shí)輸出“*”的個(gè)數(shù)是()。A、0B、1C、5D、無(wú)窮標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閣hile循環(huán)中,因?yàn)閕的值等于0,所以while循環(huán)體一次也不執(zhí)行。因而運(yùn)行時(shí)輸出“*”的個(gè)數(shù)是0。9、有如下程序段:inti=l;while(1){i++:if(i==10)break;if(i%2==0)cout<<’*’;}執(zhí)行這個(gè)程序段輸出字符木的個(gè)數(shù)是()。A、10B、3C、4D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這段程序代碼的功能是計(jì)算在1~10(包括10)之間偶數(shù)i的個(gè)數(shù),如果整數(shù)i為偶數(shù),則輸出一個(gè)‘*’,共有4個(gè)偶數(shù),所以共輸出4個(gè)‘*’。10、有如下程序:#include<iostream>usingnamespacestd;intmain(){intf,fl=0,f2=1;for(inti=3;i<=6;i++){f=f1+f2;f1=f2;f2=f;}cout<<f<<endl;retum0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、2B、3C、5D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中for循環(huán)語(yǔ)句執(zhí)行4次,第一次循環(huán)結(jié)束時(shí),變量f的值等于1,f1的值等于1,f2的值等于1;第二次循環(huán)結(jié)束時(shí),變量f的值等于2,f1的值等于1,f2的值等于2;第三次循環(huán)結(jié)束時(shí),變量f的值等于3,f1的值等于2,f2的值等于3:第四次循環(huán)結(jié)束時(shí),變量f的值等于5,f1的值等于3,f2的值等于5;結(jié)束循環(huán)。11、有如下程序:#includeusingnamespacestd;intmain(){.inta[6]={23,15,64,33,40,58);ints1,s2;s1=s2=a[0];for(int*p=a+1;p<a+6;p++){if(s1>*p)s1=*p;if(s2<*p)s2=*p;}cout<<s1+s2<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、23B、58C、64D、79標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量s1和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的值等于15,它小于23,所以把15賦給變量s1;執(zhí)行第二次for循環(huán)時(shí),*p的值等于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于15,小于64,因而變量s1,s2的值不會(huì)再發(fā)生變化,最終值為15+64=79。12、有如下程序:#includeusingnamespacestd;intmain(){inti,s=0;for(i=1;s<20;i+=2)s+=i*i;cout<<i<<endl;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、3B、5C、7D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在這段程序中for循環(huán)共執(zhí)行3次,每次循環(huán)變量i的值增2,在執(zhí)行第三次循環(huán)語(yǔ)句時(shí),變量s的值等于25,大于20而退出循環(huán),此時(shí)再執(zhí)行循環(huán)變量i加2運(yùn)算,所以最后變量i的值等于7。13、要定義一個(gè)具有5個(gè)元素的一維數(shù)組vect,并使其各元素的初值依次是30,50,-88,0和0,則下列定義語(yǔ)句中錯(cuò)誤的是()。A、intvect[]={30,50,-88};B、intvect[]={30,50,-88,0,0};C、intvect[5]={30,50,-88};D、intvect[5]={30,50,-88,0,0};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是一維數(shù)組定義時(shí)的初始化。當(dāng)數(shù)組聲明時(shí)沒(méi)有給出數(shù)組的大小但是有初始化列表時(shí),數(shù)組的大小就由列表中元素的個(gè)數(shù)來(lái)確定。所以選項(xiàng)A中數(shù)組只定義3個(gè)元素,不符合題目。14、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5};下列語(yǔ)句中輸出結(jié)果不是2的是()。A、cout<<*arr+1<<endl;B、cout<<*(arr+1)<<endl;C、cout<<arr[1]<<endl;D、cout<<*art<<endl;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D中,輸出*arr的值就是數(shù)組art[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組art[5]的第二元素2。15、有如下類(lèi)定義:ciassA{char*a;public:A():a(0){}A(char*aa){//把a(bǔ)a所指字符串拷貝到a所指向的存儲(chǔ)空間a=__________;strcpy(a,aa);}~A()(delete[]a;)};橫線處應(yīng)填寫(xiě)的表達(dá)式是()。A、newchar[strlen(aa)+1]B、char[strlen(aa)+1]C、char[strlen(aa)]D、newchar[sizeof(aa)-1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)strlen(aa)返回字符串a(chǎn)a中字符的個(gè)數(shù),不包括末尾的空字符。所以在內(nèi)存空間創(chuàng)建字符數(shù)組a時(shí),需要字符數(shù)組的長(zhǎng)度是strlen(aa)+1。16、要定義整型數(shù)組x,使之包括初值為0的三個(gè)元素,下列語(yǔ)句中錯(cuò)誤的是()。A、intx[3]={0,0,0};B、intx[]={0};C、staticintx[3]={0};D、intx[]={0,0,0);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:當(dāng)數(shù)組聲明時(shí)沒(méi)有給出數(shù)組的大小,但是有初始化列表時(shí),數(shù)組的大小就由列表中元素的個(gè)數(shù)來(lái)確定。對(duì)于選項(xiàng)B定義數(shù)組x時(shí),沒(méi)有給出數(shù)組的大小,初始化時(shí)只給出了一個(gè)元素0。所以數(shù)組x只包含一個(gè)元素為0的元素。17、有如下語(yǔ)句序列:charstr[10];cin>>str;當(dāng)從鍵盤(pán)輸入”Ilovethisgame”時(shí),str中的字符串是()。A、ˊˊIlovethisgameˊˊB、ˊˊIlovethiˊˊC、ˊˊIloveˊˊD、ˊˊIˊˊ標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由于字符\0作為字

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論