2010計(jì)算機(jī)等級(jí)考試三級(jí)數(shù)據(jù)庫(kù)技術(shù)上機(jī)模擬題(7)

字號(hào):

2010計(jì)算機(jī)等級(jí)考試三級(jí)數(shù)據(jù)庫(kù)技術(shù)上機(jī)模擬題(7)

    計(jì)算500-800區(qū)間內(nèi)素?cái)?shù)的個(gè)數(shù)cnt,并按所求素?cái)?shù)的值從大到小的順序,再計(jì)算其間隔減、加之和,即第1個(gè)素?cái)?shù)-第2個(gè)素?cái)?shù)+第三個(gè)素?cái)?shù)-第4個(gè)素?cái)?shù)+第5個(gè)素?cái)?shù)。。。的值sum。請(qǐng)編寫函數(shù)countvalue()實(shí)現(xiàn)程序的要求;最后main()函數(shù)調(diào)用函數(shù)writeDAT()把結(jié)果cnt和sum,輸出到文件OUT11.DAT中。
    注意:部分源程序存放在prog1.c中請(qǐng)勿改動(dòng)主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDAT()的內(nèi)容。
    #include
    int cnt,sum;
    void countvalue()
    {
    }
    void main()
    {cnt=sum=0;
    countvalue();
    printf("素?cái)?shù)的個(gè)數(shù)=%d\n",cnt);
    printf("按要求計(jì)算的值=%d\n",sum);
    writeDAT();}
    writeDAT()
    {FILE *fp;
    fp=fopen("OUT11.DAT","w");
    fprintf(fp,"%d\n%d\n",cnt,sum);
    fclose(fp);
    }
    --------------------------------------------------------------------------------------
    這是答案:
    void countvalue()
    {
    int i,j,k,l;
    k=0;
    l=1;
    for (i=800;i>=500;i--)
    {
    for (j=2;j<=i/2;j++)
    {
    if ((i%j)==0)
    {
    k=1;
    break;
    }
    }
    if ((k==0)&&(l==1))
    {
    sum=sum+i;
    l=2;
    cnt++;
    continue;
    }
    if ((k==0)&&(l==2))
    {sum=sum-i;
    l=1;
    cnt++;
    }
    k=0;
    }
    }
    ---------------------------------------------
    void countvalue()
    {int i,j;
    for(i=800;i>=500;i--)
    {for(j=2;j
    if(!(i%j)) break;
    if(j==i)
    { cnt++;
    if(cnt%2) sum+=i;
    else sum-=i;
    }
    }
    }