本試卷滿分100分,考試時(shí)間100分鐘。
請(qǐng)將答案填寫在答題卡上,在試卷上作答無(wú)效,務(wù)必寫清學(xué)校、姓名等個(gè)人信息。
一、單選題(每題3分,共60分)
1.以下二維數(shù)組的初始化,哪個(gè)是符合語(yǔ)法的?()
A. int a[][]={{1,2},{3,4}};
B. int a[][2]={{1,2},{3,4}};
C. int a[2][2]={{1,2,3},{4,5,6}};
D. int a[2][]={{1,2,3},{4,5,6}};
2.回文子串指的是一個(gè)字符串中,正著讀和反著讀都一樣的連續(xù)字符序列。S="CABCBAABCABCBCBAB",其最長(zhǎng)回文子串的長(zhǎng)度是()
A.5 B.6 C.7 D.8
3.對(duì)于入棧順序?yàn)?,2,3,4,5,6,7的序列,下列不可能是合法的出棧序列為()
A.1,2,3,7,6,5,4
B.1,4,3,2,5,7,6
C.1,4,2,3,7,6,5
D.7,6,5,4,3,2,1
4.給定一組活動(dòng),每個(gè)活動(dòng)都有開始時(shí)間s_i和結(jié)束時(shí)間f_i。我們要安排盡可能多的活動(dòng)(活動(dòng)之間不能重疊),正確的貪心策略是按照()從小到大排序后依次安排活動(dòng)。
A.s_i B.f_i C.f_i+s_i D.f_i-s_i
5.有12個(gè)人在玩游戲,他們圍成一個(gè)圈,給定一個(gè)字符串LLLLRRLRRRLL代表每個(gè)人的“攻擊”方向(L向左,R向右)。一個(gè)合法的“攻擊”應(yīng)滿足以下二者之一:
若只有a攻擊b,則b必須攻擊a。
若a和c同時(shí)攻擊b,或a和c都不攻擊b,則b可以任意攻擊a和c中的一個(gè)。
你每次可以進(jìn)行一次操作,使字符串中的一個(gè)字符從L變?yōu)镽,或從R變?yōu)長(zhǎng)。最少需要操作()次使得字符串所代表的“攻擊”狀態(tài)合法。
A.1 B.2 C.3 D.4
6.沿著一條平直的道路旁有10棵樹,它們的坐標(biāo)分別為7,10,12,15,19,20,53,63,75,87,它們的高度分別為12,2,2,1,2,1,25,10,12,1。伐木工人如果砍倒一棵坐標(biāo)為x_i的樹,并將其平放在左邊或右邊的一段空地上,占據(jù)一個(gè)區(qū)間[x_i - h_i, x_i]或[x_i, x_i + h_i],未被砍伐的樹只占據(jù)一個(gè)坐標(biāo)點(diǎn)x_i。只有當(dāng)區(qū)間中沒有任何被占據(jù)的點(diǎn)時(shí),伐木工人才能把砍倒的一棵樹平放到這個(gè)區(qū)間上。伐木工人希望盡可能多地砍伐樹木,問最多能砍伐()棵樹。
A.7 B.8 C.9 D.10
7.陶陶和樂樂最近在練習(xí)跳躍技巧,跳躍規(guī)則如下:起點(diǎn)位于數(shù)軸的點(diǎn)0,如果想要到達(dá)點(diǎn)x,一開始可以先跳一單位,然后每次跳躍的長(zhǎng)度都比上一次多一單位。每次跳躍可以選擇向左或向右。現(xiàn)在陶陶想跳到坐標(biāo)為56的位置,樂樂想跳到坐標(biāo)為61的位置,他們兩個(gè)人分別最少跳躍()次才能到達(dá)自己的目標(biāo)點(diǎn)。
A.10,11 B.11,12 C.12,13 D.11,13
8.同學(xué)們玩猜城市游戲,地圖上有標(biāo)號(hào)A、B、C、D、E。五人每人只答對(duì)一半:
甲說(shuō):B是北京,E是天津
乙說(shuō):B是湖北,D是重慶
丙說(shuō):C是湖北,D是吉林
丁說(shuō):A是重慶,E是吉林
戊說(shuō):B是天津,C是北京
正確選項(xiàng)是()
A.A是重慶,B是天津,C是湖北,D是北京,E是吉林
B.A是湖北,B是天津,C是重慶,D是吉林,E是北京
C.A是重慶,B是湖北,C是北京,D是天津,E是吉林
D.A是重慶,B是湖北,C是北京,D是吉林,E是天津
9.有6本不同的書,其中語(yǔ)文書3本,數(shù)學(xué)書1本,英語(yǔ)書2本。若將這6本書排成一排,要求三本語(yǔ)文書必須相鄰,而兩本英語(yǔ)書不能相鄰,則有()種不同的排法。
A.36 B.48 C.72 D.96
10.從1,3,5,7中任取2個(gè)數(shù)字,從0,2,4,6,8中任取2個(gè)數(shù)字,組成沒有重復(fù)數(shù)字(無(wú)前導(dǎo)零)的四位數(shù),其中能被5整除的數(shù)有()個(gè)
A.360 B.720 C.300 D.240
11.在數(shù)學(xué)中,集合是由某些確定的對(duì)象組成的整體,函數(shù)是從一個(gè)集合(稱為定義域)到另一個(gè)集合(稱為值域)的一種對(duì)應(yīng)關(guān)系,函數(shù)要求定義域中的每一個(gè)元素都對(duì)應(yīng)值域中唯一確定的元素。設(shè)集合A={1,2,3},B={a,b,c},A作為定義域,B作為值域,則從A到B的所有函數(shù)的個(gè)數(shù)為()
A.6 B.9 C.27 D.81
12.函數(shù)是一種數(shù)學(xué)規(guī)則,它將每個(gè)輸入的數(shù)字唯一地對(duì)應(yīng)到一個(gè)輸出數(shù)字。例如,函數(shù)f(x)=5x-2表示:對(duì)于任何輸入x,先乘以5,然后減2,得到計(jì)算結(jié)果。若函數(shù)f(x)=2x+3和g(x)=x-1,那么f(g(2))的值是多少?()
A.3 B.5 C.7 D.9
13.定義在整數(shù)集合上的數(shù)列F(x)滿足:
F(x)=? x-3(x≥10)
? F(x+4)+1(x<10)
則F(4)的值為()
A.9 B.10 C.11 D.12
14.斐波那契數(shù)列定義為:F(0)=0,F(xiàn)(1)=1,F(xiàn)(n)=F(n-1)+F(n-2)(n≥2)。用S_i表示前i項(xiàng)和,則S_n可以表示為()
A.F(n+1) B.F(n+2) C.F(n+1)-1 D.F(n+2)-1
15.方程x+y+z=12的正整數(shù)解(即x,y,z≥1)的組數(shù)是()
A.55 B.66 C.121 D.132
16.以下程序的輸出為()
#include
usingnamespace std;intfunc(int n)
{
if(n<=1)
return n;
returnfunc(n-1)+func(n-2)+func(n-3);
}
intmain()
{
cout<return0;
}
A.6 B.13 C.20 D.無(wú)法正常結(jié)束
請(qǐng)閱讀以下程序,若輸入兩個(gè)不同整數(shù)x,y,輸出結(jié)果為()
#include
usingnamespace std;intmain()
{
int a,b;
cin>>a>>b;
a=a^b;
b=a^b;
a=a^b;
cout<}
A.x B.y C.x⊕y D.x|y
輾轉(zhuǎn)相除法是一種求解最大公因數(shù)的方法,在橫線處填入()后,該函數(shù)能正確實(shí)現(xiàn)相應(yīng)功能。
intgcd(int a,int b)
{
while(b!=0)
{
// 橫線處
}
return a;
}
A. int temp = b; b=a/b;a = temp;
B. int temp =a; a=b/a;b=temp;
C. int temp =a%b;b=a%b; a= temp;
D. b=a%b; a = b;
以下程序的時(shí)間復(fù)雜度為()
#include
usingnamespace std;
constint N=100000;
int cnt=0, primes [100010],vis [100010];
intmain()
{
vis [1]=1;
for(int i=2;i<=N-1;i++)
{
if(!vis[i])
primes [++cnt]=i;
for(int j=1;primes[j]*i<=N-1;j++)
{
vis [primes [j]*i]=1;
if(i%primes[j]==0)
break;
}
}
for(int i=1;i<=cnt;i++)
cout<}
A.O(n) B.O(n×logn) C.O(n×loglogn) D.O(n2)
以下程序的時(shí)間復(fù)雜度為()
intfunc(int n,int m)
{
if(m==0||m==n)
return1;
returnfunc(n-1,m-1)+func(n-1,m);
}
A.O(2?) B.O(2?×(n-m)) C.O(C??) D.O(m×(n-m))
二、程序閱讀與填空(每題5分,共20分)
請(qǐng)你閱讀以下這段程序,程序輸入為9 1 4 2 8 5 7 9 2 6,直接寫出程序運(yùn)行的結(jié)果。()
#include
usingnamespace std;
int n,ans=0;
int h[110];intmain()
{
cin>>n;
for(int i=0;i cin>>h[i];
int j=0, k=n-1;
while(j{
int s=(k-j)*min(h[j],h[k]);
if(h[j]{
ans=max(ans , s);
j++;
}
else
{
ans=max(ans,s);
k--;
}
}
cout<return0;
}
請(qǐng)你閱讀以下這段程序,程序輸入為2 40 9,直接寫出程序運(yùn)行的結(jié)果。()
#include
usingnamespace std;
int a, b,p,ans=0;intmain()
{
cin>>a>>b>>p;
while(b)
{
bool f=b&1;
if(f)
ans=(ans+a)%p;
a=(a+a)%p;
b=b>>1;
}
cout<return0;
}
請(qǐng)你閱讀以下這段程序,直接寫出程序運(yùn)行的結(jié)果。()
#include
usingnamespace std;
int stk1[110], t1=0;
int stk2[110], t2=0;voidfunc1(int x)
{
stk1[++t1]=x;
}
voidfunc2()
{
if(t2==0)
while(t1>0)
stk2 [++t2]=stk1[t1--];
if(t2>0)
t2--;
}
intmain()
{
func1(10);func1(20);func1(30);
func2();func1(40);
func2();func1(50);func1(60);
if(t1>0&&t2>0)
cout<else
cout<<-1;
return0;
}
題目描述:給定一個(gè)長(zhǎng)度為n的整數(shù)數(shù)組a,請(qǐng)你統(tǒng)計(jì)有多少對(duì)下標(biāo)(i,j)滿足i
#include
usingnamespace std;
map cnt;
int ans=0;intmain()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int a;
cin>>a;
int val=___(1)___;
ans+=___(2)___;
cnt[val]++;
}
cout<return0;
}
三、填空(每題2分,共20分)
25.甲、乙兩數(shù)的最大公因數(shù)是75,最小公倍數(shù)是450。若它們的差最小,則兩個(gè)數(shù)為______和______。
答案:150,225
26.10條直線,最多可以把平面分為______個(gè)區(qū)域。
27.將100個(gè)小球放入依次排列的36個(gè)盒子中。如果任意相鄰的5個(gè)盒子中的小球總數(shù)均為14,且第1個(gè)盒中有2個(gè)小球。那么第36個(gè)盒子中有______個(gè)小球。
答案:2
解析:a_i =a_{i+5},即每隔5個(gè)盒子小球數(shù)相同,周期為5。已知第1個(gè)盒子有2個(gè)球,故第36個(gè)盒子也有2個(gè)球。
28.用0到9十個(gè)數(shù)字組成沒有重復(fù)數(shù)字且沒有前導(dǎo)零的四位數(shù),若將這些四位數(shù)按從小到大的順序排列,則5687是第______個(gè)。
29.若從1,2,3,…,9這9個(gè)整數(shù)中同時(shí)取4個(gè)不同的數(shù),其和為奇數(shù),則不同的取法共有______種。
30.一副撲克牌共54張,最上面的一張是紅桃K。如果每次把最上面的12張牌移到最下面而不改變它們的順序及朝向,那么,至少經(jīng)過______次移動(dòng),紅桃K才會(huì)又出現(xiàn)在最上面?
31.兩對(duì)三胞胎喜相逢,他們圍坐在桌子旁,要求每個(gè)人都不與自己的同胞兄妹相鄰,同一位置上坐不同的人算不同的坐法,那么共有______種不同的坐法。
32.把正方體的6個(gè)面分別寫上了1到6這六個(gè)不同的數(shù)字,現(xiàn)在將完全相同四個(gè)正方體拼成一個(gè)長(zhǎng)方體,那么長(zhǎng)方體的下底面所有數(shù)字之和為______。
33.計(jì)算機(jī)處理數(shù)據(jù)的能力非常強(qiáng)大的,只要你告訴它規(guī)則,它能夠按照你提出的任何要求完成任務(wù)。比如你要將一個(gè)多位數(shù)27493去掉兩位使剩下的數(shù)盡量大,就可以去掉2和4。現(xiàn)在將1~30依次寫成一排:12345…282930,形成一個(gè)多位數(shù),從這個(gè)多位數(shù)中去掉45個(gè)數(shù)字,剩下的數(shù)最大是______。
![]()
34.信息學(xué)要研究各種信息,需要研究信息的人能夠很快抓住問題的核心信息,找到核心點(diǎn),復(fù)雜的問題也會(huì)變得很簡(jiǎn)單。現(xiàn)在要求你把1~7這7個(gè)數(shù)填入圖中的7個(gè)方框里,每個(gè)數(shù)只能填一次,使得三條直線上的三個(gè)數(shù)之和恰好是8、11和15。那么在圓上的三個(gè)數(shù)的乘積最大是______。
![]()
點(diǎn)擊以下文章是答案:
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.