點(diǎn)擊查看2016計(jì)算機(jī)三級網(wǎng)絡(luò)技術(shù)精選試題匯總
1.函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件IN5.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中。請編制函數(shù)ConvertCharA(),該函數(shù)的功能是:以行為單位把字符串中的所有小寫字母改寫成該字母的下一個(gè)字母,如果是字母z,則改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變。把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT5.DAT中。
例如,原文:Adb.Bcdza
abck.LLhj
結(jié)果:Aec.Bdeab
bcdl.LLik
原始數(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 ;/* 文章的總行數(shù) */
int ReadDat(void) ;
void WriteDat(void) ;
void ConvertCharA(void)
{
int i,j; /*定義循環(huán)控制變量*/
int str; /*存儲字符串的長度*/
for(i=0;i
{
str=strlen(xx[i]); /*求得當(dāng)前行的字符串的長度*/
for(j=0;j
if(xx[i][j]>='a' && xx[i][j]<='z') /*如果是小寫字母*/
if(xx[i][j]=='z')
xx[i][j]='a'; /*如果是小寫字母z,則改寫成字母a*/
else
xx[i][j]+=1; /*其他的小寫字母則改寫為該字母的下一個(gè)字母*/
}
}
void main()
{
system("CLS");
if(ReadDat())
{
printf("數(shù)據(jù)文件IN5.DAT不能打開!\n\007") ;
return ;
}
ConvertCharA() ;
WriteDat() ;
}
int ReadDat(void)
{
FILE *fp ;
int i =0 ;
char *p ;
if((fp = fopen("IN5.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 ;
system("CLS");
fp = fopen("OUT5.DAT", "w") ;
for(i = 0 ; i < maxline ; i++)
{
printf("%s\n", xx[i]) ;
fprintf(fp, "%s\n", xx[i]) ;
}
fclose(fp) ;
}
2.在文件IN6.DAT中有200個(gè)正整數(shù),且每個(gè)數(shù)均在1000至9999之間。函數(shù)readDat()的功能是讀取這200個(gè)數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),該函數(shù)的功能是:要求按每個(gè)數(shù)的后3位的大小進(jìn)行降序排列,將排序后的前10個(gè)數(shù)存入數(shù)組b中,如果數(shù)組b中出現(xiàn)后3位相等的數(shù),則對這些數(shù)按原始4位數(shù)據(jù)進(jìn)行升序排列。最后調(diào)用函數(shù)writeDat()把結(jié)果bb輸出到文件OUT6.DAT中。
例如:處理前 9012 5099 6012 7025 8088
處理后 5099 8088 7025 6012 9012
注意:部分源程序已給出。
請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。
#include
#include
#include
int aa[200], bb[10] ;
void readDat();
void writeDat();
void jsSort()
{
int i,j; /*定義循環(huán)控制變量*/
int temp; /*定義數(shù)據(jù)交換時(shí)的暫存變量*/
for(i=0;i<199;i++) /*用選擇法對數(shù)組進(jìn)行排序*/
for(j=i+1;j<200;j++)
{
if(aa[i]%1000
{
temp=aa[i];
aa[i]=aa[j];
aa[j]=temp;
}
else if(aa[i]%1000==aa[j]%1000) /*如果后3位數(shù)相等*/
if(aa[i]>aa[j]) /*則要按原4位數(shù)的值進(jìn)行升序排序*/
{
temp=aa[i];
aa[i]=aa[j];
aa[j]=temp;
}
}
for(i=0;i<10;i++) /*將排序后的前10個(gè)數(shù)存入數(shù)組b中*/
bb[i]=aa[i];
}
void main()
{
readDat() ;
jsSort() ;
writeDat() ;
}
void readDat()
{
FILE *in ;
int i ;
in = fopen("IN6.DAT", "r") ;
for(i = 0 ; i < 200 ; i++) fscanf(in, "%d,", &aa[i]);
fclose(in) ;
}
void writeDat()
{
FILE *out ;
int i ;
out = fopen("OUT6.DAT", "w") ;
system("CLS");
for (i = 0 ; i < 10 ; i++)
{
printf("i=%d,%d\n", i + 1, bb[i]) ;
fprintf(out, "%d\n", bb[i]) ;
}
fclose(out) ;
}
相關(guān)推薦:
各地2016年全國計(jì)算機(jī)等級考試費(fèi)用匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |