四季教育編程STEAM科普:這些藍(lán)橋杯易錯題我賭你會做錯!
Scratch
【消除字母】:
具體要求:
(1)點擊綠旗,角色、背景如圖所示:
(創(chuàng)建一個字母表,并存入26個字母)

(2) 等待1秒,阿拉蕾說:“請輸入一個字母”,舞臺下方出現(xiàn)詢問框;

(3)當(dāng)在詢問框中輸入一個字母表中存在的字母,等待1秒,阿拉蕾將此字母和它的前兩項與后兩項字母說出,然后從字母表中刪除這五個字母;
(列表第一項的前一項是列表的最后一項,列表最后一項的后一項是第一項)
例如:輸入C,阿拉蕾說:“刪除ABCDE”后,列表中的這五個字母刪除

例如:輸入F,阿拉蕾說:“刪除YZFGH”后,列表中的這五個字母刪除

(4)當(dāng)詢問框中輸入一個字母表中不存在的字母后,阿拉蕾說:“輸入錯誤”;

(5)重復(fù)執(zhí)行2)3)4)步驟,當(dāng)字母表中的字母不足5個時,程序結(jié)束。
【答案解析】:
1. 初始化字母表
先創(chuàng)建一個列表,將其命名為字母表,再創(chuàng)建一個變量[gf]2022[/gf]宇母,將其初始值沒設(shè)置為-ABCDEFCHUKLMNCPORSTUWXYZ,然后使用循環(huán),將每個字符依次取出并存到列表中。

2.查找連續(xù)5個字母
根據(jù)前面的思路分析,當(dāng)輸入一個字母表中的字母時,先搜索該字母的前兩位,將其保存到臨時列表中。在向前查找的時候,有可能剛好是列表的第一項,此時需要將其設(shè)置為列表的最后一項,這部分的代碼如下:

然后,我們將當(dāng)前項對應(yīng)的字母加入到臨時列表中,代碼如下:

同理,在查找下一項的時候,有可能是列表的最后一項,此時需要將其設(shè)置為列表的第一項,其代碼如下:

如此一來,我們就可以找到要刪除的5個字母了,不過需要注意它們的順序,比如輸入字母C,執(zhí)行上述代碼,臨時列表中的字母為:

實際上,此時阿拉蕾說的是“刪除ABCDE”,所以在說話的時候,需要將前面兩個字符的順序?qū)φ{(diào)一下,代碼如下:

代碼比較簡單,說明兩點:
1).此處使用了交換算法,需要借助一個臨時變量;
2).在Scratch中,列表作為整體使用的時候,是將列表中的每一項連接起來,因此我們也就不需要再循環(huán).逐個取出每個字母進(jìn)行連接操作了;
將上述代碼組合起來,并作為一個新的自制積木,代碼如下:

如此一來,需要刪除的5個字母就已經(jīng)找到并存入到臨時列表了。
3. 刪除字母
有了臨時列表,刪除字母的邏輯就非常簡單了,每次取出臨時列表中的第一項,再到字母表中找到該字母的編號,將其刪除即可,同時將臨時列表中的第一項刪除即可。
將這個操作重復(fù)5次即可,對應(yīng)的代碼如下:

根據(jù)題目的要求,使用上面的自制積木和核心代碼,編寫主程序如下:

Python
【題目描述】:
(注.input()輸入函數(shù)的括號中不允許添加任何信息)
1.編程實現(xiàn):
在一個神奇空間里有N個房間,房間從1到N編號,每個房間可能有一個或多個傳送門,每個傳送門都有一個編號,如果相同編號的傳送門同時出現(xiàn)在多個房間中,表示這些房間可以互通。
給定兩個房間的編號A和B,請找出從房間A到達(dá)房間B最少需要經(jīng)過幾個傳送門。
例如:N=3,3個房間中傳送門的編號分別為:
房間1:1、 4、6;
房間2:2、3、4、8;
房間3:3、6、9。
其中房間1和房間2互通,共用4號傳送門;房間1和房間3互通,共用6號傳送門;房間2和房間3互通,共用3號傳送門;當(dāng)A=1,B=2, 從房間1到達(dá)房間。
2.共有兩種路線:
路線1:從房間1通過4號傳送門進(jìn)入房間2,共經(jīng)過1個傳送門;
路線2:從房間1通過6號傳送門進(jìn)入房間3,再從房間3通過3號傳送門進(jìn)入房間2,共經(jīng)過2個傳送門;故從房間1到達(dá)房間2最少需要經(jīng)過1個傳送門。
輸入描述
第一行輸入一個正整數(shù)N(2<n<20),表示房間數(shù)量< span="">
接下來輸入N行,每行包含多個正整數(shù)(1≤正整數(shù)≤100),第2行到第N+1行依次表示1到N號房間內(nèi)所有傳送門的編號,正整數(shù)之間以一個英文逗號隔開最后一行輸入兩個正整數(shù)A和B (1≤AN,1≤BN,且A+B),表示兩個房間的編號,正整數(shù)之間以一個英文逗號隔開
輸出描述
輸出一個整數(shù),表示從房間A到達(dá)房間B最少需要經(jīng)過幾個傳送門,如果房間A不能到達(dá)房間B,則輸出-1
樣例輸入
3
1,4,6
2,3,4,8
3,6,9
1,2
樣例輸出
1
【參考答案】:

C++
【數(shù)字游戲】
老師給出了一組數(shù),要求小藍(lán)對這組數(shù)進(jìn)行調(diào)整,調(diào)整的規(guī)則如下:
1. 第1次,從這組數(shù)中選出一個最小的數(shù),把它調(diào)整為和第二小的數(shù)一樣大;
2. 第2次,再從這組數(shù)中選出一個最大的數(shù),把它調(diào)整為和第二大的數(shù)一樣大;
3. 重復(fù)執(zhí)行1、2步驟;
4. 當(dāng)這組數(shù)中所包含的不同的數(shù)少于3個時,結(jié)束調(diào)整。
現(xiàn)在給定了一組數(shù),請幫小藍(lán)編寫程序計算出總共的調(diào)整次數(shù),以及調(diào)整結(jié)束時這組數(shù)中的最小數(shù)和最大數(shù)。
例1:當(dāng)這組數(shù)是2 2 2 2時,這組數(shù)中所包含的不同的數(shù)少于3個(只有2這一種數(shù)),無需調(diào)整,最后輸出:0 2 2
例2:當(dāng)這組數(shù)是1 3 4 2時,調(diào)整過程如下:
1. 先將這組數(shù)中最小的數(shù)1,改成2,這組數(shù)變?yōu)椋? 3 4 2
2. 再將這組數(shù)中最大的數(shù)4,改成3,這組數(shù)變?yōu)椋? 3 3 2
這時,這組數(shù)中只包含2、3兩個數(shù)了,滿足規(guī)則4,調(diào)整結(jié)束,總共調(diào)整了2次,故最后輸出:2 2 3
輸入描述
第一行輸入一個正整數(shù)N(3≤N≤1000000),表示這組數(shù)中數(shù)的個數(shù)
第二行輸入N個正整數(shù)(1≤正整數(shù)≤1000000),正整數(shù)之間用一個空格隔開
輸出描述
輸出一行,包含三個整數(shù),分別是總的調(diào)整次數(shù)、調(diào)整結(jié)束時的最小值和最大值,整數(shù)之間用一個空格隔開
樣例輸入
1 3 4 2
樣例輸出
2 2 3
【參考答案】

看完易錯題還是不理解如何解析題目
做出正確答案?