<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            試題

            計算機三級《網絡技術》練習題與答案

            時間:2024-12-25 22:05:11 試題 我要投稿

            2016計算機三級《網絡技術》精選練習題與答案

              1.已知數據文件IN1.DAT中存有200個4位數,并已調用讀函數readDat()把這些數存入數組a中,請編制一函數jsVal( ),其功能是:如果4位數各位上的數字均是奇數,則統計出滿足此條件的個數cnt,并把這些4位數按從大到小的順序存入數組b中。最后調用函數writeDat()把結果cnt及數組b中符合條件的4位數輸出到OUT1.DAT文件。

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

              程序中已定義數組:a[200],b[200],已定義變量:cnt。

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

              #include

              #define MAX 200

              int a[MAX],b[MAX],cnt=0;

              void writeDat();

              void jsVal()

              {

              int i,j; /*定義循環控制變量*/

              int a1,a2,a3,a4; /*定義變量保存4位數的每位數字*/

              int temp; /*定義數據交換時的暫存變量*/

              for(i=0;i<200;i++) /*逐個取每一個4位數*/

              {

              a4=a[i]/1000; /*求4位數的千位數字*/

              a3=a[i]%1000/100; /*求4位數的百位數字*/

              a2=a[i]%100/10; /*求4位數的十位數字*/

              a1=a[i]%10; /*求4位數的個位數字*/

              if(a4%2!=0 && a3%2!=0 && a2%2!=0 && a1%2!=0)

              /*如果4位數各位上的數字均是奇數*/

              {

              b[cnt]=a[i]; /*將滿足條件的數存入數組b中*/

              cnt++; /*統計滿足條件的數的個數*/

              }

              }

              for(i=0;i

              for(j=i+1;j

              if(b[i]

              {

              temp=b[i];

              b[i]=b[j];

              b[j]=temp;

              }

              }

              void readDat()

              {

              int i;

              FILE *fp;

              fp=fopen("IN1.DAT","r");

              for(i=0;i

              fscanf(fp,"%d",&a[i]);

              fclose(fp);

              }

              void main()

              {

              int i;

              readDat();

              jsVal();

              printf("滿足條件的數=%d\n",cnt);

              for(i=0;i

              printf("%d\n",b[i]);

              printf("\n");

              writeDat();

              }

              void writeDat()

              {

              FILE *fp;

              int i;

              fp=fopen("out1.dat","w");

              fprintf(fp,"%d\n",cnt);

              for(i=0;i

              fprintf(fp,"%d\n",b[i]);

              fclose(fp);

              }

              2.已知IN2.DAT中存有200個4位數,并已調用讀函數readDat()把這些數存入數組a中,請編制一函數 jsVal(),其功能是:依次從數組a中取出一個數,如果該4位數連續大于該4位數以后的5個數且該數是奇數,則統計出滿足此條件的數的個數cnt,并把這些4位數按從小到大的順序存入數組b中,最后調用寫函數 writeDat() 把結果cnt及數組b中符合條件的4位數輸出到 OUT2.DAT文件中。

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

              程序中已定義數組:a[200],b[200],已定義變量:cnt。

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

              #include

              #define MAX 200

              int a[MAX], b[MAX], cnt = 0 ;

              void writeDat();

              void jsVal()

              {

              int i,j; /*定義循環控制變量*/

              int temp; /*定義數據交換是的暫存變量*/

              for(i=0;i

              if(a[i]%2!=0) /*如果當前數是奇數*/

              for(j=i+1;j<=i+5;j++) /*取該數后面的5個數進行比較*/

              {

              if(a[i]

              break; /*如果當前數不滿足比后面5個數都大的條件,則跳出循環*/

              else if(j==i+5) /*如果當前數比后面的5個數都大*/

              {

              b[cnt]=a[i]; /*將滿足條件的數存入數組b中*/

              cnt++; /*并統計滿足條件的數的個數*/

              }

              }

              for(i=0;i

              for(j=i+1;j

              if(b[i]>b[j])

              {

              temp=b[i];

              b[i]=b[j];

              b[j]=temp;

              }

              }

              void readDat()

              {

              int i ;

              FILE *fp;

              fp = fopen("IN2.DAT", "r") ;

              for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;

              fclose(fp) ;

              }

              void main()

              {

              int i ;

              readDat() ;

              jsVal() ;

              printf("滿足條件的數=%d\n", cnt) ;

              for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;

              printf("\n") ;

              writeDat() ;

              }

              void writeDat()

              {

              FILE *fp;

              int i ;

              fp = fopen("OUT2.DAT", "w") ;

              fprintf(fp, "%d\n", cnt) ;

              for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;

              fclose(fp) ;

              }

              3.已知在文件IN3.DAT中存有100個產品銷售記錄,每個產品銷售記錄由產品代碼dm(字符型4位)、產品名稱mc(字符型10位)、單價dj(整型)、數量sl(整型)、金額je(長整型)幾部分組成。其中:金額=單價×數量。函數ReadDat()的功能是讀取這100個銷售記錄并存入結構數組sell中。請編制函數SortDat(),其功能要求:按產品名稱從小到大進行排列,若產品名稱相同,則按金額從小到大進行排列,最終排列結果仍存入結構數組sell中,最后調用函數WriteDat()把結果輸出到文件OUT3.DAT中。

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

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

              #include

              #include

              #include

              #include

              #define MAX 100

              typedef struct

              {

              char dm[5] ; /*產品代碼 */

              char mc[11] ;/* 產品名稱 */

              int dj ; /* 單價 */

              int sl ; /* 數量 */

              long je ; /* 金額*/

              } PRO ;

              PRO sell [MAX] ;

              void ReadDat() ;

              void WriteDat() ;

              void SortDat()

              {

              int i,j; /*定義循環控制變量*/

              PRO temp; /*定義數據交換時的暫存變量(這里是PRO類型的結構體變量)*/

              for(i=0;i<99;i++) /*利用選擇法進行排序*/

              for(j=i+1;j<100;j++)

              if(strcmp(sell[i].mc,sell[j].mc)>0) /*按產品名稱從小到大進行排列*/

              {

              temp=sell[i];

              sell [i]=sell[j];

              sell[j]=temp;

              }

              else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若產品名稱相同*/

              if(sell[i].je>sell[j].je) /*則按金額從小到大進行排列*/

              {

              temp=sell[i];

              sell[i]=sell[j];

              sell[j]=temp;

              }

              }

              void main()

              {

              memset(sell, 0, sizeof(sell)) ;

              ReadDat() ;

              SortDat() ;

              WriteDat() ;

              }

              void ReadDat()

              {

              FILE *fp ;

              char str[80], ch[11] ;

              int i ;

              fp = fopen("IN3.DAT", "r") ;

              for (i = 0 ; i < 100 ; i++)

              {

              fgets(str, 80, fp) ;

              memcpy(sell[i].dm, str, 4) ;

              memcpy(sell[i].mc, str + 4, 10) ;

              memcpy(ch, str + 14, 4) ; ch[4] = 0 ;

              sell[i].dj = atoi(ch) ;

              memcpy(ch, str +18, 5) ; ch[5] = 0 ;

              sell[i].sl = atoi(ch) ;

              sell[i].je = (long)sell[i].dj * sell[i].sl;

              }

              fclose(fp) ;

              }

              void WriteDat()  {

              FILE *fp;

              int i ;

              fp = fopen("OUT3.DAT", "w") ;

              for(i = 0 ; i < 100 ; i++)

              {

              fprintf(fp, "%s %s %4d %5d %10ld\n", sell[i].dm, sell[i].mc, sell[i].dj,sell[i].sl, sell[i].je) ;

              }

              fclose(fp) ;

              }

              4.函數ReadDat()的功能是實現從文件ENG4.IN中讀取一篇英文文章,存入到字符串數組xx中。請編制函數encryptChar(),按給定的替代關系對數組xx中的所有字符進行替代,結果仍存入數組xx對應的位置上,最后調用函數WriteDat()把結果xx輸出到文件PS4.DAT中。

              替代關系:f(p)=p*11 mod 256(p是數組xx中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果計算后f(p)的值小于等于32或大于130,則該字符不變,否則將f(p)所對應的字符進行替代。

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

              原始數據文件存放的格式是:每行的寬度均小于80個字符。

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

              #include

              #include

              #include

              #include

              unsigned char xx[50][80] ;

              int maxline = 0 ;/* 文章的總行數 */

              int ReadDat(void) ;

              void WriteDat(void) ;

              void encryptChar()

              {

              int i,j; /*定義循環控制變量*/

              int str; /*存儲字符串的長度*/

              char ch; /*存儲當前取得的字符*/

              for(i=0;i

              {

              str=strlen(xx[i]); /*求得當前行的字符串長度*/

              for(j=0;j

              {

              ch=xx[i][j]*11%256;

              if(ch<=32 || ch>130)

              continue; /*如果計算后的值小于等于32或大于130,則該字符不變*/

              else

              xx[i][j]=ch; /*否則將所對應的字符進行替代*/

              }

              }

              }

              void main()

              {

              system("CLS");

              if(ReadDat())

              {

              printf("數據文件ENG4.IN不能打開!\n\007") ;

              return ;

              }

              encryptChar() ;

              WriteDat() ;

              }

              int ReadDat(void)

              {

              FILE *fp;

              int i = 0 ;

              unsigned char *p ;

              if((fp = fopen("ENG4.IN", "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 ;

              fp = fopen("PS4.DAT", "w") ;

              for(i = 0 ; i < maxline ; i++)

              {

              printf("%s\n", xx[i]) ;

              fprintf(fp, "%s\n", xx[i]) ;

              }

              fclose(fp) ;

              }

            【計算機三級《網絡技術》練習題與答案】相關文章:

            計算機三級《網絡技術》章節練習題與答案09-23

            2017計算機三級網絡技術練習題及答案08-09

            計算機三級網絡技術練習題及答案(精選6份)11-27

            計算機三級《網絡技術》練習題及答案(精選7份)04-01

            2016年計算機三級《網絡技術》練習題及答案09-14

            2017計算機三級《網絡技術》備考練習題及答案08-11

            計算機三級網絡技術試題及答案11-02

            2017計算機三級網絡技術備考練習題(附答案)10-22

            2017年計算機三級網絡技術強化練習題及答案06-17

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看