<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第2套操作題真題

                  一、基本操作

                   函數fun的功能是:根據所給的年、月、日,計算出該日是這一年的第幾天,并作為函數值返回。其中函數 isleap用來判別某一年是否為閏年。

                      例如,若輸入:2008  5  1,則程序輸出:2008年5月1日是該年的第122天。

                      請在程序的下劃線處填入正確的內容,并把下劃線刪除,使程序得出正確的結果。

                      注意:源程序存放在考生文件夾下的BLANK1.C中。

                  不得增行或刪行,也不得更改程序的結構!

                  #include  <stdio.h>

                  int  isleap(int  year)

                  { int  leap;

                    leap= (year%4==0 && year%100!=0 || year%400==0);

                  /**********found**********/

                    return  __(1)__;

                  }

                  int fun(int  year, int  month, int  day)

                  {  int  table[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

                     int  days=0 , i;

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

                        days=days + table[i];

                  /**********found**********/

                     days=days+__(2)__ ;

                     if( isleap(year) && month>2 )

                   /**********found**********/

                       days=days+__(3)__;

                     return  days;

                  }

                  main()

                  {  int  year, month, day, days ;

                     printf("請輸入年、月、日");

                     scanf("%d%d%d",&year, &month, &day);

                     days = fun(year, month, day);

                     printf("%d%d%d日是該年的第%d\n",year, month, day, days);

                  }

                     二、簡單應用

                  給定程序MODI1.C,函數fun的功能是在有n名學生,2門課成績的結構體數組std中,計算出第1門課程的平均分,作為函數值返回。例如,主函數中給出了4名學生的數據,則程序運行的結果為:第1門課程的平均分是:76.125000

                      請改正函數fun中指定部位的錯誤,使它能得出正確的結果。

                   

                      注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。

                  #include  <stdio.h>

                  typedef  struct

                  {  char  num[8];

                    double  score[2];

                  }STU ;

                  double fun(STU  std[], int  n)

                  {  int   i;

                  /**********found**********/

                     double  sum ;

                  /**********found**********/

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

                  /**********found**********/

                        sum += std[i].score[1];

                     return  sum/n;

                  }

                  main()

                  {  STU  std[ ]={ "N1001", 76.5,82.0 ,"N1002", 66.5,73.0,

                                "N1005", 80.5,66.0,"N1006", 81.0,56.0 };

                     printf("第1門課程的平均分是:%lf\n", fun(std,4) );

                  }

                     三、綜合應用

                    請編寫函數fun,其功能是:判斷形參n中的正整數是幾位數(輸入數據的位數不超過4位),并將結果通過函數值返回。    例如:若輸入的數據為 123,則輸出結果為:輸入的數字是3位。

                      注意:部分源程序存在PROG1.C中,請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

                  #include  <stdio.h>

                  int  fun(int  n)

                  {

                   

                  }

                  main()

                  {  int  n, place ;

                     do{

                        printf("請輸入一個4位以內的正整數:    ");

                        scanf("%d", &n);

                       }  while (n<0 || n>9999);

                     place = fun(n);

                     printf( "輸入的數字是%d\n", place );

                  }

                   

                   

                  一、基本操作答案

                   

                  【參考答案】

                   

                  (1)    leap

                  (2)    day

                  (3)    1

                   

                  【考點分析】

                   

                  主要考察考生對循環結構的理解的掌握

                   

                  【解題思路】

                   

                  填空1 leap  isleap()函數判斷是否是閏年,由于初始化2月為28天,但是閏年是29,因此閏年要多加1天,isleap()應該返回0或者1,leap的表達式為邏輯運算,得到的結果剛好是01 。

                   

                  填空2day  前面累加了平年月份的天數,還需要加上日的天數。

                   

                  填空31  如果是閏年并且累加月份大于2月,需要多加1.。

                   

                   

                   

                   二、簡單應用答案

                   

                  【參考答案】

                   

                  1double sum改為double sum=0.0;

                   

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

                   

                  (3)sum += std[i].score[1]改為sum += std[i].score[0];

                   

                  【考點分析】

                   

                  主要考察臨時變量初始化,C語言里臨時變量不初始化,它的默認值是不確定的一個值。再者,考察C語言約定數組的下標是從0開始的

                   

                  【解題思路】

                   

                  1double sum改為double sum=0.0;累加求和需要初始化累加結果的臨時變量。

                   

                  2for(i=0; i<2 ; i++)改為for(i=0; i<n ; i++);共有n個學生的成績,需要累加所有學生第一門課的成績

                   

                  (3)sum += std[i].score[1]改為sum += std[i].score[0]; 1門課程的平均分,C語言的下標是從0開始的

                   

                   

                   

                  三、綜合應用答案

                  【參考答案】

                   

                  int bits=1;//臨時變量統計位數

                   

                           while(n/10)//判斷是否為0,若不為0,bits1,再將n除以10,繼續判斷

                           {

                                     bits++;

                                     n=n/10;

                           }

                           return bits;

                   

                  【考點分析】

                   

                  主要考察考生對循環跳出的條件的理解,以及理解取數字位數的方法

                   

                  【解題思路】

                   

                  通過對指定的多位數每次除以10,去掉最后一位,直到為0結束,使用臨時變量來統計一個多位數的位數。

                   

                   

                   

                  107

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