问答题请根据下图所示网络结构回答下列问题。{{B}}网络结构示意图{{/B}}
问答题函数ReadDat() 的功能是实现从文件IN8.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrCharJP(),该函数的功能是:以行为单位把字符串中的所有字符的ASCII值右移4位,然后把右移后的字符的ASCII值再加上原字符的ASCII值,得到新的字符,并存入原字符串对应的位置上。最后把已处理的字符串按行重新存入字符串数组xx中,并调用函数WriteDat()把结果xx输出到文件OUT8.DAT中。
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include
#include
#include
char xx[50][80];
int maxline = 0; /* 文章的总行数 */
int ReadDat(void);
void WriteDat(void);
void StrCharJR(void)
{
}
main()
{
clrscr();
if(ReadDat())
{
printf("数据文件IN8.DAT不能打开!/n/007");
return;
}
StrCharJR();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i= 0;
char *p;
if ((fp = fopen("IN8.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("OUT8.DAT", "w");
for(i = 0; i < maxline; i++)
{
printf("%s/n", xx[i]);
fprintf(fp, "%s/n", xx[i]);
}
fclose(fp);
}
问答题已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码DM(字符型,4位)、产品名称MC(字符型,10位)、单价DJ(整型)、数量SL(整型)、金额JE(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()读取这100个销售记录并将其存入结构数组SELL中。请编制函数SortDat(),其功能要求为:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组距SELL中,最后调用函数WriteDat()把结果输出到文件OUT.DAT中。 注意:部分源程序给出如下。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 [试题源程序] #include<Stdio.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 Seii[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; if((fp=fopen("IN.DAT","r"))==NULL) return; 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; if((fp=fopen("OUT.DAT","w"))==NULL) return; 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%10ld/n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je); fclose(fp);
问答题
问答题已知在文件IN42.DAT中存有N个实数(N<200),函数ReadDat()读取这N个实数并存入数组xx中。请编制程序Ca1Value(),其功能要求: (1)求出这N个实数的平均值aver。 (2)分别求出这N个实数的整数部分值之和sumint及其小数部分之和sumdec,最后调用函数WriteDat()把所求的结果输出到文件OUT42.DAT中。 注意:部分源程序已给出。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<stdio.h> #include<conio.h> #define MAXNUM 200 float xx[MAXNUM]; int N=0; double aver=0.0; double sumint=0.0; double sumdec=0.0; int ReadDat( ); void WriteDat( ); void CalValue( ) void main ( ) clrscr ( ); if (ReadDat ( ) ) printf ("数据文件IN42.DAT不能打开! /007/n"); return; CalValue ( ); printf ("文件IN42.DAT中共有实数%d个/n", N); printf ("平均值=%.21f/n", aver); printf ("整数部分之和=%.21f/n", sumint); printf ("小数部分之和=%.21f/n", sumdec); WriteDat ( ); int ReadDat () FILE *fp; int j; if((fp=fopen("in42.dat","r"))==NULL) return 1; while (! feof (fp)) fscanf (fp, "%f", if (xx[N] >0.001) N++; fclose (fp); return 0; void WriteDat() FILE *fp; fp=fopen ( "OUT42.DAT", "w"); fprintf (fp, "%dkn%.21f/n%.21f/n%.21f/n", N, aver, sumint, sumdec); fclose (fp);
问答题
问答题
问答题请根据下图所示网络结构回答下列问题。网络结构示意图
问答题下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现程序的要求,最后调用函数read write DAT()把结果输出到out31.dat文件中。 例如,若输入17,5,则应输出19,23,29,31,37。 注意:部分源程序已给出。 请勿改动主函数main()和输入输出函数read write DAT()的内容。 试题程序: #include #include Void readwriteDAT(); Void num(int m,int k,,int XX[]) main() int m,n,xx[1000]; Clrscr(); printf(“/nPlease enter tWO integers:”) ‘scanf(“%d,%d”, num(m, n, XX); for(m=0;m<n;m++) printf(“%d”, XX[m]); printf(”/n”); readwriteDAT(); ) VOid read write DAT() int m,n,xx[1000],i; FILE *rf.,*Wf; rf=fopen(“in31.Dat”,r”); Wffopen(“ou1t31.Dat”/”w”);。 for(i=0;i<10;i++) fscanf(rf,%d,” %d”, num(m,n,XX); for(m=0;m fprintf(wf,%d”,xx[m]); fprintf (wf, “/n”); fclose(rf); fclose (wf);
问答题下图是校园网某台主机在命令行模式执行某个命令时用sniffer捕获的数据包。根据图中信息回答下列问题。
问答题已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的含有两位数字的数ab(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的含有两位数字的数cd(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的百位数字),如果新组成的两个数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为0,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数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(); jsVal(); 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);
问答题下图是校园网某台主机在命令行模式执行某个命令时用sniffer捕获的数据包。请根据图中信息回答下列问题。
问答题用DHCP服务器对公司内部主机的IP地址进行管理。在DHCP客户机上执行“ipconfig/all”得到的部分信息如图(A)所示,该客户机在进行地址续约时捕获的其中1条报文及相关分析如图(B)所示。请分析图中的信息,补全图(B)中的内容。
问答题已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)5部分组成。其中,金额=单价×数量。函数ReadDat()是读取100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求如下:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列,最终结果仍存入结构数组sell中,最后调用函数WriteDat()把结构输出到文件OUT1.DAT中。 注意:部门源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 试题程序: #include<stdio.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("IN.DAT","r"); for(i=0;i<100;i++) fgets(str,80,fp); memcpy(sell[i].dm,str,4); memcpy(sell[i].me,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("OUT1.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); }
问答题计算并填写下表。
问答题函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,存到字符串数组XX中;请编制函数encryptChar(),按给定的替代关系对数组XX中的所有字符进行替代,仍存入数组XX对应的位置上,最后调用函数WriteDat()把结果XX输出到文件OUT.DAT中。替代关系:f(p)=P*13mod 256,mod为取余运算,P是数组XX中某一个字符的ASCⅡ值,f(p)是计算后的无符号整型值(注意:中间变量定义成整型变量),如果计算后f(p)值小于等于32或是偶数,则该字符不变,否则用f(p)替代所对应的字符。 注意:部分源程序存放在PROG1.C中,原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。 [试题程序] #include #include #include unsigned char XX[50][80]; int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar(); void main() if (ReadDat()) printf("数据文件INDAT不能打开!/n/007"); return; encryptChar(); WriteDat(); int ReadDat(void) FILE *fp; int i=0; unsigned 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);
问答题计算并填写下表
问答题请根据下图所示网络结构回答下列问题。
问答题如下图所示,某公司的办公网和商务网通过路由器R1互连,并通过R2、R3与Internet相连。公司内部使用OSPF路由协议,与Internet连接使用静态路由。请阅读以下R1的部分配置信息,并补充空白处的配置命令或参数,按题目要求完成R1的正确配置。Router-Rl>enableRouter-R1#configureterminalRouter-R1(config)#interlaceg0/1Router-R1(config-if)#ipaddress222.26.19.1255.255.255.128Router-R1(config-if)#noshutdownRouter-R1(config-if)#interfaceg0/2Router-R1(config-if)#ipaddress222.26.19.129255.255.255.128Router-R1(config-if)#noshutdownRouter-R1(config-if)#exitRouter-R1(config)#Router-R1(config)#interfacepos3/1Router-R1(contig-if)#bandwidth【6】Router-R1(config-if)#ipaddress202.112.41.14255.255.255.252Router-R1(config-if)#【7】32Router-R1(config-if)#posframingsdhRouter-R1(config-if)#noipdirected-broadcastRouter-R1(config-if)#posflag【8】Router-R1(config-if)#noshutdownRouter-R1(config-if)#exitRouter-R1(config)#iproute【9】Router-R1(config)#routerospf63Router-R1(config-router)#network【10】area0Router-R1(config-router)#exit
问答题文件IN65.DAT中存有若干个(个数 (2)求出这些数中的各位数字之和是奇数的个数totCnt,以及满足此条件的这些数的算术平均值totpjz。最后调用函数WriteDat()把所有结果输出到文件OUT65.DAT中。 注意:部分源程序已给出。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 #include<stdio. h> #include<conio. h> #define MAXNUM 200 int xx [MAXNUM]; int totNum=0; int totCnt-0; double totPjz=0.0; int ReadDat (void); void WriteDat(void); void CalValue (void) void main() int i; clrscr ( ); for (i=0; i<MAXNUM; i++) xx[i]=0; if (ReadDat ()) printf ("数据文件IN65.DAT不能打开!/007/n"); return; CalValue (); printf ("文件IN65. DAT中共有正整数=%d个/n", totNum); printf ("符合条件的正整数的个数=%d个n", totCnt); printf ("平均值=%.21f/n", totPj z); WriteDat (); int ReadDat (void) FILE *fp; int i=0; if ( (fp=fopen ("IN65. DAT", "r") ) ==NULL) return 1; while ( ! feof (fp)) fscanf (fp, "%d", fclose (fp); return 0; void WriteDat(void) FILE *fp; fp=fopen ( "OUT65. DAT", "w" ); fprintf (fp, "%d/n%d/n%.2,1f/n", totNum, totCnt, totPj z); fclose (fp);