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

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

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

          1. 網(wǎng)站首頁
            分類導航
            試題中心
            下載中心
            英語學習
            繽紛校園
            考試論壇
            網(wǎng)站留言
            客服中心
             計算機等級考試C語言上機精簡版
            【字體:
            計算機等級考試C語言上機精簡版
            http://www.eeeigo.com 來源:狂風論壇 點擊: 更新:2005-3-29

            函數(shù)ReadDat()實現(xiàn)從文件ENG.IN中讀取一篇英文文章,存入到字符串數(shù)組xx中;請編制函數(shù)encryptChar(),按行優(yōu)先把所有的小寫字母替換成它前面的字母其它不變,a換成z,例如:Aabm.() 輸出 Azal.() 最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS10.DAT中。
              部分源程序已給出,原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。
              請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。

            #include<stdio.h>
            #include<string.h>
            #include<conio.h>
            #include<ctype.h>
             
            unsigned char xx[50][80];
            int maxline=0;/*文章的總行數(shù)*/
            int ReadDat(void)
            void WriteDat(void)
            void encryptChar()
            {
            }
            void main()
            {
            clrscr();
            if(ReadDat()){
            printf("數(shù)據(jù)文件ENG.IN不能打開!\n\007");
            return;
            }
            encryptChar();
            WriteDat();
            }
            int ReadDat(void)
            {
            FILE *fp;
            int i=0;
            unsigned char *p;
            if((fp=fopen("eng.in","r"))==NULL) return 1;
            while(fgets(xx[i],80,fp)!=NULL){
            p=strchr(xx[i],'\n');
            if(p)*p=0;
            i++;
            }
            maxline=i;
            fclose(fp);
            return 0;
            }
            void WriteDat(void)
            {
            FILE *fp;
            int i;
            fp=fopen("ps10.dat","w");
            for(i=0;i<maxline;i++){
            printf("%s\n",xx[i]);
            fprintf(fp,"%s\n",xx[i]);
            }
            fclose(fp);
            }
            解:
            void encryptChar()
            {int i,j;
            for (i=0;i<50;i++)
            for (j=0;j<80;j++)
            if (xx[i][j]=='a') xx[i][j]='z';
            else (xx[i][j]>='b'&&xx[i][j]<='z') xx[i][j]-=1;
             
            }
             
            2、
            函數(shù)ReadDat()的功能是實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串數(shù)組xx中;請編制函數(shù)StrChar JR();該函數(shù)的功能是:以行為單位把字符串中的所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCTT值,得到新的字符仍存入原字符串對應(yīng)的位置上。最后把已處理的字符串仍按行重新存入字符串數(shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT8.DAT中。
            原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標點符號和空格。
            注意:部分源程序已給出。
            請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
            試題程序:
            #include<stdio.h>
            #include<string.h>
            #include<conio.h>
             
            char xx[50][80];
            int maxline=0;/*文章的總行數(shù)*/
            int ReadDat(void);
            void WriteDat(void);
            void StrCharJR(void)
            {
            }
            void main()
            {
            clrscr();
            if(ReadDat()){
            printf("數(shù)據(jù)文件IN.DAT不能打開!\n\007");
            return;
            }
            StrCharJR();
            WriteDat();
            }
            int ReadDat(void)
            {
            FILE *fp;
            int i=0;
            char *p;
            if((fp=fopen("IN,DAT","r"))==NULL) return 1;
            while(fgets(xx[i],80,fp)!=NULL){
            p=strchr(xx[i],`\n`);
            if(p) *p=0;
            i++;
            }
            maxline=i;
            fclose(fp);
            return 0;
            }
            void WriteDat(void)
            {
            FILE *fp;
            int i;
            clrscr();
            fp=fopen("OUT8.DAT","w");
            for(i=0;i<maxline;i++){
            printf("%s\n",xx[i]);
            fprintf(fp,"%s\n",xx[i]);
            }
            fclose(fp);
            }
             
            --------------------------------------------------------------------------------
             
            void StrCharJR(void)
            {int I,j,strl;
            for(I=0;I<maxline;I++)
            {strl=strlen(xx[I]);
            for(j=0;j<strl;j++)
            xx[I][j]+=xx[I][j]>>4;
            }
            }
            3、
            已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱mc(字符型10位)、單價dj(整型)、數(shù)量sl(整型)、金額je(長整型)幾部分組成。其中:金額=單價*數(shù)量可計算得出。函數(shù)ReadDat()的功能是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從大到小進行排列,若產(chǎn)品代碼相同,則按金額從大到小進行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT10.DAT中。
            注意:部分源程序已給出。
            請勿改動主函數(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)品名稱*/
            int dj; /*單價*/
            int sl; /*數(shù)量*/
            long je; /*金額*/
            }PRO;
            PRO sell[MAX];
            void ReadDat();
            void WriteDat();
            void SortDat()
            {
            }
            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 %101d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
            }
            fclose(fp);
            }
             
             
            --------------------------------------------------------------------------------
             
            void SortDat( )
            {int I,j;
            PRO xy;
            for(I=0;I<99;I++)
            for(j=I+1;j<100;j++)
            if(sell[I].dm<sell[j].dm)
            {xy=sell[I];
            sell[I]=sell[j];
            sell[j]=xy;}
            else if(sell[I].dm==sell[j].dm)
            if(sell[I].je<sell[j].je)
            {xy=sell[I];
            sell[I]=sell[j];
            sell[j]=xy;}

            4
            已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價dj(整型),數(shù)量sl(整型),金額je(長整型)四部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat()是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從大到小進行排列,若產(chǎn)品代碼相同,則按金額從大到小進行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT8.DAT中。
            部分源程序已給出。
              請勿改動主函數(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)品名稱*/
            int dj; /*單價*/
            int sl; /*數(shù)量*/
            long je; /*金額*/
            }PRO;
            PRO sell[MAX];
            void ReadDat();
            void WriteDat();

            void SortDat()
            {

            }

            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(void)
            {
            FILE *fp;
            int i;

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


            --------------------------------------------------------------------------------


            注:該題的冒泡法與11題不同。
            void SortDat()
            {
            int i,j;
            PRO swap;
            for(i=0;i<MAX-1;i++)
            for(j=i+1;j<MAX;j++)
            {
            if(strcmp(sell[i].mc,sell[j].mc)<0)
            {
            swap=sell[i];
            sell[i]=sell[j];
            sell[j]=swap;
            }
            if(strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je<sell[j].je)
            {
            swap=sell[i];
            sell[i]=sell[j];
            sell[j]=swap;
            }
            }
            }


            void SortDat()
            {
            int i,j;
            PRO t;
            for(i=0;i<MAX;i++)
            for(j=i+1;j<MAX;j++)
            if(strcmp(sell[i].dm,sell[j].dm)<0)
            {
            t=sell[i];
            sell[i]=sell[j];
            sell[j]=t;
            }
            else
            if(strcmp(sell[i].dm,sell[j].dm)==0)
            if(sell[i].je<sell[j].je)
            {
            t=sell[i];
            sell[i]=sell[j];
            sell[j]=t;
            }
            }


            5
            下列程序的功能是:在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中;它既是完全平方數(shù),又是兩位數(shù)字相同,例如144、676等。請編制函數(shù)實現(xiàn)此功能,滿足該條件的整數(shù)的個數(shù)通過所編制的函數(shù)返回。最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件out.dat中。請勿改動主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。
            #include <stdio.h>

            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<num;i++)printf(out,\"%d\\n\",b[i]);
            fclose(out);
            }


            --------------------------------------------------------------------------------

            注:注意在i==(int)sqrt(i)*(int)sqrt(i)中只有當i是完全平方數(shù)時開平方后再取整才不會丟失任何數(shù)據(jù)。
            int jsvalue(int bb[])
            {
            int i,j,k=0,g,s,b;
            for(i=100;i<=999;i++)
            {
            g=i%10;
            s=i/10%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%10 || i/100==i/10%10 || i/10%10==i%10))
            bb[k++]=i;
            return k;

            }


            6
            設(shè)有n個人圍坐一圈并按順時針方向從1到n編號, 從第s個人開始進行1到m的報數(shù), 報數(shù)到第m個人, 此人出圈, 再從他的下一個人重新開始1到m的報數(shù), 如此進行下去直到所有的人都出圈為止。
            現(xiàn)要求按出圈次序, 每10人一組, 給出這n個人的順序表。請考生編制函數(shù)Josegh()實現(xiàn)此功能并調(diào)用函數(shù)WriteDat()把結(jié)果p輸出到文件JOSE.OUT中。
            設(shè) n = 100, s = 1, m = 10。
            (1) 將1到n個人的序號存入一維數(shù)組p中;
            (2) 若第i個人報數(shù)后出圈, 則將p[i]置于數(shù)組的倒數(shù)第i個位置上, 而原來第i+1個至倒數(shù)第i個元素依次向前移動一個位置;
            (3) 重復第(2)步直至圈中只剩下p[1]為止。
            注意: 部分源程序存放在PROG1.C中。
            請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。

            初始化:
            #include <stdio.h>
            #define N 100
            #define S 1
            #define M 10

            int p[100], n, s, m ;
            void WriteDat(void) ;

            void Josegh(void)
            {


            }

            void main()
            {
            m = M ;
            n = N ;
            s = S ;
            Josegh() ;
            WriteDat() ;
            }

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

            fp = fopen("jose.out", "w") ;
            for(i = N - 1 ; i >= 0 ; i--) {
            printf("%4d ", p[i]) ;
            fprintf(fp, "%4d", p[i]) ;
            if(i % 10 == 0) {
            printf("\n") ;
            fprintf(fp, "\n") ;
            }
            }
            fclose(fp) ;
            }


            本題評析:
            參考答案及其注釋如下:
            void Josegh(void)
            {
            int i,j,s1,w;
            s1 = s;
            for(i = 1; i <= n; i++)
            p[i-1] = i; /*初始化賦值*/

            for(i = n; i>=1; i--)
             {
             s1 = (s1 + m - 1)%i;
             if(s1 == 0)s1 = i;
             w = p[s1 - 1];
             for(j = s1; j < i; j++)
             p[j - 1] = p[j];
             p[i - 1] = w;
             }
            }
            s 開始 m 周期 n 總數(shù)

            7
            計算500-800區(qū)間內(nèi)素數(shù)的個數(shù)cnt,并按所求素數(shù)的值從大到小的順序,再計算其間隔減、加之和,即第1個素數(shù)-第2個素數(shù)+第三個素數(shù)-第4個素數(shù)+第5個素數(shù)。。。的值sum。請編寫函數(shù)countvalue()實現(xiàn)程序的要求;最后main()函數(shù)調(diào)用函數(shù)writeDAT()把結(jié)果cnt和sum,輸出到文件OUT11.DAT中。
            注意:部分源程序存放在prog1.c中請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDAT()的內(nèi)容。


            #include
            int cnt,sum;
            void countvalue()
            {

            }

            void main()
            {cnt=sum=0;
            countvalue();
            printf("素數(shù)的個數(shù)=%d\n",cnt);
            printf("按要求計算的值=%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<i;j++)
            if(!(i%j)) break;
            if(j==i)
            { cnt++;
            if(cnt%2) sum+=i;
            else sum-=i;
            }
            }
            }

            文章錄入:ak48    責任編輯:ak48  
             版權(quán)聲明
               如果本網(wǎng)站所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本網(wǎng)內(nèi)容,請注明出處。
             發(fā)表評論
            關(guān)于本站 網(wǎng)站聲明 廣告服務(wù)  聯(lián)系方式  付款方式  站內(nèi)導航  客服中心  友情鏈接   
            Copyright © 2004-2006 考試吧 (eeeigo.com) All Rights Reserved 
            中國科學院研究生院中關(guān)村園區(qū)(北京市海淀區(qū))