问答题已知数据文件IN68.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT68.DAT文件。 注意:部分源程序已给出。 程序中已定义数组:a[200],b[200],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include<stdio. h> #define MAX 200 int a [MAX] ,b [MAX], cnt=0; void jsVal() void readDat ( ) int i; FILE *fp; fp= fopen ( "IN68. DAT" , "r" ); for (i=0; i<MAX; i++) fscanf(fp,"%d", 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 ( "out68.dat", "w" ); fprintf (fp, "%d/n", cnt); for (i=0; i<cnt; i++) fprintf(fp, "%d/n",b[i]); fclose (fp);
问答题函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存人到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存人数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。 替代关系:f(P)=P*11 mod 256(P是数组xx中某一个字符的ASCⅡ值,f(P)是计算后新字符的ASCⅡ值),如果计算后f(P)的值小于等于32或大于130,则该字符不变,否则将f(P)所对应的字符进行替代。 注意:部分源程序已给出。 原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 [试题程序] #include<stdlib.h> #include<stdio.h> #include<string.h> #include<ctype.h> unsigned char xx[50][80]; int maxline=0;/* 文章的总行数 */ int ReadDat(void); void WriteDat(void); void encryptchar() voidmain() system("CLS"); if(ReadDat()) printf("数据文件ENG4.IN不能打开!/n/007"); return; encryptChar(); WriteDat(); int ReadDat(void) FILE*fp; int i=0; unsigned char *p; if((fp=fopen("ENG4.IN","r"))==NULL)return 1; while(fgets(xx[i],80,fp)!=NULL) P=strchr(xx[i],'in'); if(P) *p=0; i++; maxline=i; fclose(fp); return 0; void WriteDat(void) FILE*fp; int i; fp=fopen("PS4.DAT","w"); for(i=0;i<maxline;i++) printf("% s/n",xx[i]); fprintf(fp,"% s/n",xx[i]); fclose(fp);
问答题请编制程序,要求:将文件IN97.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,以及数组xx下标为偶数的元素值的算术平均值pj(保留2位小数),将结果cnt1、cnt2、pj输出到文件out97.dat中。 注意:部分程序、读函数read_dat(int xx[200])及输出格式已给出。 试题程序: #include <stdlib.h> #include <stdio.h> #define N 200 void read_dat(int xx[N]) int i,j; FILE * fp; fp=fopen("IN97.DAT","r"); for(i=0;i<20;i + +) for(j=0;j<10;j + +) fscanf(fp,"% d,",&xx[i*10+j]); printf("% d",xx[i*10+j]); printf("/n"); fclose(fp); void main() int cnt1,cnt2,xx[N]; float pj; FILE * fw; int i,k=0; long j; system("CLS"); fw=fopen("out97.dat","w"); read_dat(xx); printf("/n/ncnt1=% d,cnt2=% d,pj=% 6.2f/n",cnt1,cnt2,pj); fprintf(fw,"% d/n% d/n% 6.2f/n",cnt1,cnt2,pj); fclose(fw);
问答题下列程序的功能是:把s字符串中所有的字符左移一个位置,串中的第一个字符移到最后。请编制函数chg(char*s)实现程序要求,最后调用函数readwriteDat()把结果输出到out61.dat文件中。 例如:s字符串中原有内容为Mn,123xyZ,则调用该函数后,结果为n,123xyZM。 注意:部分源程序已给出。 请勿改动主函数main()和输入输出函数readwriteDAT()的内容。 [试题程序] #include<string.h> #include<stdlib.h> #include<stdio.h> #defiRe N 81 void readwriteDAT(); void chg(char*s) voidmain() char a[N]; system("CLS"); printf("Enter a string:"); gets(a); printf("The original string is:"); puts(a); chg(a); print f("The string after modi fied:"); puts(a); readwriteDAT(); void readwriteDAT() int i; char a[N]; unsigned char*P; FILE*rf,*wf; rf=fopen("in61.dat","r"); wf=fopen("out61.dat","w"); for(i=0;i<10;i++) fgets(a,80,rf); P=strchr(a,'/n'); if(P) *P=0; chg(a); fprintf(wf,"%s/n',a); fclose(rf); fclose(wf);
问答题请编制程序,其功能是:内存中连续存放着20个十六位二进制无符号数序列,请将它们排成升序(从小到大)。 例如: 内存中有:7001H,7004H,7002H,…(假设后17个字均大于7004H) 结果为: 7001H,7002H,7004H,…(后跟17个字,按从小到大的顺序排列) 部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 请填空BEGIN和END之间已经给出的源程序使其完整,需填空处已经用横线标出,每个空白一般只需一条指令,也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。 [试题程序] EXTRNLOAD:FAR,SAVE:FAR N EQU 20 STAC SEGMENT STACK DB 128 DUP (?) STAC ENDS DATA SEGMENT SOURCE DW N DUP(?) RESULT DW N DUP(0) NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC START PROCFAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA SI,SOURCE ; 数据区起始地址 LEA SI,NAME0 ; 原始数据文件名 MOV CX,N*2 ; 字数 CALL LOAD ; 从'DAT'中读取数据; ; ********* BEGIN ************ LEA SI,SOURCE LEA DI,RESULT MOV CX,N NEXT0: MOV AX, [SI] MOV [DI] ,AX ADD SI, (1) (2) LOOP (3) CLD MOV BX,N-1 MAL1: LEA SI,RESULT MOV CX, (4) NEXT: LOD (5) CMP [SI] ,AX JAE CONT XCHG [SI], (6) MOV [SI-2],AX CONT: LOOP (7) (8) (9) MALl ; ********* END ******** LEA DX,RESULT ;结果数据区首址 LEA SI,NAME1 ;结果文件名 MOV CX,N*2 ;结果字数 CALL SAVE ;保存结果到文件 RET START ENDP CODE ENDS END START
问答题已知在文件IN61.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量s1(整型)、金额je(长整型)几部分组成。其中,金额=单价×数量可计算得出。函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件 OUT61.DAT中。 注意:部分源程序已给出。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<stdio. h> # inc lude<mem, h> #include<string. h> # inc lude<conio, h> #inc lude<stdl ib. h> #define MAX 100 typedef struct char dm[5]; char mc[ll]; int dj; int sl; 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("IN61.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 ( "OUT61. DAT", "w" ); for (i=0; i<100; i++) fprintf(fp,"%s %s %4d %5d %101d/n",sell[ sell [i].dj,sell[i].sl, sell[i].je); fclose (fp);
问答题请编制函数ReadDat()实现从文件IN85.DAT中读取1000个十进制整数到数组xx中。请编制函数Compute()分别计算出xx中奇数的个数odd、偶数的个数even、平均值aver及方差totfc的值,最后调用函数WriteDat()把结果输出到0UT85.DAT文件中。计算方差的公式如下:原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。注意:部分源程序已给出。请勿改动主函数main()和写函数WriteDat()的内容。试题程序:#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX1000intxx[MAX],odd=0,even=0;doubleaver=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void)FILE*fp;if((fp=fopen("IN88.DAT","r"))==NULL)return1;fclose(fp);return0;voidCompute(void)voidmain()inti;for(i=0;i<MAX;i++)xx[i]=0;if(ReadDat())printf("数据文件IN85.DAT不能打开!/007/n");return;Compute();printf("ODD=%d/nEVEN=%d/nAVER=%1f/nTOTFC=%1f/n",odd,even,aver,totfc);WriteDat();voidWriteDat(void)FILE*fp;fp=fopen("OUT85.DAT","w");fprintf(fp,"%d/n%1f/n%1f/n%1f/n",odd,even,aver,totfc);fclose(fp);
问答题编制一个程序,其功能为:内存中以8位无符号数形式连续存放着10个数据,这数据来自于一个自动抄表系统记录的10个用户某月天然气的使用量(立方米),天然气费计算公式如下(其中,X表示天然气用量,Y表示应交天然气费):a)Y=X×80 X≤6b)Y=X×120 6<X≤10c)Y=X×160 X>10 计算每个用户需要交的天然气费,结果用字表示,并将结果存入指定单元。 例如: 用天然气量:05H,07H,12H…… 天然气费: 0190H,0348H,0780H…… 部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放, 由过程SAVE保存到文件OUTPUT.DAT中。 请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令亦可,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。 [试题程序] EXTRN LOAD:FAR,SAVE:FAR N EQU 10 DSEG SEGMENT SOURCE DB N DUP(?) RESULT DW N DUP(0) A DB 80 B DB 120 C DB 160 NAME0 DB 'INPUT.DAT',0 NAME1 DB 'OUTPUT.DAT',0 DSEG ENDS SSEG SECMENT STACK DB 256 DUP(?) SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,SS:SSEG START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DSEG MOV DS,AX LEA DX,SOURCE LEA SI,NAME0 MOV CX,N CALL LOAD ; ******** BEGIN ********* LEA SI,SOURCE LEA DI,RESULT CLD MOV CX,N AGAIN: MOV AL,[SI] CMP AL,6 JA (1) (2) JMP NEXT LIMIT6:CMP AL,10 JA (3) (4) JMP NEXT LIMIT10: (5) NEXT: MOV [DI],AX INC SI ADD DI,2 LOOP AGAIN ; ******** END ******** LEA DX,RESULT LEA SI,NAME1 MOV CX,N*2 CALL SAVE RET START ENDP CSEG ENDS END START
问答题编制一个程序,其实现的功能是:对一个数字采集系统采集的50个字节无符号数按算术平均数字滤波方法进行数字滤波,每5个数求一个平均数(含余数,其中低字节为商,高字节为余数),将10个平均值依次存入RESULT指示的内存区域。 例如: 原始采集数据:05H,07H,12H,08H,10H,09H,2EH,56H,48H,85H,65H,36H,45H…… 则结果为: 0A04H,4003H…… 部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。 请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。 【试题程序】 EXTRN LOAD:FAR,SAVE:FAR N EQU 10 DSEG SEGMENT SOURCE DB 6*N DUP(?) RESULT DW N DUP(0) NAME0 DB 'INPUT.DAT',0 NAME1 DB 'OUTPUT.DAT',0 DSEG ENDS SSEG SEGMENT STACK DB 256 DUP(?) SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,SS:SSEG START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DSEG MOV DS,AX LEA DX,SOURCE LEA SI,NAME0 MOV CX,6*N CALL LOAD ;******** BEGIN ******** LEA SI,SOURCE LEA DI,RESULT MOV DX,N AGAIN: SUB AX,AX (1) MOV CX,6 AGAIN1: MOV AX,[SI] ADD BX,AL INC SI (2) (3) MOV CL,6 (4) (5) ADD DI,2 DEC DX JNZ AGAIN ;******** END ******** LEA DX,RESULT LEA SI,NAME1 MOV CX,N*2 CALL SAVE RET START ENDP CSEG ENDS END START
问答题现有一个10个人100行的选票数据文件in.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推;内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于等于8或者小于等于2个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[g]中。把结果yy输出到文件out.dat中。 注意:部分源程序给出如下。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 [试题源程序] #include<stdio.h> char xx[100][11]; int yy[10]; int ReadDat(void); void WriteDat(void); void CountRs(void) void main() int i; for(i=0;i<i0;i++)yy[i]=0; if(ReadDat()) printf("can not open the file IN.DAT!/n/007"); return; CountRs(); WriteDat(); int ReadDat(void) FILE*fp; int i: if((fp=fopen("IN.DAT","r"))==NuLL)return 1; for(i=0;i<100;i++) if(fgets(xx[i],12,fp)==NULL)return 1; xx[i][10]='/0'; fclose(fp); return 0; void WriteDat(void) FILE*fp; int i: fp=fopen("OUT.DAT,"w"); fol(i=0;i<10;i++) fprintf(fp,"%d/n",yy[i]); printf("第%d个人的选票数=%d/n",i+1,yy[i]); fclose(fp);
问答题请编制程序,其功能是:以SOURCE开始的内存区域存放着N个字节的压缩BCD码,将每个压缩BCD码转换成两个 ASCII值,并在每个ASCII值的最高位增加偶校验位,结果存放在RESULT指示的内存区域。 例如: 原压缩BCD码:26H,75H,91H,33H… 结果为: B2H,36H,B7H… 部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 请填空BEGIN和END之间已经给出的一段原程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。 [试题程序] EXTRN LOAD:FAR,SAVE:FAR N EQU 10 STAC SEGMENT STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT SOURCE DB N DUP(0) RESULT DB 2*N DUP(0) NAME0 DB 'INPUT1.DAT',0 NAME1 DB 'OUTPUT1.DAT',0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STAC START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX ;置附力,段寄存器 LEA DX,SOURCE ;数据区起始地址 LEA SI,NANE0 ;原始数据文件名 MOV CX,N ;字节数 CALL LOAD ;从'INPUT1.DAT' 中读取数据 ; *************BEGIN ************* LEA SI,SOURCE MOV DI,OFFSET RESULT MOV CX,N SERCH1: MOV (1) MOV AH,AL AND AH,0FH AND AL,0FOH PUSH CX MOV CL,4 (2) (3) ADD AL,30H (4) OR AL,80H SERCH2: MOV [DI],AL INC DI (5) JP SERCH3 OR AH,80H SERCH3: MOV [DI],AH INC DI INC SI (6) SERCH1 ; ******** END *********** LEA DX,RESULT ; 结果数据区首址 LEA SI,NAMEl ;结果文件名起始地址 MOV CX,2*N ;字节数 CALL SAVE ;保存结果到,OUTPUT1.DAT,文件中 RET START ENDP CODE ENDS END START
问答题函数ReadDat()的功能是实现从文件ENG56.IN中读取一篇英文文章,并存入到字符串数组xx中。请编制函数encryChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存人数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx输出到文件ps56.dat中。 替代关系:f(P)=P*11 mod 256(P是数组xx中某一个字符的ASCⅡ值,f(P)是计算后新字符的ASCⅡ值),如果原字符是小写字母或计算后f(P)的值小于等于32,则该字符不变,否则将f(P)所对应的字符进行替代。 注意:部分源程序已给出。 原始数据文件的存放格式是:每行的宽度均小于80个字符。 请勿改动主函教main()、读函数ReadDat()和写函数WriteDat()的内容。 [试题程序] #include<stdlib.h> #include<stdio.h> #include<string.h> #include<ctype.h> unsigned char xx[50][80]; int maxline=0; int ReadDat(void); void WriteDat(void); void encryChar() voidmain() system("CLS"); if(ReadDat()) printf("数据文件ENG56.IN不能打开!/n/007"); return; encryChar(); WriteDat(); int ReadDat(void) FILE*fp; int i=0; unsigned char*P; if((fp=fopen("ENG56.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() FILE*fP; int i; fp=fopen("ps56.dat","W"); for(i=0;i<maxline;i++) printf("%s/n",xx[i]); fprintf(fp,"%s/n",xx[i]); fclose(fp);
问答题函数ReadDat()的功能是实现从文件ENG53.IN中读取一篇英文文章,并存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代;结果仍存人数组xx的对应的位置上,最后调用函数WdteDat()把结果xx输出到文件PS53.DAT中。 替代关系:f(P)=P*11 mod 256(P是数组xx中某一个字符的ASCⅡ值,f(P)是计算后新字符的ASCⅡ值),如果原字符是大写字母或计算后f(P)的值小于等于32,则该字符不变,否则将f(P)所对应的字符进行替代。 注意:部分源程序已给出。 原始数据文件的存放格式是:每行的宽度均小于80个字符。 请勿改动主函教mainf()、读函数QeadDat()和写函数WriteDat()的内容。 [试题程序] #include<stdlib.h> #include<stdio.h> #include<string.h> #include<ctype.h> unsigned char XX[50][80]; int maxline=0; int ReadDat(void); void WriteDat(void); void encryChar() void main() system("CLS"); if(ReadDat()) printf("数据文件ENG53.IN不能打开!/n/007"); return; encryChar(); WriteDat(); int ReadDat(void) FILE*fp; int i=0; unsigned char * P; if((fp=fopen("ENG53.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() FILE*fp; int i; fp=fopen("ps53.dat","w"); for(i=0;i<maxline;i++) printf("%s/n",xx[i]); fprintf(fp,"%s/n",xx[i]); fclose(fp);
问答题已知数据文件IN24.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数wfiteDat()把数组b中的数输出到OUT24.DAT文件中。 例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。 8129,8+9≠1+2,则该数不满足条件,忽略。 注意:部分源程序已给出。 程序中已定义数组:a[300],b[300],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include〈stdio.h> int a[300], b[300], cnt=0; void jsValue() 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("IN24.DAT", "r"); for(i=0; i〈300; i++) fscanf(fp,"%d,", fclose(fp); writeDat ( ) FILE *fp; int i; fP = fopen("OUT24.DAT","w"); fprintf (fp,"%d/n",cnt); for(i=0; i〈cnt; i++) fprintf(fp, "%d,/n", b[i]); fclose (fp);
问答题在文件in33.dat中有200个正整数,且每个正整数均在1000至9999之间。函数readDat()的功能是读取这200个数并存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按照每个数的后3位的大小进行升序排列,将排序后的前10个数存入数组 bb中,如果数组bb中出现后3位相等的数,则对这些数按原始4位数据进行降序排列。最后调用函数writeDat()把结果bb输出到文件out33.dat中。 例如:处理前 6012 5099 9012 7025 8088 处理后 9012 6012 7025 8088 5099 注意:部分源程序已给出。 请勿改动主函main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include<stdio.h> #include<string.h> #include<conio.h> int aa[200],bb[10]; void readDat(); void writeDat(); void jsSort() Void main() readDat (); jsSort(); writeDat(); void readDat() FILE *in; int i; in=fopen("in33.dat","r"); for(i=0;i<200;i++) fscanf(in,"%d ", fclose(in); void writeDat() FILE *out; int i; clrscr(); out=fopen("out33.dat","w"); for(i=0;i<10;i++) printf("i=%d, %d/n", i+1, bb[i]); fprintf(out, "%d/n",bb[i]); fclose(out);
填空题编译程序有的直接产生目标代码,也有的先产生______或汇编语言代码,最后产生可执行目标文件。
填空题把平均检索长度最小的二叉排序树称作【 】。
填空题每一种新版本的Windows都带有许多新功能,从总体上讲,Windows系统今后发展的主要趋势是______ 。
填空题当执行指令“SUB AX,BX”后,CF=1,说明______向高位无进位或有借位;对 _______数,操作结果溢出。
填空题可行性分析报告为{{U}} 【12】 {{/U}}的结果。
