計算機三級考試《網絡技術》考前模擬題及答案
距離2016年3月計算機等級考試不到一周的時間,同學們都復習得怎么樣了呢?下面百分網小編為大家搜索整理了關于《網絡技術》考前模擬題及答案,歡迎參考練習,希望對大家備考有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!
1.函數ReadDat()的功能是實現從文件IN5.DAT中讀取一篇英文文章存入到字符串數組xx中。請編制函數ConvertCharA(),該函數的功能是:以行為單位把字符串中的所有小寫字母改寫成該字母的下一個字母,如果是字母z,則改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變。把已處理的字符串仍按行重新存入字符串數組xx中,最后調用函數WriteDat()把結果xx輸出到文件OUT5.DAT中。
例如,原文:Adb.Bcdza
abck.LLhj
結果:Aec.Bdeab
bcdl.LLik
原始數據文件存放的格式是:每行的寬度均小于80個字符,含標點符號和空格。
注意:部分源程序已給出。
請勿改動主函數main()、讀函數ReadDat()和寫函數WriteDat()的內容。
#include
#include
#include
char xx[50][80] ;
int maxline = 0 ;/* 文章的總行數 */
int ReadDat(void) ;
void WriteDat(void) ;
void ConvertCharA(void)
{
int i,j; /*定義循環控制變量*/
int str; /*存儲字符串的長度*/
for(i=0;i
{
str=strlen(xx[i]); /*求得當前行的字符串的長度*/
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; /*其他的小寫字母則改寫為該字母的下一個字母*/
}
}
void main()
{
system("CLS");
if(ReadDat())
{
printf("數據文件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個正整數,且每個數均在1000至9999之間。函數readDat()的功能是讀取這200個數存放到數組aa中。請編制函數jsSort(),該函數的功能是:要求按每個數的后3位的大小進行降序排列,將排序后的前10個數存入數組b中,如果數組b中出現后3位相等的數,則對這些數按原始4位數據進行升序排列。最后調用函數writeDat()把結果bb輸出到文件OUT6.DAT中。
例如:處理前 9012 5099 6012 7025 8088
處理后 5099 8088 7025 6012 9012
注意:部分源程序已給出。
請勿改動主函數main()、讀函數readDat()和寫函數writeDat()的內容。
#include
#include
#include
int aa[200], bb[10] ;
void readDat();
void writeDat();
void jsSort()
{
int i,j; /*定義循環控制變量*/
int temp; /*定義數據交換時的暫存變量*/
for(i=0;i<199;i++) /*用選擇法對數組進行排序*/
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位數相等*/
if(aa[i]>aa[j]) /*則要按原4位數的值進行升序排序*/
{
temp=aa[i];
aa[i]=aa[j];
aa[j]=temp;
}
}
for(i=0;i<10;i++) /*將排序后的前10個數存入數組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) ;
}
3.函數ReadDat( )的功能是實現從文件IN7.DAT中讀取一篇英文文章存入到字符串數組xx中。請編制函數SortCharD( ),該函數的功能是:以行為單位對字符按從大到小的順序進行排序,排序后的結果仍按行重新存入字符串數組xx中,最后調用函數WriteDat( )把結果xx輸出到文件OUT7.DAT中。
例如,原文:dAe,BfC
CCbbAA
結果:fedCBA,
bbCCAA
原始數據文件存放的格式是:每行的寬度均小于80個字符,含標點符號和空格。
注意:部分源程序已給出。
請勿改動主函數main( )、讀函數ReadDat( )和寫函數WriteDat( )的內容。
#include
#include
#include
char xx[50][80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void SortCharD()
{
int i,j,k; /*定義循環控制變量*/
int str; /*存儲字符串的長度*/
char temp; /*定義數據交換時的暫存變量*/
for (i=0;i
{
str=strlen(xx[i]); /*求得當前行的字符串長度*/
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("數據文件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個候選人進行選舉,現有一個100條記錄的選票數據文件IN8.DAT,其數據存放的格式是每條記錄的長度均為10位,第一位表示第一個人的選中情況,第二位表示第二個人的選中情況,依次類推。每一位內容均為字符0或1,1表示此人被選中,0表示此人未被選中,若一張選票選中人數小于等于5個人時則被認為是無效的選票。給定函數ReadDat()的功能是把選票數據讀入到字符串數組xx中。請編制函數CountRs()來統計每個人的選票數并把得票數依次存入yy[0]到yy[9]中,最后調用函數WriteDat()把結果yy輸出到文件OUT8.DAT中。
注意:部分源程序已給出。
請勿改動主函數main()、讀函數ReadDat()和寫函數WriteDat()的內容。
#include
#include
char xx[100][11];
int yy[10];
int ReadDat(void);
void WriteDat(void);
void CountRs(void)
{
int i,j; /*定義循環控制變量*/
int cnt; /*用來存儲每張選票中選中人數,以判斷選票是否有效*/
for(i=0;i<10;i++) /*初始化數組yy*/
yy[i]=0;
for(i=0;i<100;i++) /*依次取每張選票進行統計*/
{
cnt=0; /*初始化計數器變量*/
for(j=0;j<10;j++) /*統計每張選票的選中人數cnt*/
if(xx[i][j]=='1')
cnt++;
if(cnt>5) /*當cnt值大于5時為有效選票*/
{
for(j=0;j<10;j++) /*統計有效選票*/
if(xx[i][j]=='1')
yy[j]++;
}
}
}
void main()
{
int i;
for (i=0; i<10; i++)
yy[i] = 0;
if(ReadDat())
{
printf("選票數據文件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個人的選票數=%d\n", i+1, yy[i]);
}
fclose(fp);
}
【計算機三級考試《網絡技術》考前模擬題及答案】相關文章:
2016計算機三級考試《網絡技術》考前模擬題及答案05-25
計算機三級考試《網絡技術》模擬題及答案01-02
計算機三級網絡技術模擬題及答案03-15
計算機三級《網絡技術》考前沖刺試題及答案07-18
計算機三級考試網絡技術考前測試05-17
計算機三級考試《網絡技術》精選試題及答案08-09