普及組CSP-J2024初賽模擬卷2_第1頁
普及組CSP-J2024初賽模擬卷2_第2頁
普及組CSP-J2024初賽模擬卷2_第3頁
普及組CSP-J2024初賽模擬卷2_第4頁
普及組CSP-J2024初賽模擬卷2_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

普及組CSP-J2024初賽模擬卷2[復制]您的姓名:[填空題]*_________________________________一、單項選擇題(共15題,每題2分,共計30分;每題有且僅有一個正確選項)1.在C++程序中用到的一個常量a=5e-6在內存中占()空間。[單選題]A.2字節(jié)B.1字節(jié)C.4字節(jié)D.8字節(jié)(正確答案)2.以下關于CSP與NOIP的描述正確的是()。[單選題]A.CSP屬于專業(yè)認證,只有計算機專業(yè)在校生才能參加B.CSP-J/CSP-S是中國通信學會舉辦的程序設計競賽C.CSP-J初賽零分也可以直接報名參加NOIPD.CSP-J和CSP-S都是CCF牽頭舉辦的程序設計賽事(正確答案)3.某單位安裝一條電信寬帶進行上網,運營商說下行速度是500Mbps。要下載大小為10GB的軟件,最快大約需要()秒。[單選題]A.2B.20C.200(正確答案)D.20004.大寫字母M的ASCII碼整數(shù)值和空格的ASCII碼整數(shù)值之和,是字母m的ASCII碼整數(shù)值??崭竦腁SCII碼整數(shù)值是()。[單選題]A.32(正確答案)B.31C.30D.295.在微型計算機中,()的存取速度最快。[單選題]A.RAMB.CD-ROMC.高速緩存D.寄存器(正確答案)6.搜索算法中的DFS算法經常用到的數(shù)據(jù)結構是()。[單選題]A.堆B.棧(正確答案)C.鏈表D.隊列7.以下哪個說法是正確的?()[單選題]A.花括號“{”和“}”只能作為C++函數(shù)體的定界符B.構成C++程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名C.分號是C+語句之間的分隔符,不是語句的一部分D.C++程序中的注釋部分可以出現(xiàn)在程序中任意合適的地方(正確答案)8.在下列排序算法中,STL中的sort()函數(shù)采用的主要算法是()。[單選題]A.選擇排序B.快速排序(正確答案)C.冒泡排序D.拓撲排序9.以下哪個說法是正確的?()[單選題]A.第一臺電子計算機ENIAC是基于集成電路的產物B.計算機必須要同時有IP地址和域名才能接入互聯(lián)網C.david@163.com是一個正確的電子郵箱地址(正確答案)D.手機上收到的短信,里面的鏈接可以隨意點擊打開10.以下不能對二維數(shù)組a進行正確初始化的語句是()。[單選題]A.inta[2][3]={{1,2},{3,4},{5,6}};(正確答案)B.inta[][3]={{1,2},{0}};C.inta[2][3]={0};D.inta[][3]={1,2,3,4,5,6};11.現(xiàn)在有一個八進制數(shù)274,其轉換成的二進制數(shù)是()。[單選題]A.10111011B.10111101C.10111100(正確答案)D.1010110012.設A=true,B=false,C=false,D=true,以下邏輯運算表達式的值為假的是()。[單選題]A.((AΛB)VC)ΛD(正確答案)B.(AVB)Λ(CVD)C.AΛ((BVC)VD))D.(AΛ(BVC))VD13.二叉樹的中序序列為ABCEFGHD,后序序列為ABFHGEDC,則其前序序列為().[單選題]A.CBADEGHFB.CBADEGFH(正確答案)C.CBDAEGFHD.CBADGEFH14.從班級中體育比較好的12人中選5人去參加運動會,其中甲、乙、丙最多同時選兩人,不同的選法共有()種。[單選題]A.792B.756(正確答案)C.720D.67615.以下哪個結構可以用來存儲圖?()[單選題]A.棧B.二叉樹C.鄰接表(正確答案)D.隊列二、閱讀程序(程序輸入不超過數(shù)組或字符串定義的范圍;判斷題正確選A,錯誤選B;除特殊說明外,判斷題每題1.5分,選擇題每題3分,共計40分)(1)01#include<iostream>

02#include<cstring>

03usingnamespacestd;

04chars1[1005],s2[1005];

05inta[1005],b[1005],c[1005];

06intmain()

07{

08

intla,lb,lc;

09

scanf("%s%s",s1,s2);

10

la=strlen(s1);

11

lb=strlen(s2);

12

lc=max(la,lb)+1;

13

for(inti=0;i<la;++i)

14

a[la-i]=s1[i]-'0';

15

for(inti=0;i<lb;++i)

16

b[lb-i]=s2[i]-'0';

17

for(inti=1;i<=lc;i++)

18

{

19

c[i]+=a[i]+b[i];

20

c[i+1]=c[i]/10;

21

c[i]=c[i]%10;

22

}

23

if(c[lc]==0&&lc>0)

24

lc--;

25

for(inti=lc;i>0;i--)

26

printf("%d",c[i]);

27

return0;

28}16.將第2行代碼改為#include<stdio.h>,程序的運行結果不會改變。()[單選題]A.對B.錯(正確答案)17.將第9行代碼改為cin>>s1>>s2;,程序的運行結果不會改變。()[單選題]A.對(正確答案)B.錯18.若輸入兩個都超過1005位長的正整數(shù),則程序一定會出錯且無輸出。()[單選題]A.對B.錯(正確答案)19.在輸入00的情況下,將第23行代碼中的lc>0去掉,程序的運行結果不會改變。()[單選題]A.對(正確答案)B.錯20.若輸入數(shù)據(jù)為10241000,則輸出為()。[單選題]A.24B.2024(正確答案)C.1024D.100021.若輸入數(shù)據(jù)為1-1,則輸出為()。[單選題]A.1B.0C.-1D.以上都不是(正確答案)(2)01#include<bits/stdc++.h>

02usingnamespacestd;

03intn,a[1000005],t[1000005];

04longlongans=0;

05voidmergesort(inta[],intL,intR){

06

if(L==R)return;

07

intmid=(L+R)/2;

08

mergesort(a,L,mid);

09

mergesort(a,mid+1,R);

10

inti=L,j=mid+1,k=L;

11

while(i<=mid&&j<=R)

12

if(a[i]<=a[j])t[k++]=a[i++];

13

elseans+=mid-i+1,t[k++]=a[j++];

14

while(i<=mid)t[k++]=a[i++];

15

while(j<=R)t[k++]=a[j++];

16

for(inti=L;i<=R;i++)a[i]=t[i];

17}

18intmain(){

19

cin>>n;

20

for(inti=1;i<=n;i++)scanf("%d",a+i);

21

mergesort(a,1,n);

22

cout<<ans<<endl;

23

return0;

24}22.mergesort函數(shù)運行結束后,數(shù)組a一定單調不下降。()[單選題]A.對(正確答案)B.錯23.將第7行改為mid=L+R>>1;程序的輸出結果不變。()[單選題]A.對(正確答案)B.錯24.mergesort用到了分治思想中的三分。()[單選題]A.對B.錯(正確答案)25.即使輸入的n<10萬,ans也應該定義成longlong才能確保結果正確。()[單選題]A.對(正確答案)B.錯26.在最壞情況下,本代碼時間復雜度和下面哪個算法相當?()[單選題]A.插入排序B.選擇排序C.堆排序(正確答案)D.快速排序27.若輸入為6537231,則輸出為()。[單選題]A.7B.9C.13D.11(正確答案)(3)01#include<bits/stdc++.h>

02usingnamespacestd;

03intt,x[100],a[100];

04voiddfs(intd,inti,intn)

05{

06

if(n==1)

07

{

08

for(intk=0;k<d;k++)

09

printf("%4d",a[k]);

10

printf("\n");

11

}

12

else

13

for(intk=i;k<t;k++)

14

if(n%x[k]==0)

15

{

16

a[d]=x[k];

17

dfs(d+1,k,n/x[k]);

18

}

19}

20intmain()

21{

22

intn;

23

cin>>n;

24

for(inti=n;i>1;i--)

25

if(n%i==0)

26

x[t++]=i;

27

dfs(0,0,n);

28

return0;

29}28.該程序的作用是對n進行質因數(shù)分解并從小到大依次打印。()[單選題]A.對B.錯(正確答案)29.將第9行代碼printf("%4d",a[k]);中的4去掉,程序輸出不變。()[單選題]A.對B.錯(正確答案)30.第24~26行的作用是求出n的所有因子。()[單選題]A.對B.錯(正確答案)31.程序運行過程中,若輸入n為0或者負數(shù),程序一定會打印錯誤,崩潰退出。()[單選題]A.對B.錯(正確答案)32.若輸入6,則輸出最后一行為()。[單選題]A.32(正確答案)B.16C.23D.6133.若輸入n=1,那么輸出結果是()。[單選題]A.2B.1C.0D.什么也不輸出(正確答案)34.(4分)若輸入2024,則輸出有()行。[單選題]A.18B.20C.21(正確答案)D.19三、完善程序(單選題,每小題3分,共計30分)(1)掃雷游戲是一款十分經典的單機小游戲。在n行m列的雷區(qū)中有一些格子含有地雷(稱為地雷格),其他格子不含地雷(稱為非地雷格)。玩家翻開一個非地雷格時,該格子中將會出現(xiàn)一個數(shù)字,提示周圍格子中有多少個是地雷格。玩家的目標是在不翻出任何地雷格的條件下,找出所有的非地雷格。請將程序補充完整。

現(xiàn)在給出n行m列的雷區(qū)中的地雷分布,要求計算出每個非地雷格周圍的地雷格數(shù)。注:一個格子的周圍格子包括其上、下、左、右、左上、右上、左下、右下這8個方向上與之直接相鄰的格子。

輸入格式:

第1行是用一個空格隔開的兩個整數(shù)n和m,分別表示雷區(qū)的行數(shù)和列數(shù)。接下來n行,每行m個字符,描述了雷區(qū)中的地雷分布情況。字符*表示相應格子是地雷格,字符?表示相應格子是非地雷格。相鄰字符之間無分隔符。

輸出格式:

輸出文件包含n行,每行m個字符,描述整個雷區(qū)。用*表示地雷格,用周圍的地雷個數(shù)表示非地雷格。相鄰字符之間無分隔符。

輸入樣例:

33

*??

???

?*?

輸出樣例:

*10

221

1*101#include<bits/stdc++.h>

02usingnamespacestd;

03constintdx[]={1,1,1,0,0,-1,-1,-1};

04constintdy[]={-1,0,1,-1,1,-1,0,1};

05charg[101][101];

06intmain()

07{

08

intn,m,cnt;

09

cin>>n>>m;

10

for(inti=0;i<n;i++)

11

for(intj=0;j<m;j++)

12

cin>>g[i][j];

13

for(inti=0;i<n;i++)

14

{

15

for(intj=0;j<m;j++)

16

if(①)

17

{

18

②;

19

for(intk=0;③;k++)

20

if(④)

21

cnt++;

22

cout<<cnt;

23

}

24

else

25

cout<<"*";

26

if(⑤)

27

cout<<endl;

28

}

29

return0;

30}35.第①處應填()。[單選題]A.g[i][j]!='?'B.g[i][j]!='\0'C.g[i][j]!='*'(正確答案)D.g[i][j]=='*'36.第②處應填()。[單選題]A.cnt++B.cnt=0(正確答案)C.cnt==0D.++cnt==037.第③處應填()。[單選題]A.k<8(正確答案)B.k<mC.k<nD.k<min(m,n)38.第④處應填()。[單選題]A.g[i+dy[k]][j+dx[k]]=='*'B.g[i-dx[k]][j-dy[k]]=='*'C.g[i+dx[k]][j+dy[k]]=='*'(正確答案)D.g[i-dy[k]][j-dx[k]]=='*'39.第⑤處應填()。[單選題]A.j!=mB.j!=m-1C.i!=nD.i!=n-1(正確答案)(2)給你n根火柴棍,你可以拼出多少個形如A+B=C的等式?等式中的A、B、C是用火柴棍拼出的整數(shù)(若該數(shù)非零,則最高位不能是0)。用火柴棍拼數(shù)字0~9的拼法如圖所示。

注意:

1.加號與等號各自需要兩根火柴棍;

2.如果A不等于B,則視A+B=C與B+A=C為不同的等式(A,B,C≥0);

3.n根火柴棍必須全部用上。

輸入格式:

一個整數(shù)n(1≤n≤24)。

輸出格式:

一個整數(shù),表示能拼成的不同等式的數(shù)目。

輸入樣例:

18

輸出樣例:

9

樣例說明:

9個等式為0+4=4、0+11=11、1+10=11、2+2=4、2+7=9、4+0=4、7+2=9、10+1=11,11+0=11。01#include<bits/stdc++.h>

02usingnamespacestd;

03inthcb[10]={6,2,5,5,4,5,6,3,7,6};

溫馨提示

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

最新文檔

評論

0/150

提交評論