3.函數(shù)ReadDat( )的功能是實(shí)現(xiàn)從文件IN7.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中。請編制函數(shù)SortCharD( ),該函數(shù)的功能是:以行為單位對字符按從大到小的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat( )把結(jié)果xx輸出到文件OUT7.DAT中。
例如,原文:dAe,BfC
CCbbAA
結(jié)果:fedCBA,
bbCCAA
原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號和空格。
注意:部分源程序已給出。
請勿改動主函數(shù)main( )、讀函數(shù)ReadDat( )和寫函數(shù)WriteDat( )的內(nèi)容。
#include
#include
#include
char xx[50][80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void SortCharD()
{
int i,j,k; /*定義循環(huán)控制變量*/
int str; /*存儲字符串的長度*/
char temp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/
for (i=0;i
{
str=strlen(xx[i]); /*求得當(dāng)前行的字符串長度*/
for(j=0;j
for(k=j+1;k
if(xx[i][j]
{
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}
void main()
{
system("CLS");
if (ReadDat())
{
printf("數(shù)據(jù)文件IN7.DAT不能打開!\n\007");
return;
}
SortCharD();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
char *p;
if((fp=fopen("IN7.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()
{
FILE *fp;
int i;
system("CLS");
fp=fopen("OUT7.DAT","w");
for(i=0;i
{
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}
4.對10個(gè)候選人進(jìn)行選舉,現(xiàn)有一個(gè)100條記錄的選票數(shù)據(jù)文件IN8.DAT,其數(shù)據(jù)存放的格式是每條記錄的長度均為10位,第一位表示第一個(gè)人的選中情況,第二位表示第二個(gè)人的選中情況,依次類推。每一位內(nèi)容均為字符0或1,1表示此人被選中,0表示此人未被選中,若一張選票選中人數(shù)小于等于5個(gè)人時(shí)則被認(rèn)為是無效的選票。給定函數(shù)ReadDat()的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請編制函數(shù)CountRs()來統(tǒng)計(jì)每個(gè)人的選票數(shù)并把得票數(shù)依次存入yy[0]到y(tǒng)y[9]中,最后調(diào)用函數(shù)WriteDat()把結(jié)果yy輸出到文件OUT8.DAT中。
注意:部分源程序已給出。
請勿改動主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)WriteDat()的內(nèi)容。
#include
#include
char xx[100][11];
int yy[10];
int ReadDat(void);
void WriteDat(void);
void CountRs(void)
{
int i,j; /*定義循環(huán)控制變量*/
int cnt; /*用來存儲每張選票中選中人數(shù),以判斷選票是否有效*/
for(i=0;i<10;i++) /*初始化數(shù)組yy*/
yy[i]=0;
for(i=0;i<100;i++) /*依次取每張選票進(jìn)行統(tǒng)計(jì)*/
{
cnt=0; /*初始化計(jì)數(shù)器變量*/
for(j=0;j<10;j++) /*統(tǒng)計(jì)每張選票的選中人數(shù)cnt*/
if(xx[i][j]=='1')
cnt++;
if(cnt>5) /*當(dāng)cnt值大于5時(shí)為有效選票*/
{
for(j=0;j<10;j++) /*統(tǒng)計(jì)有效選票*/
if(xx[i][j]=='1')
yy[j]++;
}
}
}
void main()
{
int i;
for (i=0; i<10; i++)
yy[i] = 0;
if(ReadDat())
{
printf("選票數(shù)據(jù)文件IN8.DAT不能打開!\007\n");
return;
}
CountRs();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i;
char tt[13];
if((fp = fopen("IN8.DAT", "r")) == NULL)
return 1;
for (i = 0; i < 100; i++)
{
if(fgets(tt, 13, fp) == NULL)
return 1;
memcpy(xx[i], tt, 10);
}
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE *fp;
int i;
fp = fopen("OUT8.DAT", "w");
for(i = 0; i < 10; i++)
{
fprintf(fp, "%d\n", yy[i]);
printf("第%d個(gè)人的選票數(shù)=%d\n", i+1, yy[i]);
}
fclose(fp);
}
附件下載:計(jì)算機(jī)三級網(wǎng)絡(luò)技術(shù)精選備考試題(2)
相關(guān)推薦:
各地2016年全國計(jì)算機(jī)等級考試費(fèi)用匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |