首頁 - 網(wǎng)校 - 萬題庫 - 直播 - 雄鷹網(wǎng)校 - 團購 - 書城 - ? - 學(xué)習(xí)通 - 導(dǎo)航 -
首頁網(wǎng)校萬題庫直播雄鷹網(wǎng)校團購書城?論壇實用文檔作文大全寶寶起名
2015中考
法律碩士
2015高考
MBA考試
2015考研
MPA考試
在職研
中科院
考研培訓(xùn)
專升本
自學(xué)考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點日語
職稱英語
口譯筆譯
申碩英語
零起點韓語
商務(wù)英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點英語
托?荚
托業(yè)考試
零起點法語
雅思考試
成人英語三級
零起點德語
等級考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計算機 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報 關(guān) 員
外 銷 員
價格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護士
會計從業(yè)資格
基金從業(yè)資格
統(tǒng)計從業(yè)資格
經(jīng)濟師
精算師
統(tǒng)計師
會計職稱
法律顧問
ACCA考試
初級會計職稱
資產(chǎn)評估師
高級經(jīng)濟師
注冊會計師
高級會計師
美國注冊會計師
審計師考試
國際內(nèi)審師
注冊稅務(wù)師
理財規(guī)劃師
一級建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價師
二級建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
注冊給排水
造價員考試
注冊計量師
環(huán)保工程師
化工工程師
暖通工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
消防工程師
監(jiān)理工程師
房地產(chǎn)估價
土地估價師
安全評價師
房地產(chǎn)經(jīng)紀(jì)人
投資項目管理師
環(huán)境影響評價師
土地登記代理人
寶寶起名
繽紛校園
實用文檔
入黨申請
英語學(xué)習(xí)
思想?yún)R報
作文大全
工作總結(jié)
求職招聘 論文下載 直播課堂
您現(xiàn)在的位置: 考試吧 > 計算機等級考試 > 計算機三級考試 > 信息管理 > 上機題庫 > 正文

2006年計算機等級考試三級上機題庫練習(xí)及答案(7)

本系列資料由"韜略宏智" 授權(quán)發(fā)布,任何網(wǎng)站不得轉(zhuǎn)載,否則追究法律責(zé)任。

第13題:

   函數(shù)ReadDat()實現(xiàn)從文件in13.dat中讀取一篇英文文章存入字符串?dāng)?shù)組xx中;請編制函數(shù)StrOR(),其函數(shù)的功能是:以行為單位依次把字符串中所有小寫字母o左邊的字符串內(nèi)容移到該串的右邊存放,然后把小寫字母o刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放,之后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件out13.dat中。
例如:原文:you can create an index on any field.
           you have the correct record.
     結(jié)果:n any field.Yu can create an index
          rd.yu have the correct rec
原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。
注意:部分源程序已經(jīng)給出。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
#include <stdio.h>
#include <string.h>
#include<conio.h>
char xx[50][80];
int maxline=0;                &nbs

【答案】
void StrOL(void)
{
int i,j,k,strl,l;char c;
for(i=0;i<maxline;i++)
for(j=0;j<strlen(xx[i]);j++)
{c=xx[i][j];
if((c>='A'&&c<='Z')||(c>='a'&&c<='z')||c==''||(c>='0'&&c<='9'));
else xx[i][j]=' ';
}
for(l=0;l<maxline;l++)
{
char ch[80]={0};
char pp[80]={0};
strl=strlen(xx[l]);
i=strl-1;
k=1;
while(1)
{while(((xx[l][i]>='a'&&xx[l][i]<='z')||(xx[l][i]>='A'&&xx[l][i]<='Z')||
(xx[l][i]>='0'&&xx[l][i]<='9'))&&i>=0)
{
for(j=k;j>=0;j--)
pp[j+1]=pp[j];
pp[0]=xx[l][i];
k++;i--;
}
strcat(ch,pp);
strcpy(pp,"");
k=1;
if(i==-1)break;
while((xx[l][i]<'A'||xx[l][i]>'z')&&(xx[l][i]<'0'||xx[l][i]>'9')&&i>=0)
{
for(j=k;j>=0;j--)
pp[j+1]=pp[j];
pp[0]=xx[l][i];
k++;i--;
}
strcat(ch,pp);
strcpy(pp,"");
k=0;
if(i==-1)
break;
}
strcpy(xx[l],ch);
}
}
【解析】
考點:(1)刪除字符串中的標(biāo)點符號;
(2)對刪除后的字符串重新進行排序。
本題的解題思路是:先找到并刪除每行字符串中的非英文字符,再從每行最后一個單詞開始,依次將每個單詞存入一個臨時數(shù)據(jù)中,然后將臨時數(shù)組連接起來,結(jié)果即實現(xiàn)將所有單詞倒排。刪除非英文字符時,可以通過將其賦值為空字符來實現(xiàn),連接臨時數(shù)組通過字符串連接函數(shù)strcat()來實現(xiàn)。本題在此類題目中屬于難度較大的一道,考生應(yīng)該對程序的核心算法多加分析。
程序的流程是:首先調(diào)用ReadDat()函數(shù),將數(shù)據(jù)讀入到數(shù)組xx中,然后調(diào)用StrOL()函數(shù)對數(shù)據(jù)進行處理,最后調(diào)用WriteDat()函數(shù),將結(jié)果輸出到文件out14.dat中。
在StrOL()函數(shù)中,首先采用兩重for循環(huán),將數(shù)組xx[i]中不是字母也不是空格的元素全部賦值為空字符,然后進入下面一層for循環(huán)(此處聲明了兩個字符型數(shù)組pp和ch,用于存入處理后的臨時數(shù)據(jù)),該層for循環(huán)在i=maxline,即訪問過所有行時結(jié)束。由于不確定循環(huán)的次數(shù),所以設(shè)定最外層while循環(huán)條件恒為真(非0即為真),在i=-1時通過break語句跳出循環(huán),程序直接進入內(nèi)嵌while循環(huán)中,本層while循環(huán)的功能是,從xx[l]數(shù)組,即文章的每一行中最后一個字符開始向前查找,每找到一個單詞就將其存入一個臨時數(shù)組中,最后按照找到單詞的先后順序?qū)⑴R時數(shù)組連接起來,并且各個單詞之間用空格分開。
在第二個while循環(huán)中,當(dāng)xx[l]數(shù)組中的元素為大寫字母或小寫字母且i>=0時進入for循環(huán),該循環(huán)體的功能是將pp數(shù)組中的元素依次向后移一位。然后從xx[l]數(shù)組中的最后一個元素開始,每次for循環(huán)結(jié)束后,就將其存入pp[0]中,然后k和i(由后向前)都指向下一個元素,重新進入到while循環(huán)當(dāng)中,本層while循環(huán)一直執(zhí)行到xx[l]數(shù)組中出現(xiàn)空格時結(jié)束。pp數(shù)組即為存放每一個單詞的臨時數(shù)組,再將pp數(shù)組的內(nèi)容存入ch數(shù)組中,ch數(shù)組為將各個單詞倒排的臨時數(shù)組。此時需用字符串連接函數(shù)strcat(),之后將pp數(shù)組置空。下一層while循環(huán)的條件為當(dāng)xx[l]數(shù)組中的元素不是大寫字母且i>=0時,進入內(nèi)嵌for循環(huán),該for循環(huán)的功能依然為將pp數(shù)組中的元素依次向右移一位。然后將xx[l]數(shù)組中的最后一個元素開始,每次for循環(huán)結(jié)束后,就將其存入pp[0]中,然后k和i(由后向前)都指向下一個元素,重新進入到while循環(huán)體中。本層while循環(huán)結(jié)束后,將pp數(shù)組連接在ch數(shù)組后,同時將pp數(shù)組置空,最外層while循環(huán)執(zhí)行到i=-1,即本行所有元素都訪問過后結(jié)束,字符串排序結(jié)束,最后將ch數(shù)組中的內(nèi)容拷貝到xx[l]數(shù)據(jù)中,for循環(huán)執(zhí)行到xx數(shù)組中的所有元素均被訪問過,然后退出循環(huán)體,StrOL()函數(shù)結(jié)束。

上一頁  1 2 3 4 
文章搜索
計算機等級考試欄目導(dǎo)航
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。
Copyright © 2004- 考試吧計算機等級考試網(wǎng) All Rights Reserved 
中國科學(xué)院研究生院權(quán)威支持(北京)
在線模擬試題
考證通關(guān)殺器
考試最新資訊
學(xué)
一次通關(guān)技巧