<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  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

                   

                   

                  編寫時按步驟給分

                  *         

                  *         

                  *         

                  *         

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看