




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2023CCF非專業(yè)級別軟件能力認證第一輪
(CSP-31)入門級C++語言試題
認證時間:2023年9月16日09:30~11:30
考生注意事項:
?試題紙共有10頁,答題紙共有1頁,滿分100分。請在答題紙上作答,寫在試題紙上的
一律無效。
?不得使用任何電子設備(如計算器、手機、電子詞典等)或查閱任何書籍資料。
一、單項選擇題(共15題,每題2分,共計30分;每題有且僅有一個正確選項)
1.在C++中,下面哪個關鍵字用于聲明一個變量,其值不能被修改?()
A.unsigned
B.const
C.static
D.mutable
2.八進制數(shù)123456708和076543218的和為()。
A.222222218
B.211111118
C.221111118
D.222222118
3.閱讀下述代碼,請問修改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;
CCFCSP-J2023第一輪C++語言試題
第1頁,共10頁
4.假設有一個鏈表的節(jié)點定義如下:
structNode{
intdata;
Node*next;
};
現(xiàn)在有一個指向鏈表頭部的指針:Node*heado如果想要在鏈表中插入一個新節(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.6
B.7
C.8
D.9
6.小明在某一天中依次有七個空閑時間段,他想要選出至少一個空閑時間段來練習唱歌,但
他希望任意兩個練習的時間段之間都有至少兩個空閑的時間段讓他休息。則小明一共有
()種選擇時間段的方案。
A.31
B.18
C.21
D.33
7.以下關于高精度運算的說法錯誤的是()。
A.高精度計算主要是用來處理大整數(shù)或需要保留多位小數(shù)的運算。
B.大整數(shù)除以小整數(shù)的處理的步驟可以是,將被除數(shù)和除數(shù)對齊,從左到右逐位嘗試將
除數(shù)乘以某個數(shù),通過減法得到新的被除數(shù),并累加商。
C.高精度乘法的運算時間只與參與運算的兩個整數(shù)中長度較長者的位數(shù)有關。
D.高精度加法運算的關鍵在于逐位相加并處理進位。
CCFCSP-J2023第一輪C++語言試題
第2頁,共10頁
8.后綴表達式“623+-382/+*2八3+”對應的中綴表達式是()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。.假設有一組字符{a,b,c,d,e,f},對應的頻率分別為5%、9%、12%、13%、16%、45%。請
問以下哪個選項是字符a泮/)遇/分別對應的一組哈夫曼編碼?()
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.考慮一個有向無環(huán)圖,該圖包含4條有向邊:(1,2),(1,3),(2,4)和(3,4)。以下哪個
選項是這個有向無環(huán)圖的一個有效的拓撲排序?()
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.在計算機中,以下哪個選項描述的數(shù)據(jù)存儲容量最???()
A.字節(jié)(byte)
B.比特(bit)
C.字(word)
D.千字節(jié)(kilobyte)
14.一個班級有10個男生和12個女生。如果要選出一個3人的小組,并且小組中必須至少包
含1個女生,那么有多少種可能的組合?()
A.1420
B.1770
C.1540
D.2200
15.以下哪個不是操作系統(tǒng)?()
A.Linux
B.Windows
C.Android
D.HTML
二、閱讀程序(程序輸入不超過數(shù)組或字符串定義的范圍;判斷題正確填H錯誤填x;除特
殊說明外,判斷題1?5分,選擇題3分,共計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ù)都為不超過1000的正整數(shù),完成下面的判斷題和單選題:
?判斷題
16.(2分)當輸入為“222”時,輸出為“1.7321”。()
17.(2分)將第7行中的“(s-b)*(s-c)”改為“(s-c)*(s-b)”不會影響
程序運行的結(jié)果。()
18.(2分)程序總是輸出四位小數(shù)。()
?單選題
19.當輸入為“345”時,輸出為()o
A."6.0000”B.“12.0000”C.“24.0000”D.“30.0000”
20.當輸入為“51213”時,輸出為()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ù)的返回值等于兩個輸入字符串的最長公共子串的長度。()
23.當輸入兩個完全相同的字符串時,g函數(shù)的返回值總是true。()
?單選題
24.將第19行中的替換為“v[n][m]9那么該程序()o
A.行為不變B.只會改變輸出C.一定非正常退出D.可能非正常退出
25.當輸入為“csp-jp-jcs”時,輸出為()0
A.“0”B.“1”C."T”D."F”
26.當輸入為"csppscspsccp”時,輸出為()□
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)
假設輸入的n是絕對值不超過1000的整數(shù),完成下面的判斷題和單選題:
?判斷題
27.如果輸入的n為正整數(shù),solve2函數(shù)的作用是計算n所有的因子的平方和。()
28.第13-14行的作用是避免n的平方根因子i(或n/i)進入第16行而被計算兩次。()
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.當輸入為正整數(shù)時,第一項減去第二項的差值一定()。
大于等于。且小于等于0且
A.大于0B.C.小于0D._
不一定大于0不一定小于0
32.當輸入為“5”時,輸出為()o
A.“651625”B.“650729”C.”651676”D.“652625”
CCFCSP-J2023第一輪C++語言試題
第7頁,共10頁
三、完善程序(單選題,每小題3分,共計30分)
(1)(尋找被移除的元素)問題:原有長度為n+1、公差為1的等差升序數(shù)列;將數(shù)列輸入
到程序的數(shù)組時移除了一個元素,導致長度為n的升序數(shù)組可能不再連續(xù),除非被移除的是第
一個或最后一個元素。需要在數(shù)組不連續(xù)時,找出被移除的元素。
試補全程序。
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.①處應填()
A.1B.nums[0]C.rightD.left
CCFCSP-J2023第一輪C++語言試題
第8頁,共10頁
34.②處應填()
A.left=mid+1B.right=mid-1
C.right=midD.left=mid
35.③處應填()
A.left=mid+1B.right=mid-1
C.right=midD.left=mid
36.④處應填()
A.left+nums[0]B.right+nums[0]
C.mid+nums[0]D.right+1
37.⑤處應填()
A.nums[0]+nB.nums[0]+n1C.nums[0]+n+lD.nums[n-l]
(2)(編輯距離)給定兩個字符串,每次操作可以選擇刪除(Delete)、插入(Insert)、替換(Replace)
一個字符,求將第一個字符串轉(zhuǎn)換為第二個字符串所需要的最少操作次數(shù)。
試補全動態(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB3707T 139-2025“社區(qū)微業(yè)”服務指南
- 動物飼料行業(yè)發(fā)展趨勢與市場機會分析
- 抽水蓄能電站建設可行性研究報告
- 每月工作成就的總結(jié)與分享計劃
- 學校社團工作計劃資源分配
- 影像科技術(shù)提升與工作計劃
- 前臺工作中的專業(yè)知識學習計劃
- 品牌創(chuàng)新中的消費者反饋機制計劃
- 促進師生互動的交流活動策劃計劃
- 幼兒園親子互動活動的效果分析計劃
- 帝國的興衰:修昔底德戰(zhàn)爭史學習通超星期末考試答案章節(jié)答案2024年
- DB35T 1964-2021 森林撫育技術(shù)規(guī)程
- 人工智能概論 課件 第6章 計算機視覺
- 光子時代:光子產(chǎn)業(yè)發(fā)展白皮書 202311-部分1
- 中班故事活動《小馬過河》 課件
- DB34∕T 2839-2017 模塑聚苯板薄抹灰外墻外保溫系統(tǒng)
- 中國血脂管理指南(基層版2024年)解讀
- 福建省能源石化集團有限責任公司招聘筆試題庫2024
- 河港總體設計規(guī)范
- 年度廣告物料制作安裝 投標方案(技術(shù)方案)
- 第16課 經(jīng)濟危機與資本主義國家的應對(課件)-【中職專用】《世界歷史》(同課異構(gòu))(高教版2023基礎模塊)
評論
0/150
提交評論