4.thenreturntemp
5.elsereturnA[n]
请问算法XYZ的输出是什么?
()。
[单选题]*
A.A数组的平均
B.A数组的最小值(正确答案)
C.A数组的中值
D.A数组的最大值
7.链表不具有的特点是()。
[单选题]*
A.可随机访问任一元素(正确答案)
B.不必事先估计存储空间
C.插入删除不需要移动元素
D.所需空间与线性表长度成正比
8.有10个顶点的无向图至少应该有()条边才能确保是一个连通图。
[单选题]*
A.9(正确答案)
B.10
C.11
D.12
9.二进制数1011转换成十进制数是()。
[单选题]*
A.11(正确答案)
B.10
C.13
D.12
10.5个小朋友并排站成一列,其中有两个小朋友是双胞胎,如果要求这两个双胞胎必须相邻,则有()种不同排列方法?
[单选题]*
A.48(正确答案)
B.36
C.24
D.72
11.下图中所使用的数据结构是()。
[单选题]*
A.栈(正确答案)
B.队列
C.二叉树
D.哈希表
12.独根树的高度为1。
具有61个结点的完全二叉树的高度为()。
[单选题]*
A.7
B.8
C.5
D.6(正确答案)
13.干支纪年法是中国传统的纪年方法,由10个天干和12个地支组合成60个天干地支。
由公历年份可以根据以下公式和表格换算出对应的天干地支。
天干=(公历年份)除以10所得余数
地支=(公历年份)除以12所得余数
例如,今年是2020年,2020除以10余数为0,查表为"庚”;2020除以12,余数为4,查表为“子”所以今年是庚子年。
请问1949年的天干地支是()
[单选题]*
A.己酉
B.己亥
C.己丑(正确答案)
D.己卯
14.10个三好学生名额分配到7个班级,每个班级至少有一个名额,一共有()种不同的分配方案。
[单选题]*
A.84(正确答案)
B.72
C.56
D.504
15.有五副不同颜色的手套(共10只手套,每副手套左右手各1只),一次性从中取6只手套,请问恰好能配成两副手套的不同取法有()种。
[单选题]*
A.120(正确答案)
B.180
C.150
D.30
16.#include
#include
usingnamespacestd;
charencoder[26]={'C','S','P',0};
chardecoder[26];
stringst;
intmain(){
intk=0;
for(inti=0;i<26;++i)
if(encoder[i]!
=0)++k;
for(charx='A';x<='Z';++x){
boolflag=true;
for(inti=0;i<26;++i)
if(encoder[i]==x){
flag=false;
break;
}
if(flag){
encoder[k]=x;
++k;
}
}
for(inti=0;i<26;++i)
decoder[encoder[i]-'A']=i+'A';
cin>>st;
for(inti=0;ist[i]=decoder[st[i]-'A'];
cout<return0;
}
输入的字符串应当只由大写字母组成,否则在访问数组时可能越界。
()[判断题]*
对(正确答案)
错
17.#include
#include
usingnamespacestd;
charencoder[26]={'C','S','P',0};
chardecoder[26];
stringst;
intmain(){
intk=0;
for(inti=0;i<26;++i)
if(encoder[i]!
=0)++k;
for(charx='A';x<='Z';++x){
boolflag=true;
for(inti=0;i<26;++i)
if(encoder[i]==x){
flag=false;
break;
}
if(flag){
encoder[k]=x;
++k;
}
}
for(inti=0;i<26;++i)
decoder[encoder[i]-'A']=i+'A';
cin>>st;
for(inti=0;ist[i]=decoder[st[i]-'A'];
cout<return0;
}
若输入的字符串不是空串,则输入的字符串与输出的字符串一定不一样。
()[判断题]*
对
错(正确答案)
18.#include
#include
usingnamespacestd;
charencoder[26]={'C','S','P',0};
chardecoder[26];
stringst;
intmain(){
intk=0;
for(inti=0;i<26;++i)
if(encoder[i]!
=0)++k;
for(charx='A';x<='Z';++x){
boolflag=true;
for(inti=0;i<26;++i)
if(encoder[i]==x){
flag=false;
break;
}
if(flag){
encoder[k]=x;
++k;
}
}
for(inti=0;i<26;++i)
decoder[encoder[i]-'A']=i+'A';
cin>>st;
for(inti=0;ist[i]=decoder[st[i]-'A'];
cout<return0;
}
将第12行的“i<26”改为“i<16”,程序运行结果不会改变。
()[判断题]*
对(正确答案)
错
19.#include
#include
usingnamespacestd;
charencoder[26]={'C','S','P',0};
chardecoder[26];
stringst;
intmain(){
intk=0;
for(inti=0;i<26;++i)
if(encoder[i]!
=0)++k;
for(charx='A';x<='Z';++x){
boolflag=true;
for(inti=0;i<26;++i)
if(encoder[i]==x){
flag=false;
break;
}
if(flag){
encoder[k]=x;
++k;
}
}
for(inti=0;i<26;++i)
decoder[encoder[i]-'A']=i+'A';
cin>>st;
for(inti=0;ist[i]=decoder[st[i]-'A'];
cout<return0;
}
将第26行的"i<26”改为“i<16”,程序运行结果不会改变。
()[判断题]*
对
错(正确答案)
20.#include
#include
usingnamespacestd;
charencoder[26]={'C','S','P',0};
chardecoder[26];
stringst;
intmain(){
intk=0;
for(inti=0;i<26;++i)
if(encoder[i]!
=0)++k;
for(charx='A';x<='Z';++x){
boolflag=true;
for(inti=0;i<26;++i)
if(encoder[i]==x){
flag=false;
break;
}
if(flag){
encoder[k]=x;
++k;
}
}
for(inti=0;i<26;++i)
decoder[encoder[i]-'A']=i+'A';
cin>>st;
for(inti=0;ist[i]=decoder[st[i]-'A'];
cout<return0;
}
若输出的字符串为“ABCABCABCA”,则下列说法正确的是()。
[单选题]*
A.输入的字符串中既有S又有P(正确答案)
B.输入的字符串中既有S又有B
C.输入的字符串中既有A又有P
D.输入的字符串中既有A又有B
21.#include
#include
usingnamespacestd;
charencoder[26]={'C','S','P',0};
chardecoder[26];
stringst;
intmain(){
intk=0;
for(inti=0;i<26;++i)
if(encoder[i]!
=0)++k;
for(charx='A';x<='Z';++x){
boolflag=true;
for(inti=0;i<26;++i)
if(encoder[i]==x){
flag=false;
break;
}
if(flag){
encoder[k]=x;
++k;
}
}
for(inti=0;i<26;++i)
decoder[encoder[i]-'A']=i+'A';
cin>>st;
for(inti=0;ist[i]=decoder[st[i]-'A'];
cout<return0;
}
若输出的字符串为“CSPCSPCSPCSP”,则下列说法正确的是()。
[单选题]*
A.输入的字符串中既有P又有K
B.输入的字符串中既有J又有R
C.输入的字符串中既有J又有K
D.输入的字符串中既有P又有R(正确答案)
22.#include
usingnamespacestd;
longlongn,ans;
intk,len;
longlongd[1000000];
intmain(){
cin>>n>>k;
d[0]=0;
len=1;
ans=0;
for(longlongi=0;i++d[0];
for(intj=0;j+1if(d[j]==k){
d[j]=0;
d[j+1]+=1;
++ans;
}
}
if(d[len-1]==k){
d[len-1]=0;
d[len]=1;
++len;
++ans;
}
}
cout<return0;
}
1)若k=l,则输出ans时,len=n。
()[判断题]*
对
错(正确答案)
23.#include
usingnamespacestd;
longlongn,ans;
intk,len;
longlongd[1000000];
intmain(){
cin>>n>>k;
d[0]=0;
len=1;
ans=0;
for(longlongi=0;i++d[0];
for(intj=0;j+1if(d[j]==k){
d[j]=0;
d[j+1]+=1;
++ans;
}
}
if(d[len-1]==k){
d[len-1]=0;
d[len]=1;
++len;
++ans;
}
}
cout<return0;
}
2)若k>l,则输出ans时,len—定小于n。
()[判断题]*
对
错(正确答案)
24.#include
usingnamespacestd;
longlongn,ans;
intk,len;
longlongd[1000000];
intmain(){
cin>>n>>k;
d[0]=0;
len=1;
ans=0;
for(longlongi=0;i++d[0];
for(intj=0;j+1if(d[j]==k){
d[j]=0;
d[j+1]+=1;
++ans;
}
}
if(d[len-1]==k){
d[len-1]=0;
d[len]=1;
++len;
++ans;
}
}
cout<return0;
}
3)若k>l,则输出ans时,k^{len}k
len
—定大于n。
()[判断题]*
对(正确答案)
错
25.#include
usingnamespacestd;
longlongn,ans;
intk,len;
longlongd[1000000];
intmain(){
cin>>n>>k;
d[0]=0;
len=1;
ans=0;
for(longlongi=0;i++d[0];
for(intj=0;j+1if(d[j]==k){
d[j]=0;
d[j+1]+=1;
++ans;
}
}
if(d[len-1]==k){
d[len-1]=0;
d[len]=1;
++len;
++ans;
}
}
cout<return0;
}
4)若输入的n等于:
10^{15}10
15
,输入的k为1,则输出等于()。
[单选题]*
A.1
B.(10^{30}-10^{15})/2(1030−1015)/2
C.(10^{30}+10^{15})/2(1030+1015)/2
D.10^{15}1015(正确答案)
26.#include
usingnamespacestd;
longlongn,ans;
intk,len;
longlongd[1000000];
intmain(){
cin>>n>>k;
d[0]=0;
len=1;
ans=0;
for(longlongi=0;i++d[0];
for(intj=0;j+1if(d[j]==k){
d[j]=0;
d[j+1]+=1;
++ans;
}
}
if(d[len-1]==k){
d[len-1]=0;
d[len]=1;
++len;
++ans;
}
}
cout<return0;
}
5)若输入的n等于205,891,132,094,649(即3^{30}3
30
),输入的k为3,则输出等于()。
。
[单选题]*
A.3^{30}330
B.(3^{30}-1)/2(330−1)/2(正确答案)
C.3^{30}-1330−1
D.(3^{30}+1)/2(330+1)/2
27.#include
usingnamespacestd;
longlongn,ans;
intk,len;
longlongd[1000000];
intmain(){
cin>>n>>k;
d[0]=0;
len=1;
ans=0;
for(longlongi=0;i++d[0];
for(intj=0;j+1if(d[j]==k){
d[j]=0;
d[j+1]+=1;
++ans;
}
}
if(d[len-1]==k){
d[len-1]=0;
d[len]=1;
++len;
++ans;
}
}
cout<return0;
}
6)若输入的n等于100,010,002,000,090,输入的k为10,则输出等于()。
[单选题]*
A.11,112,222,444,543
B.11,122,222,444,453
C.11,122,222,444,543
D.11,112,222,444,453(正确答案)
28.#include
#include
usingnamespacestd;
intn;
intd[50][2];
intans;
voiddfs(intn,intsum){
if(n==1){
ans=max(sum,ans);
return;
}
for(inti=1;iinta=d[i-1][0],b=d[i-1][1];
intx=d[i][0],y=d[i][1];
d[i-1][0]=a+x;
d[i-1][1]=b+y;
for(intj=i;jd[j][0]=d[j+1][0],d[j][1]=d[j+1][1];
ints=a+x+abs(b-y);
dfs(n-1,sum+s);
for(intj=n-1;j>i;--j)
d[j][0]=d[j-1][0],d[j][1]=d[j-1][1];
d[i-1][0]=a,d[i-1][1]=b;
d[i][0]=x,d[i][1]=y;
}
}
intmain(){
cin>>n;
for(inti=0;icin>>d[i][0];
for(inti=0;icin>>d[i][1];
ans=0;
dfs(n,0);
cout<return0;
}[判断题]*
对
错(正确答案)
29.#include
#include
usingnamespacestd;
intn;
intd[50][2];
intans;
voiddfs(intn,intsum){
if(n=