試卷征集
          加入會員
          操作視頻

          給定m個區間和1個數組(有n個元素),現要求根據各區間限定的取值范圍,將數組依次分隔成m+1個段。具體分割方法如下:
          ?第1段是從數組首個元素開始、元素值都屬于第1區間的最長連續元素段。如果首個元素不屬于第1區間,則第1段元素個數為0;
          ?第1段分割后的剩余元素,用同樣的方法來依次分割第2段、第3段、…、第m段;
          ?第m段分割后的剩余元素分割到第m+1段(剩余段)。
          若第p(1≤p≤m-1)段末尾連續元素的值也同時屬于第p+1區間,則這塊連續元素稱為第p段“重疊塊”,該段其余部分稱為第p段“非重疊塊”。由于不存在第m+1區間,這里特別規定:第m段的全部元素都分割到m段“非重疊塊”,第m段“重疊塊”的元素個數為0,一個數組分段示例如下圖。圖中數組第1個元素10不屬于第1區間[0,5],因此第1段的元素個數為0.10和20屬于第2區間,而33不屬于第2區間,因此第2段只包含10和20兩個元素。第3段末尾連續3個元素的值也同時屬于第4區間,因此,第3段“非重疊塊”包含33,58,46,第3段“重疊塊”包含55,62,69。

          (1)給定2個區間依次為[10,50]、[30,80],數組各元素為“12,44,34,45,66,50,45,70”,則第1段“重疊塊”中的元素個數為
          3
          3
          個。
          (2)小李根據上述描述,設計了一個統計各段“非重疊塊”、“重疊塊”和剩余段中元素個數的算法。算
          法的VB程序如下,請在橫線處填入合適的代碼。
          Const n=18,m=6
          Dim a(1 To n) As Integer
          Dim b(1 To 2*m) As Integer
          'b(1)、b(2)為第1區間的下限和上限,b(3)、b(4)為第2區間的下限和上限,…
          Dim c(1 To 2*m+1)As Integer
          '數組c用于保存統計結果:
          'c(1)、c(2)分別存儲第1段“非重疊塊”和“重疊塊”的元素個數,
          'c(3)、c(4)分別存儲第2段“非重疊塊”和“重疊塊”的元素個數,…
          'c(2m-1)存儲第m段“非重疊塊“元素個數,c(2m)存儲第m段“重疊塊“元素個數(值為0)
          'c(2m+1)存儲剩余段元素個數
          Private Sub Command1_Click (  )
          Dim i As Integer,p As Integer,L As Integer,LL As Integer
          '讀取n個數據并保存在數組a中,代碼略
          '讀取m個區間的下限和上限并保存在數組b中,代碼略
          For i=1 To 2*m+1
          c(i)=0
          Next i
          i=1:p=1
          L=0:LL=0
          Do While
          i<=n And p<=m
          i<=n And p<=m

          If IsIn(i,p) Then
          If IsIn(i,p+1)Then
          LL=LL+1
          Else
          L=L+LL+1
          L=L+LL+1

          LL=0
          End If
          i=i+1
          Else
          c(2*p-1)=L
          c(2*p)=LL
          L=0:LL=0
          p=p+1
          End If
          Loop
          If i<=n Then
          c(2*p-1)=n-i+1
          Else
          c(2*p-1)=L
          c(2*p)=LL
          End If
          '輸出統計結果,代碼略
          End Sub
          '函數IsIn用來判斷a(i)值是否屬于第p區間
          Function IsIn(i As Integer,p As Integer) As Boolean
          If p>m Then
          IsIn=False
          Else
          If
          a(i)>=b(2*p-1)And a(i)<=b(2*p)
          a(i)>=b(2*p-1)And a(i)<=b(2*p)
            ThenIsIn=True Else IsIn=False
          End If
          End Function

          【答案】3;i<=n And p<=m;L=L+LL+1;a(i)>=b(2*p-1)And a(i)<=b(2*p)
          【解答】
          【點評】
          聲明:本試題解析著作權屬菁優網所有,未經書面同意,不得復制發布。
          發布:2024/6/27 10:35:59組卷:9引用:1難度:0.2
          相似題
          • 1.根據AQI值判斷城市的空氣質量。若城市的AQI值(整數)不超過100則空氣質量優良,否則空氣質量有污染。當輸入的AQI值為-1時則退出程序。不要更改程序結構,將題中的①②③④填入正確的語句。
            city=input(“請輸入城市名:”)
            AQI=int(input(“請輸入空氣質量指數AQI的值:”))
            ①______ AQI!=-1:
            if ②______:
            print(city,“的空氣質量優良。”)
            ③______:
            print(city,“的空氣質量有污染。”)
            city=input(“請輸入城市名:”)
            AQI=④(input(“請輸入空氣質量指數AQI的值:”))
            (1)序號①答案為
             

            A.if
            B.while
            C.for
            D.def
            (2)序號②答案為
             

            A.AQI>=100
            B.AQI<=100
            C.AQI>100
            D.AQI<100
            (3)序號③答案為
             

            A.elif
            B.break
            C.if
            D.else
            (4)序號④答案為
             

            A.int
            B.float
            C.str
            D.else

            發布:2025/1/2 11:0:1組卷:0引用:0難度:0.4
          • 2.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再下落。編寫一個C程序,求它在第10次落地時,其經過了多少米?第10次反彈多高?

            發布:2025/1/2 11:0:1組卷:1引用:3難度:0.3
          • 3.利用海倫公式求解三角形面積。已知a,b,c為三角形的三條邊長,p為三角形的半周長,即p=(a+b+c)/2,計算此三角形面積S的海倫公式為:。不要更改程序結構,將題中的①②③填入正確的語句。
            import math#導入數學模塊
            def hl(a,b,c):#定義求三角形面積的函數
            p=①
            s=math.jye.ai(②)#sqrt用于計算算術平方根
            return ③#返回面積的值
            a,b,c=3,4,5#邊長依次賦值
            print(“此三角形的面積S為:“,hl(a,b,c))
            (1)序號①答案為
             

            A. (a+b+c)/2                              B.p*(p-a)*(p-b)*(p-c)
            C. (a+b+c)*2                              D.s
            (2)序號②答案為
             

            A.(a+b+c)/2                              B.p*(p-a)*(p-b)*(p-c)
            C.(a+b+c)*2                                D.(3+4+5)/2
            (3)序號③答案為
             

            A.p                                          B.s
            C.p*(p-a)*(p-b)*(p-c)                  D.0

            發布:2025/1/2 11:0:1組卷:0引用:0難度:0.4
          APP開發者:深圳市菁優智慧教育股份有限公司| 應用名稱:菁優網 | 應用版本:5.0.7 |隱私協議|第三方SDK|用戶服務條款
          本網部分資源來源于會員上傳,除本網組織的資源外,版權歸原作者所有,如有侵犯版權,請立刻和本網聯系并提供證據,本網將在三個工作日內改正