<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 職稱考試

    計算機軟考程序員模擬試題

    時間:2025-03-03 22:35:46 職稱考試 我要投稿
    • 相關推薦

    2016年計算機軟考程序員模擬試題

      2016年計算機軟件水平測試一年有兩次考試機會,同學們參考了嗎?下面百分網小編為大家分享的是計算機軟考程序員模擬試題,希望對大家備考有所幫助!

    2016年計算機軟考程序員模擬試題

      ●試題一

      閱讀下列函數說明和C代碼,把應填入其中n處的字句寫在答卷的對應欄內。

      【函數1.1說明】

      函數strcpy(char*to,char*from)將字符串from復制到字符串to。

      【函數1.1】

      void strcpy(char*to,char*from)

      {while( (1) );}

      【函數1.2說明】

      函數merge(int a[ ],int n,int b[ ],int m,int *c)是將兩個從小到大有序數組a和b復制合并出一個有序整數序列c,其中形參n和m分別是數組a和b的元素個數。

      【函數1.2】

      void merge(int a[ ],int n,int b[ ],int m,int *c)

      { int i,j;

      for(i=j=0;i

      *c++=a[i]

      while( (2) )*c++=a[i++];

      while( (3) )*c++=b[j++];

      }

      【函數1.3說明】

      遞歸函數sum(int a[ ],int n)的返回值是數組a[ ]的前n個元素之和。

      【函數1.3】

      int sum(int a[ ],int n)

      { if(n>0)return (4) ;

      else (5) ;

      }

      ●試題二

      閱讀下列函數說明和C代碼,將應填入(n)處的字句寫在答題紙的對應欄內。

      【說明】

      該程序運行后,輸出下面的數字金字塔

      【程序】

      #include

      main ()

      {char max,next;

      int i;

      for(max=′1′;max<=′9′;max++)

      {for(i=1;i<=20- (1) ;++i)

      printf(" ");

      for(next= (2) ;next<= (3) ;next++)

      printf("%c",next);

      for(next= (4) ;next>= (5) ;next--)

      printf("%c",next);

      printf("\n");

      }

      }

      ●試題三

      閱讀下列函數說明和C代碼,將應填入(n)處的字句寫在答題紙的對應欄內。

      【說明】

      函數diff的功能是:根據兩個由整數(都大于-32768)按升序構成的單鏈表L1和L2(分別由A,B指向)構造一個單鏈表L3(由*r指向),要求L3中的所有整數都是L1,并且不是L2中的整數,還要求L3中的所有整數都兩兩不等。

      【函數】

      #include

      C.h>

      typedef struct node{

      int d;

      struct node *next

      }Node;

      void diff(Node *A,Node *B,Node **r)

      {

      int lastnum;

      Node*p;

      *r=NULL;

      if(!A)return;

      while( (1) )

      if(A->dd)

      {

      lastnum=A->d;

      p=(Node*)malloc(sizeof(Node));

      p->d=lastnum;

      p->next=*r; (2) ;

      do

      A=A->next;

      while( (3) );

      }

      else if(A->d>B->d)

      B=B->next;

      else{

      (4) ;

      lastnum=A->d;

      while (A && A->d==lastnum)A=A->next;

      }

      while(A)

      {

      lastnum=A->d;

      p=(Node*)malloc(sizeof(Node));

      p->d=lastnum;

      (5) ;

      *r=p;

      while (A && A->d==lastnum) A=A->next;

      }

      }

      ●試題四

      閱讀下列程序說明和C代碼,將應填入(n)處的字句寫在答題紙的對應欄內。

      【說明】

      本程序從若干個原始文件合并成的合并文件中恢復出其中一個或全部原始文件。所有文件均作為二進制文件進行處理。合并文件中先順序存儲各原始文件,然后順序存儲各原始文件的控制信息,即文件名、文件長度和在合并文件中的位置(偏移量 )。其結構為:

      typedef struct{char fname [256]/*原始文件名*/

      long length;/*原始文件長度(字節數)*/

      long offset;/*原始文件在合并文件中的位置(偏移量)*/

      }FileInfo;

      在合并文件最后存儲如下一個特殊的標志信息作為合并文件的結束標記:

      FileInfo EndF1ag={"Combined File",0,_offset};

      其中_offset是第一個原始文件的控制信息在合并文件中的位置(偏移量)。

      啟動本程序的命令行的格式是:

      程序名合并文件名[原始文件名]

      如果不指定原始文件名,默認恢復合并文件中的所有原始文件。

      程序中涉及的部分文件操作的庫函數簡要說明如下:

      int fread (void *buffer,int size,int count,FILE *fbin):從二進制文件流fbin中讀取count塊長度為size字節的數據塊到buffer指向的存儲區。返回值為實際讀取的數據塊數。

      int fwrite(void *buffer,int size,int count,FILE *fbin):各參數和返回值的意義與fread相同,但對文件進行寫操作。

      int fseek(FILE *fbin,long offset,int position):將文件流fbin的讀/寫位置以position為基準移動offset字節。position的值可以是SEEK_SET(文件頭),SEEK_CUR(當前位置),SEEK_END(文件尾);offset為正,表示向文件尾方向移動,為負表示向文件頭方向移動,為零表示到基準位置。

      long ftell(FILE *fbin):返回文件流fbin的當前讀/寫位置(相對于文件頭的偏移量)。上述偏移量均以字節為單位,即偏移字節數。

      【程序】

      #include

      #include

      typedef struct{char fname[256];long length;long offset;

      }FileInfo;

      void copyfile(FILE *fin,FILE *fout,int fsize)

      {char buf[1024];int siz=1024;

      while(fsize !=0){/*每次復制siz個字節,直至復制完fsize個字節*/

      if(siz >fsize) (1) ;

      fread(buf,1,siz,fin);fwrite(buf,1,siz,fout);

      fsize= (2) ;}

      }

      int dofile(FILE *fin,FileInfo *inp)

      { long offset;

      FILE *fout;

      if((fout=fopen(inp->fname,"wb"))==NULL){

      printf("創建文件錯誤:%s\n",inp->fname);

      return 1;

      }

      offset= (3) ;/*保留合并文件讀/寫位置*/

      fseek( (4) );/*定位于被恢復文件首*/

      copyfile(fin,fout,inp->length);

      fclose(fout);

      printf("\n---文件名:%\n文件長:%1d.

      \n",inp->fname,inp->length);

      (5) ;/*恢復合并文件讀/寫位置*/

      return 0;

      }

      int main(int argc,char *argv[])

      {FileInfo finfo;

      char fname[256];FILE *fcmbn;

      if(argc<2){printf("輸入合并文件名:");scanf("%s",fname);}

      else strcpy(fname,argv[1]);

      if((fcmbn=fopen(fname,"rb"))==NULL){

      printf("文件打開錯誤:%s\n",fname);return 1;

      }

      fseek(fcmbn,-sizeof(FileInfo),SEEK_END);/*定位于合并文件末尾的標志信息*/

      fread(&finfo,1,sizeof(FileInfo),fcmbn);

      if(finfo.length!=0 || strcmp(finfo.fnane,"CombinedFile")){

      printf("指定的文件不是合法的合并文件\n");

      fclose(fcmbn);return 2;

      }

      fseek(fcmbn,finfo.offset,SEEK_SET);/*定位于首個原始文件的控制信息*/

      for(;;){/*恢復一個(argc>2)或全部(argc=2)原始文件*/

      fread(&finfo,1,sizeof(FileInfo),fcmbn);

      if(finfo.length==0)break;

      if(argc>2 && strcmp(finfo.fname,argv[2]))continue;

      if(dofile(fcmbn,&finfo)!=0)break;

      }

      fcolse(fcmbn);return 0;

      }

    【計算機軟考程序員模擬試題】相關文章:

    2016年計算機軟考網絡管理員模擬試題03-20

    計算機四級軟測模擬試題及答案02-28

    2016計算機三級軟測模擬試題及答案06-21

    軟考程序員輔導:程序員C語言新人常見問題04-19

    java程序員認證模擬試題及解析06-18

    駕考科四模擬試題及答案03-29

    2017中考英語模擬試題05-23

    2017中考語文模擬試題02-11

    最新駕考科目四模擬試題08-15

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