試題三:函數(shù)READDAT()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請(qǐng)編制函數(shù)SORTCHARA(),其函數(shù)功能是:以行為單位對(duì)字符按從小到大的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組XX中,最后調(diào)用函數(shù)WRITEDAT()把結(jié)果XX輸出到文件OUT1.DAT .
例:原文:dAe,BfC.
CCbbAA
結(jié)果:,.ABCdef
AACCbb
原始數(shù)據(jù)文件存放的格式是: 每行的寬度均小于80個(gè)字符, 含標(biāo)點(diǎn)符號(hào)和空格。
注意: 部分源程序存放在PROG1.C中。
請(qǐng)勿改動(dòng)主函數(shù)main( )、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
-----------------
PROG1.C
#include
#include
#include
char xx[50][80] ;
int maxline = 0 ; /* 文章的總行數(shù) */
int ReadDat(void) ;
void WriteDat(void) ;
void ConvertCharA(void)
{
}
void main()
{ clrscr() ;
if(ReadDat()) {
printf("數(shù)據(jù)文件IN.DAT不能打開(kāi)!\n\007") ;
return ;
}
ConvertCharA();
WriteDat() ;
system("pause");
}
int ReadDat(void)
{ FILE *fp ; int i = 0 ; char *p ;
if((fp = fopen("IN.DAT", "r")) == NULL) return 1 ;
while(fgets(xx[i], 80, fp) != NULL) {
p = strchr(xx[i], '\n') ;
if(p) *p = 0 ; i++ ;
}
maxline = i ; fclose(fp) ; return 0 ;
}
void WriteDat(void)
{
FILE *fp ; int i ;
clrscr() ;
fp = fopen("OUT1.DAT", "w") ;
for(i = 0 ; i < maxline ; i++) {
printf("%s\n", xx[i]) ;
fprintf(fp, "%s\n", xx[i]) ;
}
fclose(fp) ;
}
/*標(biāo)準(zhǔn)答案*/
void ConvertCharA(void)
{int I,j,k,strl;
char ch;
for(I=0;I {strl=strlen(xx[I]); for(j=0;j for(k=j+1;k if(xx[I][j]>xx[I][k]) {ch=xx[I][j]; xx[I][j]=xx[I][k]; xx[I][k]=ch;} } }
2010年計(jì)算機(jī)等考三級(jí)網(wǎng)絡(luò)技術(shù)歷年考點(diǎn)知識(shí)
計(jì)算機(jī)等級(jí)考試三級(jí)網(wǎng)絡(luò)技術(shù)六套全真模擬題
2010年計(jì)算機(jī)等考三級(jí)網(wǎng)絡(luò)技術(shù)知識(shí)點(diǎn)筆記匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |