2025年9月GESP編程能力認(rèn)證C++等級考試二級真題(含答案和解析)_第1頁
2025年9月GESP編程能力認(rèn)證C++等級考試二級真題(含答案和解析)_第2頁
2025年9月GESP編程能力認(rèn)證C++等級考試二級真題(含答案和解析)_第3頁
2025年9月GESP編程能力認(rèn)證C++等級考試二級真題(含答案和解析)_第4頁
2025年9月GESP編程能力認(rèn)證C++等級考試二級真題(含答案和解析)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2025年9月GESP編程能力認(rèn)證C++等級考試二級真題(含答案和解析)一、單選題(每題2分,共30分)。1.人工智能現(xiàn)在非?;穑罹拖攵嗔私庖幌?,其中就經(jīng)常聽人提到“大模型”。那么請問這里說的“大模型”最貼切是指()。A.大電腦模型B.大規(guī)模智能C.智能的單位D.大語言模型答案:D。解析:在人工智能領(lǐng)域,“大模型”通常指“大語言模型”(LargeLanguageModel,LLM),是基于海量數(shù)據(jù)訓(xùn)練、參數(shù)量非常大的AI模型,如ChatGPT。A、B、C選項均不專業(yè)或表達(dá)不準(zhǔn)確,正確答案是D。2.在TCP協(xié)議中,完成連接建立需要通過()握手。A.一次B.二次C.三次D.四次答案:C。解析:可以把TCP三次握手想象成兩個人打電話確認(rèn)通話。①客戶端說:“喂,你能聽到嗎?”(SYN)。②服務(wù)器回:“能聽到,你能聽到我嗎?”(SYN+ACK)。③客戶端回應(yīng):“能聽到,我們開始吧?!保ˋCK)。這樣雙方都確認(rèn)了“能發(fā)”和“能收”,連接才正式建立。3.下面的C++代碼用于輸入姓名,然后輸出姓名,正確的說法是()。stringXingMing;cout<<"請輸入您的姓名:";cin>>XingMing;cout<<XingMing;A.XingMing是漢語拼音,不能作為變量名稱。B.可以將XingMing改為XingMingC.可以將XingMing改為xingmingD.可以將XingMing改為Xing-Ming答案:C。解析:A選項字母可做變量,B選項中含有空格,C選項可行,D選項含有-連字符。4.下面C++代碼用于獲得正整數(shù)N的第M位數(shù),如N等于1234,M等于2,則輸出3。此題假設(shè)M的值大于等于1且小于等于N的位數(shù)。橫線處應(yīng)填入的代碼是()。intN,M,div=1;cout<<"請輸入一個正整數(shù):";cin>>N;cout<<"請輸入從右到左取第幾位數(shù):";cin>>M;for(inti=0;i<(M-1);i++)div*=10;cout<<(______________);A.N%div/10B.N/div/10C.N%div%10D.N/div%10答案:D。解析:模擬拆位取數(shù)的過程,每次都將原數(shù)N除以10的倍數(shù),以去掉最后若干位,之后通過對10取余來獲得最后一位,從而完成模擬拆位。5.下面C++代碼執(zhí)行,其輸出是()。a,b=3,4;c=a==b;cout<<a<<''<<b<<''<<c;A.340B.333C.444D.以上都不對答案:D。解析:假設(shè)題目中的變量都已提前聲明。a,b=3,4在C++中不是多變量賦值語法,是一個逗號表達(dá)式語句,只有b被賦值為3,而c被賦值為默認(rèn)值與3比較的結(jié)果。6.某種編號的規(guī)則是“XX-Y”,其中XX從00到11,Y從0到9。第1個編號是00-0,第2個編號是01-1……第12個編號11-1,第13個編號00-2,即其編碼規(guī)則是XX和Y同時增1,到XX到11時下一個變?yōu)?0,Y到9時,下一個變?yōu)?。下面的C++代碼用于生成第N個編號,橫線處應(yīng)填上的代碼是()。cout<<"請輸入編號位置:";cin>>N;part1=N%_____;part2=N%_____;if(part1<10)printf("0%d-%d\n",part1,part2);elseprintf("%d-%d\n",part1,part2);A.1210B.1010C.119D.99答案:A。解析:%運(yùn)算符用于求余數(shù),N%12和N%10可將編號按周期規(guī)律分解為兩個部分。當(dāng)N小于12時,part1為N本身,確保前段編號在00到11范圍內(nèi);N%10使后段始終為個位數(shù)。結(jié)合輸出格式要求,選項A的12和10能正確實(shí)現(xiàn)該邏輯。7.下面的C++代碼執(zhí)行后其輸出是()。cnt=0;for(inti=-10;i<10;i++)for(intj=0;j<i;j++)cnt+=1;cout<<cnt;A.145B.125C.55D.45答案:D。解析:外層循環(huán)變量i從-10到9,內(nèi)層循環(huán)j從0到i-1。當(dāng)i≤0時,j的循環(huán)條件不成立,無法進(jìn)入內(nèi)層循環(huán);僅當(dāng)i>0時,內(nèi)層循環(huán)執(zhí)行i次。因此,cnt累加過程為1+2+…+9=45。故正確答案為D。8.下面C++代碼執(zhí)行后其輸出是()。for(i=1;i<12;i++){if(i%2==0)continue;for(j=0;j<i;j++)if(i*j%2)break;}if(i>=12)cout<<(i*j);A.110B.12C.不確定D.無輸出答案:B。解析:外層循環(huán)i從1到11,當(dāng)i為偶數(shù)時continue跳過;i為奇數(shù)時進(jìn)入內(nèi)層循環(huán)j從0到i-1。但內(nèi)層if判斷i*j%2為真時break,由于i為奇數(shù),j從0開始,首次j=0時i*j=0,不滿足break條件,隨后j遞增,一旦j為奇數(shù)則i*j為奇數(shù),觸發(fā)break。因此內(nèi)層循環(huán)在j=1時即退出。最終i=11結(jié)束后i++變?yōu)?2,跳出外層循環(huán),執(zhí)行if(i>=12)輸出i*j,此時j未被重新定義,值為上次循環(huán)結(jié)束時的1,故輸出12。9.閱讀下面的C++代碼,其中變量都是整型,則說法正確的是()。cin>>a>>b;while(b!=0){remainder=a%b;a=b;b=remainder;}cout<<a;A.b不能為0,因為a%b將導(dǎo)致錯誤。B.a必須小于b,否則a%b將導(dǎo)致錯誤。C.a和b都必須為正整數(shù),否則a%b將導(dǎo)致錯誤。D.如果a輸入為0,則不管b的輸入值是什么,輸出值的絕對值都是abs(b)。答案:D。解析:當(dāng)a輸入為0時,remainder=0%b=0,隨后a被賦值為b,b被賦值為0,循環(huán)結(jié)束,最終輸出a的值即為b的初始值。若b為負(fù)數(shù),則輸出其絕對值為|b|,因此D選項正確。10.下面C++代碼執(zhí)行后輸出是()。num=0;while(num<=5){num+=1;if(num==3)continue;printf("%d#",num);}A.1#2#4#5#6#B.1#2#4#5#6C.1#2#3#4#5#6#D.1#2#3#4#5#6答案:A。解析:當(dāng)num=3時,continue語句生效,跳過printf語句,不輸出3#,其余情況下均執(zhí)行輸出。循環(huán)從num=1到num=6,每次遞增1,當(dāng)num=6時仍滿足num<=5的條件,進(jìn)入循環(huán)并輸出6#,隨后num變?yōu)?,不再滿足條件,循環(huán)結(jié)束。因此輸出為1#2#4#5#6#。注意,當(dāng)num=6時仍滿足num≤5的判斷條件,故正確答案為A。11.下面C++代碼用于記錄多個輸入數(shù)中的最大數(shù)和最小數(shù)(輸入-999則輸入結(jié)束),相關(guān)說法錯誤的是()。cin>>now_num;min_num=max_num=now_num;while(now_num!=-999){if(max_num<now_num)max_num=now_num;if(min_num>now_num)min_num=now_num;cin>>now_num;}cout<<min_num<<''<<max_num;A.程序運(yùn)行時如果第一個數(shù)輸入-999,則輸出將是-999-999。B.程序輸入過程中,如果輸入的第一個數(shù)不是-999,則如果待輸入的數(shù)據(jù)中沒有-999,則程序能求出已輸入整數(shù)中的最大數(shù)和最小數(shù)。C.如果用于輸入考試成績,即成績中不可能有-999,則程序能求出已輸入成績中的最高成績和最低成績。D.可以將cin>>now_num;移動到while(now_num!=-999){下面,結(jié)果不變。答案:D。解析:將cin>>now_num;放在while循環(huán)體內(nèi)首行會導(dǎo)致首次輸入無法讀取,且條件判斷會基于未初始化的now_num,引發(fā)邏輯錯誤或未定義行為。原代碼先讀取第一個數(shù)并賦值給min_num和max_num,確保了后續(xù)比較的正確性,因此D選項的說法錯誤,移動后程序無法正常工作。12.下面C++代碼執(zhí)行后輸出與5有關(guān)數(shù)的數(shù)量。“與5有關(guān)的數(shù)”定義為含有5或者能被5整除的數(shù)。相關(guān)說法正確的是()。cnt=0;for(i=1;i<1000;i++){if(i%5==0){cnt+=1;continue;}j=i;while(j>0)if(j%10==5){cnt+=1;break;}elsej/=10;}cout<<cnt;A.刪除代碼中continue不影響程序執(zhí)行結(jié)果B.刪除j=i并將while循環(huán)內(nèi)的j修改為i,不影響程序執(zhí)行結(jié)果。C.代碼中break修改為j=0,不影響程序執(zhí)行結(jié)果。D.將while(j>0)修正為while(j>=0)不影響程序執(zhí)行的結(jié)果答案:C。解析:C選項正確,因當(dāng)個位為5時,已統(tǒng)計該數(shù),break用于跳出當(dāng)前while循環(huán),避免重復(fù)判斷;若改為j=0,會使j在下次循環(huán)條件判斷時為0,從而退出while循環(huán),效果等同于break,因此程序邏輯不變,統(tǒng)計結(jié)果一致。其他選項均會引發(fā)錯誤或改變行為:A項刪除continue可能導(dǎo)致重復(fù)計數(shù);B項直接修改i將破壞for循環(huán)變量;D項改為j>=0會導(dǎo)致死循環(huán),因j始終非負(fù)且無法退出。13.下面C++代碼實(shí)現(xiàn)輸出如下圖形,應(yīng)該在橫線處填入的代碼是()。cout<<"請輸入層數(shù):";cin>>N;K=1;for(i=1;i<N+1;i++){for(int_=1;_<___________;_++)cout<<"";for(int_=1;_<________;_++){cout<<K;K+=1;if(K==10)K=1;}cout<<'\n';}A.N-i+1i+1B.N-iiC.NiD.N-ii+1答案:A。解析:當(dāng)i從1開始遞增時,每行星號前的空格數(shù)應(yīng)逐行遞減,因此首空應(yīng)填入N-i+1,確保第i行前輸出N-i+1個空格,使圖形呈右對齊的三角形排列。次空控制每行輸出的數(shù)字個數(shù),觀察圖形可知第i行應(yīng)輸出i個數(shù)字,因此第二空應(yīng)填i。選項A中第一空為N-i+1,第二空為i+1,但實(shí)際需輸出i個數(shù)字,故此處存在矛盾;重新審視發(fā)現(xiàn),每行數(shù)字連續(xù)遞增且從1到9循環(huán),結(jié)合K的更新邏輯與圖形行數(shù)匹配,最終確定第二空應(yīng)為i,對應(yīng)正確選項應(yīng)為B。14.下面C++代碼執(zhí)行,其輸出是()。inta=9,b=27;a='a'+'b';b='a'-'b';a=a-b;cout<<a<<''<<b<<endl;A.196-1B.279C.9897D.不確定答案:A。解析:字符a+b的和為97+98,a-b的差為97-98,即a的值為196,b的值為-1,最終結(jié)果為A。15.有個無限長的鏈,由3種外形相同但材質(zhì)不同的環(huán)鏈成。3種環(huán)的重量分別是3、4、6克,相同材質(zhì)的多個環(huán)每12克一組,分別記為G3、G4、G6。鏈依次G3、G4、G6、G3、G4、G6……同時對鏈上所有環(huán)從頭依次編號1、2、3、4……輸入正整數(shù)代表環(huán)編號,求該編號前所有環(huán)(不含該環(huán)本身)的重量。下面是C++代碼是實(shí)現(xiàn),正確說法是()。iintN,G,R;intwc=0;cin>>N;//輸入正整數(shù)。G=(N-1)/9;//L1。R=(N-1)%9;//L2:保存余數(shù)。wc+=36*G;if((1<=R)&&(R<=4))wc+=3*R;//L3。elseif((5<=R)&&(R<=7))wc+=4*R;//L4。elseif(R==8)wc+=6*(R-1);//L5。cout<<wc<<endl;A.必須同時修改L1和L2代碼行才能實(shí)現(xiàn)功能B.必須同時修改L3和L4代碼行才能實(shí)現(xiàn)功能C.必須同時修改L3和L5代碼行才能實(shí)現(xiàn)功能D.其他說法都不對答案:D。解析:根據(jù)題意,每9個環(huán)為一個周期,分別對應(yīng)G3、G4、G6的組合,每個周期總重為3×4+4×3+6×2=12+12+12=36克。對于輸入編號N,前N-1個環(huán)的重量由完整周期數(shù)G和剩余環(huán)數(shù)R決定。G=(N-1)/9正確計算了完整周期數(shù),R=(N-1)%9正確得出余下環(huán)的位置。wc+=36*G累加整周期重量無誤。但后續(xù)判斷中,R∈[1,4]對應(yīng)G3組前4個3克環(huán),應(yīng)加3×R;R∈[5,7]對應(yīng)G4組3個4克環(huán),應(yīng)加4×(R-4)+12,而非4×R;R=8時為G6組第1個6克環(huán),應(yīng)加6×1+24,而代碼wc+=6*(R-1)即6×7,明顯錯誤。因此L4與L5均錯,僅改一處無法修復(fù),D正確。二、判斷題(每題2分,共20分)。16.在集成開發(fā)環(huán)境里調(diào)試程序時,要注意不能修改源程序,因為如果修改,就要終止調(diào)試、關(guān)閉該文件并重新打開,才能再次開始調(diào)試。()。答案:錯。解析:現(xiàn)代集成開發(fā)環(huán)境(IDE)通常允許在調(diào)試過程中修改源代碼并繼續(xù)運(yùn)行(稱為熱替換或即時編譯),即使不支持此功能,也無需關(guān)閉文件重新打開,只需重新編譯并運(yùn)行即可,因此題目說法錯誤。17.在C++代碼中,假設(shè)N為正整數(shù)且大于100,則N/100將舍棄個位和十位,如N為1234則cout<<(N/100)將輸出12。如果N小于100,則其值為0。()。答案:對。解析:在C++中,整數(shù)除法會自動向下取整。當(dāng)N為正整數(shù)且大于100時,N/100相當(dāng)于去掉個位和十位數(shù)字,保留百位及以上部分,例如1234/100結(jié)果為12。若N小于100,則商不足1,結(jié)果為0。因此該說法正確。18.下列C++代碼執(zhí)行后將輸出1,因為a確實(shí)小于20和10。()。a=5;cout<<(a<10and20);答案:錯。解析:在C++中,邏輯運(yùn)算符的優(yōu)先級和結(jié)合性需特別注意。表達(dá)式a<10and20中,and的優(yōu)先級低于比較運(yùn)算符,因此實(shí)際等價于(a<10)and20。由于原因錯誤,答案仍為錯。19.下面的C++代碼中變量都是整型,則執(zhí)行后將輸出1。()。x,y,z=5,10,15;result=x<y<z;cout<<result;答案:對。解析:假設(shè)本題中的變量都已經(jīng)提前聲明,第一行將變量z設(shè)為5,其他式子無意義。在C++中,關(guān)系運(yùn)算符具有左結(jié)合性,表達(dá)式x<y<z等價于(x<y)<z。無論x<y為真或假,結(jié)果為1或0,接著判斷<z(即<5),恒為真,因此最終輸出1。20.下面C++代碼執(zhí)行時如輸入99.99,將輸出及格兩個漢字。()。intscore;cout<<"請輸入學(xué)生成績:";cin>>score;if(score>=60)printf("及格");elseprintf("不及格");答案:對。解析:當(dāng)輸入99.99時,由于score為整型,將讀取到99,score值為99。99≥60為真,程序執(zhí)行printf("及格"),輸出“及格”兩個漢字。因此該說法正確。21.執(zhí)行下面的C++代碼時輸入123,則輸出是DCB。()。inta;cin>>a;while(a){cout<<'A'+a%10;a/=10;}答案:錯。解析:當(dāng)輸入123時,a的值為123。進(jìn)入while循環(huán)后,a%10依次得到3、2、1,'A'+3='D','A'+2='C','A'+1='B',因此輸出順序為DCB。但由于整數(shù)和字符相互運(yùn)算,得到的結(jié)果是整數(shù)類型,需強(qiáng)制轉(zhuǎn)換為字符類型才能正確輸出對應(yīng)字母。22.下面的C++代碼執(zhí)行后將輸出+#+#3#。()。inti;for(i=0;i<3;i++){if(i==2)continue;printf("+#");}cout<<i<<'#';答案:對。解析:i從0開始循環(huán),當(dāng)i=0和i=1時均執(zhí)行printf("+#"),輸出"+#"兩次;i=2時觸發(fā)continue,跳過本次循環(huán),不輸出。循環(huán)結(jié)束后i值為3,接著輸出i的值3和"#",最終結(jié)果為"+#+#3#"。23.下列C++代碼用于求斐波那契數(shù)列,即第1個數(shù)0,第2個數(shù)1,從第三個數(shù)開始,是前兩個數(shù)之和。如果輸入的值為大于1的正整數(shù),該代碼能實(shí)現(xiàn)。()。cin>>n;a=0,b=1;for(intj=0;j<n;j++){cout<<a<<"";b=b+a;a=b-a;}答案:對。解析:當(dāng)n≥1時,循環(huán)依次輸出斐波那契數(shù)列的前n項。初始a=0、b=1,每次輸出a后更新b為a+b,a為原b值,即實(shí)現(xiàn)a、b向后推進(jìn)一位。對于n>1的情況,數(shù)列能正確生成;n=1時僅輸出第一項0,也符合要求,因此代碼邏輯正確。24.下面的C++不能實(shí)現(xiàn)如下輸出,但如果將L1標(biāo)記的cout<<0行移動if塊外面,或者說移動到L2標(biāo)記行,則可以。()。intn,i,j;cout<<"請輸入矩陣大小n:";cin>>n;for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j){cout<<i+1;continue;cout<<0;//L1。}//L2。}printf("\n");}答案:對。解析:原代碼中L1行的“cout<<0;”位于continue語句后,無法執(zhí)行,導(dǎo)致非對角線元素未輸出0。將該行移至if塊外(L2處),則每次循環(huán)中若不滿足i==j,會正常輸出0,從而正確生成題目要求的矩陣。25.題C++代碼cout<<('5'+4);執(zhí)行后的輸出為9。()。答案:錯。解析:字符'5'的ASCII碼值為53,執(zhí)行('5'+4)相當(dāng)于53+4=57,結(jié)果是ASCII碼為57的字符,即字符'9'對應(yīng)的ascii碼。三、編程題(每題25分,共50分)。26.試題名稱:優(yōu)美的數(shù)字。時間限制:1.0s。內(nèi)存限制:512.0MB。題目描述:如果一個正整數(shù)在十進(jìn)制下的所有數(shù)位都相同,小A就會覺得這個正整數(shù)很優(yōu)美。例如,正整數(shù)6的數(shù)位都是6,所以6是優(yōu)美的。正整數(shù)99的數(shù)位都是9,所以99是優(yōu)美的。正整數(shù)123的數(shù)位不都相同,所以123并不優(yōu)美。小A想知道不超過n的正整數(shù)中有多少優(yōu)美的數(shù)字。你能幫他數(shù)一數(shù)嗎?輸入格式:一行,一個正整數(shù)n。輸出格式:一行,一個正整數(shù),表示不超過n的優(yōu)美正整數(shù)的數(shù)量。數(shù)據(jù)范圍:對于所有測試點(diǎn),保證1≤n≤2025。參考程序。#include<algorithm>#include<cstdio>usingnamespacestd;intn,ans;intmain(){scanf("%d",&n);for(inti=1;i<=n;i++){intv=i%10,t=i/10,chk=1;while(t){if(t%10!=v)chk=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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論