三级C上机100题

合集下载

全国计算机等级考试三级C语言上机100题题库 考试必备品

全国计算机等级考试三级C语言上机100题题库 考试必备品
好好学习天天向上
三级C语言上机100题
几点说明:
1、题目标题号前用“☆”显示的是2005年4月份本人根据各大论坛考生聩的题号集中而来,题号前加“★”为2005年9月上机考试题,其中难免有题型相同而题号增加的现象,此类标明,仅供参考。
2、每种题目,只用一种解题方法,兰色部分为解题答案,此种方法本人觉得容易理解,不易出错,适合初学者。
请勿改动主函数main()和写函数writeDat()的内容。
#include <conio.h>
#include <stdio.h>
void readwriteDat();
int isP(int m)
{
int i;
for(i=2;i<m;i++)
if(m % i==0)return 0;
}
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);
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>

全国计算机等级考试三级C语言上机100题答案word版本

全国计算机等级考试三级C语言上机100题答案word版本

全国计算机等级考试三级C语言上机100题一.排序类:1.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。

最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include <stdio.h>#define MAX 200int a[MAX], b[MAX], cnt = 0 ;void jsVal(){int i,j,t;for(i=0;i<MAX;i++){t=a[i];if(t%2+t/10%2+t/100%2+t/1000%2==0)b[cnt++]=t;}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}} 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("满足条件的数=%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) ;}2. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b 中。

计算机等级考试-三级C语言上机试题

计算机等级考试-三级C语言上机试题

1【审题关键句】将大于整数m且紧靠m的k个素数存入数组。

【解题思路】①首先定义一个计数变量cnt并赋初值为0。

②利用while循环统计大于整数m且紧靠m的k个素数,当计数变量cnt的值与变量k的值相等的时候,则退出while循环。

每执行一次循环时,变量m的值加1,然后调用函数isP()判断当前的m值是否为素数,如果是素数,则将m的值赋给数组xx[cnt],同时计算变量cnt的值加1,即当数组xx[0]中保存了一个素数之后,在下一次素数判断成立时将保存到xx[1]的位置上,依次类推。

【参考答案】int cnt = 0; //定义变量cnt并初值等于0while(cnt < k) //当cnt的值小于k时{m++; //变量m加1if(isP(m)) xx[cnt++] = m; //如果m为素数,则把其赋给数组元素xx[cnt],并且数组的下标cnt加1}2【审题关键句】求素数的个数及平均值,并计算非素数的平均值。

【解题思路】①首先定义循环变量i,然后通过for循环对数组a[300]中的每个元素a[i]调用函数isP(a[i])判断a[i]是否是素数(素数的算法已在isP()函数中给出,此处直接调用即可),如果是素数,则把其加到变量pjz1上,同时计数变量cnt加1,否则a[i]值加到变量pjz2上。

直到判断完数组a[300]中的所有数据后退出循环。

②求出pjz1、pjz2和cnt的值之后,再用变量pjz1的值除以cnt的值就得到素数的平均值,同时把这个值赋给变量pjz1,最后用变量pjz2的值除以300-cnt的值就得到非素数的平均值,并把这个值赋给变量pjz2。

【参考答案】int i; //定义变量ifor(i = 0; i < 300; i++) //循环变量i从0依次递增到299{if(isP(a[i])) //判断数组元素a[i]是否素数{pjz1 += a[i]; //把a[i]累加到变量pjz1cnt++; //变量cnt加1}else pjz2 += a[i]; //否则,把数组元素a[i]累加到变量pjz2 }pjz1 /= cnt; //所有素数的和pjz1除以素数的个数cnt,得到素数的平均值并赋给变量pjz1pjz2 /= (300 - cnt); //所有非素数的和pjz2除以非素数的个数300-cnt,得到非素数的平均值并赋给变量pjz23【审题关键句】100以内(含100)满足i、i+4、i+10都是素数的整数的个数以及这些i之和。

计算机三级pc技术上机题库100+答案

计算机三级pc技术上机题库100+答案
8、10个16位二进制,统计每个数中0的个数
(1)16 (2)SHL AX,1 (3)JB
(4)COUNT (5)BX,2 (6)[DI],DH
9、L做逻辑尺
(1)LEA DI,RESULT (2)1 (3)TEST
(4)JP (5)SHL DX,1
10、求10个有符号字节的绝对值之和(字型),并到最大的数和地址
KEEP: MOV [DI],AL
INC DI
EXIT: INC SI
LOOP LOOP1
36、串有连续的字符仅用一个字符代替
LEA SI,SOURCE
LEA DI,RESULT
LOOP1:MOV AL,[SI]
CMP AL,00H
JE EXIT
NEXT: INC SI
MOV AH,[SI]
12、自动抄表,Y=X*70 X<=5.....
(1)MOV AL,[SI] (2)A (3)MUL BL
(4)A (5)MUL BH (6)MUL DL
(7)INC SI (8)ADD SI,2
13、Y=X*70 X<=10...
(1)MOV AL,[SI] (2)A (3)SUB AL,10
(4)LOOP1 (5)INC DI
39、BCD码转成ASCII,并在最高位加偶校验位
(1)AL,[SI] (2)SHR AL,CL (3)POP CX
(4)JP SERCH2 (5)ADD AH,30H (6)LOOP
40、无符号Ck=Ak除Bk
(1)MOV CX,N (2)DL,SOURCE[BX+N] (3)MOV AX
INC SI

计算机三级PC技术上机南开100题(全)

计算机三级PC技术上机南开100题(全)

计算机三级PC南开100题第一题:一、请编制程序,其功能是:将内存中由SOURCE指示的40个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT 指示的内存区域,存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素。

例如:内存中有1EH,91H,74H,91H,42H,30H,81H,F3H,18H,25H结果为06H,1EH,74H,42H,30H,18H,25H,04H,91H,91H,81H,F3H 试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 40STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(0)RESULT DB N+2 DUP(0)NAME0 DB 'INPUT1.DAT',0NAME1 DB 'OUTPUT1.DAT',0NDATA DB N DUP(0)PDATA DB N DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX ;置附加段寄存器LEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从'INPUT1.DAT'中读取数据;****BEGIN****LEA SI,SOURCEMOV DI,OFFSET PDATA ;PDATA为正数数组存放缓冲区首址MOV BX,OFFSET NDATA ;NDATA为负数数组存放缓冲区首址XOR DX,DXMOV CX,N CLDMAIN1: LODSBTEST AL,_______________JZ MAIN2INC DH ;-MOV [BX],ALINC BX_______________MAIN2: INC DLMOV [DI],AL ;+INC DIMAIN3: _______ MAIN1LEA SI,PDATALEA DI,RESULTMOV [DI],DLINC DIXOR CX,CXMOV CL,DLMAIN4: MOV AL,_______________MOV [DI],ALINC DIINC SILOOP _______________MOV [DI],DHINC DIXOR CX,CXMOV CL,DHMOV BX,OFFSET NDATAMAIN5: MOV AL,[BX]MOV [DI],ALINC DI_______________LOOP MAIN5;****END****LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N+2 ;字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START第二题:一、请编制程序,其功能是:内存中连续存放着10个无符号8位格雷码表示的数,现将此十个数转换成十个8位二进制数,结果存入内存,其转换方法为二进制数的最高位D7与格雷码的最高位G7相同,二进制数的其余七位D K (k=6,…,0)分别为格雷码的位G K(k=6,…,0)与二进制数的位D K+1(k=6,…,0)异或的结果。

三级网络技术C语言上机南开100题(2009年终结修订word版)

三级网络技术C语言上机南开100题(2009年终结修订word版)

全国计算机等级考试三级C语言上机100题修订者木易(2008年9月)为解决大部分考生使用网上不同的南开100题,造成对各个版本的解题方法各有不同的疑惑,加上很多解题不易理解,容易产生误解,现综合本论坛会员的反聩,以及2005年9月实际上机考试的情况,特对100题进行重新编排修订。

几点说明:1、题目标题号前用“☆”显示的是2005年4月份本人根据各大论坛考生聩的题号集中而来,题号前加“★”为2005年9月上机考试题,其中难免有题型相同而题号增加的现象,此类标明,仅供参考。

2、每种题目,只用一种解题方法,兰色部分为解题答案,此种方法本人觉得容易理解,不易出错,适合初学者。

3、特别说明:所有解法,本人均上机验证通过。

4、个别南开题如57、100题,题目与原书有所不同,是按实际考试的题目所来,并对今年在实际上机中出现的考题,用红色部分表示实际上机题中的注明事项。

木易全国计算机等级考试论坛:*******************************************************************************☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。

最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。

部分源程序存在文件prog1.c中。

例如:若输入17 5 则应输出:19,23,29,31,37。

请勿改动主函数main()和写函数writeDat()的内容。

#include <conio.h>#include <stdio.h>void readwriteDat();int isP(int m){int i;for(i=2;i<m;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<n;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<n;m++)fprintf(wf,"%d ",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。

三级C语言上机南开100题_修订word版

三级C语言上机南开100题_修订word版

*******************************************************************************☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。

最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。

部分源程序存在文件prog1.c中。

例如:若输入17 5 则应输出:19,23,29,31,37。

请勿改动主函数main()和写函数writeDat()的内容。

int isP(int m){int i;for(i=2;i<m;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--;}}☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。

最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

void jsVal(){ int i,j,qw,bw,sw,gw;for(i=0;i<MAX;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<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}}******************************************************************************★题目3(字符型题)函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。

计算机三级上机:适用于三级网络技术、数据库等(南开100题)之欧阳育创编

计算机三级上机:适用于三级网络技术、数据库等(南开100题)之欧阳育创编

全国计算机等级考试三级C语言上机100题几点说明:**********************************☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。

最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。

部分源程序存在文件prog1.c中。

例如:若输入17 5 则应输出:19,23,29,31,37。

请勿改动主函数main()和写函数writeDat()的内容。

#include <conio.h>#include <stdio.h>void readwriteDat();int isP(int m){int i;for(i=2;i<m;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<n;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<n;m++)fprintf(wf,"%d ",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}*********************************☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、替换字符。

(1、3、5、7、9、27、30、73、79、91、93、95、97、99)二、字符串左右排序和比较。

(2、4、6、12、26、29、71、72、74、84、90、96、98、100)三、正整数排序求平均值(包括将数拆散、求最大最小值)。

(8、31、33、35、37、39、42、44、46、47、48、49、50、51、52、53、54、56、58、60、61、63、65、67、69、92、94、)四、产品五个因素的比较排列,是结构体操作问题。

(11、13、15、17、19、81、83、85、87、89 )五、素数。

(14、22、28、51、80 )六、数字排序。

(10、18、)七、其他数学计算。

(16、20、36、43、55、57、59、64、66、78、86、88 )八、数字或字符移位后的计算。

(21、23、41、45、77 )九、学生成绩,结构体问题。

(24、76 )十、字符串(单词)的倒置和删除。

(25、75 )十一、选票问题。

(32、68、70、82 )十二、出圈问题。

(34 )十三、进制转换。

(38、40、62 )1题函数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)所对应的字符进行替代。

部分源程序已给出,原始数据文件存放的格式是:每行的宽度均小于80个字符。

请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

#include<stdio.h>#include<string.h>#include<conio.h>#include<ctype.h>unsigned char xx[50][80];int maxline=0;/*文章的总行数*/int ReadDat(void)void WriteDat(void)void encryptChar(){}void main(){clrscr();if(ReadDat()){printf("数据文件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);}注:在ReadDat()函数中由于fgets()函数读入数据时没有读入字符串结束符'\0',因而用while()循环在xx数组每一行未尾将换行符'\n'替换成结束符'\0'。

编写的函数如下:该函数的基本算法是——让字符指针pf指向每一行的开头然后逐一往后移动,在移动过程中按要求进行转换。

*pf%2==0用于判断是否为偶数。

if()条件语句用于控制不替代字符。

解法1:void encryptChar(){int i;char *pf;for(i=0;i<maxline;i++) /*行循环*/{pf=xx[i]; /*每行字符个数*/while(*pf!=0){if(*pf%2==0||*pf*11%256<32){pf++;continue;}*pf=*pf*11%256;pf++;}}}解法2:void encryptChar(){int i,j,t;for(i=0;i<maxline;i++){for(j=0;j<strlen(xx[i]);j++){t=xx[i][j]*11%256;if(t<=32 || xx[i][j]%2==0) continue;xx[i][j]=t;}}}2题函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。

请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。

条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。

如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。

例如:位置0 1 2 3 4 5 6 7 8源字符串 d c b a h g f e4 3 2 1 9 8 7 6 5则处理后字符串 h g f e a b c d8 7 6 5 9 1 2 3 4部分源程序已给出。

请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。

#include<stdio.h>#include<string.h>#include<conio.h>char xx[20][80];void jsSort(){}void main(){readDat();jsSort();writeDat();}readDat(){FILE *in;int i=0;char *p;in=fopen("in.dat","r");while(i<20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i],'\n');if(p)*p=0;i++;}fclose(in);}writeDat(){FILE *out();int i;clrscr();out=fopen("out.dat","w");for(i=0;i<20;i++){printf(\"%s\n",xx[i]);fprintf(out,"%s\n",xx[i]);}fclose(out);}注:先采用冒泡法对左边部分进行升序排序,然后将排序后的左半与右半按对应位进行调换。

void jsSort(){int i,strl,half,j,k;char ch;for(i=0;i<20;i++) /*行循环*/{strl=strlen(xx[i]); /*每行长度*/half=strl/2;for(j=0;j<half-1;j++) /*每行的第j个位置*/for(k=j+1;k<half;k++)if(xx[i][j]>xx[i][k]){ch=xx[i][j]; /*每次将最小数赋给xx[i][j]*/xx[i][j]=xx[i][k];xx[i][k]=ch;}for(j=half-1,k=strl-1;j>=0;j--,k--){ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}}}void jsSort(){int i,j,k,strl;char ch;for(i=0;i<20;i++){strl=strlen(xx[i]);for(j=0;j<strl/2;j++)for(k=j+1;k<strl/2;k++)if(xx[i][j]>xx[i][k]){ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}for(j=0;j<strl/2;j++){ch=xx[i][j];xx[i][j]=xx[i][(strl+1)/2+j];xx[i][(strl+1)/2+j]=ch;}}}3题函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS8.DAT中。

替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII 值),如果原字符是小写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序已给出。

原始数据文件存放的格式是:每行的宽度均小于80个字符。

请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

#include<stdio.h>#include<string.h>#include<conio.h>#include<ctype.h>unsigned char xx[50][80];int maxline=0;/*文章的总行数*/int ReadDat(void)void WriteDat(void)void encryptChar(){}void main(){clrscr();if(ReadDat()){printf("数据文件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("ps8.dat","w");for(i=0;i<maxline;i++){printf("%s\n",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}注:与题1相似。

相关文档
最新文档