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

下載本文檔

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

文檔簡介

2025年6月GESP編程能力認證C++等級考試三級真題(含答案和解析)一、單選題(每題2分,共30分)。1.題8位二進制原碼能表示的最小整數(shù)是()。A.-127B.-128C.-255D.-256答案:A。解析:注意此題問的是原碼,原碼第1位是符號位,后面7位是數(shù)據(jù)位。題目問能表示的最小的數(shù),那就是最小的負數(shù),所以符號位是1,剩下7位數(shù)據(jù)位最多就是(1111111)2=127,所以合起來,8位原碼最小的就是-127,選A。2.反碼表示中,零的表示形式有()。A.1種B.2種C.8種D.16種答案:B。解析:在反碼表示中,零有兩種表示形式+0(全0)和-0(全1)。3.補碼10111011對應(yīng)的真值是()。A.-69B.-59C.-68D.-58答案:A。解析:補碼10111011最高位為1,表示負數(shù)。求真值可以將其符號位不變,其余各位依次取反再加1,得到(11000101)2=(-69)10,所以答案為A。4.若X的8位補碼為00001010,則X/2的補碼是()。A.00000101B.10000101C.00000101或10000101D.算術(shù)右移后結(jié)果取決于符號位答案:A。解析:方法1——00001010轉(zhuǎn)為十進制為10,X/2=5,補碼為00000101。方法2:除以2相當于是右移1位。在補碼表示中,正數(shù)右移1位時,高位補0;負數(shù)右移1位時,高位補1。此處X為正數(shù),故X/2的補碼為00000101。5.二進制數(shù)1101.101對應(yīng)的十進制數(shù)是()。A.13.625B.12.75C.11.875D.14.5答案:A。解析:將二進制數(shù)1101.101轉(zhuǎn)換為十進制,1101=1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=8+4+0+1+0.5+0+0.125=13.625。因此答案為A。6.補碼加法中,若最高位和次高位進位不同,則說明()。A.結(jié)果正確B.發(fā)生上溢C.發(fā)生下溢D.結(jié)果符號位錯誤答案:B。解析:當最高位符號位沒進位,次高位有進位,這種情況下,只有可能是最高位原來為0,次高位進位使得最高位變?yōu)?(若最高位本來為1,次高位進位了,則會使得最高位也發(fā)生進位,與題意不符)。所以只有可能是兩個非負數(shù)相加,超過整數(shù)表示范圍的上限,變成負數(shù)的情況。這種情況稱為“上溢”。因此,選項B正確。7.八進制數(shù)35.6對應(yīng)的十進制數(shù)是()。A.29.75B.28.5C.27.625D.30.25答案:A。解析:將八進制數(shù)35.6轉(zhuǎn)換為十進制,(35.6)8=3×81+5×80+6×8-1=24+5+6÷8=29+0.75=29.75。因此答案為A。8.二進制數(shù)1010|1100的結(jié)果是()。A.1000B.1110C.1010D.1100答案:B。解析:符號|表示按位或操作,即只要對應(yīng)位有一個為1,結(jié)果就為1。1010|1100按位進行或運算:1|1=1;0|1=1;1|0=1;0|0=0。結(jié)果為1110。答案為B。9.以下哪個位運算可以交換兩個變量的值(無需臨時變量)()。A.a=a^b;b=a^b;a=a^b;B.a=a&b;b=a|b;a=a&b;C.a=a|b;b=a^b;a=a^b;D.a=~a;b=~b;a=~a;答案:A。解析:要交換兩個變量的值,可以使用異或運算的特性——a^a=0,a^0=a,且異或運算滿足交換律和結(jié)合律。正確的交換代碼是:a=a^b;(a現(xiàn)在變?yōu)閍^b);b=a^b;(b變?yōu)?a^b)^b=a);a=a^b;(a變?yōu)?a^b)^a=b)。因此答案為A。10.如何正確定義一個長度為5的整型數(shù)組()。A.intarray=newint[5];B.arrayint[5];C.int[]array={1,2,3,4,5};D.intarray[5];答案:D。解析:在主流編程語言(如C、C++、Java)中,正確定義長度為5的整型數(shù)組的方式是使用類型后跟數(shù)組名,然后在方括號中指定長度。選項D"intarray[5];"是標準的聲明方式,定義了一個名為array的5個整數(shù)元素的數(shù)組。答案為D。11.以下程序使用枚舉法(窮舉法)求解滿足條件的三位數(shù),橫線處應(yīng)該填入的是()。#include<iostream>usingnamespacestd;intmain(){intcount=0;for(inti=100;i<=999;i++){inta=i/100;____________________intc=i%10;if(a*a+b*b==c*c){count++;}}cout<<count<<endl;return0;}A.intb=(i/10)/10;B.intb=(i/10)%10;C.intb=(i%10)/10;D.intb=(i%10)%10;答案:B。解析:程序在尋找滿足a2+b2=c2的三位數(shù)。已知a=i/100(百位),c=i%10(個位),所以b應(yīng)為十位數(shù),即(i%100)/10或(i/10)%10。在這些選項中,"intb=(i/10)%10;"正確提取了十位數(shù)字。答案為B。12.以下程序模擬了一個簡單的小球反彈過程,橫線處應(yīng)該填入的是()。#include<iostream>usingnamespacestd;intmain(){intheight=10;intdistance=0;for(inti=1;i<=5;i++){//模擬5次落地。______________________height/=2;distance+=height;}cout<<distance<<endl;return0;}A.distance+=height/2;B.distance+=height;C.distance+=height*2;D.distance+=height+1;答案:B。解析:程序模擬小球反彈過程,每次彈起高度為上次的一半(height/=2)??偩嚯x應(yīng)包含下落距離和上升距離。第9行是高度減半,減半完應(yīng)為反彈的高度,第10行則累加了反彈得上升距離。所以由此可知,程序目前還缺累加下落距離,應(yīng)填在第8行。由于第8行時高度還未減半,所以直接累加即可(下落高度是原高度,反彈高度是當次下落高度的一半)。所以答案選B。13.題C++代碼strings="GESP考試";s占據(jù)的字節(jié)數(shù)是()。A.10B.8C.8或10D.取決于計算機采用什么編碼答案:D。解析:在C++中,漢字采用不同的編碼方案所得到的字節(jié)數(shù)不同。14.題C++語句strings="GespTest";執(zhí)行s.rfind("e")以后,輸出的是()。A.1B.2C.6D.3答案:C。解析:string的rfind()方法從右向左查找字符,返回找到的字符下標。"GespTest"中,從右向左第一個"e"出現(xiàn)在"Test"中,下標為6(從0開始)。15.字符串"Gesp考試",字符數(shù)是()。A.10B.8C.6D.字符數(shù)多少取決于編碼答案:C。解析:字符串"Gesp考試"包含6個字符——G、e、s、p、考、試。二、判斷題(每題2分,共20分)。16.題C++中string的==運算符比較的是字符串的內(nèi)存地址,而非內(nèi)容。()。答案:錯誤。解析:string類型變量進行==比較時,比較的是內(nèi)容,只有字符串字面量進行==比較時,才比較地址而非內(nèi)容。17.題string的substr(1,3)返回從下標1開始的3個字符的子串。()。答案:正確。解析:string的substr(pos,len)函數(shù)返回從pos位置開始、長度為len的子字符串。substr(1,3)表示從索引1(第二個字符)開始,提取長度為3的子串。例如,對于字符串"Hello",substr(1,3)將返回"ell"。18.題x是浮點數(shù),(x>>1)等價于x/2。()。答案:錯誤。解析:位運算只能針對整數(shù)類型進行運算。19.題string("hello")=="hello"的比較結(jié)果為true。()。答案:正確。解析:string類型進行==比較時,比較的是內(nèi)容。所以題面描述正確。20.題sort可以直接用于排序set中的元素。()。答案:錯誤。解析:set不可以用sort排序。21.題(x&1)==0可以判斷整數(shù)x是否為偶數(shù)。()。答案:正確。解析:本質(zhì)為取出x二進制的最低位進行判斷,偶數(shù)的二進制形式中最低位一定為0。22.題string的substr(2,10)在字符串長度不足時會拋出異常。()。答案:錯誤。解析:當字符串長度不足時,不會拋出異常,會截取到最后一個字符。23.在數(shù)學(xué)紙面計算中,pow(2,3)的計算結(jié)果一定是8,但是在C++中,如果遇到數(shù)據(jù)類型是浮點數(shù),那就不一定正確。()。答案:正確。解析:計算機無法精確表示所有小數(shù)。24.在C++中,枚舉的底層類型可以是非整型(如float或double)。()。答案:錯誤。解析:必須是整型。25.函數(shù)聲明doublef();返回int時,會自動轉(zhuǎn)換為double。()。答案:正確。解析:這里有一個自動地隱式類型轉(zhuǎn)換。三、編程題(每題25分,共50分)。26.試題名稱:奇偶校驗。時間限制:1.0s。內(nèi)存限制:512.0MB。題目描述:數(shù)據(jù)在傳輸過程中可能出錯,因此接收方收到數(shù)據(jù)后通常會校驗傳輸?shù)臄?shù)據(jù)是否正確,奇偶校驗是經(jīng)典的校驗方式之一。給定n個非負整數(shù)c1,c2……cn代表所傳輸?shù)臄?shù)據(jù),它們的校驗碼取決于這些整數(shù)在二進制下1的數(shù)量之和的奇偶性。如果這些整數(shù)在二進制下共有奇數(shù)個1,那么校驗碼為1;否則校驗碼為。你能求出這些整數(shù)的校驗碼嗎?輸入格式:第一行,一個正整數(shù)n,表示所傳輸?shù)臄?shù)據(jù)量。第二行,n個非負整數(shù),表示所傳輸?shù)臄?shù)據(jù)。輸出格式:輸出一行,兩個整數(shù),以一個空格分隔。第一個整數(shù)表示c1,c2……cn在二進制下1的總數(shù)量。第二個整數(shù)表示校驗碼(0或1)。數(shù)據(jù)范圍:對于所有測試點,保證1≤n≤100,0≤ci≤255。參考程序。#include<cstdio>usingnamespacestd;intn,v;intmain(){scanf("%d",&n);for(inti=1;i<=n;i++){intc;scanf("%d",&c);while(c){v+=c&1;c>>=1;}}printf("%d%d\n",v,v&1);return0;}解析:讀取n個整數(shù),對每個整數(shù)執(zhí)行位運算處理——v+=c&1計算當前數(shù)的最低位并累加到v,c>>=1右移一位繼續(xù)處理,直到c為0。循環(huán)結(jié)束后輸出v和v&1(v的奇偶性)。本質(zhì)上是統(tǒng)計所有輸入數(shù)字二進制表示中1的總個數(shù),并判斷這個總數(shù)的奇偶性。27.試題名稱:分糖果。時間限制:1.0s。內(nèi)存限制:512.0MB。題目描述:有n位小朋友排成一隊等待老師分糖果。第i位小朋友想要至少ai顆糖果,并且分給他的糖果數(shù)量必須比分給前一位小朋友的糖果數(shù)量更多,不然他就會不開心。老師想知道至少需要準備多少顆糖果才能讓所有小朋友都開心。你能幫幫老師嗎?輸入格式:第一行,一個正整數(shù)n,表示小朋友的人數(shù)。第二行,n個正整數(shù)a1,a2,……,an,依次表示每位小朋友至少需要的糖果數(shù)量。輸出格式:輸出一行,一個整數(shù),表示最少需要準備的糖果數(shù)量。數(shù)據(jù)范圍:對于所有測試點,保證1≤n≤100,0≤ai≤109。參考程序。#include<cstdio>#include<algorithm>usingnamespacestd;constintN=1005;intn,a[N];longlongans;intmain(){scanf("%d",&n);for(inti=1;i<=n;i++){scanf("%d",&a[i]);a[i]=max(a[i-1]+

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論