问答题网络管理员使用DHCP服务器对公司内部主机的IP地址进行管理。在DHCP客户机上执行“ipconfig/all”得到的部分信息如图(a)所示,该客户机在进行地址续约时捕获的其中1条报文及相关分析如图(b)所示。请分析图中的信息,补充图(b)中空白处的内容。
问答题
问答题
问答题已知在文件in37.dat中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中,金额 =单价×数量可计算得出。函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。请编制函数 SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件out37.dat中。 注意;部分源程序已给出。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<stdio.h> #include<mem.h> #include<string.h> #include<conio.h> #include<stdlib.h> #define MAX 100 typedef struct char dm[5]; char mc[11]; 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("IN37.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 ( "OUT37.DAT", "w" ); for(i=0; i<100; i++) fprintf(fp,"%s %s %4d %5d %101d/n", sell [i].dm, sell[i].mc, sell[i].dj,sell[i].sl, sell[i].je); fclose (fp);
问答题用DHCP服务器对公司内部主机的IP地址进行管理。在DHCP客户机上执行“ipconfig/all”得到的部分信息如图(A)所示,该客户机在进行地址续约时捕获的其中1条报文及相关分析如图(B)所示。请分析图中的信息,补全图(B)中的内容。
问答题函数ReadDat()的功能是实现从文件ENG49.IN中读取——篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS49.DAT中。 替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)的值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。 注意:部分源程序已给出。 原始数据文件的存放格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<conio.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() clrscr(); if (ReadDat ()) printf ("数据文件 ENG49. IN 不能打开!/n/007"); return; encryChar(); WriteDat(); int ReadDat (void) FILE *fp; int i=0; unsigned char *p; if((fp=fopen("ENG49.IN","r"))==NULL) return 1; while(fgets(xx[i],80,fp) !=NULL) p=strchr(xx[i],'/n'); if(p) *p=07 i++; maxline=i; fclose(fp); return 0; void WriteDat() FILE *fp; int i; fp=fopen("ps49.dat","w"); for(i=0;i<maxline;i++)* printf("%s/n",xx[i]); fprintf (fp, "%s/n", xx[i] ); fclose(fp)
问答题下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int jsValue(long n)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out43.dat中。 注意:部分源程序已给出。 请勿改动主函数main()。 #include<stdio.h> int jsValue(long n) main ( ) long m; FILE *out; out=fopen ("out43.dat", "w"); for (m=11;m<1000;m++) if(jsValue(m) fprintf (out, "m=%41d, m*m=%61d, m*m*m=%81d/n", m, m*m, m*m*m); fclose (out);
问答题
问答题
问答题已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一个函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数大于该四位数以前的连续5个数且该数是奇数,且该数必须能被7整除(该四位数以前不满5个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt和数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件PROG1.C文件中。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 [试题程序] #include #define MAX 200 int a[MAX],b[MAX],cnt=0; void writeDat(); void jsVal() void readDat() int i; FILE *fp; fP=fopen("in.dat","r"); for(i=0;i<MAX;i++) fscanf(fp,"%d", fclose(fp); void main() int i; readDat(); jsVall (); printf(“满足条件的数=%d/n”,cnt); for(i=0;i<cnt;i++) printf("%d",b[i]); printf("/n"); writeDat(); void 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);
问答题请根据下图所示网络结构回答下列问题。网络结构示意图
问答题请根据下图所示网络结构回答下列问题。{{B}}网络结构图{{/B}}
问答题函数ReadDat()的功能是实现从文件IN74.DAT中读取一篇英文文章存入到字符串数组XX中。请编制函数StrCharJL(),该函数的功能是:以行为单位把字符串中的所有字符的ASCⅡ值左移4位,如果左移后,其字符的ASCⅡ值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCⅡ值再加-上原字符的ASCⅡ值,得到的新字符仍存入到原字符串对应的位置。最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WriteDat()把结果xx输出到文件OUT74.DAT中。 注意:部分源程序已给出。 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<stdio.h> #include<string.h> #include<conio.h> char xx[50][80]; int maxline=0; int ReadDat(void); void WriteDat(void); void StrCharJL(void) void main() clrscr(); if(ReadDat()) printf ("数据文件 IN74.DAT 不能打开/n/007"); return; StrCharJL(); WriteDat(); int ReadDat (void) FILE *fp; int i=0; char *p; if((fp=fopen("IN74.DAT","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; clrscr(); fp=fopen("OUT74.DAT","w"); for(i=0;i<maxline;i++) printf("%s/n",xx[i]); fprintf(fp, "%s/n", xx[i]); fclose(fp);
问答题请根据下图所示网络结构回答问题。
问答题函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数CharConvA(),其函数的功能是:以该文章中的行为单位把字符串中的最后一个字符的ASCⅡ值右移4位二进制位,高位补0后加最后第二个字符的ASCⅡ值,得到最后一个新的值,最后第二个字符的ASCⅡ值右移4位二进制位,高位补0后加最后第三个字符的ASCⅡ值,得到最后第二个新的值,依次类推一直处理到第二个字符。注意:第一个新的值与上述处理不同,第一个字符的ASCⅡ值加原最后一个字符的ASCⅡ值,得到第一个新的值。得到的新值分别存放在原字符串对应的位置上,之后把已处理的字符串仍按行重新存入数组xx中。最后main()函数调用函数WriteDat()把结果XX输出到OUT.DAT文件中。原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按它的ASCⅡ值作以上处理。 注意:部分源程序存放在PROG1.C中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 [试题程序] #include #include char XX[50][80]; int maxline=0;/*文章的总行数*/ int ReadDaf(void); void WriteDat(void); void CharConvA(void) void main() if(ReadDat()) prinff(“数据文件IN.DAT不能打开!/n/007”); return; CharConvA(); WriteDat(); int ReadDat(void) 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'); if(p) *p=0; i++; maxline=i; fclose(fp); return 0; void WriteDat(void) FILE *fp; int i; fp=fopen("out.dat","w"); for(i=0;i<maxline;i++)( printf("%s/n",xx[i]); fprintf(fp,"%s/n",xx[i]); fclose(fp);
问答题
问答题下图是校园网中一台主机在命令行模式下执行某个命令时用sniffer捕获的数据包。请根据图中信息回答下列问题。
问答题已知数据文件IN27.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数 cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT27.DAT文件。 例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。 8129,8+1≠2+9,则该数不满足条件,忽略。 注意:部分源程序已给出。 程序中已定义数组:a[300],b[300],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include〈stdio.h> int a[300], bi300], 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("IN27.DAT", "r"); for(i = 0; i 〈 300; i++) fscanf(fp, "%d,", writeDat () FILE *fp; int i; fp = fopen("OUT27.DAT", "w"); fprintf (fp, "%d/n",cnt); for(i = 0; i 〈 cnt; i++) fprintf(fp, "%d,/n", b[i]); fclose (fp);
问答题某客户机使用DHCP获取IP地址等信息,其获取IP地址过程中捕获的4条报文及对第2条报文分析如下图所示。请分析其中的信息,补全内容。
问答题如下图所示,在某DHCP客户机上捕获了6个报文,并对第5条报文进行了解析。分析图中信息并回答下列问题。