本試卷滿分100分,考試時間100分鐘。
請將答案填寫在答題卡上,在試卷上作答無效,務必寫清學校、姓名等個人信息。
一、單選題(每題3分,共60分)
1.以下二維數組的初始化,哪個是符合語法的?()
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.回文子串指的是一個字符串中,正著讀和反著讀都一樣的連續字符序列。S="CABCBAABCABCBCBAB",其最長回文子串的長度是()
A.5 B.6 C.7 D.8
3.對于入棧順序為1,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.給定一組活動,每個活動都有開始時間s_i和結束時間f_i。我們要安排盡可能多的活動(活動之間不能重疊),正確的貪心策略是按照()從小到大排序后依次安排活動。
A.s_i B.f_i C.f_i+s_i D.f_i-s_i
5.有12個人在玩游戲,他們圍成一個圈,給定一個字符串LLLLRRLRRRLL代表每個人的“攻擊”方向(L向左,R向右)。一個合法的“攻擊”應滿足以下二者之一:
若只有a攻擊b,則b必須攻擊a。
若a和c同時攻擊b,或a和c都不攻擊b,則b可以任意攻擊a和c中的一個。
你每次可以進行一次操作,使字符串中的一個字符從L變為R,或從R變為L。最少需要操作()次使得字符串所代表的“攻擊”狀態合法。
A.1 B.2 C.3 D.4
6.沿著一條平直的道路旁有10棵樹,它們的坐標分別為7,10,12,15,19,20,53,63,75,87,它們的高度分別為12,2,2,1,2,1,25,10,12,1。伐木工人如果砍倒一棵坐標為x_i的樹,并將其平放在左邊或右邊的一段空地上,占據一個區間[x_i - h_i, x_i]或[x_i, x_i + h_i],未被砍伐的樹只占據一個坐標點x_i。只有當區間中沒有任何被占據的點時,伐木工人才能把砍倒的一棵樹平放到這個區間上。伐木工人希望盡可能多地砍伐樹木,問最多能砍伐()棵樹。
A.7 B.8 C.9 D.10
7.陶陶和樂樂最近在練習跳躍技巧,跳躍規則如下:起點位于數軸的點0,如果想要到達點x,一開始可以先跳一單位,然后每次跳躍的長度都比上一次多一單位。每次跳躍可以選擇向左或向右。現在陶陶想跳到坐標為56的位置,樂樂想跳到坐標為61的位置,他們兩個人分別最少跳躍()次才能到達自己的目標點。
A.10,11 B.11,12 C.12,13 D.11,13
8.同學們玩猜城市游戲,地圖上有標號A、B、C、D、E。五人每人只答對一半:
甲說:B是北京,E是天津
乙說:B是湖北,D是重慶
丙說:C是湖北,D是吉林
丁說:A是重慶,E是吉林
戊說:B是天津,C是北京
正確選項是()
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本不同的書,其中語文書3本,數學書1本,英語書2本。若將這6本書排成一排,要求三本語文書必須相鄰,而兩本英語書不能相鄰,則有()種不同的排法。
A.36 B.48 C.72 D.96
10.從1,3,5,7中任取2個數字,從0,2,4,6,8中任取2個數字,組成沒有重復數字(無前導零)的四位數,其中能被5整除的數有()個
A.360 B.720 C.300 D.240
11.在數學中,集合是由某些確定的對象組成的整體,函數是從一個集合(稱為定義域)到另一個集合(稱為值域)的一種對應關系,函數要求定義域中的每一個元素都對應值域中唯一確定的元素。設集合A={1,2,3},B={a,b,c},A作為定義域,B作為值域,則從A到B的所有函數的個數為()
A.6 B.9 C.27 D.81
12.函數是一種數學規則,它將每個輸入的數字唯一地對應到一個輸出數字。例如,函數f(x)=5x-2表示:對于任何輸入x,先乘以5,然后減2,得到計算結果。若函數f(x)=2x+3和g(x)=x-1,那么f(g(2))的值是多少?()
A.3 B.5 C.7 D.9
13.定義在整數集合上的數列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.斐波那契數列定義為:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2)。用S_i表示前i項和,則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的正整數解(即x,y,z≥1)的組數是()
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.無法正常結束
請閱讀以下程序,若輸入兩個不同整數x,y,輸出結果為()
#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
輾轉相除法是一種求解最大公因數的方法,在橫線處填入()后,該函數能正確實現相應功能。
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;
以下程序的時間復雜度為()
#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)
以下程序的時間復雜度為()
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分)
請你閱讀以下這段程序,程序輸入為9 1 4 2 8 5 7 9 2 6,直接寫出程序運行的結果。()
#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;
}
請你閱讀以下這段程序,程序輸入為2 40 9,直接寫出程序運行的結果。()
#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;
}
請你閱讀以下這段程序,直接寫出程序運行的結果。()
#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;
}
題目描述:給定一個長度為n的整數數組a,請你統計有多少對下標(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.甲、乙兩數的最大公因數是75,最小公倍數是450。若它們的差最小,則兩個數為______和______。
答案:150,225
26.10條直線,最多可以把平面分為______個區域。
27.將100個小球放入依次排列的36個盒子中。如果任意相鄰的5個盒子中的小球總數均為14,且第1個盒中有2個小球。那么第36個盒子中有______個小球。
答案:2
解析:a_i =a_{i+5},即每隔5個盒子小球數相同,周期為5。已知第1個盒子有2個球,故第36個盒子也有2個球。
28.用0到9十個數字組成沒有重復數字且沒有前導零的四位數,若將這些四位數按從小到大的順序排列,則5687是第______個。
29.若從1,2,3,…,9這9個整數中同時取4個不同的數,其和為奇數,則不同的取法共有______種。
30.一副撲克牌共54張,最上面的一張是紅桃K。如果每次把最上面的12張牌移到最下面而不改變它們的順序及朝向,那么,至少經過______次移動,紅桃K才會又出現在最上面?
31.兩對三胞胎喜相逢,他們圍坐在桌子旁,要求每個人都不與自己的同胞兄妹相鄰,同一位置上坐不同的人算不同的坐法,那么共有______種不同的坐法。
32.把正方體的6個面分別寫上了1到6這六個不同的數字,現在將完全相同四個正方體拼成一個長方體,那么長方體的下底面所有數字之和為______。
33.計算機處理數據的能力非常強大的,只要你告訴它規則,它能夠按照你提出的任何要求完成任務。比如你要將一個多位數27493去掉兩位使剩下的數盡量大,就可以去掉2和4。現在將1~30依次寫成一排:12345…282930,形成一個多位數,從這個多位數中去掉45個數字,剩下的數最大是______。
34.信息學要研究各種信息,需要研究信息的人能夠很快抓住問題的核心信息,找到核心點,復雜的問題也會變得很簡單。現在要求你把1~7這7個數填入圖中的7個方框里,每個數只能填一次,使得三條直線上的三個數之和恰好是8、11和15。那么在圓上的三個數的乘積最大是______。
點擊以下文章是答案:
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.