请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 void jsVal() /*标准答案*/ {int I,j;
int a1,a2,a3,a4,k; for (I=0;I {a1=a[I]/1000; a2=a[I]00/100; a3=a[I]0/10; a4=a[I]; if ((a1<=a2)&&(a2<=a3)&&(a3<=a4)&&(a[I]%2==0)) {b[cnt]=a[I]; cnt++;} } for(I=0;I {k=b[I];b[I]=b[j];b[j]=k;} } 原程序如下: #include int a[MAX], b[MAX], cnt = 0; void jsVal() { } void readDat() { int i ; FILE *fp ; fp = fopen(\ for(i = 0 ; i < MAX ; i++) fscanf(fp, \ fclose(fp) ; } void main() { int i ; readDat() ; jsVal() ; printf(\满足条件的数=%d\\n\ for(i = 0 ; i < cnt ; i++) printf(\ printf(\ writeDat() ; system(\ } writeDat() { FILE *fp ; int i ; fp = fopen(\ fprintf(fp, \ for(i = 0 ; i < cnt ; i++) fprintf(fp, \ fclose(fp) ; } 16:函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函 数StrCharJR(),其函数的功能是:以行为单位把字符串中所有字符的ASCII值右移4位,然后把 右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置上。 最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx 输出到文件OUT8.DAT中。原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符 号和空格。 注意:部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 void StrCharJR(void) /*标准答案*/ {int I,j,strl; for(I=0;I 注:这个编程题比二级考得还简单。 void StrCharJR(void) {int i,j; for(i=0;i 原程序如下: #include int maxline = 0 ; /* 文章的总行数 */ int ReadDat(void) ; void WriteDat(void) ; void StrCharJR(void) { } void main() { clrscr() ; if(ReadDat()) { printf(\数据文件IN.DAT不能打开!\\n\\007\ return ; } StrCharJR() ; WriteDat() ; } int ReadDat(void) { FILE *fp ; int i = 0 ; char *p ; if((fp = fopen(\ 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(\ for(i = 0 ; i < maxline ; i++) { printf(\ fprintf(fp, \ } fclose(fp) ; } 17:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数CHA(),其函数功能是:以行为单位把字符串中的第一个 字符的ASCII值加第二个字符的 ASCII值,得到第一个亲朋字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT9.DAT中.原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格. 注意:部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 void ChA(void) /*标准答案*/ {int I,j,k,str; char ch; for(I=0;I for(j=0;j for(j=0,k=str-1;j void ChA(void) { int i,j; char p,c; for(i=0;i c=xx[i][strlen(xx[i])-1]; for(j=0;j xx[i][j]+=xx[i][j+1]; xx[i][strlen(xx[i])-1]=p+c; strrev(xx[i]); } } 原程序如下: #include int maxline = 0 ; /* 文章的总行数 */ int ReadDat(void) ; void WriteDat(void) ; void ChA(void) { } void main() { clrscr() ; if(ReadDat()) { printf(\数据文件IN.DAT不能打开!\\n\\007\ return ; } ChA() ; WriteDat() ; } int ReadDat(void) { FILE *fp ; int i = 0 ; char *p ; if((fp = fopen(\ 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(\ for(i = 0 ; i < maxline ; i++) { printf(\ fprintf(fp, \ } fclose(fp) ; } 18:函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制 函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对 应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS10.DAT中。 替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的 ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将 f(p)所对应的字符进行替代。