2023年CSP-J組(入門組)初賽真題(文末附答案)_第1頁
2023年CSP-J組(入門組)初賽真題(文末附答案)_第2頁
2023年CSP-J組(入門組)初賽真題(文末附答案)_第3頁
2023年CSP-J組(入門組)初賽真題(文末附答案)_第4頁
2023年CSP-J組(入門組)初賽真題(文末附答案)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023年CSP-J組(入門組)初賽真題(文末附答案)一、

單項選擇題(共15題,每題2分,共計30分:每題有且僅有一個正確選項)1.

在C++中,下面哪個關(guān)鍵字用于聲明一個變量,其值不能被修改?()。A.

unsigned

B.

const

C.

static

D.

mutable2.

八進制數(shù)123456708和076543218的和為()。A.

222222218B.

211111118C.

221111118D.

2222221183.

閱讀下述代碼,請問修改data的value成員以存儲3.14,正確的方式是()。unionData{intnum;floatvalue;charsymbol;};unionDatadata;

A.data.value=3.14;

B.value.data=3.14;

C.data->value=3.14;

D.value->data=3.14;4.

假設(shè)有一個鏈表的節(jié)點定義如下:structNode{intdata;Node*next;};現(xiàn)在有一個指向鏈表頭部的指針:Node*head。如果想要在鏈表中插入一個新節(jié)點,其成員data的值為42,并使新節(jié)點成為鏈表的第一個節(jié)點,下面哪個操作是正確的?()A.

Node*newNode=newNode;newNode->data=42;newNode->next=head;head=newNode;B.

Node*newNode=newNode;head->data=42;newNode->next=head;head=newNode;C.

Node*newNode=newNode;newNode->data=42;head->next=newNode;D.

Node*newNode=newNode;newNode->data=42;newNode->next=head;5.

根節(jié)點的高度為1,一根擁有2023個節(jié)點的三叉樹高度至少為()。A.

6B.

7C.

8D.

96.

小明在某一天中依次有七個空閑時間段,他想要選出至少一個空閑時間段來練習唱歌,但他希望任意兩個練習的時間段之間都有至少兩個空閑的時間段讓他休息,則小明一共有()種選擇時間段的方案。A.

31B.

18C.

21D.

337.

以下關(guān)于高精度運算的說法錯誤的是()。A.

高精度計算主要是用來處理大整數(shù)或需要保留多位小數(shù)的運算。B.

大整數(shù)除以小整數(shù)的處理的步驟可以是,將被除數(shù)和除數(shù)對齊,從左到右逐位嘗試將除數(shù)乘以某個數(shù),通過減法得到新的被除數(shù),并累加商。C.

高精度乘法的運算時間只與參與運算的兩個整數(shù)中長度較長者的位數(shù)有關(guān)。D.

高精度加法運算的關(guān)鍵在于逐位相加并處理進位。

8.

后綴表達式“623+-382/+*2^3+”對應(yīng)的中綴表達式是()A.

((6-(2+3))*(3+8/2))^2+3B.

6-2+3*3+8/2^2+3C.

(6-(2+3))*((3+8/2)^2)+3D.

6-((2+3)*(3+8/2))^2+39.

數(shù)1010102和1668的和為()。A.

101100002B.

2368C.

15810D.

A01610.

假設(shè)有一組字符{a,b,c,d,e,f},對應(yīng)的頻率分別為5%,9%,12%,13%,16%,45%。請問以下哪個選項是字符a,b,c,d,e,f分別對應(yīng)的一組哈夫曼編碼?()A.

1111,1110,101,100,110,0B.

1010,1001,1000,011,010,00C.

000,001,010,011,10,11D.

1010,1011,110,111,00,0111.

給定一棵二叉樹,其前序遍歷結(jié)果為:ABDECFG,中序遍歷結(jié)果為:DEBACFG。請問這棵樹的正確后序遍歷結(jié)果是什么?()A.

EDBFGCAB.

EDBGCFAC.

DEBGFCAD.

DBEGFCA

考慮一個有向無環(huán)圖,該圖包括4條有向邊:(1,2),(1,3),(2,4),和(3,4)。以下哪個選項是這個有向無環(huán)圖的一個有效的拓撲排序?()A.

4,2,3,1B.

1,2,3,4C.

1,2,4,3D.

2,1,3,413.

在計算機中,以下哪個選項描述的數(shù)據(jù)存儲容量最小?()A.

字節(jié)(byte)B.

比特(bit)C.

字(word)D.

千字節(jié)(kilobyte)14.

一個班級有10個男生和12個女生。如果要選出一個3人的小組,并且小組中必須至少包含1個女生,那么有多少種可能的組合?()A.

1420B.

1770C.

1540D.

220015.

以下哪個不是操作系統(tǒng)?()A.

LinuxB.

WindowsC.

AndroidD.

HTML二、

閱讀程序(程序輸入不超過數(shù)組成字符串定義的范圍:判斷題正確填√,錯誤填×;除特殊說明外,判斷題1.5分,選擇題3分,共計40分)(1)01#include<iostream>02#include<cmath>03usingnamespacestd;0405doublef(doublea,doubleb,doublec){06doubles=(a+b+c)/2;07returnsqrt(s*(s-a)*(s-b)*(s-c));08}0910intmain(){11cout.flags(ios::fixed);12cout.precision(4);1314inta,b,c;15cin>>a>>b>>c;16cout<<f(a,b,c)<<endl;17return0;18}假設(shè)輸入的所有數(shù)都為不超過1000的正整數(shù),完成下面的判斷題和單選題:判斷題16.

(2分)當輸入為“222”時,輸出為“1.7321”()17.

(2分)將第7行中的"(s-b)*(s-c)"改為"(s-c)*(s-b)"不會影響程序運行的結(jié)果()18.(2分)程序總是輸出四位小數(shù)()單選題19.

當輸入為“345”時,輸出為()A.

"6.0000"B."12.0000"C."24.0000"D."30.0000"20.

當輸入為“51213”時,輸出為()A.

"24.0000"B."30.0000"C."60.0000"D."120.0000"(2)01

#include<iostream>02#include<vector>03#include<algorithm>04using

namespace

std;0506int

f(string

x,string

y){07

int

m=x.size();08

int

n=y.size();09

vector<vector<int>>v(m+1,vector<int>(n+1,0));10

for(int

i=1;i<=m;i++){11

for(int

j=1;j<=n;j++){12

if(x[i-1]==y[j-1]){13

v[i][j]=v[i-1][j-1]+1;14

}else{15

v[i][j]=max(v[i-1][j],v[i][j-1]);16

}17

}18

}19

return

v[m][n];20}2122bool

g(string

x,string

y){23

if(x.size()

!=

y.size()){24

return

false;25

}26

return

f(x+x,y)==y.size();27}2829int

main(){30

string

x,y;31

cin>>x>>y;32

cout<<g(x,y)<<endl;33

return

0;34}判斷題21.

f函數(shù)的返回值小于等于min(n,m)。()22.

f函數(shù)的返回值等于兩個輸入字符串的最長公共子串的長度。()23.

當輸入兩個完全相同的字符串時,g函數(shù)的返回值總是true()單選題24.

將第19行中的“v[m][n]”替換為“v[n][m]”,那么該程序()A.行為不變

B.只會改變輸出

C..一定非正常退出D.可能非正常退出25.

當輸入為"csp-jp-jcs"

時,輸出為()A.“0”

8.“1”

C

“T”

D.“F”26當輸入為“csppscspsccp”時,輸出為:()A.“T”

B.“F”

c.“0”

0.“1”(3)01#include<iostream>02#include<cmath>03usingnamespacestd;0405intsolve1(intn){06returnn*n;07}0809intsolve2(intn){10intsum=0;11for(inti=1;i<=sqrt(n);i++){12if(n%i==0){13if(n/i==i){14sum+=i*i;15}else{16sum+=i*i+(n/i)*(n/i);17}18}19}20returnsum;21}2223intmain(){24intn;25cin>>n;26cout<<solve2(solve1(n))<<""<<solve1((solve2(n)))<<endl;27return0;28}假設(shè)輸入的n是絕對值不超過1000的整數(shù),完成下面的判斷題和單選題。判斷題27.

如果輸入的n為正整數(shù),solve2函數(shù)的作用是計算n所有的因子的平方和()28.

第13~14行的作用是避免n的平方根因子i(或n/i)進入第16行而被計算兩次()29.

如果輸入的n為質(zhì)數(shù),solve2(n)的返回值為n2+1()單選題30.

(4分)如果輸入的n為質(zhì)數(shù)p的平方,那么solve2(n)的返回值為()A.

p2+p+1B.n2+n+1C.n2+1D.p4+2p2+131.

當輸入為正整數(shù)時,第一項減去第二項的差值一定()A.

大于0B.大于等于0且不一定大于0C.小于0D.小于等于0且不一定小于032.

當輸入為“5”時,輸出為()A.

"651.625"B."650.729"C."651.676"D."652.625"三、完善程序(單選題,每小題3分,共計3分)(1)(尋找被移除的元素)問題:原有長度為n+1公差為1等升數(shù)列,將數(shù)列輸?shù)匠绦虻臄?shù)組時移除了一個元素,導(dǎo)致長度為n的開序數(shù)組可能不再連續(xù),除非被移除的是第一個或最后之個元素。需要在數(shù)組不連續(xù)時,找出被移除的元素。試補全程序。01

#include

<iostream>02

#include

<vector>0304usingnamespacestd;0506

int

find

missing(vector<int>&

nums)

(07intleft=0,right=nums.size()-1;08while

(left

<

right){09intmid=left+(rightleft)/2;10

if

(nums[mid]

-

mid+

①)

(11②;12

}else{13

③14

}15

}16

return

④;17}1819intmain()(20

int

n;21cin>>n;22vector<int>nums(n);23

for

(int

i=

0;

i<

n;

i++)

cin

>>

nums[i];24

int

missing_number

=

find_missing(nums);25

if_(missing_number

==

⑤)

{26cout<<"Sequenceisconsecutive"<<endl;27}else{28

cout

<<

"Missing

number

is

"

<<

,missing

numbeer

<<

endl;29}30return

0;31}33.

①處應(yīng)填()A.

1B.nums[0]C.rightD.left34.

②處應(yīng)填()A.

left=mid+1B.right=mid-1C.right=midD.left=mid35.

③處應(yīng)填()A.left=mid+1B.right=mid-1C.right=midD.left=mid36.

④處應(yīng)填()A.left+nums[0]B.right+nums[0]C.mid+nums[0]D.right+137.

⑤處應(yīng)填()A.nums[0]+nB.nums[0]+n-1C.nums[0]+n+1D.nums[n-1](2)

(編輯距離)給定兩個字符串,每次操作可以選擇刪除(Delete)、插入(Insert)、替換(Replace),一個字符,求將第一個字符串轉(zhuǎn)換為第二個字符串所需要的最少操作次數(shù)。1.#include<iostream>

2.#include<string>

3.#include<vector>

4.usingnamespacestd;

5.

6.intmin(intx,inty,intz){

7.returnmin(min(x,y),z);

8.}

9.

10.intedit_dist_dp(stringstr1,stringstr2){

11.intm=str1.length();

12.intn=str2.length();

13.vector<vector<int>>dp(m+1,vector<int>(n+1));

14.

15.for(inti=0;i<=m;i++){

16.for(intj=0;j<=n;j++){

17.if(i==0)

18.dp[i][j]=①;

19.elseif(j==0)

20.dp[i][j]=②;

21.else

溫馨提示

  • 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

提交評論