CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx

上传人:b****5 文档编号:19770804 上传时间:2023-01-10 格式:DOCX 页数:17 大小:53.56KB
下载 相关 举报
CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx_第1页
第1页 / 共17页
CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx_第2页
第2页 / 共17页
CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx_第3页
第3页 / 共17页
CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx_第4页
第4页 / 共17页
CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx

《CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

CCFCSPJ入门级CC++语言试题与答案解析Word格式文档下载.docx

:

程序设计基础-算法与数据结构■折半査找(二分查找)

对100个有序元素进行折半查找,每次查找可将检索范围缩小一半。

由2”-1〈100"

27-1可知,最大比较次数为7。

6・链表不具有的特点是()

A.插入删除不需要移动元素B.不必事先估计存储空间

C.所需空间与线性表长度成正比D.可随机访问任一元素

程序设计基础■算法与数据结构-链表

链表是通过记录每个元素的后继位置來实现数据存储,所需空间与元素个数成正比,优点是不必事先估汁存储空间、插入或删除指定位置元素的时间复杂度为0

(1):

但缺点是由于其元素的内存地址不连续,无法进行0

(1)的随机访问。

7・把8个同样的球放在5个同样的袋子里,允许有的袋子空着不放,问共有多少冲不同的分法?

()提示:

如果8个球都放在一个袋子里,无论足哪个袋子,都只算同一种分法

A.22B.24C.18D.20

答考解案合

案:

点:

数学■计数问题

析:

枚举法求解,8个同样的球分1个袋子共1种方案,分2个袋子共4种方,分3个袋子共5种方案,分4个袋子共5种方案,分5个袋子共3种方案,计18种。

&

一棵二叉树如右图所示,若采用顺序存储结构,即用维数组元素存储该二叉树中的结点(根结点的下标为1,若某结点的下标为i,则英左孩子位于下标2i处.右孩子位于下标2i+l处),则该数组的展大下标至少为()。

答考解点

程序设计基础-算法与数据结构-树结构

根据题目给定的规则可知,下标最大的结点为树中深度最大且最靠右的结,其下标为((l*2+l)*2+l)*2+l=15o

9.

100以内最人的索数是()。

A.89B.97

B

数学-素数与合数

98・100均为合数,97为素数。

10.319和377的最大公约数是()。

A.27B.33C.29D.31

数学■公约数与公倍数

解析:

使用辗转相除法可得GCI)(319,377)=GCD(319,58)=GCD(58,29)=290或将两数分解质因数后,提取公共部分亦可求解。

11.新学期开学了,小胖想减肥,健身教练给小胖制定了两个训练方案。

方案一:

每次连续跑3公里口J以消耗300千卡(耗时半小时):

方案二:

每次连续跑5公里可以消耗600千卡(耗时1小时)。

小胖每周周一到周四能抽出半小时跑步,周五到周口能抽出-小时跑步。

另外,教练遂议小胖每周最名跑21公里,否则会损伤膝孟。

请问如果小胖想严格执行教练的训练方案,并且不想损伤膝盖,每周最参通过跑步消耗多少千卡?

()

A.3000B.2500C.2400D.2520

程序设计基础••算法与数据结构■枚举算法

设方案1执行x天,方案2执行y天,则有3x+5y<

=21>

x+y<

=7、y<

=30要求300x+600y的最大值,枚举可得最优方案为x=2、y=3,此时300x+600y为2400.或使用线性规划亦可求解。

12•—副纸牌除掉大小王有52张牌,四种花色,每种花色13张。

假设从这52张牌中随机抽取13张纸牌,则至少()张牌的花色一致。

A.4B.2C.3D.5

数学■抽屉原理

最坏情况,13张牌对应四种花色的牌数为3、3、3、4o

13.—吐数字可以颠倒过来看,例如0、1、8颠倒过来还是本身,6颠倒过来是

9,9颠倒过来看还是6,其他数字颠倒过来都不构成数字。

类似的,一些多位数也可以颠倒过来看,比如106颠倒过来是901o假设某个城市的车牌只山5位数字组成,每-•位都可以取0到9。

请问这个城市就多有多少个车牌倒过来恰好还是原来的车牌?

A.60B.125C.75D.100

答案:

数学■乘法原理

前2位有0、1、&

6、9共5种选择,第3位只能放0、1、8,后2位由前2位决定,因此总方案数为5*5*3*l*l=75o

14.假设一棵二叉树的后序遍历呼列为DGJHEBII'

CA,序遍历用列为DBGEIIJACIF,则其前序遍历序列为()。

A.ABCDEFGIIIJB.ABDEGHJCFIC.ABDEGJIICFID.ABDEGHJFIC答案:

后序遍历的规则是“左右根”、中序遍历的规则是'

'

左根右”,因此可知,A是树根、DBGE町是A左子树的中序遍历(对应后续遍历DGJHEB)、CIF是A右子树的中序遍历(对应后续遍历IFC),递归画出对应的二叉树,再根据前序遍历规则“根左右”即可求出答案。

15.以下哪个奖项是计算机科学领域的最高奖?

A.图灵奖B.再班奖C.诺贝尔奖D.普利策奖

计算机基础-常识■重要人物

图灵奖由美国计算机协会于1966年设、'

/:

其名称取自计算机科学之父图灵,专门奖励对计算机事业作出重要贡献的个人,被誉为“计算机界的诺贝尔奖”。

二、阅读程序(程序输入不超过数组或字符串定义的范围;

判断题正确填错误填X;

除特殊说明外,判断题1.5分,选择题4分,共计40分)

程序一

1#inelude<

cstdio>

2#include<

cstring>

3usingnamespacestd;

4charst[100];

5intmain(){

6scanf('

^s"

jst);

7intn=strlen(st);

8

for(inti=

1;

i<

=n;

++i){

9

if(n%i:

==0){

10

charc=

妣[i・1];

11

if(c>

=

•a*)

12

st[i・

1]=c・'

a,+*A'

;

13

}

14

15

printf(,l%s\

st);

16

return0;

17

程序设汁基础-算法与数据结构-字符串

概述:

程序用于将字符串下标(如果从1开始编号,但C++语言中实际是从0开始编号)是n约数的对应小写字母转换为大写字母。

•判断题

1)输入的字符串只能由小写字母或大写字冊组成。

()答案:

输入的字符串也可以包含数字等其他字符。

2)若将第8行的“i=1”改为“i=0°

程序运行时会发牛错误。

若i可以为0,则第9行的辻语句条件“n%i=0”将发生运行时错误REo

3)若将第8行的“i<

=n”改为“i*i<

=n”,程序运行结果不会改变。

当第8行的循环条件为“iOn”时,字符串的末尾字符会被程序加工,但

若改为“i*i<

=n”,字符串的末尾字符将不会被程序加工(除非字符串长度为1)。

4)若输入的字符串全部由大写字母组成,那么输出的字符串就跟输入的字符串一样。

大写字母的ASCII编码值小于小写字母的。

若输入的字符串全部由大写字母组成,则程序不会对其进行加工。

•选择题

5)若输入的字符巾长度为18,那么输入的字符阳跟输出的字符妝相比,至多有()个字符不同。

A.18B.6C.10D.1

18的止约数共有6个,因此程序至多修改输入字符串中的6个字符,即输出字符串与输入字符串至多有6个字符不同。

6)若输入的字符串长度为(),那么输入的字符串跟输岀的字符串相比,至多有36个字符不同。

A.36B.100000C・1D.128

根据程序的作用可知,要使输出字符串和输入字符串之间至多有36个字符不同,36应当是字符串长度n的约数个数。

木题选项中,仅有100000满足要求,将其分解质因数得1000002环5"

得其的止约数共有(5+1)*(5+1)=36个。

程序二

2usingnamespacestd;

3intn,m;

4inta[100],b[100];

5

6

intmain(){

7

scanf(,,%d%d,,>

n,&

m);

++i)

a[i]=b[i]

=0;

=m;

intx»

y;

scanf(il%d%d\&

y);

if(a[x]<

y&

b[y]<

x){

if(a[x]

>

0)

b[a[x]]

=0;

if(b[y]

a[b[y]]

18

a[x]=y;

19

b[y]=x;

20

21

22

intans=0;

23

24

if(a[i]==

0)

25

++ans;

26

if(b[i]==

27

++dns;

28

29

printf(u%d\nM

ans);

30

31

假设输入的n和m都是正整数,x和y都是4[1,n]的范围内的整数,完成下面的判断题和单选题:

程序设计基础■算法与数据结构■模拟算法

程序可以视作通过模拟算法选出一系列互不冲突的数对一一若数对g,yj和(x?

yj之间有x.==x2或*则认为这两个数对存在冲突,现按顺序考虑每一个数对(Xi,yj(要求满足前提:

在已经选用的数对中,与左值Xi匹配的右值小于力、与右值y:

匹配的左值小于,若该数对与此前已经选用的数对冲突,则用当前数对替换所冲突的原数对:

若无冲突,则直接选用当前数对。

程序中的Hx]用于记录,在己选用的数对中,与左值x相匹配的右值;

b[y]用于记录,在已选用的数对中,与右值y相比配的左值;

n表示数对左值和右值的取值范国为[l,n]:

最后的ans用于统计剩余多少左值或右值,没有相应数对被我们选中。

判断题

1)当m>

0时,输出的值一定小于2n°

()

由限定条件0<

x,y<

=n可知,当m>

0时,一定存在某个数对被我们选中,此时ans<

2n

2)执行完第27行的“++ans"

时,ans—定是偶数。

山于数对是一个左值与一个右值相匹配,因此ansM终一定是偶数。

但第27行的“++ans”在第23行的for循环的内部,其中间结果可能为奇数。

3)a[i]和b[i]不可能同时大于0。

[i]用于记录与左值i相匹配的右值,不存在则为0;

b[i]用于记录与右值i相匹配的左值,不存在则为0。

当存在数对(i,y)和(x,i)都被我们选中时,a[i]和b[i]就会同时大于0o

4)若程序执行到第13行时,x总是小于y,那么第15行不会被执行。

存在反例一一依次考虑数对(1,2)(1,3)时,第15行程序会被执行。

5)若m个x两两不同,且m个y两两不同,则输出的值为()

A.2n-2mB.2n+2C.2n-2D.2n

此时,输入的数对两两互不冲突,因此程序会将它们全部选中,根据上述ans的意义可知,其结果为2n-2mo

6)若m个x两两不同,且m个y都相等,则输出的值为()

A.2n~2B.2nC・2mI).2n~2m

答案;

此时,输入的数对两两存在冲突,因此程序最终只会选用一个数对,根据上述ans的意义可知,其结果为2n-2o程序三

iostream>

3constintmaxn=10000;

4intn;

5inta[maxn];

6intb[maxn];

7intf(int1,intr,intdepth){

8if(1>

r)

9return0;

intmin=maxn》mink;

for

(int

i=1;

=r;

il

F(min

a[i]){

min=

a[i];

mink:

=i;

int

Ires

=f(ljmink-1,depth

+1);

rres

=f(mink+1,depth

19returnIres+rres+depth♦b[mink];

20}

21intmain(){

 

cin>

n;

for(inti=0;

a[i];

b[i];

cout<

<

f(0^n・1,1)<

endl;

程序设计基础■算法与数据结构-树结构

程序可以视作根据二叉树的中序遍历,构造一棵满足要求的树,并输出各结点深度与b值的加权和一一要求二叉树的根结点般小,并递归要求左右子树的根结点最小(除非相应子树为空)。

1)如果a数组有重复的数字,则程序运行时会发生错误。

若a数组有重复数字,则程序在根据a数组递归构造符合要求的二叉树时,对于相同结点值,会优先考虑位于左侧的。

2)如果b数组全为0,则输岀为0。

程序最终输出的是各结点深度与b值的加权和,因此若b数组全为0,则加权和显然为0。

3)当n=100时,最坏情况下,与第12行的比较运算执行的次数最接近的是:

()。

A.5000B.600C・6D.100

最坏情况下,程序所构造的二叉树的每个结点至多仅有一个子结点,此时,将递归100层,其中第i层进行100-i+l次第12行的比较运算,总执行次

4)n=100时,最好情况匚与第12行的比较运算执行的次数最接近的是:

A.100B.6C.5000D.600

最佳情况下,程序构造二叉树时,对于每个结点会尽可能均分英左右子树。

定义根结点深度为1,则含n=100个结点的树的深度最小为logn^7,此时每选定一层结点,程序都盂要执行约n次的第12行的比较运算,因此总执行次数约为nlogn~600。

5)当n=10时.若b数组满足,对任意OSiVm都有b[i]=i4-1.那么输出垠大为()。

A.386B.383C.384D.385

此时,要使输出的ans值尽可能大,程序所松造的二叉树的深度应尽可能地大。

定义根结点深度为1,则含10个结点的二叉树的最大深度为10,因此ans的最大值为1*1+2*2+3*3+・-+10*10=385。

6)(4分)当n=100吋,若b数组满足,对任意OSiVn,都有b[i]=

1,那么输出最小为()。

A.582B.580C.579I).581

此时,要使输出的ans值尽可能小,程序应参照完全二叉树构造此树,其中深度为1的结点共1个,深度为2的结点共2个,深度为3的结点共4个……深度为6的结点共32个,剩余37个结点的深度为7,因此ans的最小值为

(1*1-2*2+3*4+・・・+6*32)+7*37=580。

三、完善程序(单选题,每题3分,共计30分)

(矩阵变幻)有一个奇幻的矩阵,在不停的变幻,其变幻方式为:

数字0变成矩阵昨;

],数字1变成矩阵I:

J]o最初该矩阵只有一个元素0,变幻n次后,矩阵会变成什么样?

例如,矩阵鼓初为:

[0]:

矩阵变幻1次后:

[JJ]:

矩阵变幻2次后:

0000

0101

0011

Lo11oJ

输入一行一个不超过10的止整数no输出变幻n次后的矩阵.

试补全程序。

提示:

“<

”表示二进制左移运算符,例如(11)2«

2=(1100)2;

而“八”表示二进制异或运算符,它将两个参与运算的数中的每个对应的二进制位一一进行比较,若两个二进制位相同,则运算结果的对应二进制位为0,反之为

1#include<

3intn;

4constintmax_size=1<

10;

5intres[max_size][max_size];

6voidrecursive(intx,inty,intn,intt){

7if(n==0){

8res[x][y]=①;

9return;

10}

11intstep=1<

(n-1);

12recursive(②,n・1,t);

13recursive(x?

y+step,n・t);

14recursive(x+step,y,n•1,t);

15recursive(③,n・1,!

t);

16}

17intmain(){

18scanf(H%dH,&

n);

19recursive(0,0,④);

20intsize=⑤;

21for(inti=0;

size;

22for(intj=0;

j<

++j)

23printf("

%dM,res[i][j]);

24puts(““);

25}

26return0;

27}

程序设计基础-算法与数据结构-分治算法

程序采用分治算法,递归模拟矩阵的变换过程。

递归函数

recursive(x,y,n,t)表示计算左上角(x,y),大小2"

*2"

ftl单个数字t变幻而來的矩阵。

1)①处应填()

A.n%2B.0C.tD.1

此处为递归边界,当需要计算的是氓位矩阵时,相应元素应赋值为t,即无需再经任何变换。

2)②处应填()

A.x-step,y-stepB・x,y・step

C.x・step,yD.x,y

左上角(x,y),且大小2*2"

的矩阵,可以分成4个2"

*2心的矩阵分别计算。

此处需要计算的是4个矩阵中位于左上方的矩阵,该矩阵的左上角坐标为(x,y)o

B・x+step,y+step

I).x»

y•stap

!

B

的矩阵,可以分成4个2n,*2nH的矩阵分别计此处需要计算的是4个矩阵中位于右下方的矩阵,该矩阵的左上角坐标为nI,y+2n,)o

4)④处应填(〉

A.n■1,n%2B・n,0

C.n%2D.n-1^0

此处是递归计算的入口,即题目最终所求的是大小2*2"

由单个数字0变幻闻来的矩阵,因此递归函数的后两个参数应设为n和0。

5)⑤处应填()

A.1<

(n+1)B.1<

n

C.n+1I).1«

(n・1)

此处是讣算最终所求的矩阵大小,即边Ksizc为賂位运算写做"

n\程序二

2.(计数排序)计数排序足一个广泛使用的排序方法。

下面的程序使用双关键字计数排序,将n对10000以内的整数,从小到大排序。

例如有三对整数(3,4)、(2,4)、(3,3),那么排序之后应该是(2,4)、(3,3)、(3,4)o

输入第一行为m接下来n行.第i行有两个数n[i]和b[i]・分别表示第i对整数的第一关键字和笫二关键字。

从小到大排序后输出。

数据范围l<

n^l07,l^a[ab[i]^10\

提示,应先对第二关键字排序,再对第一关键字排序V数组ord[]存储第二关键字排序的结果,数组res[]存储双关键字排序的结果。

2#inelude<

4constintmaxn=10000000;

5constintmaxs=10000;

6intn;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1