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

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論