<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 試題

    3月三級網絡技術上機題及答案

    時間:2025-05-18 23:31:35 試題 我要投稿
    • 相關推薦

    2016年3月三級網絡技術上機題及答案

      1.函數ReadDat( )的功能是實現從文件IN73.DAT中讀取一篇英文文章存入到字符串數組xx中。請編制函數SortCharA( ),該函數的功能是:以行為單位對字符按從小到大的順序進行排序,排序后的結果仍按行重新存入字符串數組xx中。最后調用函數WriteDat( )把結果xx輸出到文件OUT73.DAT中。

      例如,原文:dAe,BfC

      CCbbAA

      結果:ABCdef

      AACCbb

      原始數據文件存放的格式是:每行的寬度均小于80個字符,含標點符號和空格。

      注意:部分源程序已給出。

      請勿改動主函數main( )、讀函數ReadDat( )和寫函數WriteDat( )的內容。

      試題程序:

      #include

      #include

      #include

      char xx[50][80];

      int maxline=0;

      int ReadDat(void);

      void WriteDat(void);

      void SortCharA()

      {

      }

      void main()

      {

      system("CLS");

      if (ReadDat())

      {

      printf("數據文件IN73.DAT不能打開!n07");

      return;

      }

      SortCharA();

      WriteDat();

      }

      int ReadDat(void)

      {

      FILE *fp;

      int i=0;

      char *p;

      if((fp=fopen("IN73.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("OUT73.DAT","w");

      for(i=0;i

      {

      printf("%sn",xx[i]);

      fprintf(fp,"%sn",xx[i]);

      }

      fclose(fp);

      }

      【答案】

      void SortCharA()

      {

      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]>xx[i][k])

      {

      temp=xx[i][j];

      xx[i][j]=xx[i][k];

      xx[i][k]=temp;

      }

      }

      }

      【解析】本題主要考查數組的訪問及排序問題。

      通過雙重循環結構逐行獲取字符進行處理,首先使用字符串處理函數strlen()來求出每一行的字符串長度。然后運用選擇法逐行對字符按照從小到大的順序進行排序。

      2.編寫一個函數findStr( ),該函數統計一個長度為2的字符串在另一個字符串中出現的次數。例如,假定輸入的字符串為"asd asasdfg asd as zx67 asd mklo",子字符串為"as",函數返回值是6。

      函數ReadWrite( )的功能是實現從文件in68.dat中讀取兩個字符串,并調用函數findStr(),最后把結果輸出到文件out68.dat中。

      注意:部分源程序已給出。

      請勿改動主函數main() 和其他函數中的任何內容,僅在函數 findStr()的花括號中填入你所編寫的若干語句。

      試題程序:

      #include

      #include

      #include

      void ReadWrite();

      int findStr(char *str,char *substr)

      {

      }

      void main()

      {

      char str[81],substr[3];

      int n;

      system("CLS");

      printf("輸入原字符串:");

      gets(str);

      printf("輸入子字符串:");

      gets(substr);

      puts(str);

      puts(substr);

      n=findStr(str,substr);

      printf("n=%dn",n);

      ReadWrite();

      }

      void ReadWrite()

      {

      char ch,str[81],substr[3];

      int n,len,i=0;

      FILE *rf,*wf;

      rf=fopen("in68.dat","r");

      wf=fopen("out68.dat","w");

      while(i<>

      {

      fgets(str,80,rf);

      fgets(substr,10,rf);

      len=strlen(substr)-1;

      ch=substr[len];

      if(ch=='n'||ch==0x1a)

      substr[len]=0;

      n=findStr(str,substr);

      fprintf(wf,"%dn",n);

      i++;

      }

      fclose(rf);

      fclose(wf);

      }【答案】

      int findStr(char *str,char *substr)

      {

      int n=0; /*定義計數器變量,統計出現次數*/

      char *p,*r; /*定義指針變量來分別指向兩個字符串*/

      while(*str) /*如果字符串沒有結束,則一直循環下去*/

      {

      p=str; /*指針p指向字符串首地址*/

      r=substr; /*指針r指向子字符串首地址*/

      while(*r) /*若子字符串沒有結束,則循環繼續*/

      if(*r==*p)

      /*如果子字符串的第一個字符等于字符串中的該字符,則繼續比較下一個字符*/

      {

      r++;

      p++;

      }

      else

      break; /*否則退出循環*/

      if(*r=='') /*如果子字符串在字符串中出現了一次*/

      n++; /*則n加1,進行統計*/

      str++; /*指向字符串中的下一個字符*/

      }

      return n; /*返回統計結果n*/

      }

      【解析】本題主要考查了指針的相關操作。

      首先,通過外層的while循環取字符串的每一個字符,取完字符串的所有字符之后,循環才會終止。用兩個字符型指針分別指向兩個字符串。逐個將字符串的字符跟子字符串的字符對比,如果相等,則兩個指針都自加1,分別指向兩個串的下一個字符。若不相等,則主串的指針加1,子串的指針重新指向起始位置,繼續比較下一個字符。

    【3月三級網絡技術上機題及答案】相關文章:

    2016最新三級網絡技術上機題及答案05-06

    2016年三級網絡技術上機題及答案02-28

    2016計算機三級網絡技術上機題及答案07-28

    2017計算機三級《網絡技術》上機操作題及答案07-20

    2016計算機考試三級網絡技術上機題及答案03-07

    2016最新三級網絡技術上機試題及答案02-20

    2016全國三級網絡技術上機試題及答案06-05

    計算機三級網絡技術上機題庫及答案05-13

    2016年3月計算機三級網絡技術上機題及答案12-22

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人