第一篇:南開一百題
1、請編寫一個(gè)函數(shù)jsValue(int m,int k,int xx[]),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入數(shù)組xx傳回。
最后調(diào)用函數(shù)writeDat()讀取10組數(shù)據(jù),分別得出結(jié)果且把結(jié)果輸出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若輸入17 5 則應(yīng)輸出:19,23,29,31,37。
請勿改動(dòng)主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。#include
int isP(int m){ int i;
for(i=2;i if(m % i==0)return 0;return 1;} void num(int m,int k,int xx[]){ int s=0; for(m=m+1;k>0;m++) if(isP(m)){ xx[s++]=m;k--;} } main(){ int m,n,xx[1000]; clrscr(); printf(“nPlease enter two integers:”); scanf(“%d%d”,&m,&n); num(m,n,xx); for(m=0;m printf(“%d ”,xx[m]); printf(“n”); readwriteDat();} void readwriteDat(){ int m,n,xx[1000], i;FILE *rf,*wf; rf=fopen(“in.dat”,“r”);wf=fopen(“out.dat”,“w”);for(i=0;i<10;i++){ fscanf(rf,“%d %d”,&m,&n); num(m,n,xx); for(m=0;m fprintf(wf,“n”);} fclose(rf);fclose(wf);} 無憂id 14題(無isP()函數(shù))#include void jsValue(int m,int k,int xx[]){ int i,j,s=0; for(i=m+1;k>0;i++) { for(j=2;j if(i%j==0)break; if(i==j){ xx[s++]=i;k--;} } } main(){ int m,n,zz[100]; printf(“n請輸入兩個(gè)整數(shù):”);scanf(“%d%d”,&m,&n);jsValue(m,n,zz);for(m=0;m writeDat(){ int m,n,zz[100],i;FILE *in,*out; in=fopen(“in.dat”,“r”);out=fopen(“out.dat”,“w”);for(i=0;i<10;i++){ fscanf(in,“%d%d”,&m,&n); jsValue(m,n,zz); for(m=0;m fprintf(out,“n”); } fclose(in);fclose(out);} 另一解法: void num(int m,int k,int xx[]){ int n=0,data=m+1;while(n 已知數(shù)據(jù)文件IN.DAT中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:如果四位數(shù)各位上的數(shù)字均是0或2或4或6或8,則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt,并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。最后main()函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定義數(shù)組:a[200],b[200],已定義變量:cnt 請勿改動(dòng)數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。#include void jsVal(){ int i,j,qw,bw,sw,gw; for(i=0;i { qw=a[i]/1000;bw=a[i]/100%10; sw=a[i]%100/10;gw=a[i]%10; if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0)b[cnt++]=a[i]; } for(i=0;i for(j=i+1;j if(b[i] 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(“滿足條件的數(shù)=%dn”, 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, “%dn”, cnt); for(i = 0;i < cnt;i++)fprintf(fp, “%dn”, b[i]); fclose(fp);} ★題目3(無憂 id 133題;捷成id 59、99題) 函數(shù)ReadDat()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中;請編制函數(shù)StrOR(),其函數(shù)的功能是:以行為單位依次把字符串中所有小寫字母o左邊的字符串內(nèi)容移到該串的右邊存放,然后把小寫字母o刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放,之后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT5.DAT中。 例如:原文:n any field.Yu can create an index you have the correct record.結(jié)果:n any field.Yu can create an index rd.yu have the crrect rec 原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號和空格。 注意:部分源程序存放在文件prog1.c中。 請勿改動(dòng)主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include char xx[50][80];int maxline = 0;/* 文章的總行數(shù) */ int ReadDat(void);void WriteDat(void); void StrOR(void){int i,righto,j,s,k;char tem[80];for(i=0;i for(j=strlen(xx[i])-1;j>=0;j--) { k=0; memset(tem,0,80);/*初始化字符串?dāng)?shù)組tem*/ if(xx[i][j]=='o')/*如果當(dāng)前字符為'o',進(jìn)入以下語句*/ {righto=j;/*則將此字符中位置j的值賦給righto*/ for(s=righto+1;s tem[k++]=xx[i][s];/*從righto的下一跳開始將其后所有的字符都存入到tem中*/ for(s=0;s if(xx[i][s]!='o')tem[k++]=xx[i][s];/*將不是字符'o'的字符全存入到tem中*/ strcpy(xx[i],tem);/*將當(dāng)前已處理的字符重新存入當(dāng)前行xx*/ } else continue; } } void main(){ clrscr(); if(ReadDat()){ printf(“數(shù)據(jù)文件IN.DAT不能打開!n