<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            C語言

            計算機二級C語言上機編程題講解

            時間:2025-03-24 17:30:43 C語言 我要投稿
            • 相關推薦

            計算機二級C語言上機編程題講解

              相信不少同學都認為計算機二級C語言上機編程題很難,下面是小編為大家整理的計算機二級C語言上機編程題講解,歡迎參考~

              1、請編一個函數fun,它的功能是:根據以下公式求π的值(要求滿足精度0.0005,即,某項小于0.0005時停止迭代):

              程序運行后,如果輸入精度0.0005,則程序輸出多少。

              注意:部分源程序存在PROG1.C中,請勿改動主函數和其他函數中的內容,僅在函數fun的指定的部位填入你編寫的若干語句。

              試題源程序如下:

              #include

              #include

              double fun(double eps)

              {

              }

              main()

              { double x;

              printf("Input eps:");

              scanf("%lf",&x); printf(" eps=%lf, PI=%lf ",x,fun(x));

              }

              分析:

              (1)本題所用基本算法應為累加。假設累加值放在變量s中,累加項放在變量t中,累加操作由語句s=s+t;來實現。

              (2)若稱 為第1累加項,則其前的1為第0累加項,其后的一項為第2累加項,按給定的公式可知,從第1累加項開始,后一項的累加項是前一項的值乘以 。所以當前的累加項應當是:t=t*n/(2.0*n+1.0)。表達式右邊的t中是前一項的值,表達式左邊的t為當前的每累加累加項。請注意,不要寫成:t*n/(2*n+1)而進行整除。

              (3)若第0累加項的1作為s的初值,語句:s=s+t;執行n次,就把第1到第n項累加到了s中。每進行一次累加,n值增1。

              (4)把以上操作放在循環中。按本題規定,當某項小于eps(0.0005)時停止迭代,因此若用while循環,可用t>=eps作為控制循環進行的條件:

              while( t>=eps ){ s+=t; n++; t=t*n/(2.0*n+1); }

              (5)注意應給所用變量賦適當的初值。

              (6)退出循環后,函數的返回值應是:2*s。2、請編一個函數fun,其中n所指存儲單元中存放了數組中元素的個數。函數的功能是:刪除所有值為y的元素。已在主函數中給數組元素賦值,y的值由主函數通過鍵盤讀入。

              注意:部分源程序存在PROG1.C中,請勿改動主函數和其他函數中的內容,僅在函數fun的指定的部位填入你編寫的若干語句。

              試題源程序如下:

              #include

              #define M 20

              void fun(int bb[],int *n, int y)

              {

              }

              main()

              { int aa[M]={1,2,3,3,2,1,1,2,3,4,5,4,3,2,1}, n=15, y, k;

              printf("The original data is: ");

              for(k=0; k

              fun(aa, &n, y);

              printf("The data after d %d: ",y);

              for(k=0; k

              }

              分析:

              (1)本題的基本算法是查找和刪除。

              (2)若循環控制變量是i,通過for循環逐個檢查元素中的值,把數組元素中不等于y的值從頭開始重新放入bb所指的數組中。用i作為下標,逐個引用數組元素;用i作為下標,把不等于y的元素中的值逐一重新放入bb所指的數組中。這一操作可用以下語句來實現:

              if(bb[i]!=y)bb[j++]=bb[i];

              (3)因為已刪除了與y值相等的元素,因此,數組中數據的個數已經改變;所以循環結束后,需要重新給n所指變量賦值。退出循環后,變量j中存放的是刪除后數組中數據的個數,通過語句*n=j;把它賦給n所指變量即可。

              (4)主函數中輸出aa數組中原有的數據,和刪除后的數據。考生可以對照所編函數是否正確。3.請編寫一個函數void fun(char m,int k,int xx[]),該函數的功能是:將大于整數m且緊靠m的k個素數存入xx所指的數組中。例如,若輸入17和5,則應輸出:19,23,29,31, 37。

              注意:部分源程序存在PROG1.C中,請勿改動主函數和其他函數中的內容,僅在函數fun的指定的部位填入你編寫的若干語句。

              試題源程序如下:

              #include

              void fun(int m, int k, int xx[])

              {

              }

              main()

              { int m, n, zz[100];

              printf(" Please enter two integers(m & n): ");

              scanf("%d%d",&m,&n);

              fun(m, n, zz);

              for(m=0; m

              printf(" ");

              }

              分析:

              (1)本題的基本算法是求素數。假設有整數i,若i不能被2到i之間的任意一個數除盡,則i就是素數;若一旦能被某個數除盡就不是素數。

              (2)以下是求i是否為素數的基本算法:變量ok用作i是素數的標志,ok為1,則i是素數。

              ok=1;

              for(p=2; p

              if( i%p==0){ ok=0; break; }

              if(ok)……

              (3)本題要求把大于m的k個素數存入xx所指的數組中。所以,i的值應大于m;取大于m的值逐一進行判斷,若是素數就放入xx所指數組中。把以上語句放入一個循環中:

              for( i=m+1,j=0; ? ; i++ )

              { ok=1;

              for(p=2; p<=i/2; p++)

              if( i%p==0 ){ ok=0; break; }

              if (ok) { xx[j]=i;j++; }

              }

              此處,變量i統計存入數組中元素的個數,同時作為下標。

              (4)按本題的要求,外循環結束的條件應當是:j

            【計算機二級C語言上機編程題講解】相關文章:

            計算機二級C語言上機編程題詳細分析03-30

            2017年C語言上機編程題練習06-21

            計算機二級C語言編程題題型04-09

            2017計算機二級C語言上機特訓題08-12

            計算機二級C語言預測上機精選訓練題07-05

            2017計算機二級C語言上機最終預測題07-08

            計算機二級C語言上機程序填空題04-04

            2016計算機二級《C語言》上機題精講03-21

            計算機二級C語言上機強化訓練題及答案06-07

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院