中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

上海市金山中學2019-2020學年高一下學期信息技術期中考試試卷 算法與程序設計部分

資源下載
  1. 二一教育資源

上海市金山中學2019-2020學年高一下學期信息技術期中考試試卷 算法與程序設計部分

資源簡介

上海市金山中學2019-2020學年高一下學期信息技術期中考試試卷 算法與程序設計部分
一、單選題(每題2分,共20分)
1.(2019高一下·上海期中)關于算法的表示方法,以下說法錯誤的是(  )。
A.目前常用的算法表示方法有自然語言描述、流程圖描述、偽代碼或程序設計語言描述
B.較之自然語言,偽代碼具有計算機程序設計語言敘述精確、無二義性的優點
C.較之流程圖和偽代碼,用自然語言描述可以減少歧義的產生
D.較之自然語言,用流程圖和偽代碼描述更為簡潔
【答案】C
【知識點】算法的常用表示方法
【解析】【解答】選項A:表示算法的方法有很多種,目前常用的有 自然語言描述、流程圖描述、偽代碼或程序設計語言描述等,本項對。選項B:偽代碼更接近于程序語言,表述更精確,而自然語言接近于人們書面語言有理解歧義即二義性,故本項對。選項C:自然語言接近于人們書面語言有理解歧義即二義性,而流程圖和偽代碼表述精確無二義性,本項錯。選項D: 較之自然語言,用流程圖和偽代碼描述更為精確簡潔無二義性,本項對。故答案選C。
【分析】本題考查的是使用各種表示方法描述算法的優缺點。算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統的方法描述解決問題的策略機制。描述算法的方法有多種,常用的有自然語言、結構化流程圖、偽代碼和PAD圖等,其中最普遍的是流程圖。偽代碼(Pseudocode)是一種非正式的,類似于英語結構的,用于描述模塊結構圖的語言。以特定的圖形符號加上說明,表示算法的圖,稱為流程圖或框圖。使用圖形表示算法的思路是一種極好的方法,因為千言萬語不如一張圖。而自然語言描述是最易學的算法描述方法但由于描述不清易有二義性。
2.(2019高一下·上海期中)以下流程圖違反了算法的哪項特征(  )。
A.該算法沒有數據輸入 B.該算法沒有輸出步驟
C.不符合算法的確定性特征 D.不符合算法的有窮性特征
【答案】D
【知識點】算法的常用表示方法
【解析】【解答】選項A:由流程圖知本流程圖先對s和i進行賦值可見有數據輸入,本項錯。選項B:由流程圖中最下面的框圖”輸出s“知該流程圖有數據輸出,本項錯。選項C:由流程圖知該算法的每個步驟都有操作即符合確定性原則,本項錯。選項D:由流程圖知在循環體內沒有改變i的值的語句使i值一直小于5退不出循環違背了算法有窮性原則,本項對。故答案選D。
【分析】本題考查的是算法的特征,一個算法應該具有以下五個重要的特征:1,有窮性(Finiteness):算法的有窮性是指算法必須能在執行有限個步驟之后終止;2,確切性(Definiteness):算法的每一步驟必須有確切的定義;3,輸入項(Input):一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定出了初始條件;4,輸出項(Output):一個算法有一個或多個輸出,以反映對輸入數據加工后的結果。沒有輸出的算法是毫無意義的;5,可行性(Effectiveness):算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。
3.(2019高一下·上海期中)我國古代科學家祖沖之提出了圓周率的計算方法。為把圓周率的近似值3.14159存入變量pi中,在VB中定義變量的正確語句是(  )。
A.Dim pi As Integer B.Dim pi As Long
C.Dim pi As Double D.Dim pi(7)As Double
【答案】C
【知識點】常量、變量及變量的賦值
【解析】【解答】選項A: Dim pi As Integer 的含義為定義變量pi為一個整數,而pi代表圓周率為一個小數,本項錯。選項B: Dim pi As Long 的含義為定義變量pi為一個長整型,而pi代表圓周率為一個小數,本項錯。選項C: Dim pi As Double的含義為定義變量pi為一個雙精度型,雙精度型可以為小數本項對。選項D:Dim pi(7)As Double 的含義是定義一個有8個元素(從p(0)到p(7))的雙精度數組,而圓周率為一個小數不需要使用8個元素來表示,本項錯。故答案選C。
【分析】本題考查的是定義變量語句和數據類型。VB的變量定義可以使用dim、public、static和private來定義,可以定義私有變量、共公變量和靜態變量,其中dim和private作用相同,在定義變量時可以使用as來說明變量的類型,常見的數據類型有long、integer、single、double、string、boolean等。
4.(2019高一下·上海期中)兩個存儲單元的存放內容如圖所示。以下敘述正確的是(  )
A.a是變量名,True是常量 B.a、b、True都是變量名
C.a、b、12345都是常量 D.True是變量名,a、b都是常量
【答案】A
【知識點】常見數據類型、數組
【解析】【解答】由圖可知,a、b為變量名,而true、12345為變量a和b的值為常量,故選項A正確,選項B中true為變量名錯誤,選項C中a、b為常量錯誤,選項D中true為變量名、a、b為常量都錯誤。故答案選A。
【分析】本題考查的是使用框圖來表示變量名和變量的值。一般情況下使用框圖表示一塊內存,框圖外為該塊內存的標識符即變量名,框圖內為該塊內存存儲的數據即變量的值。
5.(2019高一下·上海期中)以下不適合使用解析算法求解的問題是(  )。
A.已知三角形的底邊和高,求三角形的面積
B.已知兩個整數a和b,求它們的最大公約數
C.已知兩個電阻的阻值,求它們并聯后的總阻值
D.已知兩點坐標,求兩點之間的距離
【答案】B
【知識點】解析算法及程序實現
【解析】【解答】選項A:已經知道三角形的底和高可以使用三角形面積公式計算出它的面積,可以使用解析算法求解。選項B:已知兩個整數求它們的公約數時需從2開始到兩個數最小的數為止作為除數,兩個數做被除數一個一個進行檢測找出最大的能除盡兩個數的數,可以使用窮舉法求解而不適合解析法。選項C:已知兩個電阻的阻值,求并聯后的總阻值可以使用用并聯電路求電阻的公式求解,適用于解析法。選項D:已知兩點坐標可以使用公式求出兩點間的距離,本項可以使用解析法求解。故答案選B。
【分析】本題考查的是解析算法的特點。所謂解析法(analysis algorithm)是指用解析的方法找出表示問題的前提條件與結果之間關系的數學表達式,并通過表達式的計算來實現問題求解。
6.(2019高一下·上海期中)數組d中存放了一組數據如表所示。采用選擇排序對這組數據進行遞增次序排序。第二遍加工過程中,進行數據交換的數組元素是(  )
d[1] d[2] d[3] d[4] d[5] d[6] d[7] d[8]
70 84 85 73 81 71 66 80
A.d[2]與d[1] B.d[2]與d[3] C.d[2]與d[7] D.d[2]與d[8]
【答案】C
【知識點】排序算法及程序實現
【解析】【解答】由圖可知第一輪排序是將d[7]和d[1]交換,交換后的次序為66、84、85、73、81、71、70、80,第二輪將70和84交換,即將d[2]和d[7]進行交換,交換后的次序為66、70、85、73、81、71、84、80。故答案選C。
【分析】本題考查的是選擇排序法。選擇排序法的基本思想:第1輪,在待排序記錄r[1]~r[n]中選出最小的記錄,將它與r[1]交換;第2輪,在待排序記錄r[2]~r[n]中選出最小的記錄,將它與r[2]交換;以此類推,第i輪在待排序記錄r[i]~r[n]中選出最小的記錄,將它與r[i]交換,使有序序列不斷增長直到全部排序完畢。
7.(2019高一下·上海期中)數組a中存放了一批數據如下表,現采用對分查找方式在這批數據中查找“zhu”,以下說法正確的是(  )。
a(1) a(2) a(3) a(4) a(5) a(6) a(7)
hou ji long ma niu she tu
A.無法進行對分查找,因為這批數據還沒排好序
B.依次被比較的數據是“ma”,“she”,“tu”
C.無法進行查找操作, 因為這批數據中沒有“zhu”
D.依次被比較的數據是“ma”,“ji“,“hou”
【答案】B
【知識點】查找算法及程序實現
【解析】【解答】選項A:由圖可知該數組已經按第一個字母的升序進行了排序可以使用對分查找法,本項錯。選項B:”zhu“的首字母為”z“大于該數組中的所有元素,所以使用對分法排序時一直調整數組下限值,第一次查找的中值為(1+7)\2=4,即比較a(4),第二次查找中值為(5+7)\2=6,即比較a(6),第三次查找的中值為(7+7)\2=7,即對比a(7),故本項對。選項C:沒有找到不等于不能查找,查無此數據也是一種查找結果,本項錯。選項D:由選項B知道依次對比的數據為a(4)、a(6)和a(7),即比較”ma“、”she“和”tu“,本項錯。故答案選B。
【分析】本題考查的是對分法查找數據的方法,對分法查找過程是先將一個數列放于一個有序數組中,然后比較中間數組元素的值與要查找的值,或中間數組的值比要查找的值大,則在前半個數組中查找,若中間數組的值比要查找的值小則在后半個數組中查找。查找方法仍是比較中間數組元素的值和要查找的值。以此類推直到查到或下限大于了上限(沒查找)為止。
8.(2019高一下·上海期中)數組a的初始值如表所示,以下流程圖描述的算法執行結果是(  )
d[1] d[2] d[3] d[4] d[5] d[6] d[7] d[8]
-10 0 1 3 4 6 9 10
A.0 B.1 C.10 D.-10
【答案】A
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖知,先對t和i進行賦值0和1,然后判斷i的值是否小于等于7且t值是否等于0,在t值小于等于7且t值為0時執行循環,否則如果i值大于7或t值不等于0時退出循環并輸出t值,在循環體中判斷數組元素是否小于前面的元素,如小于后面的元素值則將i值增1否則將t值變為1,由給出的數組d的各素值知該數組成升序排列即每個元素的值都小于其后的元素,故循環終了i值為8,t值始終為0。故答案選A。
【分析】本題考查的是使用流程圖來表示算法以及升序數組的判斷。流程圖是一種用規定的圖形、指向線及文字說明來準確表示算法的圖形,具有直觀、形象的特點,能清楚地展現算法的邏輯結構。流程圖使用標準的框圖符號繪制,框圖一般按從上到下、從左到右的方向畫,除了判斷框外,程序框的符號只有一個進入點和一個退出點,而判斷框則具有一個進入點和多個退出點。判斷一個數組是否為升序數組時可以使用循環比較前后兩個數組元素的值,如果出現一個元素的值小于了后面數組元素的值則終止循環,最后比較循環變量的值和數組最大下標值,如果循環變量值大于了最大下標值則該數組為升序數組否則不是。
9.(2019高一下·上海期中)若依次輸入12、6,運行以下VB程序的結果是(  )
Dim a as string, b as string
a=inputbox(“a=”)
b=inputbox(“b=”)
if a>b then
a=a+b
else
b=b+a
endif
print a+b
A.24 B.30 C.1226 D.12612
【答案】D
【知識點】算法的控制結構;常量、變量及變量的賦值
【解析】【解答】本題程序分析如下:
Dim a as string, b as string ‘定義字符串變量a和b
a=inputbox(“a=”) ‘通過輸入對話框輸入變量a的值
b=inputbox(“b=”) ‘通過輸入對話框輸入變量b的值
if a>b then ‘如果a的值大于b的值則進行如下處理
a=a+b ‘將a值和b值合并為一個字符串并賦給變量a
else ‘否則將作如下處理
b=b+a ‘將b值和a值合并為一個字符串并賦給變量b
endif ‘結束條件判斷
print a+b ‘顯示a字符串和b字符串合并后的字符串
由以上分析知a=”12“,b=”6“,a是小于b的(因為”1“<"6"),故b=”6“+”12"="612"
最后顯示a+b的值,vcb“12”+“612”的值。故答案選D。
【分析】本題考查的是雙分支選擇結構以及字符串的“+”運算。雙分支選擇結構由then和else兩個分支可以根據條件進行選擇一個分支進行執行,如果條件為真則執行then后面的語句,如果條件為假則執行else后面的語名。“+”在字符串中運算中與“&”號相同是將兩個字符串連接為一個字符串的運算,但如果+號的兩邊混合有數值型時則作算術運算。
10.(2019高一下·上海期中)如下圖1所示,最外圈方格中已有數字0。機器人小艾相據圖2所示的算法從數字1所在方格出發,沿箭頭所指方問前進,并在空白方格中寫入數字,方格x中寫入的數字是(  )。
A.16 B.15 C.12 D.11
【答案】A
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖知在表格中呈螺旋狀排序布局1-16個數字,整個表格數字布局如下:
0 0 0 0 0 0
0 1 2 3 4 0
0 12 13 14 5 0
0 11 16 15 6 0
0 10 9 8 7 0
0 0 0 0 0 0
由上圖可知x位于第四行第3列其單元格中的數據為16。故答案選A。
【分析】本題考查的是對流程圖的識讀以及選擇結構。流程圖是一種用規定的圖形、指向線及文字說明來準確表示算法的圖形,具有直觀、形象的特點,能清楚地展現算法的邏輯結構。流程圖使用標準的框圖符號繪制,框圖一般按從上到下、從左到右的方向畫,除了判斷框外,程序框的符號只有一個進入點和一個退出點,而判斷框則具有一個進入點和多個退出點。
二、填空題(每題3分,共18分)
11.(2019高一下·上海期中)VB表達式128mod 10\4的運算結果為   。
【答案】0
【知識點】運算符、基本運算與表達式
【解析】【解答】 128mod 10\4 =128 mod 2=0。故答案填寫:0。
【分析】本題考查的是求余運算符mod和整除運算符\的功能及優先級。mod為求余運算結果為兩數相除的余數,\為整除運算,結果為兩數相除的整數商。整除運算符的優先級高于求余運算,在兩者都出現且沒有括號時先計算整除運算后計算求余運算。
12.(2019高一下·上海期中)數組d的初始值如下表所示,則d[d[1]]+d[4]的值是   。
d[1] d[2] d[3] d[4] d[5] d[6]
2 4 6 8 10 12
【答案】12
【知識點】常見數據類型、數組
【解析】【解答】由圖可知d[1]=2,故 d[d[1]]+d[4] =d[2]+d[4]=4+8=12,故答案填寫:12。
【分析】本題考查的是使用元素的值作為下標。數組的下標可以由常數、變量、表達式來表示,其中變量也包括了數組元素,在使用變量和表達式表示下標時要計算出變量和表達式的值,最終仍是使用值來表示數組的下標。
13.(2019高一下·上海期中)下圖算法的運行結果為    。
【答案】8
【知識點】算法的常用表示方法;常見數據類型、數組
【解析】【解答】由流程圖知,根據a(3)和a(4)的值求a(5)到a(8)的值,從a(5)到a(8)其值為前面兩個元素值之和,故a(5)=a(3)+a(4)=2+3=5,a(6)=a(4)+a(5)=3+5=8,a(7)=a(5)+a(6)=5+8=13,a(8)=a(6)+a(7)=8+13=21,循環結束時a=8,故輸出a(m-2)即輸出a(6)的值。故答案填寫:8。
【分析】本題考查的是給數組進行賦值的方法。數組中元素較多時一個一個賦值使得賦值語句過多程序太復雜,如果數組元素的值是有規律的如本題從a(5)開始每個元素的值為前兩個元素值之和同可以使用循環語句加上算術表達式來賦值。在本題的循環使用的是直到型循環,直到型循環比當型循環多循環一次這是需要注意的。
14.(2019高一下·上海期中)下圖描述的算法執行結果是   。
【答案】15
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖可知s的數學算式為:s=1+(1+1)+(1+1+1)+(1+1+1+1)+(1+1+1+1+1)=1+2+3+4+5=15。故答案填寫:15。
【分析】本題考查的是使用流程圖來表示算法。在本題中先給s賦值為0,m賦值為1,在m小于等于5時進行循環,在循環體中,先將n值賦為1,然后判斷n值是否小于m值,如果小于等于m值則將s值增1,將n值增1,如果n值大于m值時退出內層循環將m值增1再去判斷m值是否超過5,如果沒有超過5則繼續執行循環,超過時輸出s值。
15.(2019高一下·上海期中)若輸入18,下圖的執行結果是   。
【答案】17
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖可知,先輸入x值,然后判斷x除以2的余數是否等于x除以2的整數商,如果相等則將x值增1否則將x值減少1 。x值為18,x mod 2=0,int(x/2)=9,兩者是不相等故交將x減少1。故答案填寫:17。
【分析】本題考查的是雙分支選擇結束,在雙分支選擇結構中會有兩個分支,兩個分支只能執行一個分支上的語句另一個分支上的語句跳過執行,至于執行哪條分支上的語句由條件來決定,條件語句的值為真執行一條分支,為假執行另一條分支。
16.(2019高一下·上海期中)下圖算法的執行結果是   。
【答案】False
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖可知先將t1的值賦為30,將t2的值賦為50,將t1和t2的大小比較結果賦給變量t,最后輸出t值,由于t1等于30小于t2的值50的,故t1>t2的值為假。故答案填寫:false。
【分析】本題考查的是順序結構以及對流程圖的識讀。順序結構就是按語句的順序一條一條執行即不跳過也不重復的結構。關系表達式是用關系運算符將兩個表達式連接起來的式式。關系運算符有“=”、“>"、"<"、"<>"、">="、"<="六個運算符。
三、算法綜合題(共6分)
17.(2019高一下·上海期中)設計算法,求同時滿足以下條件的所有四位正整數之和s。
①不大于n(n的值是由鍵盤輸入);
②能被9整除;
③十位數是2。
算法流程圖如圖所示:
(1)解決上述問題的算法屬于(  )
A.枚舉法 B.擂臺法 C.解析法 D.對分法
(2)判斷x能被9整除的設計思路是(  );取x十位上數字的設計思路是(  )。
A.x除以9的余數為0:先求x除以10的余數,再求該余數除以10的商
B.x除以9的商為0;先求x除以10的余數,再求該余數除以100的商
C.x除以9的商為0;先求x除以100的余數,再求該余數除以100的商
D.x除以9的余數為0;先求x除以100的余數,再求該余數除以10的商
(3)請完善劃線處內容,完成上述功能。
Dim n as Integer, x as Integer, s as long
s=0
n=InputBox(“輸入四位數上限值”)
For ⑴
If ⑵ and ⑶ Then
S=s+x
End
If
Next

⑴    ⑵    ⑶    ⑷   
【答案】(1)A
(2)D
(3)x=1000 to n;x mod 9= 0;(x mod 100) \10=2或者寫x\10 mod 10= 2;prints
【知識點】算法的常用表示方法;常量、變量及變量的賦值;枚舉算法及程序實現
【解析】【解答】(1)由流程圖可知循環變量為1000到輸入的四位數,在這些循環變量的值中如果符合條件就將循環變量的值進行累加,不符合條件就判斷下一個,本算法是在所有可能符合條件的數中時行一一檢測,該算法為枚舉算法。故答案選A。
(2)從x除以9的余數為0來判斷是否x能整除9是正確的而從商上為0判斷是錯誤的故可以排除選項B、C。而取x的十位上的數先將x除以10要其余數則只保留了x個位上的數,再除以10其商一定為0,故可以排除選項A,而選項Dx除以100后取其余數則為十位上的數和個位上的數,再除以10要其商結果為x十位上的數。故答案選D。
(3)本題程序分析如下:
Dim n as Integer, x as Integer, s as long ‘定義整型變量n、x和長整型變量s
s=0 ‘初始化變量s的值為0
n=InputBox(“輸入四位數上限值”) ‘使用輸入對話框輸入一個四位數并賦給變量n
For ① ‘ 使用x來控制循環,x的初值為最小的四位數1000,終值為輸入的四位數,步長為1,故本處答案應填寫: x=1000 to n
If ② and ③ Then ‘如果x能被9整除且其十位上的數為2時進行如下處理,故(2)處應填寫x mod 9=0或x/9=int(x/9),(3)處應填寫: (x mod 100) \10=2或者寫x\10 mod 10= 2
S=s+x ‘如果符合條件則將x累加到變量s中
End If ‘結束條件判斷
Next ‘結束循環
④ ‘最后輸出s的值,故本處答案應填寫:print s
由以上程序分析知,(1)處為使用x來控制循環,x的初值為最小的四位數1000,終值為輸入的四位數,步長為1,故本處答案應填寫: x=1000 to n。(2)(3)處為:如果x能被9整除且其十位上的數為2時進行如下處理,故(2)處應填寫x mod 9=0或x/9=int(x/9),(3)處應填寫: (x mod 100) \10=2或者寫x\10 mod 10= 2。(4)處為:最后輸出s的值,故本處答案應填寫:print s。
【分析】本題考查的是使用窮舉法計算符合條件的四位數之和。窮舉法又稱為枚舉法。枚舉法的本質就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個條件:(1)可預先確定候選答案的數量;(2)候選答案的范圍在求解之前必須有一個確定的集合。
四、算法設計題(共6分)
18.(2019高一下·上海期中)求20項的和。(最后結果四舍五入精確到0.01)
注:請書寫VB代碼,畫流程圖不得分。
【答案】s=0
‘累加器初值
k=1 ‘循環結構
do while k<= 20
x=1/(2*k-1) ‘項值推導
s=s+x ‘累加
k=k+1
loop
s=int(100*s+0.5) / 100 ‘四舍五入
prints ‘輸出結果
【知識點】解析算法及程序實現
【解析】【解答】由數學公式 知其分母為1、3、5、7是個等差數列,故可以使用循環變量來表示項數,使用一個變量來計算每項的值,使用累加器來計算整個表達式的值。故答案程序如下:
s=0 ‘給累加器s賦初值
k=1 ‘給循環變量賦初值
do while k<= 20 ‘在循環變量的值不超過20時進行循環
x=1/(2*k-1) ‘計算每個項的值,分母為等差數列其與項數k的關系為2*K-1,根據分數計算項數值
s=s+x ‘將項數的值累加到累加器s中
k=k+1 ‘循環變量的值增1
loop ‘結束循環
s=int(100*s+0.5) / 100 ‘將s值進行四舍五入
prints ‘輸出結果
【分析】本題考查的是程序設計。在進行程序設計時要遵循程序設計的步驟,利用計算機程序解決問題的基本過程一般可以分為五步,分別是分析問題、設計算法、編寫程序、調試運行、檢測結果。設計算法時一般使用流程圖來畫出解題步驟,再根據流程圖來編寫語句。
1 / 1上海市金山中學2019-2020學年高一下學期信息技術期中考試試卷 算法與程序設計部分
一、單選題(每題2分,共20分)
1.(2019高一下·上海期中)關于算法的表示方法,以下說法錯誤的是(  )。
A.目前常用的算法表示方法有自然語言描述、流程圖描述、偽代碼或程序設計語言描述
B.較之自然語言,偽代碼具有計算機程序設計語言敘述精確、無二義性的優點
C.較之流程圖和偽代碼,用自然語言描述可以減少歧義的產生
D.較之自然語言,用流程圖和偽代碼描述更為簡潔
2.(2019高一下·上海期中)以下流程圖違反了算法的哪項特征(  )。
A.該算法沒有數據輸入 B.該算法沒有輸出步驟
C.不符合算法的確定性特征 D.不符合算法的有窮性特征
3.(2019高一下·上海期中)我國古代科學家祖沖之提出了圓周率的計算方法。為把圓周率的近似值3.14159存入變量pi中,在VB中定義變量的正確語句是(  )。
A.Dim pi As Integer B.Dim pi As Long
C.Dim pi As Double D.Dim pi(7)As Double
4.(2019高一下·上海期中)兩個存儲單元的存放內容如圖所示。以下敘述正確的是(  )
A.a是變量名,True是常量 B.a、b、True都是變量名
C.a、b、12345都是常量 D.True是變量名,a、b都是常量
5.(2019高一下·上海期中)以下不適合使用解析算法求解的問題是(  )。
A.已知三角形的底邊和高,求三角形的面積
B.已知兩個整數a和b,求它們的最大公約數
C.已知兩個電阻的阻值,求它們并聯后的總阻值
D.已知兩點坐標,求兩點之間的距離
6.(2019高一下·上海期中)數組d中存放了一組數據如表所示。采用選擇排序對這組數據進行遞增次序排序。第二遍加工過程中,進行數據交換的數組元素是(  )
d[1] d[2] d[3] d[4] d[5] d[6] d[7] d[8]
70 84 85 73 81 71 66 80
A.d[2]與d[1] B.d[2]與d[3] C.d[2]與d[7] D.d[2]與d[8]
7.(2019高一下·上海期中)數組a中存放了一批數據如下表,現采用對分查找方式在這批數據中查找“zhu”,以下說法正確的是(  )。
a(1) a(2) a(3) a(4) a(5) a(6) a(7)
hou ji long ma niu she tu
A.無法進行對分查找,因為這批數據還沒排好序
B.依次被比較的數據是“ma”,“she”,“tu”
C.無法進行查找操作, 因為這批數據中沒有“zhu”
D.依次被比較的數據是“ma”,“ji“,“hou”
8.(2019高一下·上海期中)數組a的初始值如表所示,以下流程圖描述的算法執行結果是(  )
d[1] d[2] d[3] d[4] d[5] d[6] d[7] d[8]
-10 0 1 3 4 6 9 10
A.0 B.1 C.10 D.-10
9.(2019高一下·上海期中)若依次輸入12、6,運行以下VB程序的結果是(  )
Dim a as string, b as string
a=inputbox(“a=”)
b=inputbox(“b=”)
if a>b then
a=a+b
else
b=b+a
endif
print a+b
A.24 B.30 C.1226 D.12612
10.(2019高一下·上海期中)如下圖1所示,最外圈方格中已有數字0。機器人小艾相據圖2所示的算法從數字1所在方格出發,沿箭頭所指方問前進,并在空白方格中寫入數字,方格x中寫入的數字是(  )。
A.16 B.15 C.12 D.11
二、填空題(每題3分,共18分)
11.(2019高一下·上海期中)VB表達式128mod 10\4的運算結果為   。
12.(2019高一下·上海期中)數組d的初始值如下表所示,則d[d[1]]+d[4]的值是   。
d[1] d[2] d[3] d[4] d[5] d[6]
2 4 6 8 10 12
13.(2019高一下·上海期中)下圖算法的運行結果為    。
14.(2019高一下·上海期中)下圖描述的算法執行結果是   。
15.(2019高一下·上海期中)若輸入18,下圖的執行結果是   。
16.(2019高一下·上海期中)下圖算法的執行結果是   。
三、算法綜合題(共6分)
17.(2019高一下·上海期中)設計算法,求同時滿足以下條件的所有四位正整數之和s。
①不大于n(n的值是由鍵盤輸入);
②能被9整除;
③十位數是2。
算法流程圖如圖所示:
(1)解決上述問題的算法屬于(  )
A.枚舉法 B.擂臺法 C.解析法 D.對分法
(2)判斷x能被9整除的設計思路是(  );取x十位上數字的設計思路是(  )。
A.x除以9的余數為0:先求x除以10的余數,再求該余數除以10的商
B.x除以9的商為0;先求x除以10的余數,再求該余數除以100的商
C.x除以9的商為0;先求x除以100的余數,再求該余數除以100的商
D.x除以9的余數為0;先求x除以100的余數,再求該余數除以10的商
(3)請完善劃線處內容,完成上述功能。
Dim n as Integer, x as Integer, s as long
s=0
n=InputBox(“輸入四位數上限值”)
For ⑴
If ⑵ and ⑶ Then
S=s+x
End
If
Next

⑴    ⑵    ⑶    ⑷   
四、算法設計題(共6分)
18.(2019高一下·上海期中)求20項的和。(最后結果四舍五入精確到0.01)
注:請書寫VB代碼,畫流程圖不得分。
答案解析部分
1.【答案】C
【知識點】算法的常用表示方法
【解析】【解答】選項A:表示算法的方法有很多種,目前常用的有 自然語言描述、流程圖描述、偽代碼或程序設計語言描述等,本項對。選項B:偽代碼更接近于程序語言,表述更精確,而自然語言接近于人們書面語言有理解歧義即二義性,故本項對。選項C:自然語言接近于人們書面語言有理解歧義即二義性,而流程圖和偽代碼表述精確無二義性,本項錯。選項D: 較之自然語言,用流程圖和偽代碼描述更為精確簡潔無二義性,本項對。故答案選C。
【分析】本題考查的是使用各種表示方法描述算法的優缺點。算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統的方法描述解決問題的策略機制。描述算法的方法有多種,常用的有自然語言、結構化流程圖、偽代碼和PAD圖等,其中最普遍的是流程圖。偽代碼(Pseudocode)是一種非正式的,類似于英語結構的,用于描述模塊結構圖的語言。以特定的圖形符號加上說明,表示算法的圖,稱為流程圖或框圖。使用圖形表示算法的思路是一種極好的方法,因為千言萬語不如一張圖。而自然語言描述是最易學的算法描述方法但由于描述不清易有二義性。
2.【答案】D
【知識點】算法的常用表示方法
【解析】【解答】選項A:由流程圖知本流程圖先對s和i進行賦值可見有數據輸入,本項錯。選項B:由流程圖中最下面的框圖”輸出s“知該流程圖有數據輸出,本項錯。選項C:由流程圖知該算法的每個步驟都有操作即符合確定性原則,本項錯。選項D:由流程圖知在循環體內沒有改變i的值的語句使i值一直小于5退不出循環違背了算法有窮性原則,本項對。故答案選D。
【分析】本題考查的是算法的特征,一個算法應該具有以下五個重要的特征:1,有窮性(Finiteness):算法的有窮性是指算法必須能在執行有限個步驟之后終止;2,確切性(Definiteness):算法的每一步驟必須有確切的定義;3,輸入項(Input):一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定出了初始條件;4,輸出項(Output):一個算法有一個或多個輸出,以反映對輸入數據加工后的結果。沒有輸出的算法是毫無意義的;5,可行性(Effectiveness):算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。
3.【答案】C
【知識點】常量、變量及變量的賦值
【解析】【解答】選項A: Dim pi As Integer 的含義為定義變量pi為一個整數,而pi代表圓周率為一個小數,本項錯。選項B: Dim pi As Long 的含義為定義變量pi為一個長整型,而pi代表圓周率為一個小數,本項錯。選項C: Dim pi As Double的含義為定義變量pi為一個雙精度型,雙精度型可以為小數本項對。選項D:Dim pi(7)As Double 的含義是定義一個有8個元素(從p(0)到p(7))的雙精度數組,而圓周率為一個小數不需要使用8個元素來表示,本項錯。故答案選C。
【分析】本題考查的是定義變量語句和數據類型。VB的變量定義可以使用dim、public、static和private來定義,可以定義私有變量、共公變量和靜態變量,其中dim和private作用相同,在定義變量時可以使用as來說明變量的類型,常見的數據類型有long、integer、single、double、string、boolean等。
4.【答案】A
【知識點】常見數據類型、數組
【解析】【解答】由圖可知,a、b為變量名,而true、12345為變量a和b的值為常量,故選項A正確,選項B中true為變量名錯誤,選項C中a、b為常量錯誤,選項D中true為變量名、a、b為常量都錯誤。故答案選A。
【分析】本題考查的是使用框圖來表示變量名和變量的值。一般情況下使用框圖表示一塊內存,框圖外為該塊內存的標識符即變量名,框圖內為該塊內存存儲的數據即變量的值。
5.【答案】B
【知識點】解析算法及程序實現
【解析】【解答】選項A:已經知道三角形的底和高可以使用三角形面積公式計算出它的面積,可以使用解析算法求解。選項B:已知兩個整數求它們的公約數時需從2開始到兩個數最小的數為止作為除數,兩個數做被除數一個一個進行檢測找出最大的能除盡兩個數的數,可以使用窮舉法求解而不適合解析法。選項C:已知兩個電阻的阻值,求并聯后的總阻值可以使用用并聯電路求電阻的公式求解,適用于解析法。選項D:已知兩點坐標可以使用公式求出兩點間的距離,本項可以使用解析法求解。故答案選B。
【分析】本題考查的是解析算法的特點。所謂解析法(analysis algorithm)是指用解析的方法找出表示問題的前提條件與結果之間關系的數學表達式,并通過表達式的計算來實現問題求解。
6.【答案】C
【知識點】排序算法及程序實現
【解析】【解答】由圖可知第一輪排序是將d[7]和d[1]交換,交換后的次序為66、84、85、73、81、71、70、80,第二輪將70和84交換,即將d[2]和d[7]進行交換,交換后的次序為66、70、85、73、81、71、84、80。故答案選C。
【分析】本題考查的是選擇排序法。選擇排序法的基本思想:第1輪,在待排序記錄r[1]~r[n]中選出最小的記錄,將它與r[1]交換;第2輪,在待排序記錄r[2]~r[n]中選出最小的記錄,將它與r[2]交換;以此類推,第i輪在待排序記錄r[i]~r[n]中選出最小的記錄,將它與r[i]交換,使有序序列不斷增長直到全部排序完畢。
7.【答案】B
【知識點】查找算法及程序實現
【解析】【解答】選項A:由圖可知該數組已經按第一個字母的升序進行了排序可以使用對分查找法,本項錯。選項B:”zhu“的首字母為”z“大于該數組中的所有元素,所以使用對分法排序時一直調整數組下限值,第一次查找的中值為(1+7)\2=4,即比較a(4),第二次查找中值為(5+7)\2=6,即比較a(6),第三次查找的中值為(7+7)\2=7,即對比a(7),故本項對。選項C:沒有找到不等于不能查找,查無此數據也是一種查找結果,本項錯。選項D:由選項B知道依次對比的數據為a(4)、a(6)和a(7),即比較”ma“、”she“和”tu“,本項錯。故答案選B。
【分析】本題考查的是對分法查找數據的方法,對分法查找過程是先將一個數列放于一個有序數組中,然后比較中間數組元素的值與要查找的值,或中間數組的值比要查找的值大,則在前半個數組中查找,若中間數組的值比要查找的值小則在后半個數組中查找。查找方法仍是比較中間數組元素的值和要查找的值。以此類推直到查到或下限大于了上限(沒查找)為止。
8.【答案】A
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖知,先對t和i進行賦值0和1,然后判斷i的值是否小于等于7且t值是否等于0,在t值小于等于7且t值為0時執行循環,否則如果i值大于7或t值不等于0時退出循環并輸出t值,在循環體中判斷數組元素是否小于前面的元素,如小于后面的元素值則將i值增1否則將t值變為1,由給出的數組d的各素值知該數組成升序排列即每個元素的值都小于其后的元素,故循環終了i值為8,t值始終為0。故答案選A。
【分析】本題考查的是使用流程圖來表示算法以及升序數組的判斷。流程圖是一種用規定的圖形、指向線及文字說明來準確表示算法的圖形,具有直觀、形象的特點,能清楚地展現算法的邏輯結構。流程圖使用標準的框圖符號繪制,框圖一般按從上到下、從左到右的方向畫,除了判斷框外,程序框的符號只有一個進入點和一個退出點,而判斷框則具有一個進入點和多個退出點。判斷一個數組是否為升序數組時可以使用循環比較前后兩個數組元素的值,如果出現一個元素的值小于了后面數組元素的值則終止循環,最后比較循環變量的值和數組最大下標值,如果循環變量值大于了最大下標值則該數組為升序數組否則不是。
9.【答案】D
【知識點】算法的控制結構;常量、變量及變量的賦值
【解析】【解答】本題程序分析如下:
Dim a as string, b as string ‘定義字符串變量a和b
a=inputbox(“a=”) ‘通過輸入對話框輸入變量a的值
b=inputbox(“b=”) ‘通過輸入對話框輸入變量b的值
if a>b then ‘如果a的值大于b的值則進行如下處理
a=a+b ‘將a值和b值合并為一個字符串并賦給變量a
else ‘否則將作如下處理
b=b+a ‘將b值和a值合并為一個字符串并賦給變量b
endif ‘結束條件判斷
print a+b ‘顯示a字符串和b字符串合并后的字符串
由以上分析知a=”12“,b=”6“,a是小于b的(因為”1“<"6"),故b=”6“+”12"="612"
最后顯示a+b的值,vcb“12”+“612”的值。故答案選D。
【分析】本題考查的是雙分支選擇結構以及字符串的“+”運算。雙分支選擇結構由then和else兩個分支可以根據條件進行選擇一個分支進行執行,如果條件為真則執行then后面的語句,如果條件為假則執行else后面的語名。“+”在字符串中運算中與“&”號相同是將兩個字符串連接為一個字符串的運算,但如果+號的兩邊混合有數值型時則作算術運算。
10.【答案】A
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖知在表格中呈螺旋狀排序布局1-16個數字,整個表格數字布局如下:
0 0 0 0 0 0
0 1 2 3 4 0
0 12 13 14 5 0
0 11 16 15 6 0
0 10 9 8 7 0
0 0 0 0 0 0
由上圖可知x位于第四行第3列其單元格中的數據為16。故答案選A。
【分析】本題考查的是對流程圖的識讀以及選擇結構。流程圖是一種用規定的圖形、指向線及文字說明來準確表示算法的圖形,具有直觀、形象的特點,能清楚地展現算法的邏輯結構。流程圖使用標準的框圖符號繪制,框圖一般按從上到下、從左到右的方向畫,除了判斷框外,程序框的符號只有一個進入點和一個退出點,而判斷框則具有一個進入點和多個退出點。
11.【答案】0
【知識點】運算符、基本運算與表達式
【解析】【解答】 128mod 10\4 =128 mod 2=0。故答案填寫:0。
【分析】本題考查的是求余運算符mod和整除運算符\的功能及優先級。mod為求余運算結果為兩數相除的余數,\為整除運算,結果為兩數相除的整數商。整除運算符的優先級高于求余運算,在兩者都出現且沒有括號時先計算整除運算后計算求余運算。
12.【答案】12
【知識點】常見數據類型、數組
【解析】【解答】由圖可知d[1]=2,故 d[d[1]]+d[4] =d[2]+d[4]=4+8=12,故答案填寫:12。
【分析】本題考查的是使用元素的值作為下標。數組的下標可以由常數、變量、表達式來表示,其中變量也包括了數組元素,在使用變量和表達式表示下標時要計算出變量和表達式的值,最終仍是使用值來表示數組的下標。
13.【答案】8
【知識點】算法的常用表示方法;常見數據類型、數組
【解析】【解答】由流程圖知,根據a(3)和a(4)的值求a(5)到a(8)的值,從a(5)到a(8)其值為前面兩個元素值之和,故a(5)=a(3)+a(4)=2+3=5,a(6)=a(4)+a(5)=3+5=8,a(7)=a(5)+a(6)=5+8=13,a(8)=a(6)+a(7)=8+13=21,循環結束時a=8,故輸出a(m-2)即輸出a(6)的值。故答案填寫:8。
【分析】本題考查的是給數組進行賦值的方法。數組中元素較多時一個一個賦值使得賦值語句過多程序太復雜,如果數組元素的值是有規律的如本題從a(5)開始每個元素的值為前兩個元素值之和同可以使用循環語句加上算術表達式來賦值。在本題的循環使用的是直到型循環,直到型循環比當型循環多循環一次這是需要注意的。
14.【答案】15
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖可知s的數學算式為:s=1+(1+1)+(1+1+1)+(1+1+1+1)+(1+1+1+1+1)=1+2+3+4+5=15。故答案填寫:15。
【分析】本題考查的是使用流程圖來表示算法。在本題中先給s賦值為0,m賦值為1,在m小于等于5時進行循環,在循環體中,先將n值賦為1,然后判斷n值是否小于m值,如果小于等于m值則將s值增1,將n值增1,如果n值大于m值時退出內層循環將m值增1再去判斷m值是否超過5,如果沒有超過5則繼續執行循環,超過時輸出s值。
15.【答案】17
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖可知,先輸入x值,然后判斷x除以2的余數是否等于x除以2的整數商,如果相等則將x值增1否則將x值減少1 。x值為18,x mod 2=0,int(x/2)=9,兩者是不相等故交將x減少1。故答案填寫:17。
【分析】本題考查的是雙分支選擇結束,在雙分支選擇結構中會有兩個分支,兩個分支只能執行一個分支上的語句另一個分支上的語句跳過執行,至于執行哪條分支上的語句由條件來決定,條件語句的值為真執行一條分支,為假執行另一條分支。
16.【答案】False
【知識點】算法的常用表示方法;算法的控制結構
【解析】【解答】由流程圖可知先將t1的值賦為30,將t2的值賦為50,將t1和t2的大小比較結果賦給變量t,最后輸出t值,由于t1等于30小于t2的值50的,故t1>t2的值為假。故答案填寫:false。
【分析】本題考查的是順序結構以及對流程圖的識讀。順序結構就是按語句的順序一條一條執行即不跳過也不重復的結構。關系表達式是用關系運算符將兩個表達式連接起來的式式。關系運算符有“=”、“>"、"<"、"<>"、">="、"<="六個運算符。
17.【答案】(1)A
(2)D
(3)x=1000 to n;x mod 9= 0;(x mod 100) \10=2或者寫x\10 mod 10= 2;prints
【知識點】算法的常用表示方法;常量、變量及變量的賦值;枚舉算法及程序實現
【解析】【解答】(1)由流程圖可知循環變量為1000到輸入的四位數,在這些循環變量的值中如果符合條件就將循環變量的值進行累加,不符合條件就判斷下一個,本算法是在所有可能符合條件的數中時行一一檢測,該算法為枚舉算法。故答案選A。
(2)從x除以9的余數為0來判斷是否x能整除9是正確的而從商上為0判斷是錯誤的故可以排除選項B、C。而取x的十位上的數先將x除以10要其余數則只保留了x個位上的數,再除以10其商一定為0,故可以排除選項A,而選項Dx除以100后取其余數則為十位上的數和個位上的數,再除以10要其商結果為x十位上的數。故答案選D。
(3)本題程序分析如下:
Dim n as Integer, x as Integer, s as long ‘定義整型變量n、x和長整型變量s
s=0 ‘初始化變量s的值為0
n=InputBox(“輸入四位數上限值”) ‘使用輸入對話框輸入一個四位數并賦給變量n
For ① ‘ 使用x來控制循環,x的初值為最小的四位數1000,終值為輸入的四位數,步長為1,故本處答案應填寫: x=1000 to n
If ② and ③ Then ‘如果x能被9整除且其十位上的數為2時進行如下處理,故(2)處應填寫x mod 9=0或x/9=int(x/9),(3)處應填寫: (x mod 100) \10=2或者寫x\10 mod 10= 2
S=s+x ‘如果符合條件則將x累加到變量s中
End If ‘結束條件判斷
Next ‘結束循環
④ ‘最后輸出s的值,故本處答案應填寫:print s
由以上程序分析知,(1)處為使用x來控制循環,x的初值為最小的四位數1000,終值為輸入的四位數,步長為1,故本處答案應填寫: x=1000 to n。(2)(3)處為:如果x能被9整除且其十位上的數為2時進行如下處理,故(2)處應填寫x mod 9=0或x/9=int(x/9),(3)處應填寫: (x mod 100) \10=2或者寫x\10 mod 10= 2。(4)處為:最后輸出s的值,故本處答案應填寫:print s。
【分析】本題考查的是使用窮舉法計算符合條件的四位數之和。窮舉法又稱為枚舉法。枚舉法的本質就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個條件:(1)可預先確定候選答案的數量;(2)候選答案的范圍在求解之前必須有一個確定的集合。
18.【答案】s=0
‘累加器初值
k=1 ‘循環結構
do while k<= 20
x=1/(2*k-1) ‘項值推導
s=s+x ‘累加
k=k+1
loop
s=int(100*s+0.5) / 100 ‘四舍五入
prints ‘輸出結果
【知識點】解析算法及程序實現
【解析】【解答】由數學公式 知其分母為1、3、5、7是個等差數列,故可以使用循環變量來表示項數,使用一個變量來計算每項的值,使用累加器來計算整個表達式的值。故答案程序如下:
s=0 ‘給累加器s賦初值
k=1 ‘給循環變量賦初值
do while k<= 20 ‘在循環變量的值不超過20時進行循環
x=1/(2*k-1) ‘計算每個項的值,分母為等差數列其與項數k的關系為2*K-1,根據分數計算項數值
s=s+x ‘將項數的值累加到累加器s中
k=k+1 ‘循環變量的值增1
loop ‘結束循環
s=int(100*s+0.5) / 100 ‘將s值進行四舍五入
prints ‘輸出結果
【分析】本題考查的是程序設計。在進行程序設計時要遵循程序設計的步驟,利用計算機程序解決問題的基本過程一般可以分為五步,分別是分析問題、設計算法、編寫程序、調試運行、檢測結果。設計算法時一般使用流程圖來畫出解題步驟,再根據流程圖來編寫語句。
1 / 1

展開更多......

收起↑

資源列表

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 五常市| 栾川县| 吉安县| 方正县| 民和| 台北县| 九江市| 舒兰市| 闻喜县| 额尔古纳市| 广德县| 汾西县| 泽库县| 朝阳市| 遂宁市| 横峰县| 阿图什市| 南平市| 揭西县| 平武县| 隆安县| 天等县| 两当县| 德昌县| 文昌市| 三门峡市| 绵阳市| 阳东县| 肥东县| 酉阳| 富源县| 崇阳县| 庆城县| 泉州市| 延安市| 容城县| 霍林郭勒市| 洪江市| 万宁市| 开封县| 金华市|