藍橋杯 「拼音字母」

2021-07-31 04:19:43 字數 1909 閱讀 8505

【程式設計題】(滿分19分)

在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟體中,輸入: 「bj」就可以定位到「北京」。怎樣在自己的軟體中實現這個功能呢?問題的關鍵在於:對每個漢字必須能計算出它的拼音首字母。

gb2312漢字編碼方式中,一級漢字的3755個是按照拼音順序排列的。我們可以利用這個特徵,對常用漢字求拼音首字母。

gb2312編碼方案對每個漢字採用兩個位元組表示。第乙個位元組為區號,第二個位元組為區中的偏移號。為了能與已有的ascii編碼相容(中西文混排),區號和偏移編號都從0xa1開始。

我們只要找到拼音a,b,c,...x,y,z 每個字母所對應的gb2312編碼的第乙個漢字,就可以定位所有一級漢字的拼音首字母了(不考慮多音字的情況)。下面這個表給出了前述資訊。請你利用該錶編寫程式,求出常用漢字的拼音首字母。

a 啊 b0a1

b 芭 b0c5

c 擦 b2c1

d 搭 b4ee

e 蛾 b6ea

f 發 b7a2

g 噶 b8c1

h 哈 b9fe

j 擊 bbf7

k 喀 bfa6

l 垃 c0ac

m 媽 c2e8

n 拿 c4c3

o 哦 c5b6

p 啪 c5be

q 期 c6da

r 然 c8bb

s 撒 c8f6

t 塌 cbfa

w 挖 cdda

x 昔 cef4

y 壓 d1b9

z 匝 d4d1

【輸入、輸出格式要求】

使用者先輸入乙個整數n (n<100),表示接下來將有n行文字。接著輸入n行中文串(每個串不超過50個漢字)。

程式則輸出n行,每行內容為使用者輸入的對應行的漢字的拼音首字母。

字母間不留空格,全部使用大寫字母。

例如:使用者輸入:

3

大家愛科學

北京天安門廣場

軟體大賽

則程式輸出:
djakx

bjtamgc

rjds

【注意】

請仔細除錯!您的程式只有能執行出正確結果的時候才有機會得分!

在評卷時使用的輸入資料與試卷中給出的例項資料可能是不同的。

請把所有函式寫在同乙個檔案中,除錯好後,拷貝到【考生資料夾】下對應題號的「解答.txt」中即可。

相關的工程檔案不要拷入。

源**中不能使用諸如繪圖、win32api、中斷呼叫、硬體操作或與作業系統相關的api。

允許使用stl類庫,但不能使用mfc或atl等非ansi c++標準的類庫。

例如,不能使用cstring型別(屬於mfc類庫),不能使用randomize, random函式(不屬於ansi c++標準)

分析:這道題乍一看感覺挺難,仔細讀題可以發現其實很簡單,只要把輸入的字串分出每個漢字,與字母表首個漢字進行比對,若某個字母首個漢字大於它,則該字母的前乙個字母為對應漢字的首字母。

# include 

#include

char pinyin[24][3]=;

char zimu[24]=;

char p[101][101];

char temp[3];

void search()

}if(i==24)

printf("z");

}void main()

while(kfor(int j=0;j<101;j+=2)

printf("\n");

k++;

}}

【注】每個漢字占用兩個位元組,以z開頭的漢字特殊處理

藍橋杯 拼音字母

在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟體中,輸入 bj 就可以定位到 北京 怎樣在自己的軟體中實現這個功能呢?問題的關鍵在於 對每個漢字必須能計算出它的拼音首字母。gb2312漢字編碼方式中,一級漢字的3755個是按照拼音順序排列的。我們可以利用這個特徵,對常用...

《拼音字母》 藍橋杯複試試題

程式設計題 滿分19分 在非常多軟體中。輸入拼音的首寫字母就能夠高速定位到某個詞條。比方,在鐵路售票軟體中,輸入 bj 就能夠定位到 北京 如何在自己的軟體中實現這個功能呢?問題的關鍵在於 對每乙個漢字必須能計算出它的拼音首字母。gb2312漢字編碼方式中。一級漢字的3755個是依照拼音順序排列的。...

12 3 拼音字母

在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟體中,輸入 bj 就可以定位到 北京 怎樣在自己的軟體中實現這個功能呢?問題的關鍵在於 對每個漢字必須能計算出它的拼音首字母。gb2312漢字編碼方式中,一級漢字的3755個是按照拼音順序排列的。我們可以利用這個特徵,對常用...