<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>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  2015年3月全國計算機二級C上機操作真題第1套

                  108

                   

                  一、基本操作
                   函數fun的功能是:在有n個元素的結構體數組std中,查找有不及格科目的學生,找到后輸出學生的學號;函數的返回值是有不及格科目的學生人數。例如,主函數中給出了4名學生的數據,則程序運行的結果為:
                          學號:N1002  學號:N1006
                          共有2位學生有不及格科目
                      請在程序的下劃線處填入正確的內容,并把下劃線刪除,使程序得出正確的
                  結果。
                      注意:源程序存放在考生文件夾下的BLANK1.C中。
                            不得增行或刪行,也不得更改程序的結構!
                   
                   #include  <stdio.h>
                  typedef struct
                  { char num[8]; 
                    double score[2];
                  /**********found**********/
                  } __(1)__ ;
                  int  fun(STU  std[ ], int  n)
                  {  int  i, k=0;
                     for(i=0; i<n; i++)
                  /**********found**********/
                       if( std[i].score[0]<60__(2)__std[i].score[1]<60 )
                       { k++;     printf("學號:%s ",std[i].num);   }
                  /**********found**********/
                     return __(3)__ ;
                  }
                  main()
                  {  STU  std[4]={ "N1001", 76.5,82.0 ,"N1002", 53.5,73.0,
                                  "N1005", 80.5,66.0,"N1006", 81.0,56.0 };
                    printf( "\n共有%d位學生有不及格科目\n" , fun(std,4) );
                  }


                   
                     二、簡單應用
                  給定程序MODI1.C中,函數fun 的功能是判斷整數n是否是“完數”。當一個數的因子之和恰好等于這個數本身時,就稱這個數為“完數”。例如:6的因子包括1、2、3,而6=1+2+3,所以6是完數。如果是完數,函數返回值為1,否則函數返回值為0。數組a中存放的是找到的因子,變量k中存放的是因子的個數。
                      請改正函數fun中指定部位的錯誤,使它能得出正確的結果。
                      注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
                   
                   #include <stdio.h>
                  int  fun(int  n, int  a[], int  *k)
                  {   int  m=0, i, t;
                      t = n;
                  /**********found**********/
                      for( i=0; i<n; i++ )
                         if(n%i==0)
                         {  a[m]=i;  m++;  t=t - i;  }
                  /**********found**********/
                      k=m;
                  /**********found**********/
                      if ( t=0 )  return  1;
                      else  return  0;
                  }
                  main()
                  {  int  n , a[10], flag, i, k;
                     printf("請輸入一個整數:    ");  scanf("%d",&n);
                     flag = fun( n, a, &k );
                     if(flag)
                     {  printf(" %d 是完數,其因子是:  ", n);
                        for(i=0;i<k;i++)   printf("  %d ", a[i]);
                        printf("\n");
                     }
                     else    printf(" %d 不是完數.\n ", n );
                  }


                   
                     三、綜合應用
                   請編寫函數fun :在形參指針所指的4個整數中找出最大值和最小值,最大的放在a中,最小的放在d中。
                      注意:部分源程序存在PROG1.C中,請勿改動主函數main和其他函數中的任何
                  內容,僅在函數fun的花括號中填入所編寫的若干語句。

                   

                  #include   <stdio.h>
                  void NONO();
                  void  fun(int  *a, int  *b, int  *c, int  *d)
                  {

                   

                  }
                  main()
                  {  int  a, b, c, d;
                     printf("請輸入4個整數:    ");  scanf("%d%d%d%d", &a,&b,&c,&d);
                     printf("原始順序:    %d,%d,%d,%d\n", a, b, c, d);
                     fun(&a,&b,&c,&d);
                     printf("處理后:      %d,%d,%d,%d\n", a, b, c, d);
                     NONO();
                  }

                  void NONO()
                  {/* 本函數用于打開文件,輸入數據,調用函數,輸出數據,關閉文件。 */
                    FILE *fp, *wf ;
                    int i, a, b, c, d ;

                    fp = fopen("in.dat","r") ;
                    wf = fopen("out.dat","w") ;
                    for( i=0; i<5; i++ )
                    {
                       fscanf(fp, "%d %d %d %d", &a, &b, &c, &d);
                       fun(&a,&b,&c,&d);
                       fprintf(wf, "a=%d,d=%d\n", a, d);
                    }
                    fclose(fp) ;
                    fclose(wf) ;
                  }

                  一、基本操作答案

                   

                  【參考答案】

                   

                  (1)    STU

                  (2)    ||

                  (3)    k

                   

                  【考點分析】

                   

                  主要考察對結構體的定義和使用,以及邏輯運算符的使用

                   

                  【解題思路】

                   

                  填空1  STU 結構體別名,通過main()中的語句可知

                   

                  填空2  || 只要學生二門課成績有不及格的,就算不及格,因此使用或運算

                   

                  填空3  k 返回的是不及格的學生個數,有題意可知k是累計個數的。

                   

                   二、簡單應用答案

                   

                  【參考答案】

                   

                  (1)for( i=0; i<n; i++ )改為for( i=1; i<n; i++ );

                  (2)k=m改為*k=m

                  (3)if ( t=0 )改為if ( t==0 );

                   

                  【考點分析】

                   

                  主要考察C語言約定數組的下標是從0開始的,理解指針的指向和指針的區別,以及邏輯運算符的使用

                   

                  【解題思路】

                   

                  (1)for( i=0; i<n; i++ )改為for( i=1; i<n; i++ );一個數的因子從1開始,不能從0開始

                  (2)k=m改為*k=m;k為指針不能直接賦值整數,*k為指針指向的內容

                  (3)if ( t=0 )改為if ( t==0 );括號內應為判斷語句而不是賦值語句。

                   

                   

                   

                  三、綜合應用答案

                  【參考答案】

                   

                  int max,min;//臨時存放最大值、最小值

                   

                           max=min=*a;//初始化為*a

                           if(max<*b)//*b比較,如果max*b,修改max,如果min*b大,修改min,下同

                                     max=*b;

                           if(min>*b)

                                     min=*b;

                           if(max<*c)

                                     max=*c;

                           if(min>*c)

                                     min=*c;

                           if(max<*d)

                                     max=*d;

                           if(min>*d)

                                     min=*d;

                           *d=min;

                           *a=max;

                   

                  【考點分析】

                   

                  主要考察考生對臨時變量的初始化及使用,以及如何比較多個數的大小

                   

                  【解題思路】

                   

                  通過初始化指定最大值,最小值,再使用當前的最值與剩下的值比較,若比最大值大,修改最大值;若比最小值小,修改最小值。

                   

                   

                   


                   

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