日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

历届试题 拼音字母

發布時間:2023/12/13 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 历届试题 拼音字母 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【編程題】(滿分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++標準)

思路:就是根據用戶輸入的每個漢字和給定的23個漢字對比,求出該漢字大致所處的位置,進而得到對應的首字母,該題關鍵就是對漢字的切割,用到substr()函數。每個漢字的字節數為2.

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 string a[23]={"啊","芭","擦","搭","蛾","發","噶","哈","擊","喀","垃","媽","拿","哦","啪","期","然","撒","塌","挖","昔","壓","匝"};
 4 int aa[23]={0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,22,23,24,25};
 5 string array[100]; 
 6 int compare(string str)
 7 {
 8     for(int i=0;i<22;i++){
 9         if(a[i]<=str&&a[i+1]>str){
10             return aa[i];
11         }
12     }
13     return aa[22];
14 }
15 main()
16 {
17     
18      int n;
19      cin >> n;
20      for(int i=0;i<n;i++){
21          cin >>array[i];
22      }
23      for(int i=0;i<n;i++){
24          string c=array[i];
25          for(int j=0;j<array[i].length();j+=2){
26              string d= c.substr(j,2);
27              cout << (char)('A'+compare(d));
28          }
29          cout <<  endl;
30      }
31     return 0;
32 }

注釋:substr是C++語言函數,主要功能是復制子字符串,要求從指定位置開始,并具有指定的長度。

總結

以上是生活随笔為你收集整理的历届试题 拼音字母的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。