亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        2013計(jì)算機(jī)二級C語言上機(jī)題庫及答案解析(4)

        字號:

        為大家收集整理了《2013計(jì)算機(jī)二級C語言上機(jī)題庫及答案解析(4)》供大家參考,希望對大家有所幫助?。?!
            填空題
            用篩選法可得到2~n(n<10000)之間的所有素?cái)?shù),方法是:首先從素?cái)?shù)2開始,將所有2的倍數(shù)的數(shù)從數(shù)表中刪去(把數(shù)表中相應(yīng)位置的值置成0);接著從數(shù)
            表中找下一個(gè)非0數(shù),并從數(shù)表中刪去該數(shù)的所有倍數(shù);依此類推,直到所找的下一個(gè)數(shù)等于n為止。這樣會得到一個(gè)序列:
            2,3,5,7,11,13,17,19,23,…… 函數(shù)fun用篩選法找出所有小于等于n的素?cái)?shù),并統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù)作為函數(shù)值返回。
            請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
            注意:源程序存放在考生文件夾下的BLANK1.C中。
            不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
            給定源程序:
            #include
            int fun(int n)
            { int a[10000], i,j, count=0;
            for (i=2; i<=n; i++) a[i] = i;
            i = 2;
            while (i
            for (j=a[i]*2; j<=n; j+=___1___)
            a[j] = 0;
            i++;
            while (___2___==0)
            i++;
            }
            printf("\nThe prime number between 2 to %d\n", n);
            for (i=2; i<=n; i++)
            if (a[i]!=___3___)
            { count++; printf( count%15?"%5d":"\n%5d",a[i]); }
            return count;
            }
            main()
            { int n=20, r;
            r = fun(n);
            printf("\nThe number of prime is : %d\n", r);
            }
            解題思路:
            第一處:所有2的倍數(shù)的數(shù)從數(shù)表中刪去,所以應(yīng)填:a[i]。
            第二處:找出下一個(gè)不是的a[i],所以應(yīng)填:a[i]。
            第三處:輸出素?cái)?shù),只要判斷a[i]不是0就是素?cái)?shù),所以應(yīng)填:0。
            改錯(cuò)題
            給定程序MODI1.C中函數(shù)fun的功能是: 為一個(gè)偶數(shù)尋找兩個(gè)素?cái)?shù), 這兩個(gè)素?cái)?shù)之和等于該偶數(shù),并將這兩個(gè)素?cái)?shù)通過形參指針傳回主函數(shù)。
            請改正函數(shù)fun中指定部位的錯(cuò)誤, 使它能得出正確的結(jié)果。
            注意: 不要改動(dòng)main函數(shù), 不得增行或刪行, 也不得更改程序的結(jié)構(gòu)!
            給定源程序:
            #include
            #include
            void fun(int a,int *b,int *c)
            { int i,j,d,y;
            for(i=3;i<=a/2;i=i+2) {
            Y=1;
            for(j=2;j<=sqrt((double)i);j++)
            if(i%j==0) y=0;
            if(y==1) {
            d==a-i;
            for(j=2;j<=sqrt((double)d);j++)
            if(d%j==0) y=0;
            if(y==1)
            { *b=i; *c=d; }
            }
            }
            }
            main()
            { int a,b,c;
            do
            { printf("\nInput a: "); scanf("%d",&a); }
            while(a%2);
            fun(a,&b,&c);
            printf("\n\n%d = %d + %d\n",a,b,c);
            }
            解題思路:
            第一處:變量y錯(cuò)寫成Y。
            第二處:給變量d進(jìn)行賦值,所以應(yīng)改為:d=a-i;。
            編程題
            請編寫函數(shù)fun, 它的功能是:計(jì)算并輸出n(包括n)以內(nèi)能被5或9整除的所有自然數(shù)的倒數(shù)之和。
            例如,在主函數(shù)中從鍵盤給n輸入20后, 輸出為: s=0.583333。
            注意: 要求n的值不大于100。
            部分源程序在文件PROG1.C中。
            請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容, 僅在函數(shù)fun的花括號中填入你編寫的若干語句。
            給定源程序:
            #include
            double fun(int n)
            {
            }
            main()
            { int n; double s;
            printf("\nInput n: "); scanf("%d",&n);
            s=fun(n);
            printf("\n\ns=%f\n",s);
            NONO();
            }
            解題思路:
            本題是計(jì)算n(包括n)以內(nèi)能被5或9整除的所有自然數(shù)的倒數(shù)之和。
            參考答案:
            double fun(int n)
            {
            int i;
            double sum=0.0;
            for(i=1; i<=n; i++)
            if(i%5 == 0 || i%9 == 0) /* 被5或9整除 */
            sum+=1.0/i;
            return sum;
            }