久久久国产精品秘人口麻豆|永久免费AV无语国产|人成电影免费中文字幕|久久AV嫩草影院2

    1. <dfn id="yitbn"><samp id="yitbn"><progress id="yitbn"></progress></samp></dfn>

          <div id="yitbn"></div>

          1. 首頁(yè) 考試吧論壇 Exam8視線(xiàn) 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
            2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
            MPA考試 | 中科院
            四六級(jí) | 職稱(chēng)英語(yǔ) | 商務(wù)英語(yǔ) | 公共英語(yǔ) | 托福 | 雅思 | 專(zhuān)四專(zhuān)八 | 口譯筆譯 | 博思 | GRE GMAT
            新概念英語(yǔ) | 成人英語(yǔ)三級(jí) | 申碩英語(yǔ) | 攻碩英語(yǔ) | 職稱(chēng)日語(yǔ) | 日語(yǔ)學(xué)習(xí) | 法語(yǔ) | 德語(yǔ) | 韓語(yǔ)
            計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱(chēng)計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
            華為認(rèn)證 | Java認(rèn)證
            公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問(wèn) | 導(dǎo)游資格
            報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷(xiāo)員 | 國(guó)際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
            人力資源 | 管理咨詢(xún)師考試 | 秘書(shū)資格 | 心理咨詢(xún)師考試 | 出版專(zhuān)業(yè)資格 | 廣告師職業(yè)水平
            駕駛員 | 網(wǎng)絡(luò)編輯
            衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
            會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱(chēng) | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
            注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國(guó)際內(nèi)審師
            一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢(xún)工程師 | 監(jiān)理工程師 | 安全工程師
            質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
            設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
            城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測(cè)繪師 | 注冊(cè)計(jì)量師
            繽紛校園 | 實(shí)用文檔 | 英語(yǔ)學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪(fǎng)談 | 游戲

            計(jì)算機(jī)等級(jí)考試三級(jí)C語(yǔ)言上機(jī)試題總結(jié)

             100個(gè)產(chǎn)品銷(xiāo)售記錄排序(此類(lèi)共10題)
            code:
            /*
            已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷(xiāo)售記錄, 每個(gè)產(chǎn)品銷(xiāo)售記錄由產(chǎn)品代碼dm(字符型4位), 產(chǎn)品名稱(chēng)mc(字符型10位), 單價(jià)dj(整型), 數(shù)量sl(整型), 金額je(長(zhǎng)整型)五部分組成。 其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat( )讀取這100個(gè)銷(xiāo)售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat( ), 其功能要求:

            按金額從小到大進(jìn)行排列, 若金額相等, 則按產(chǎn)品代碼從小到大進(jìn)行排列, 最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中。最后main( )函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT1.DAT中。

            注意: 部分源程序存放在PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main( )、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函
            數(shù)WriteDat()的內(nèi)容。
            */
            #include <stdio.h>
            #include <mem.h>
            #include <string.h>
            #include <conio.h>
            #include <stdlib.h>

            #define MAX 100
            typedef struct {
            char dm[5] ; /* 產(chǎn)品代碼 */
            char mc[11] ; /* 產(chǎn)品名稱(chēng) */
            int dj ; /* 單價(jià) */
            int sl ; /* 數(shù)量 */
            long je ; /* 金額 */
            } PRO ;
            PRO sell[MAX] ;
            void ReadDat() ;
            void WriteDat() ;

            void SortDat()
            {/**/
            int i,j,k;
            PRO tt;
            for(i=0; i < MAX-1; i++)
            { k=i;
            for(j=i+1; j < MAX; j++)
            if((sell[k].je>sell[j].je)||(sell[k].je==sell[j].je)&&(strcmp(sell[k].dm, sell[j].dm)>0))
            k=j;
            if(k!=i)
            { tt=sell[k]; sell[k]=sell[i]; sell[i]=tt;}
            }
            /**/
            }

            void main()
            {
            memset(sell, 0, sizeof(sell)) ;
            ReadDat() ;
            SortDat() ;
            WriteDat() ;
            }

            void ReadDat()
            {
            FILE *fp ;
            char str[80], ch[11] ;
            int i ;

            fp = fopen("IN.DAT", "r") ;
            for(i = 0 ; i < 100 ; i++) {
            fgets(str, 80, fp) ;
            memcpy(sell[i].dm, str, 4) ;
            memcpy(sell[i].mc, str + 4, 10) ;
            memcpy(ch, str + 14, 4) ; ch[4] = 0 ;
            sell[i].dj = atoi(ch) ;
            memcpy(ch, str + 18, 5) ; ch[5] = 0 ;
            sell[i].sl = atoi(ch) ;
            sell[i].je = (long)sell[i].dj * sell[i].sl ;
            }
            fclose(fp) ;
            }

            void WriteDat()
            {
            FILE *fp ;
            int i ;

            fp = fopen("OUT1.DAT", "w") ;
            for(i = 0 ; i < 100 ; i++) {
            fprintf(fp, "%s %s %4d %5d %10ld\n", sell[i].dm, sell[i].mc, sell[i].dj, sell[i].sl, sell[i].je) ;
            }
            fclose(fp) ;
            }

            100個(gè)產(chǎn)品銷(xiāo)售記錄排序其余9題說(shuō)明

            1) in.dat 內(nèi)容完全相同。
            2) 程序也基本雷同,僅排序的要求不一樣。
            3) 考生應(yīng)熟悉 strcmp() 函數(shù),否則有的題相當(dāng)不好處理。

            之二
            排序要求:
            按金額從小到大進(jìn)行排列, 若金額相等, 則按產(chǎn)品代碼從大到小進(jìn)行排列
            相應(yīng)語(yǔ)句:
            if(sell[k].je>sell[j].je|| (sell[k].je==sell[j].je) &&
            (strcmp(sell[k].dm, sell[j].dm) < 0))

            之三
            排序要求:
            按金額從大到小進(jìn)行排列, 若金額相等, 則按產(chǎn)品代碼從小到大進(jìn)行排列
            相應(yīng)語(yǔ)句:
            if((sell[k].je <
            sell[j].je)||(sell[k].je==sell[j].je)&&(strcmp(sell[k].dm,
            sell[j].dm)>0))

            之四
            排序要求:
            按金額從大到小進(jìn)行排列, 若金額相等, 則按產(chǎn)品代碼從大到小進(jìn)行排列
            相應(yīng)語(yǔ)句:
            if((sell[k].je <
            sell[j].je)||(sell[k].je==sell[j].je)&&(strcmp(sell[k].dm,sell[j].dm)<0))

            之五
            排序要求:
            按產(chǎn)品名稱(chēng)從小到大進(jìn)行排列, 若產(chǎn)品名稱(chēng)相同, 則按金額從小到大進(jìn)行排列
            相應(yīng)語(yǔ)句:
            if((strcmp(sell[k].mc,
            sell[j].mc)>0)||(strcmp(sell[k].mc,sell[j].mc)==0)&&(sell[k].je>sell[j].je))

            之六
            排序要求:
            按產(chǎn)品名稱(chēng)從小到大進(jìn)行排列, 若產(chǎn)品名稱(chēng)相同, 則按金額從大到小進(jìn)行排列
            相應(yīng)語(yǔ)句:
            if(strcmp(sell[i].mc, sell[j].mc)>0 || (strcmp(sell[i].mc,
            sell[j].mc)==0)&&(sell[i].je < sell[j].je))

            之七
            排序要求:
            按產(chǎn)品名稱(chēng)從大到小進(jìn)行排列, 若產(chǎn)品名稱(chēng)相同, 則按金額從小到大進(jìn)行排列
            相應(yīng)語(yǔ)句:
            if((strcmp(sell[k].mc, sell[j].mc) < 0) ||
            (strcmp(sell[k].mc,sell[j].mc)==0)&&(sell[k].je>sell[j].je))

            之八
            排序要求:
            按產(chǎn)品名稱(chēng)從大到小進(jìn)行排列, 若產(chǎn)品名稱(chēng)相同, 則按金額從大到小進(jìn)行排列
            相應(yīng)語(yǔ)句:
            if((strcmp(sell[k].mc, sell[j].mc) < 0)|| (strcmp(sell[k].mc,
            sell[j].mc)==0)&&(sell[k].je < sell[j].je))

            之九
            排序要求:
            按產(chǎn)品代碼從小到大進(jìn)行排列, 若產(chǎn)品代碼相同, 則按金額從小到大進(jìn)行排列
            相應(yīng)語(yǔ)句:
            if((strcmp(sell[k].dm,
            sell[j].dm)>0)||(strcmp(sell[k].dm,sell[j].dm)==0)&&(sell[k].je>sell[j].je

            code:
            /*
            已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷(xiāo)售記錄, 每個(gè)產(chǎn)品銷(xiāo)售記錄由產(chǎn)品代碼dm(字符型4位), 產(chǎn)品名稱(chēng)mc(字符型10位), 單價(jià)dj(整型), 數(shù)量sl(整型), 金額je(長(zhǎng)整型)五部分組成。 其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat( )讀取這100個(gè)銷(xiāo)售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat( ), 其功能要求:

            按產(chǎn)品代碼從大到小進(jìn)行排列, 若產(chǎn)品代碼相同, 則按金額從大到小進(jìn)行排列, 最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT10.DAT中。

            注意: 部分源程序存放在PROG1.C中。
            請(qǐng)勿改動(dòng)主函數(shù)main( )、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
            */
            #include <stdio.h>
            #include <mem.h>
            #include <string.h>
            #include <conio.h>
            #include <stdlib.h>

            #define MAX 100
            typedef struct {
            char dm[5] ; /* 產(chǎn)品代碼 */
            char mc[11] ; /* 產(chǎn)品名稱(chēng) */
            int dj ; /* 單價(jià) */
            int sl ; /* 數(shù)量 */
            long je ; /* 金額 */
            } PRO ;
            PRO sell[MAX] ;
            void ReadDat() ;
            void WriteDat() ;

            void SortDat()
            {/**/
            int i,j;
            PRO tt;
            for(i=0; i < MAX-1; i++)
            for(j=i+1; j < MAX; j++)
            { if(strcmp(sell[i].dm, sell[j].dm) < 0)
            { tt=sell[i]; sell[i]=sell[j]; sell[j]=tt;}
            if((strcmp(sell[i].dm, sell[j].dm)==0)&&(sell[i].je < sell[j].je))
            { tt=sell[i]; sell[i]=sell[j]; sell[j]=tt;}
            }
            /**/
            }

            void main()
            {
            memset(sell, 0, sizeof(sell)) ;
            ReadDat() ;
            SortDat() ;
            WriteDat() ;
            }

            void ReadDat()
            {
            FILE *fp ;
            char str[80], ch[11] ;
            int i ;

            fp = fopen("IN.DAT", "r") ;
            for(i = 0 ; i < 100 ; i++) {
            fgets(str, 80, fp) ;
            memcpy(sell[i].dm, str, 4) ;
            memcpy(sell[i].mc, str + 4, 10) ;
            memcpy(ch, str + 14, 4) ; ch[4] = 0 ;
            sell[i].dj = atoi(ch) ;
            memcpy(ch, str + 18, 5) ; ch[5] = 0 ;
            sell[i].sl = atoi(ch) ;
            sell[i].je = (long)sell[i].dj * sell[i].sl ;
            }
            fclose(fp) ;
            }

            void WriteDat()
            {
            FILE *fp ;
            int i ;

            fp = fopen("OUT10.DAT", "w") ;
            for(i = 0 ; i < 100 ; i++) {
            fprintf(fp, "%s %s %4d %5d %10ld\n", sell[i].dm, sell[i].mc, sell[i].dj, sell[i].sl, sell[i].je) ;
            }
            fclose(fp) ;
            }


            300個(gè)四位數(shù)問(wèn)題(此類(lèi)共10題)

            本類(lèi)10題中,五題產(chǎn)生數(shù)組B,并對(duì)B按一定要求排序;其余五題是求平均值。我把它們分成兩組五題來(lái)討論。
            以下為產(chǎn)生數(shù)組B之題一:

            code:
            /*
            已知數(shù)據(jù)文件IN.DAT中存有300個(gè)四位數(shù), 并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中, 請(qǐng)編制一函數(shù)jsvalue(),其功能是: 求出個(gè)位數(shù)上的數(shù)減千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)大于零的個(gè)數(shù)cnt, 再把所有滿(mǎn)足此條件的四位數(shù)依次存入數(shù)組b中, 然后對(duì)數(shù)組b的四位數(shù)按從大到小的順序進(jìn)行排序。最后main( )函數(shù)調(diào)用寫(xiě)函數(shù)writeDat()把數(shù)組b中的數(shù)輸出到文件OUT.DAT。

            例如: 1239, 9-1-2-3>0, 則該數(shù)滿(mǎn)足條件存入數(shù)組b中, 且個(gè)數(shù)cnt=cnt+1。
            8129, 9-8-1-2<0, 則該數(shù)不滿(mǎn)足條件忽略。

            注意: 部分源程序存在文件PROG1.C文件中。
            程序中已定義數(shù)組: a[300], b[300], 已定義變量: cnt請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫(xiě)函數(shù)writeDat()的內(nèi)容。
            */
            #include <stdio.h>
            int a[300], b[300], cnt=0 ;
            jsvalue()
            {/**/
            int i,j,k,t;
            for(i=0; i < 300; i++)
            if(a[i]%10-a[i]/1000-a[i]/100%10-a[i]/10%10>0)
            b[cnt++]=a[i];
            for(i=0; i < cnt-1; i++)
            { k=i;
            for(j=i+1; j < cnt; j++)
            if(b[k] < b[j]) k=j;
            if(k!=i) { t=b[k]; b[k]=b[i]; b[i]=t; }
            }
            /**/
            }

            main()
            {
            int i ;

            readDat() ;
            jsvalue() ;
            writeDat() ;
            printf("cnt=%d\n", cnt) ;
            for(i = 0 ; i < cnt ; i++) printf("b[%d]=%d\n", i, b[i]) ;
            }

            readDat()
            {
            FILE *fp ;
            int i ;
            fp = fopen("in.dat","r") ;
            for(i = 0 ; i < 300 ; i++) fscanf(fp, "%d,", &a[i]) ;
            fclose(fp) ;
            }

            writeDat()
            {
            FILE *fp ;
            int i ;
            fp = fopen("out.dat","w") ;
            fprintf(fp, "%d\n", cnt) ;
            for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
            fclose(fp) ;
            }

            要求:
            求出所有這些四位數(shù)是素?cái)?shù)的個(gè)數(shù)cnt, 再把所有滿(mǎn)足此條件的四位數(shù)依次存入數(shù)組b中, 然后對(duì)數(shù)組b的四位數(shù)按從小到大的順序進(jìn)行排序。

            out.dat 文件內(nèi)容應(yīng)當(dāng)為:
            30
            1231
            1277
            1283
            1319
            2543
            2609
            3793
            3911
            4013
            4549
            4817
            4933
            5591
            5843
            5939
            6733
            6791
            6841
            6871
            6917
            7297
            7369
            7703
            8101
            8221
            8941
            9013
            9461
            9689
            9887

            之四
            要求:
            求出千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)減個(gè)位數(shù)上的數(shù)大于零的個(gè)數(shù)cnt, 再把所有滿(mǎn)足此條件的四位數(shù)依次存入數(shù)組b中, 然后對(duì)數(shù)組b的四位數(shù)按從小到大的順序進(jìn)行排序。

            out.dat 文件內(nèi)容應(yīng)當(dāng)為:
            20
            4002
            4102
            5111
            5400
            6014
            6302
            7050
            7105
            7113
            8101
            8130
            8203
            8221
            8303
            8700
            9013
            9016
            9052
            9053
            9800

            之五
            要求:
            求出千位數(shù)上的數(shù)加百位數(shù)上的數(shù)等于十位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)的個(gè)數(shù)cnt, 再把所有滿(mǎn)足此條件的四位數(shù)依次存入數(shù)組b中, 然后對(duì)數(shù)組b的四位數(shù)按從大到小的順序進(jìn)行排序。

            out.dat 文件內(nèi)容應(yīng)當(dāng)為:
            22
            7795
            7429
            7328
            7153
            6978
            6767
            6556
            6226
            5591
            5555
            5427
            4509
            4013
            3672
            3663
            3205
            3131
            2855
            2763
            2543
            2507
            1625

            求滿(mǎn)足條件的數(shù)的個(gè)數(shù)、平均值……
            求滿(mǎn)足條件的數(shù)的個(gè)數(shù)、平均值及不滿(mǎn)足條件的數(shù)的平均值等,此類(lèi)也是五題。本處僅給出一個(gè)全題,其余題只給出不同之處。

            code:
            /*
            已知數(shù)據(jù)文件IN.DAT中存有300個(gè)四位數(shù), 并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中, 請(qǐng)編制一函數(shù)jsvalue(),其功能是: 求出千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)減個(gè)位數(shù)上的數(shù)大于零的個(gè)數(shù)cnt, 再求出所有滿(mǎn)足此條件的四位數(shù)平均值pjz1, 以及所有不滿(mǎn)足此條件的四位數(shù)平均值pjz2。最后main()函數(shù)調(diào)用寫(xiě)函數(shù)writeDat()把結(jié)果cnt,pjz1,pjz2輸出到OUT.DAT文件。

            例如: 9123, 9-1-2-3>0, 則該數(shù)滿(mǎn)足條件計(jì)算平均值pjz1,且個(gè)數(shù)cnt=cnt+1。
            9812, 9-8-1-2<0, 則該數(shù)不滿(mǎn)足條件計(jì)算平均值pjz2。

            注意: 部分源程序存在文件PROG1.C文件中。
            程序中已定義數(shù)組: a[300], 已定義變量: cnt,pjz1,pjz2請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫(xiě)函數(shù)writeDat()的內(nèi)容。
            */
            #include
            int a[300], cnt=0 ;
            double pjz1=0.0, pjz2=0.0 ;
            jsvalue()
            {/**/
            int i;
            for(i=0; i < 300; i++)
            if(a[i]/1000-a[i]/100%10-a[i]/10%10-a[i]%10>0)
            { cnt++; pjz1+=a[i]; }
            else pjz2+=a[i];
            if(cnt) pjz1/=cnt;
            if(cnt<300) pjz2/=300-cnt;
            /**/
            }

            main()
            {
            int i ;

            readDat() ;
            jsvalue() ;
            writeDat() ;
            printf("cnt=%d\n滿(mǎn)足條件的平均值pzj1=%7.2lf\n不滿(mǎn)足條件的平均值pzj2=%7.2lf\n", cnt,pjz1,pjz2);
            }

            readDat()
            {
            FILE *fp ;
            int i ;
            fp = fopen("in.dat","r") ;
            for(i = 0 ; i < 300 ; i++) fscanf(fp, "%d,", &a[i]) ;
            fclose(fp) ;
            }

            writeDat()
            {
            FILE *fp ;
            int i ;
            fp = fopen("out.dat","w") ;
            fprintf(fp, "%d\n%7.2lf\n%7.2lf\n", cnt, pjz1, pjz2) ;
            fclose(fp) ;
            }

            in.dat 與前面給出的完全相同,out.dat 內(nèi)容應(yīng)當(dāng)如下:
            20
            7389.55
            5524.03

            滿(mǎn)足條件數(shù)的平均數(shù)……四題之說(shuō)明

            之二

            要求:
            求出千位數(shù)上的數(shù)加百位數(shù)上的數(shù)等于十位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)的個(gè)數(shù)cnt, 再求出所有滿(mǎn)足此條件的四位數(shù)平均值pjz1, 以及所有不滿(mǎn)足此條件的四位數(shù)平均值pjz2。

            正確程序生成的 out.dat 文件內(nèi)容應(yīng)當(dāng)如下:
            22
            4876.86
            5709.46

            之三
            要求:
            求出個(gè)位數(shù)上的數(shù)減千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)大于零的個(gè)數(shù)cnt, 再求出所有滿(mǎn)足此條件的四位數(shù)平均值pjz1, 以及所有不滿(mǎn)足此條件的四位數(shù)平均值pjz2。

            正確程序生成的 out.dat 文件內(nèi)容應(yīng)當(dāng)如下:
            12
            2926.08
            5761.83

            之四
            要求:
            求出所有這些四位數(shù)是素?cái)?shù)的個(gè)數(shù)cnt, 再求出所有滿(mǎn)足此條件的四位數(shù)平均值pjz1, 以及所有不滿(mǎn)足此條件的四位數(shù)平均值pjz2。

            正確程序生成的 out.dat 文件內(nèi)容應(yīng)當(dāng)如下:
            30
            5782.87
            5633.46

            之五
            要求:
            求出千位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個(gè)數(shù)cnt, 再求出所有滿(mǎn)足此條件的四位數(shù)平均值pjz1, 以及所有不滿(mǎn)足此條件的四位數(shù)平均值pjz2。

            正確程序生成的 out.dat 文件內(nèi)容應(yīng)當(dāng)如下:
            18
            6681.22
            5582.48

            200個(gè)四位數(shù)(此類(lèi)共10題)
            此部分題與300個(gè)數(shù)的題有相似之處。
            之一

            code:
            /*
            已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù), 并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請(qǐng)考生編制一函數(shù)jsVal(),其功能是: 把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字), 以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)cd (新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字), 如果新組成的兩個(gè)十位數(shù)ab>cd, ab必須是偶數(shù)且能被5整除, cd必須是奇數(shù),同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿(mǎn)足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中, 并要計(jì)算滿(mǎn)足上述條件的四位數(shù)的個(gè)數(shù)cnt。最后main()函數(shù)調(diào)用寫(xiě)函數(shù)writeDat( )把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。

            注意: 部分源程序存在文件PROG1.C文件中。
            程序中已定義數(shù)組: a[200], b[200], 已定義變量: cnt請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫(xiě)函數(shù)writeDat()的內(nèi)容。
            */
            #include <stdio.h>
            #define MAX 200
            int a[MAX], b[MAX], cnt = 0 ;

            void jsVal()
            {/**/
            int i,j,k,A,B,C,D;
            for(i=0; i < MAX; i++)
            { A=a[i]/1000; B=a[i]/10%10; C=a[i]%10; D=a[i]/100%10;
            if(A&&C&&(B==0)&&(D%2)&&(10*A>10*C+D))
            b[cnt++]=a[i];
            }
            for(i=0; i < cnt-1; i++)
            { k=i;
            for(j=i+1; j < cnt; j++)
            if(b[k] < b[j]) k=j;
            if(k!=i) {A=b[k]; b[k]=b[i]; b[i]=A;}
            }
            /**/
            }

            void readDat()
            {
            int i ;
            FILE *fp ;
            fp = fopen("in.dat", "r") ;
            for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
            fclose(fp) ;
            }

            void main()
            {
            int i ;
            readDat() ;
            jsVal() ;
            printf("滿(mǎn)足條件的數(shù)=%d\n", cnt) ;
            for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;
            printf("\n") ;
            writeDat() ;
            }

            writeDat()
            {
            FILE *fp ;
            int i ;
            fp = fopen("out.dat", "w") ;
            fprintf(fp, "%d\n", cnt) ;
            for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
            fclose(fp) ;

            200個(gè)四位數(shù)題之其余九題說(shuō)明

            之二


            要求:
            把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字), 以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字, 新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字), 如果新組成的兩個(gè)十位數(shù)均是素?cái)?shù)且新數(shù)的十位數(shù)字均不為零,則將滿(mǎn)足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中, 并要計(jì)算滿(mǎn)足上述條件的四位數(shù)的個(gè)數(shù)cnt。

            out.dat 的內(nèi)容應(yīng)當(dāng)為:
            10
            9971
            8398
            7711
            6375
            4719
            4173
            2736
            2398
            2397
            1997

            之三

            要求:
            把個(gè)位數(shù)字和千位數(shù)字重新組成一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的千位數(shù)字), 以及把百位數(shù)字和十位數(shù)字組成另一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的百位數(shù)字, 新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字), 如果新組成的兩個(gè)十位數(shù)必須是一個(gè)奇數(shù),另一個(gè)為偶數(shù)并且兩個(gè)十位數(shù)中至少有一個(gè)數(shù)能被17整除,同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零, 則將滿(mǎn)足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中, 并要計(jì)算滿(mǎn)足上述條件的四位數(shù)的個(gè)數(shù)cnt。

            out.dat 的內(nèi)容應(yīng)當(dāng)為:
            7
            8656
            8174
            7781
            7683
            4313
            4173
            2513

            之四

            要求:
            )把這些數(shù)存入數(shù)組a中,請(qǐng)考生編制一函數(shù)jsVal(),其功能是: 把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字), 以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)cd (新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字), 如果新組成的兩個(gè)十位數(shù)ab-cd>=10且ab-cd<=20且兩個(gè)數(shù)均是偶數(shù),同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿(mǎn)足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中, 并要計(jì)算滿(mǎn)足上述條件的四位數(shù)的個(gè)數(shù)cnt。

            out.dat 的內(nèi)容應(yīng)當(dāng)為:
            5
            9068
            5224
            5024
            3821
            2281

            之五

            要求:
            如果四位數(shù)各位上的數(shù)字均是0或2或4或6或8, 則統(tǒng)計(jì)出滿(mǎn)足此條件的個(gè)數(shù)cnt, 并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。

            out.dat 的內(nèi)容應(yīng)當(dāng)為:
            11
            8448
            6820
            4488
            4060
            2888
            2884
            2686
            2624
            2484
            2420
            2042

            之六

            要求:
            把千位數(shù)字和個(gè)位數(shù)字重新組成一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的個(gè)位數(shù)字), 以及把百位數(shù)字和十位數(shù)字組成另一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的百位數(shù)字, 新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字), 如果新組成的兩個(gè)十位數(shù)均是奇數(shù)并且兩個(gè)十位數(shù)中至少有一個(gè)數(shù)能被5整除, 同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿(mǎn)足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中, 并要計(jì)算滿(mǎn)足上述條件的四位數(shù)的個(gè)數(shù)cnt。

            out.dat 的內(nèi)容應(yīng)當(dāng)為:
            10
            9851
            8275
            6375
            5755
            5359
            4951
            4595
            4395
            3575
            3135

            之七

            要求:
            把個(gè)位數(shù)字和千位數(shù)字重新組成一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的千位數(shù)字), 以及把百位數(shù)字和十位數(shù)字組成另一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原四位數(shù)的百位數(shù)字, 新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字), 如果新組成的兩個(gè)十位數(shù)均是偶數(shù)并且兩個(gè)十位數(shù)中至少有一個(gè)數(shù)能被9整除, 同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿(mǎn)足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中, 并要計(jì)算滿(mǎn)足上述條件的四位數(shù)的個(gè)數(shù)cnt。

            out.dat 的內(nèi)容應(yīng)當(dāng)為:
            13
            8761
            8724
            8441
            6722
            6603
            6545
            6323
            6181
            4369
            4285
            4125
            2724
            2362

            之八

            要求:
            把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字), 以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)cd (新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字), 如果新組成的兩個(gè)十位數(shù)ab 同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿(mǎn)足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中, 并要計(jì)算滿(mǎn)足上述條件的四位數(shù)的個(gè)數(shù)cnt。

            out.dat 的內(nèi)容應(yīng)當(dāng)為:
            12
            7878
            5437
            3897
            2893
            2877
            2438
            2039
            2035
            2033
            1619
            1494
            1493

            之九

            要求:
            如果四位數(shù)各位上的數(shù)字均是奇數(shù),則統(tǒng)計(jì)出滿(mǎn)足此條件的個(gè)數(shù)cnt并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。

            out.dat 的內(nèi)容應(yīng)當(dāng)為:
            13
            9971
            7973
            7711
            7511
            5755
            5359
            5311
            3575
            3537
            3135
            1997
            1979
            1531

            之十

            要求:
            把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字), 以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新的十位數(shù)cd (新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字), 如果新組成的兩個(gè)十位數(shù)ab-cd>=0且ab-cd<=10且兩個(gè)數(shù)均是奇數(shù), 同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿(mǎn)足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中, 并要計(jì)算滿(mǎn)足上述條件的四位數(shù)的個(gè)數(shù)cnt。

            out.dat 的內(nèi)容應(yīng)當(dāng)為:
            5
            8398
            7996
            5954
            4313
            2311

            小于200個(gè)四位數(shù)之一(共四題)
            code:
            /*
            已知在文件IN.DAT中存有若干個(gè)(個(gè)數(shù)<200)四位數(shù)字的正整數(shù), 函數(shù)ReadDat( )讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請(qǐng)編制函數(shù)Calvalue( ), 其功能要求: 1. 求出這文件中共有多少個(gè)正整數(shù)totNum; 2.求出這些數(shù)中的各位數(shù)字之和是奇數(shù)的數(shù)的個(gè)數(shù)totCnt, 以及滿(mǎn)足此條件的這些數(shù)的算術(shù)平均值totPjz。最后main( )函數(shù)調(diào)用函數(shù)WriteDat()把所求的結(jié)果輸出到OUT.DAT文件中。

            注意: 部分源程序存放在PROG1.C中。
            請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù),主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
            */
            #include <stdio.h>
            #include <conio.h>
            #define MAXNUM 200

            int xx[MAXNUM] ;
            int totNum = 0 ; /* 文件IN.DAT中共有多少個(gè)正整數(shù) */
            int totCnt = 0 ; /* 符合條件的正整數(shù)的個(gè)數(shù) */
            double totPjz = 0.0 ; /* 平均值 */

            int ReadDat(void) ;
            void WriteDat(void) ;

            void Calvalue(void)
            {/**/
            while(xx[totNum])
            { if((xx[totNum]/1000+xx[totNum]/100%10+xx[totNum]/10%10+xx[totNum])%2)
            { totCnt++; totPjz+=xx[totNum]; }
            totNum++;
            }
            if(totCnt) totPjz/=totCnt;
            /**/
            }

            void main()
            {
            int i ;
            clrscr() ;
            for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ;
            if(ReadDat()) {
            printf("數(shù)據(jù)文件IN.DAT不能打開(kāi)!\007\n") ;
            return ;
            }
            Calvalue() ;
            printf("文件IN.DAT中共有正整數(shù)=%d個(gè)\n", totNum) ;
            printf("符合條件的正整數(shù)的個(gè)數(shù)=%d個(gè)\n", totCnt) ;
            printf("平均值=%.2lf\n", totPjz) ;
            WriteDat() ;
            }

            int ReadDat(void)
            {
            FILE *fp ;
            int i = 0 ;

            if((fp = fopen("in.dat", "r")) == NULL) return 1 ;
            while(!feof(fp)) {
            fscanf(fp, "%d,", &xx[i++]) ;
            }
            fclose(fp) ;
            return 0 ;
            }

            void WriteDat(void)
            {
            FILE *fp ;

            fp = fopen("OUT.DAT", "w") ;
            fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;
            fclose(fp) ;
            }

            in.dat 文件內(nèi)容如下:
            6045,6192,1885,3580,8544,6826,5493,8415,3132,5841,
            6561,3173,9157,2895,2851,6082,5510,9610,5398,5273,
            3438,1800,6364,6892,9591,3120,8813,2106,5505,1085,
            5835,7295,6131,9405,6756,2413,6274,9262,5728,2650,
            6266,5285,7703,1353,1510,2350,4325,4392,7573,8204,
            7358,6365,3135,9903,3055,3219,3955,7313,6206,1631,
            5869,5893,4569,1251,2542,5740,2073,9805,1189,7550,
            4362,6214,5680,8753,8443,3636,4495,9643,3782,5556,
            1018,9729,8588,2797,4321,4714,9658,8997,2080,5912,
            9968,5558,9311,7047,6138,7618,5448,1466,7075,2166,
            4025,3572,9605,1291,6027,2358,1911,2747,7068,1716,
            9661,5849,3210,2554,8604,8010,7947,3685,2945,4224,
            7014,9058,6259,9503,1615,1060,7787,8983,3822,2471,
            5146,7066,1029,1777,7788,2941,3538,2912,3096,7421,
            9175,6099,2930,4685,8465,8633,2628,7155,4307,9535,
            4274,2857,6829,6226,8268,9377,9415,9059,4872,6072,

            out.dat 文件內(nèi)容應(yīng)當(dāng)如下:
            160
            69
            5460.51

            小于200個(gè)四位數(shù)之二(共四題)
            code:
            /*
            已知在文件IN.DAT中存有若干個(gè)(個(gè)數(shù)<200)四位數(shù)字的正整數(shù), 函數(shù)ReadDat( )讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請(qǐng)編制函數(shù)Calvalue( ), 其功能要求: 1. 求出這文件中共有多少個(gè)正整數(shù)totNum; 2.求出這些數(shù)中的各位數(shù)字之和是偶數(shù)的數(shù)的個(gè)數(shù)totCnt, 以及滿(mǎn)足此條件的這些數(shù)的算術(shù)平均值totPjz。最后main( )函數(shù)調(diào)用函數(shù)WriteDat()把所求的結(jié)果輸出到OUT.DAT文件中。

            注意: 部分源程序存放在PROG1.C中。
            請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù),主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
            */
            #include
            #include
            #define MAXNUM 200

            int xx[MAXNUM] ;
            int totNum = 0 ; /* 文件IN.DAT中共有多少個(gè)正整數(shù) */
            int totCnt = 0 ; /* 符合條件的正整數(shù)的個(gè)數(shù) */
            double totPjz = 0.0 ; /* 平均值 */

            int ReadDat(void) ;
            void WriteDat(void) ;

            void Calvalue(void)
            {/**/
            for(; xx[totNum]; totNum++)
            if((xx[totNum]/1000+xx[totNum]/100%10+xx[totNum]/10%10+xx[totNum]%10)%2==0)
            { totCnt++; totPjz+=xx[totNum];}
            if(totCnt) totPjz/=totCnt;
            /**/
            }

            void main()
            {
            int i ;
            clrscr() ;
            for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ;
            if(ReadDat()) {
            printf("數(shù)據(jù)文件IN.DAT不能打開(kāi)!\007\n") ;
            return ;
            }
            Calvalue() ;
            printf("文件IN.DAT中共有正整數(shù)=%d個(gè)\n", totNum) ;
            printf("符合條件的正整數(shù)的個(gè)數(shù)=%d個(gè)\n", totCnt) ;
            printf("平均值=%.2lf\n", totPjz) ;
            WriteDat() ;
            }

            int ReadDat(void)
            {
            FILE *fp ;
            int i = 0 ;

            if((fp = fopen("in.dat", "r")) == NULL) return 1 ;
            while(!feof(fp)) {
            fscanf(fp, "%d,", &xx[i++]) ;
            }
            fclose(fp) ;
            return 0 ;
            }

            void WriteDat(void)
            {
            FILE *fp ;

            fp = fopen("OUT.DAT", "w") ;
            fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;
            fclose(fp) ;
            }

            out.dat 文件內(nèi)容應(yīng)當(dāng)如下:
            160
            91
            5517.16


            200個(gè)四位數(shù)之三(共四題)
            code:
            /*
            已知在文件IN.DAT中存有若干個(gè)(個(gè)數(shù)<200)四位數(shù)字的正整數(shù), 函數(shù)ReadDat( )讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請(qǐng)編制函數(shù)Calvalue( ), 其功能要求: 1. 求出這文件中共有多少個(gè)正整數(shù)totNum; 2. 求這些數(shù)右移1位后, 產(chǎn)生的新數(shù)是奇數(shù)的數(shù)的個(gè)數(shù)totCnt, 以及滿(mǎn)足此條件的這些數(shù)(右移前的值)的算術(shù)平均值totPjz。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把所求的結(jié)果輸出到文件OUT.DAT中。

            注意: 部分源程序存放在PROG1.C中。
            請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù),主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
            */
            #include
            #include
            #define MAXNUM 200

            int xx[MAXNUM] ;
            int totNum = 0 ; /* 文件IN.DAT中共有多少個(gè)正整數(shù) */
            int totCnt = 0 ; /* 符合條件的正整數(shù)的個(gè)數(shù) */
            double totPjz = 0.0 ; /* 平均值 */

            int ReadDat(void) ;
            void WriteDat(void) ;

            void Calvalue(void)
            {/**/
            for(; xx[totNum]; totNum++)
            if((xx[totNum]>>1)%2)
            { totCnt++; totPjz+=xx[totNum];}
            if(totCnt) totPjz/=totCnt;
            /**/
            }

            void main()
            {
            int i ;
            clrscr() ;
            for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ;
            if(ReadDat()) {
            printf("數(shù)據(jù)文件IN.DAT不能打開(kāi)!\007\n") ;
            return ;
            }
            Calvalue() ;
            printf("文件IN.DAT中共有正整數(shù)=%d個(gè)\n", totNum) ;
            printf("符合條件的正整數(shù)的個(gè)數(shù)=%d個(gè)\n", totCnt) ;
            printf("平均值=%.2lf\n", totPjz) ;
            WriteDat() ;
            }

            int ReadDat(void)
            {
            FILE *fp ;
            int i = 0 ;

            if((fp = fopen("in.dat", "r")) == NULL) return 1 ;
            while(!feof(fp)) {
            fscanf(fp, "%d,", &xx[i++]) ;
            }
            fclose(fp) ;
            return 0 ;
            }

            void WriteDat(void)
            {
            FILE *fp ;

            fp = fopen("OUT.DAT", "w") ;
            fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;
            fclose(fp) ;
            }

            out.dat 文件內(nèi)容應(yīng)當(dāng)如下:
            160
            80
            5537.54

            小于200個(gè)四位數(shù)之四(共四題)
            code:
            /*
            已知在文件IN.DAT中存有若干個(gè)(個(gè)數(shù)<200)四位數(shù)字的正整數(shù), 函數(shù)ReadDat( )讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請(qǐng)編制函數(shù)Calvalue( ), 其功能要求: 1. 求出這文件中共有多少個(gè)正整數(shù)totNum; 2. 求這些數(shù)右移1位后, 產(chǎn)生的新數(shù)是偶數(shù)的數(shù)的個(gè)數(shù)totCnt, 以及滿(mǎn)足此條件的這些數(shù)(右移前的值)的算術(shù)平均值totPjz。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把所求的結(jié)果輸出到文件OUT.DAT中。

            注意: 部分源程序存放在PROG1.C中。
            請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù),主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
            */
            #include
            #include
            #define MAXNUM 200

            int xx[MAXNUM] ;
            int totNum = 0 ; /* 文件IN.DAT中共有多少個(gè)正整數(shù) */
            int totCnt = 0 ; /* 符合條件的正整數(shù)的個(gè)數(shù) */
            double totPjz = 0.0 ; /* 平均值 */

            int ReadDat(void) ;
            void WriteDat(void) ;

            void Calvalue(void)
            {/**/
            for(; xx[totNum]>0; totNum++)
            if((xx[totNum]>>1)%2==0)
            { totCnt++; totPjz+=xx[totNum]; }
            if(totCnt) totPjz/=totCnt;
            /**/
            }

            void main()
            {
            int i ;
            clrscr() ;
            for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ;
            if(ReadDat()) {
            printf("數(shù)據(jù)文件IN.DAT不能打開(kāi)!\007\n") ;
            return ;
            }
            Calvalue() ;
            printf("文件IN.DAT中共有正整數(shù)=%d個(gè)\n", totNum) ;
            printf("符合條件的正整數(shù)的個(gè)數(shù)=%d個(gè)\n", totCnt) ;
            printf("平均值=%.2lf\n", totPjz) ;
            WriteDat() ;
            }

            int ReadDat(void)
            {
            FILE *fp ;
            int i = 0 ;

            if((fp = fopen("in.dat", "r")) == NULL) return 1 ;
            while(!feof(fp)) {
            fscanf(fp, "%d,", &xx[i++]) ;
            }
            fclose(fp) ;
            return 0 ;
            }

            void WriteDat(void)
            {
            FILE *fp ;

            fp = fopen("OUT.DAT", "w") ;
            fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;
            fclose(fp) ;
            }

            out.dat 文件內(nèi)容應(yīng)當(dāng)如下:
            160
            80
            5447.93

            文章搜索
            版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@eeeigo.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。