1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            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;

             

            【考點分析】

             

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

             

            【解題思路】

             

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

             

             

             


             

            国产在线精品一区二区三区不卡_亚洲第一极品精品无码_永久免费无码网站在线观看_亚洲av综合日韩