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

字號(hào):

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

    下列程序的功能是:在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中;它既是完全平方數(shù),又是兩位數(shù)字相同,例如144、676等。請(qǐng)編制函數(shù)實(shí)現(xiàn)此功能,滿足該條件的整數(shù)的個(gè)數(shù)通過(guò)所編制的函數(shù)返回。最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件out.dat中。請(qǐng)勿改動(dòng)主函數(shù)main()和寫(xiě)函數(shù)writeDat()的內(nèi)容。
    #include
    int jsvalue(int bb[])
    {
    }
    main
    {
    int b[20],num;
    num=jsvalue(b);
    writeDat(num,b);
    }
    writeDat(int num,int b[])
    {
    FILE *out;
    int i;
    out=fopen(\"out.dat\",\"w\");
    fprintf(out,\"%d\\n\",num);
    for(i=0;i
    fclose(out);
    }
    --------------------------------------------------------------------------------
    注:注意在i==(int)sqrt(i)*(int)sqrt(i)中只有當(dāng)i是完全平方數(shù)時(shí)開(kāi)平方后再取整才不會(huì)丟失任何數(shù)據(jù)。
    int jsvalue(int bb[])
    {
    int i,j,k=0,g,s,b;
    for(i=100;i<=999;i++)
    {
    g=i;
    s=i/10;
    b=i/100;
    if((i==(int)sqrt(i)*(int)sqrt(i))&&(g==s//s==b//b==g))
    bb[k++]=i;
    }
    return k;
    }
    int jsvalue(int bb[])
    {
    int i,k=0;
    for(i=100;i<=999;i++)
    if((int)sqrt(i)*(int)sqrt(i)==i && (i/100==i || i/100==i/10 || i/10==i))
    bb[k++]=i;
    return k;
    }