<source id="v77gz"></source>
    <u id="v77gz"><p id="v77gz"></p></u>

      <samp id="v77gz"></samp>

      <var id="v77gz"><td id="v77gz"><ins id="v77gz"></ins></td></var>

      <video id="v77gz"></video>
      <source id="v77gz"></source>
    1. 江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
      2019年春江蘇省計算機二級C語言真題

       第一部分 公共基礎

      第二部分  C語言

      1(單選題):

      若有聲明int a=3,b=4,c=5;,則執行語句a>b?a--:(b>c?b++:(c/=2)); printf("%d\n",a+b+c);時輸出_____9_____。

       

      9 

      9.5 

      11 

      13 

       

       

      2 (填空題 <3> ) :

      以下程序運行時輸出結果中第一行是3  ,第二行是  5   ,第三行是4  。

      #include

      typedef struct node

      {

          int  value;

          struct node *next;

      } NODE;

      void Max(NODE *head)

      {

          NODE  *p,*first,*second;

          first=second=NULL; 

          p=head;

          while(p!=NULL)

          {

              if(first==NULL||p->value>=first->value)

              {

                  second=first;

                  first=p;

              }

              else if(second==NULL||p->value>=second->value) 

                  second=p;

              p=p->next;

          }

           printf("%d\n%d", first->value, second->value);

      }

      int main( )

      {

          NODE a[]={{3,&a[1]},{1,&a[2]},{5,&a[3]},{4,NULL}},*head=&a[0];

          printf("%d\n", head->value);

          Max(head);

          return 0;

      }

       

      3(單選題):

      若有聲明“char s1[80]="good ",s2[80]="luck ",s3[80]="to you";”,則執行語句

      “strcpy(s1+5,strcat(s2,s3)); printf("%s",s1);”時輸出____ good luck to you ______。

       

       

       

       

      4 (填空題 <2> ) :

      以下程序運行時輸出結果中第一行是22,第二行是11。

      #include

      void  series(int n)

      {

          while(n!=1)

          {

              if(n%2!=0)

                  n=3*n+1;

              else

                  while(n%2==0) n/=2; 

              printf("%d\n",n);

          }

      }

      int main( )

      {

          series(7);

          return 0;

      }

       

      5 (填空題 <2> ) :

       以下程序運行時輸出結果中第一行是0,第二行是4。

      # include

      int f(int x,int y)

      {

          int t,i,M=23;

          if(y==1) return 0;

          for(i=t=1;i

          {

              t=t*x%M; 

              if(t==y) return i; 

          }

          printf("沒有結果\n");

          return 0;

      }

      int main( )

      {

          printf("%d\n%d",f(3,1),f(4,3));

          return 0;

      }

       

      6(單選題):

      以下聲明中正確的是__________。

       

      unsigned char x; 

      unsigned float x; 

      signed double x; 

      long char x; 

       

       

      8 (填空題 <3> ) :

      以下程序運行時輸出結果中第一行是1,第二行是1,第三行是3。

      #include

      void Pascal(int a[],int n)

      {

          int i,j;

          for(a[0]=1,i=1;i<=n;i++) a[i]=0;

          for(i=1;i<=n;i++)

              for(j=i;j>0;j--)

                  a[j]+=a[j-1];

      }

      int main( )

      {

          int b[20];

          Pascal(b,1); 

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

          Pascal(b,3); 

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

          return 0;

      }

       

      9(單選題):

      若有聲明“int b=1,c[10]={2},*x=c; ”,則以下語句中正確的是__________ 。

       

      *x=c[10]; 

      b=*x; 

      c={1,2,3}; 

      *        &b=c;

      *        1(完善程序):

      *        完善程序(共12分,每空3分) 

      *         

      *        【要求】

      *        1. 打開T盤中文件myf0.c,按以下程序功能完善文件中的程序。

      *        2. 修改后的源程序仍保存在Tmyf0.c文件中,請勿改變myf0.c的文件名。

      *        【程序功能】

      *        假定Min函數形參a指向的結構數組前n個元素中存儲了n個二維點坐標值且互不相同。Min函數的功能是將這n個點坐標中排序最小的點坐標從數組中刪除,函數返回被刪除的點坐標值。

      *        所謂排序最小的點坐標指的是在所有點坐標(x,y)中,x值最小且y值最小。

      *        【測試數據與運行結果】

      *        測試數據:{0.5,3.0},{-3.0,5.0},{-1.5,3.5},{-3.0,-2.5}

      *        輸出:

      *          排序最小的點坐標是:(-3.0,-2.5)

      *             剩余的點坐標: 

      *          (0.5,3.0)     (-3.0,5.0)      (-1.5,3.5)

      *        【待完善的源程序】

      *        #include

      *        #include

      *        struct Point

      *        {   double x,y;  };

      *        struct Point Min(struct Point a[ ], int n)   

      *        {

      *            int i,k; 

      *            struct Point p;

      *            for(k=0,i=1;i

      *            {

      *                if(a[i].x   1a[i].y    ) 

      *                   k=i;

      *            }

      *            p=a[k];

      *            for(i=k;i

      *               a[i]=a[i+1];

      *            return      2  p    ;               

      *        }

      *        int main()

      *        {

      *               struct Point 3   pt[200]={ {0.5,3.0},{-3.0,5.0},{-1.5,3.5},{-3.0,-2.5}},p; 

      *            int i,n=4;

      *            p=Min(pt,n);

      *            printf("排序最小的點坐標是:(%.1f,%.1f)\n",    4 p.x,p.y    );

      *            printf("剩余的點坐標:\n");

      *            for(i=0;i

      *                printf("(%.1f,%.1f)\t",pt[i].x,pt[i].y);

      *            printf("\n");

      *            getch();

      *            return 0;

      *        }

      *         

      *         

      *        2(改錯題):

      *        改錯(共16分,每個錯4分)

      *            

      *        【要求】

      *        1. 打開T盤中文件myf1.c,按以下程序功能改正文件中程序的錯誤。

      *        2. 可以修改語句中的一部分內容,調整語句次序,增加變量聲明或預處理命令,但不能增加其他語句,也不能刪去整條語句。

      *        3. 修改后的源程序仍保存在Tmyf1.c文件中,請勿改變myf1.c的文件名。

      *        【程序功能】

      *         函數find的功能是在a指向二維數組中存儲的一個5×5階矩陣內查找并輸出所有具有以下特性的數組元素a[i][j]:第i行上所有元素之和等于第j列上所有元素之和(0≤i<5,0≤j<5)。

      *        【測試數據與運行結果】

      *            測試數據:

      *                   2  8  1  9  4

      *                   5  7  1  3  0

      *                   7  1  7  5  2

      *                   3  2  2  1  5

      *                   0  2  1  6  8

      *            輸出:

      *                  a[0][3]    a[4][0]

      *        【含有錯誤的源程序】

      *        #include

      *        #include

      *        void find(int a[5][])       修改為 void find(int a[5][5])

      *        {

      *            int i,j,row,col,sum1,sum2;

      *            for(i=0;i<5;i++)

      *                for(j=0;j<5;j++)

      *             {

      *                    sum1=sum2=0;

      *                    for(col=0;col<5;col++)

      *                        sum1+=a[i][col];

      *                    for(row=0;row<5;row++)

      *                        sum2+=a[j][row];         修改為 sum2+=a[row][j];     

      *                    if(sum1=sum2)             修改為 if(sum1==sum2)   

      *                        printf("a[%d][%d]  ",i,j);

      *                }

      *        }

      *        int main()

      *        {

      *            int a[5][5]={{2,8,1,9,4},{5,7,1,3,0},{7,1,7,5,2},{3,2,2,1,5},{0,2,1,6,8}};

      *            find(a[5][5]);       //修改為  find(a)

      *            getch();

      *            return 0;

      *        }

      *         

      *         

      *        3(編程題):

      *        編程(共22分) 

      *         

      *        【要求】

      *        1. 打開T盤中文件myf2.c,在其中輸入所編寫的程序。

      *        2. 數據文件的打開、使用、關閉均用C語言標準庫中緩沖文件系統的文件操作函數實現。

      *        3. 請勿改變myf2.c的文件名。

      *        【程序功能】

      *            數組數據處理。

      *        【編程要求】

      *        1.編寫void process(int *a,int n,int m1,int m2)函數。函數功能:先將a指向數組前n個元素中存儲的數據按升序排列,再將a[m1]~a[m2]中的數據逆置。

      *        2.編寫main函數。函數功能:聲明1個一維數組和變量m1、m2并用測試數據初始化,用數組及變量作實參調用process函數,將處理后的數組中數據輸出到顯示器屏幕及文件myf2.out中。最后將考生本人準考證號輸出到文件myf2.out中。

      *        【測試數據與運行結果】

      *        測試數據:  4  31  -23  49  87  65  0  -67  17  79,m1=2, m2=6

      *            輸出:  -67  –23  49  31  17   4   0  65  79  87

       

       

      編寫時按步驟給分

      *         

      *         

      *         

      *         

      中文在线字幕第一页_中文字幕高跟丝袜作品番号_亚洲中文无无码第_日本亚洲欧美国产日韩a??y_在线观看亚洲av无码专区