2023年CCF非專業(yè)級別軟件能力認(rèn)證第一輪CSP-J1入門級C++語言試題_第1頁
2023年CCF非專業(yè)級別軟件能力認(rèn)證第一輪CSP-J1入門級C++語言試題_第2頁
2023年CCF非專業(yè)級別軟件能力認(rèn)證第一輪CSP-J1入門級C++語言試題_第3頁
2023年CCF非專業(yè)級別軟件能力認(rèn)證第一輪CSP-J1入門級C++語言試題_第4頁
2023年CCF非專業(yè)級別軟件能力認(rèn)證第一輪CSP-J1入門級C++語言試題_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2023CCF非專業(yè)級別軟件能力認(rèn)證第一輪

(CSP-31)入門級C++語言試題

認(rèn)證時(shí)間:2023年9月16日09:30~11:30

考生注意事項(xiàng):

?試題紙共有10頁,答題紙共有1頁,滿分100分。請?jiān)诖痤}紙上作答,寫在試題紙上的

一律無效。

?不得使用任何電子設(shè)備(如計(jì)算器、手機(jī)、電子詞典等)或查閱任何書籍資料。

一、單項(xiàng)選擇題(共15題,每題2分,共計(jì)30分;每題有且僅有一個(gè)正確選項(xiàng))

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

A.unsigned

B.const

C.static

D.mutable

2.八進(jìn)制數(shù)123456708和076543218的和為()。

A.222222218

B.211111118

C.221111118

D.222222118

3.閱讀下述代碼,請問修改data的value成員以存儲(chǔ)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;

CCFCSP-J2023第一輪C++語言試題

第1頁,共10頁

4.假設(shè)有一個(gè)鏈表的節(jié)點(diǎn)定義如下:

structNode{

intdata;

Node*next;

};

現(xiàn)在有一個(gè)指向鏈表頭部的指針:Node*heado如果想要在鏈表中插入一個(gè)新節(jié)點(diǎn),其

成員data的值為42,并使新節(jié)點(diǎn)成為鏈表的第一個(gè)節(jié)點(diǎn),下面哪個(gè)操作是正確的?()

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é)點(diǎn)的高度為1,一棵擁有2023個(gè)節(jié)點(diǎn)的三叉樹高度至少為()。

A.6

B.7

C.8

D.9

6.小明在某一天中依次有七個(gè)空閑時(shí)間段,他想要選出至少一個(gè)空閑時(shí)間段來練習(xí)唱歌,但

他希望任意兩個(gè)練習(xí)的時(shí)間段之間都有至少兩個(gè)空閑的時(shí)間段讓他休息。則小明一共有

()種選擇時(shí)間段的方案。

A.31

B.18

C.21

D.33

7.以下關(guān)于高精度運(yùn)算的說法錯(cuò)誤的是()。

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

B.大整數(shù)除以小整數(shù)的處理的步驟可以是,將被除數(shù)和除數(shù)對齊,從左到右逐位嘗試將

除數(shù)乘以某個(gè)數(shù),通過減法得到新的被除數(shù),并累加商。

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

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

CCFCSP-J2023第一輪C++語言試題

第2頁,共10頁

8.后綴表達(dá)式“623+-382/+*2八3+”對應(yīng)的中綴表達(dá)式是()o

A.((6-(2+3))*(3+8/2))A2+3

B.6-2+3*3+8/2A2+3

C.(6-(2+3))*((3+8/2)A2)+3

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

9.數(shù)1010102和1668的和為()o

A.101100002

B.2368

C.15810

D.A0i6

1。.假設(shè)有一組字符{a,b,c,d,e,f},對應(yīng)的頻率分別為5%、9%、12%、13%、16%、45%。請

問以下哪個(gè)選項(xiàng)是字符a泮/)遇/分別對應(yīng)的一組哈夫曼編碼?()

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

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

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

D.1010,1011,110,111,00,01

11.給定一棵二叉樹,其前序遍歷結(jié)果為:ABDECFG,中序遍歷結(jié)果為:DEBACFGo請問這棵

樹的正確后序遍歷結(jié)果是什么?()

A.EDBFGCA

B.EDBGCFA

C.DEBGFCA

D.DBEGFCA

12.考慮一個(gè)有向無環(huán)圖,該圖包含4條有向邊:(1,2),(1,3),(2,4)和(3,4)。以下哪個(gè)

選項(xiàng)是這個(gè)有向無環(huán)圖的一個(gè)有效的拓?fù)渑判??(?/p>

A.4,2,3,1

B.1,2,3,4

C.1,2,4,3

D.2,1,3,4

CCFCSP-J2023第一輪C++語言試題

第3頁,共10頁

13.在計(jì)算機(jī)中,以下哪個(gè)選項(xiàng)描述的數(shù)據(jù)存儲(chǔ)容量最???()

A.字節(jié)(byte)

B.比特(bit)

C.字(word)

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

14.一個(gè)班級有10個(gè)男生和12個(gè)女生。如果要選出一個(gè)3人的小組,并且小組中必須至少包

含1個(gè)女生,那么有多少種可能的組合?()

A.1420

B.1770

C.1540

D.2200

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

A.Linux

B.Windows

C.Android

D.HTML

二、閱讀程序(程序輸入不超過數(shù)組或字符串定義的范圍;判斷題正確填H錯(cuò)誤填x;除特

殊說明外,判斷題1?5分,選擇題3分,共計(jì)40分)

(1)

01#include<iostream>

02#include<cmath>

03usingnamespacestd;

04

05doublef(doublea,doubleb,doublec){

06doubles=(a+b+c)/2;

07returnsqrt(s*(s-a)*(s-b)*(s-c));

08)

09

10intmain(){

11cout.flags(ios::fixed);

12cout,precision(4);

13

14inta,b,c;

CCFCSP-J2023第一輪C++語言試題

第4頁,共10頁

15cin>>a>>b>>c;

16cout<<f(a,b,c)<<endl;

17return0;

18

假設(shè)輸入的所有數(shù)都為不超過1000的正整數(shù),完成下面的判斷題和單選題:

?判斷題

16.(2分)當(dāng)輸入為“222”時(shí),輸出為“1.7321”。()

17.(2分)將第7行中的“(s-b)*(s-c)”改為“(s-c)*(s-b)”不會(huì)影響

程序運(yùn)行的結(jié)果。()

18.(2分)程序總是輸出四位小數(shù)。()

?單選題

19.當(dāng)輸入為“345”時(shí),輸出為()o

A."6.0000”B.“12.0000”C.“24.0000”D.“30.0000”

20.當(dāng)輸入為“51213”時(shí),輸出為()o

A.“24.0000”B.“30.0000”C.“60.0000”D.“120.0000”

(2)

01#include<iostream>

02#include<vector>

03#include<algorithm>

04usingnamespacestd;

05

06intf(stringx,stringy){

07intm=x.size();

08intn=y.size();

09vector<vector<int>>v(m+l,vector<int>(n+lJ0));

10for(inti=1;i<=m;i++){

11for(intj=1;j<=n;j++){

12if(x[i-l]==y[j-l]){

13v[i][j]=v[i-l][j-l]+1;

14}else{

15v[i][j]=max(v[i-l][j],v[i][j-l]);

16

17

18

19returnv[m][n];

20

CCFCSP-J2023第一輪C++語言試題

第5頁,共10頁

21

22boolg(stringx,stringy){

23if(x.size()!=y.size()){

24returnfalse;

25}

26returnf(x+x,y)==y.size();

27}

28

29intmain(){

30stringx,y;

31cin>>x>>y;

32cout<<g(Xjy)<<endl;

33return0;

34}

?判斷題

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

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

23.當(dāng)輸入兩個(gè)完全相同的字符串時(shí),g函數(shù)的返回值總是true。()

?單選題

24.將第19行中的替換為“v[n][m]9那么該程序()o

A.行為不變B.只會(huì)改變輸出C.一定非正常退出D.可能非正常退出

25.當(dāng)輸入為“csp-jp-jcs”時(shí),輸出為()0

A.“0”B.“1”C."T”D."F”

26.當(dāng)輸入為"csppscspsccp”時(shí),輸出為()□

A."T”B."F”C.“0"D.“1”

(3)

01#include<iostream>

02#include<cmath>

03usingnamespacestd;

04

05intsolvel(intn){

06returnn*n;

07)

08

09intsolve2(intn){

CCFCSP-J2023第一輪C++語言試題

第6頁,共10頁

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)

22

23intmain(){

24intn;

25cin>>n;

26cout<<solve2(solvel(n))<<""<<solvel(solve2(n))<<endl;

27return0;

28)

假設(shè)輸入的n是絕對值不超過1000的整數(shù),完成下面的判斷題和單選題:

?判斷題

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

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

29.如果輸入的n為質(zhì)數(shù),solve2(n)的返回值為產(chǎn)+1。()

?單選題

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

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

31.當(dāng)輸入為正整數(shù)時(shí),第一項(xiàng)減去第二項(xiàng)的差值一定()。

大于等于。且小于等于0且

A.大于0B.C.小于0D._

不一定大于0不一定小于0

32.當(dāng)輸入為“5”時(shí),輸出為()o

A.“651625”B.“650729”C.”651676”D.“652625”

CCFCSP-J2023第一輪C++語言試題

第7頁,共10頁

三、完善程序(單選題,每小題3分,共計(jì)30分)

(1)(尋找被移除的元素)問題:原有長度為n+1、公差為1的等差升序數(shù)列;將數(shù)列輸入

到程序的數(shù)組時(shí)移除了一個(gè)元素,導(dǎo)致長度為n的升序數(shù)組可能不再連續(xù),除非被移除的是第

一個(gè)或最后一個(gè)元素。需要在數(shù)組不連續(xù)時(shí),找出被移除的元素。

試補(bǔ)全程序。

01#include<iostream>

02#include<vector>

03

04usingnamespacestd;

05

06intfind_missing(vector<int>&nums){

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

08while(left<right){

09intmid=left+(right-left)/2;

10if(nums[mid]==mid+①){

11②;

12}else{

13③;

14)

15)

16return④;

17)

18

19intmain(){

20intn;

21cin>>n;

22vector<int>nums(n);

23for(inti=0;i<n;i++)cin>>nums[i];

24intmissing_number=find_missing(nums);

25if(missing_number==⑤){

26cout<<"Sequenceisconsecutive"<<endl;

27}else{

28cout<<"Missingnumberis"<<missing_number<<endl;

29)

30return0;

31}

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

A.1B.nums[0]C.rightD.left

CCFCSP-J2023第一輪C++語言試題

第8頁,共10頁

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

A.left=mid+1B.right=mid-1

C.right=midD.left=mid

35.③處應(yīng)填()

A.left=mid+1B.right=mid-1

C.right=midD.left=mid

36.④處應(yīng)填()

A.left+nums[0]B.right+nums[0]

C.mid+nums[0]D.right+1

37.⑤處應(yīng)填()

A.nums[0]+nB.nums[0]+n1C.nums[0]+n+lD.nums[n-l]

(2)(編輯距離)給定兩個(gè)字符串,每次操作可以選擇刪除(Delete)、插入(Insert)、替換(Replace)

一個(gè)字符,求將第一個(gè)字符串轉(zhuǎn)換為第二個(gè)字符串所需要的最少操作次數(shù)。

試補(bǔ)全動(dòng)態(tài)規(guī)劃算法。

01ttinclude<iostream>

02ttinclude<string>

03#include<vector>

04usingnamespacestd;

05

06intmin(intx,inty,intz){

07returnmin(min(x,y),z);

08)

09

10intedit_dist_dp(stringstrl,stringstr2){

11intm=strl.length();

12intn=str2.length();

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

14

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

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

17if(i==0)

18dp[i][j]=①;

19elseif(j==0)

20dp[i][j]=②;

21elseif(@)

22dp[i][j]=④;

23else

CCFCSP-J2023第一輪C++語言試題

第9頁,共10頁

24dp[i][j]=1+min(dp[i][j-1],dp[i-l][j],⑤);

25)

26)

27return

溫馨提示

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

最新文檔

評論

0/150

提交評論