2010年三级网络技术上机试题南开100题

合集下载

计算机三级上机:适用于三级网络技术、数据库等(南开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.DA T中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。

全国计算机等级考试三级网络技术南开上机100题(61-70)

全国计算机等级考试三级网络技术南开上机100题(61-70)

★题目61(结构体运算题)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。

其中:金额=单价*数量计算得出。

函数ReadDat()是读取这100个销售记录并存入结构数组sell中。

请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。

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

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

#include <stdio.h>#include <mem.h>#include <string.h>#include <conio.h>#include <stdlib.h>#define MAX 100typedef struct{char dm[5]; /*产品代码*/char mc[11]; /*产品名称*/int dj; /*单价*/int sl; /*数量*/long je; /*金额*/}PRO;PRO sell[MAX];void ReadDat();void WriteDat();void SortDat(){int i,j;PRO xy;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(sell[i].je>sell[j].je||sell[i].je==sell[j].je&&strcmp(sell[ i].dm,sell[j].dm)<0){xy=sell[i]; sell[i]=sell[j]; sell[j]=xy;}}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("OUT2.DAT","w");for(i=0;i<100;i++){printf("%s %s %4d %5d %5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,"%s %s %4d %5d %5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);}fclose(fp);}******************************************************************** *********☆题目62(字符替换题)无忧id 9 题条件微有不同函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS2.DAT中。

三级网络南开100题

三级网络南开100题
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
char xx[50][80];
int maxline=0;/*文章的总行数*/
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') ;
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序存放在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
例如:原文:You He Me
I am a student.
结果:Me He You
student a am I
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
部分源程序存在文件prog1.c中。
int ReadDat(void);
void WriteDat(void);

全国计算机等级考试三级网络技术南开上机100题(31-40)

全国计算机等级考试三级网络技术南开上机100题(31-40)

★☆题目31(结构体运算题)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。

其中:金额=单价*数量计算得出。

函数ReadDat()是读取这100个销售记录并存入结构数组sell中。

请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat() 把结果输出到文件OUT4.DAT中。

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

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

#include <stdio.h>#include <mem.h>#include <string.h>#include <conio.h>#include <stdlib.h>#define MAX 100typedef struct{char dm[5]; /*产品代码*/char mc[11]; /*产品名称*/int dj; /*单价*/int sl; /*数量*/long je; /*金额*/}PRO;PRO sell[MAX];void ReadDat();void WriteDat();void SortDat(){int i,j;PRO xy;for(i=0;i<99;i++)for(j=i+1;j<100;j++) if(sell[i].je<sell[j].je||sell[i].je==sel l[j].je&&strcmp(sell[i].dm,sell[j].dm)<0){xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}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<MAX;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("OUT4.DAT","w");for(i=0;i<MAX;i++){printf("%s %s %4d %5d %5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,"%s %s %4d %5d %5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);}fclose(fp);}******************************************************************** ******☆题目32(结构体运算题)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。

全国计算机等级考试三级网络技术南开上机100题

全国计算机等级考试三级网络技术南开上机100题

全国计算机等级考试三级网络技术南开上机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中。

2010三级网络技术上机南开100题word版

2010三级网络技术上机南开100题word版

*******************************************************************************☆题目1请编写一个函数jsV alue(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.DA T中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。

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

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.DA T中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。

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

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

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

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

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

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

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

#include<conio.h>#include<stdio.h>voidreadwriteDat();intisP(intm){inti;for(i=2;i<m;i++)if(m%i==0)return0;return1;}voidnum(intm,intk,intxx[]){ints=0;for(m=m+1;k>0;m++)if(isP(m)){xx[s++]=m;k--;}}main(){intm,n,xx[1000];clrscr();printf("\nPleaseentertwointegers:");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d",xx[m]);printf("\n");readwriteDat();}voidreadwriteDat(){intm,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中。

全国计算机等级考试三级网络技术上机题库(南开大学)

全国计算机等级考试三级网络技术上机题库(南开大学)

全国计算机等级考试三级网络技术上机试题库【南开100题最新版】Content整数排序题 (4)☆题目1(整数排序题) (4)☆题目2 正整数排序 (4)★☆题目3(整数统计排序题) (5)☆题目4(整数统计排序题) (5)题目5(整数运算排序题) (6)★题目6(整数各位统计排序题) (6)题目7(整数统计排序题) (7)★题目8(整数排序题) (7)★题目9(整数各位数字运算排序题) (8)题目10(整数各位数运算排序题) (8)★☆题目11 (整数各位数运算及排序题) (9)整数统计运算题 (9)★☆题目12整数统计运算题) (9)☆题目13(整数统计运算题) (10)☆题目14(整数统计运算题) (10)题目15(整数统计运算题) (11)题目16(整数统计运算题) (11)题目17(整数统计运算题) (12)☆题目18(整数统计运算题) (12)题目19(整数统计运算题) (12)题目20(整数各位数字运算题) (13)☆题目21(整数各位数字运算题) (13)题目22(整数各位数字运算题) (14)☆题目23(整数各位数字运算题) (14)题目24(整数各位数字运算题) (15)☆题目25(整数各位数字统计运算题) (15)★☆题目26(整数各位运算题) (15)题目27(整数各位数运算题) (16)☆题目28(整数各位数运算题) (16)☆题目29(整数各位运算统计题) (17)☆题目30 (18)题目31 (18)整数各位打散组合运算题 (19)★☆题目32(整数各位打散组合运算题) (19)☆题目33(整数各位打散组合运算题) (19)★☆题目34(整数各位打散组合运算题) (20)题目35(整数各位打散组合运算题) (20)★题目36(整数各位打散组合运算题题) (21)题目39(整数各位打散组合运算题) (23)素数题 (23)题目40(素数题) (23)题目41(素数统计排序题) (24)★☆题目42(素数题) (24)★题目43(素数题) (25)★题目44(素数题) (26)★题目45(数字运算题) (26)★题目46(数字统计排序题) (27)☆题目47(数字统计排序题) (27)字符型题 (28)题目48字符型题 (28)★题目49(字符处理——倒序输出) (29)★题目50(字符排序题) (29)★☆题目51(替换字符题) (30)☆题目52(亲朋字符替换题) (30)字符串处理题 (31)★☆题目53(字符串排序题) (31)☆题目54(字符串字母移位题) (32)★☆题目55(字符串左右排序交换题) (32)题目56(字符串左右排序交换题) (33)★题目57(字符串移位题) (33)题目58(字符串排序题) (34)★题目59(字符串左右排序题) (34)★题目60(字符ASCII值移位替换题) (35)方差运算题 (36)★☆题目61(方差运算题) (36)☆题目62(方差运算题) (36)☆题目63(方差运算题) (37)☆题目64(整数各位数运算题) (38)★题目65(字符替换题) (38)★☆题目66(字符替换题) (39)★题目67(字符替换题) (39)题目68(字符替换题) (39)题目69(字符替换题) (40)☆题目70(字符替换题) (40)★题目71(字符替换题) (41)☆题目72(字符替换题) (41)☆题目73(字符替换题) (42)★题目74(字符替换题) (42)★题目75(字符替题) (42)★☆题目76(字符替换题) (43)☆题目77(结构体操作题) (43)★☆题目78(结构体运算题题) (44)☆题目81(结构体运算题) (45)题目82(结构体运算题) (45)题目83 结构体运算题 (45)题目84(结构体运算题) (46)★题目85(结构体运算题) (46)题目86(结构体排列题) (47)选票问题 (47)题目87(选票问题) (47)★☆题目88(选票问题) (48)☆题目89(选票问题) (48)★☆题目90(级数运算题) (49)其他问题 (49)☆题目91(单词个数统计题) (49)★题目92(Fibonacci数列题) (50)☆题目93(迭代方法求方程题) (50)★题目94(平方根问题) (51)题目95 (实数运算题) (52)题目96(完全平方数问题) (53)★题目97 (回文数问题) (53)★题目98(出圈题) (54)☆题目99(SIX/NINE问题) (54)三级网络上机题型整数排序题☆题目1(整数排序题)在文件in.dat中有200个正整数,且每个数均在1000至9999之间。

计算机三级上机:适用于三级网络技术、数据库等(南开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(){i nt m,n,xx[1000];clrscr();p rintf("\nPlease enter two integers:");scanf("%d%d",&m,&n);n um(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;r f=fopen("in.dat","r");wf=fopen("out.dat","w");f or(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.DA T 中存有200 个四位数,并已调用读函数readDat() 把这些数存入数组 a 中,请考生编制一函数jsVal() ,其功能是:如果四位数各位上的数字均是0 或2 或4 或6 或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到全国计算机等级考试三级C语言上机100 题几点说明:********************************** ☆题目 1请编写一个函数jsValue(int m,int k,int xx[]) ,该函数的功能是:将大于整数m 且紧靠m 的k 个素数存入数组xx 传回。

南开计算机等级考试上机100题(三级)

南开计算机等级考试上机100题(三级)

南开计算机等级考试上机100题(三级)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#include#include#includeunsigned char xx[50][80];int maxline=0;/*文章的总行数*/int ReadDat(void)void WriteDat(void)void encryptChar(){ int i,j;char *p;for(i=0;i='a'&&xx[j]='0'&&p='A'&&p='0'&&xx[j]='A'&&xx[j] ='a'&&p130);else xx[j]=p; } }11.函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。

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

三级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部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。

运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT 中。

填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。

调试中若发现整个程序中存在错误之处, 请加以修改。

试题程序: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,NCLDMAIN1: LODSBTEST AL,00HJZ MAIN2INC DH ;-MOV [BX],ALINC BXJMP MAIN3MAIN2: INC DLMOV [DI],AL ;+INC DIMAIN3: LOOP MAIN1LEA SI,PDATALEA DI,RESULTMOV [DI],DLINC DIXOR CX,CXMOV CL,DLMAIN4: MOV AL,[SI]MOV [DI],ALINC DIINC SILOOP MAIN4_MOV [DI],DHINC DIXOR CX,CXMOV CL,DHMOV BX,OFFSET NDATAMAIN5: MOV AL,[BX]MOV [DI],ALINC DIINC BXLOOP 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)异或的结果。

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

*******************************************************************************☆题目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 中。

最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DA T中void StrOR(void){int i,righto,j,s,k;for(i=0;i<maxline;i++)for(j=strlen(xx[i])-1;j>=0;j--){ k=0;memset(tem,0,80);if(xx[i][j]=='o'){righto=j;for(s=righto+1;s<strlen(xx[i]);s++)tem[k++]=xx[i][s];for(s=0;s<righto;s++)if(xx[i][s]!='o')tem[k++]=xx[i][s];strcpy(xx[i],tem);}else continue;}}*******************************************************************************★题目4函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。

最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6.DAT中。

例如:原文:You He MeI am a student.结果:Me He Youstudent a am Ivoid StrOL(void){ int i,j,k,s,m,strl;char str[80];for(i=0;i<maxline;i++){ strl=strlen(xx[i]);memset(str,0,80);s=k=0;for(j=strl-1;j>=0;j--){ if(isalpha(xx[i][j])) k++;else { for(m=1;m<=k;m++)str[s++]=xx[i][j+m];k=0;}if(!isalpha(xx[i][j]))str[s++]=' ';}for(m=1;m<=k;m++)str[s++]=xx[i][j+m];str[s]='\0';strcpy(xx[i],str); }}*******************************************************************************☆题目5(整数排序题)在文件in.dat中有200个正整数,且每个数均在1000至9999之间。

函数ReadDat()读取这200个数存放到数组aa中。

请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。

最后调用函数WriteDat()把结果bb输出到文件out.dat中。

例:处理前6012 5099 9012 7025 8088处理后9012 6012 7025 8088 5099void jsSort(){int i,j,data;for(i=0;i<199;i++)for(j=i+1;j<200;j++) if(aa[i]%1000>aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]<aa[j]) {data=aa[i];aa[i]=aa[j];aa[j]=data;}for(i=0;i<10;i++)bb[i]=aa[i];}******************************************************************************☆题目6正整数排序在文件in.dat中有200个正整数,且每个数均在1000至9999之间。

函数ReadDat()读取这200个数存放到数组aa中。

请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行升序排列。

最后调用函数WriteDat()把结果bb输出到文件out.dat中。

例:处理前9012 5099 6012 7025 8088处理后5099 8088 7025 6012 9012void jsSort(){int i,j,data;for(i=0;i<199;i++)for(j=i+1;j<200;j++)if(aa[i]%1000<aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]>aa[j]){data=aa[i];aa[i]=aa[j];aa[j]=data;}for(i=0;i<10;i++)bb[i]=aa[i];}***************************************************************************☆题目7(结构体操作题)已知在文件IN.DA T中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。

其中:金额=单价*数量计算得出。

函数ReadDat()是读取这100个销售记录并存入结构数组sell中。

请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DA T中。

void SortDat(){int i,j;PRO xy;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(strcmp(sell[i].dm,sell[j].dm)<0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[i].je<sell[j].je){xy=sell[i]; sell [i]=sell[j]; sell[j]=xy;}}******************************************************************************函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DA T中。

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

(注意中间变量用无符号整型),部分源程序存在文件prog1.c中。

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

void encryptChar(){ int i,j;for(i=0;i<maxline;i++)for(j=0;j<strlen(xx[i]);j++)if(xx[i][j]*11%256<=32||xx[i][j]*11%256>130) continue;else xx[i][j]=xx[i][j]*11%256;}******************************************************************************★☆题目9(字符串排序题)函数ReadDat()实现从文件IN.DA T中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT2.DA T中。

相关文档
最新文档