第一篇:全国计算机等考试三级网络技术上机试题总结
100个产品销售记录排序(此类共10题)
code: /* 已知在文件IN.DAT中存有100个产品销售记录, 每个产品销售记录由产品代码dm(字符型4位), 产品名称mc(字符型10位), 单价dj(整型), 数量sl(整型), 金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()读取这100个销售记录
并存入结构数组sell中。请编制函数SortDat(), 其功能要求:按金额从小到大进行排列, 若金额相等, 则按产品代码从小到大进行排列, 最终排列结果仍存入结构数组sell中。最后main()函 数调用函数WriteDat()把结果输出到文件OUT1.DAT中。注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include
1)in.dat 内容完全相同。
2)程序也基本雷同,仅排序的要求不一样。
3)考生应熟悉 strcmp()函数,否则有的题相当不好处理。
之二
排序要求:
按金额从小到大进行排列, 若金额相等, 则按产品代码从大到小
进行排列
相应语句:
if(sell[k].je>sell[j].je||(sell[k].je==sell[j].je)&&(strcmp(sell[k].dm, sell[j].dm)< 0))之三
排序要求:
按金额从大到小进行排列, 若金额相等, 则按产品代码从小到大 进行排列
相应语句:
if((sell[k].je <
sell[j].je)||(sell[k].je==sell[j].je)&&(strcmp(sell[k].dm, sell[j].dm)>0))之四
排序要求:
按金额从大到小进行排列, 若金额相等, 则按产品代码从大到小
进行排列
相应语句:
if((sell[k].je <
sell[j].je)||(sell[k].je==sell[j].je)&&(strcmp(sell[k].dm,sell[j].dm)<0))
之五
排序要求:
按产品名称从小到大进行排列, 若产品名称相同, 则按金额从小
到大进行排列
相应语句:
if((strcmp(sell[k].mc,sell[j].mc)>0)||(strcmp(sell[k].mc,sell[j].mc)==0)&&(sell[k].je>sell[j].je))
之六
排序要求:
按产品名称从小到大进行排列, 若产品名称相同, 则按金额从大
到小进行排列
相应语句:
if(strcmp(sell[i].mc, sell[j].mc)>0 ||(strcmp(sell[i].mc, sell[j].mc)==0)&&(sell[i].je < sell[j].je))
之七
排序要求:
按产品名称从大到小进行排列, 若产品名称相同, 则按金额从小
到大进行排列
相应语句:
if((strcmp(sell[k].mc, sell[j].mc)< 0)||
(strcmp(sell[k].mc,sell[j].mc)==0)&&(sell[k].je>sell[j].je))
之八
排序要求:
按产品名称从大到小进行排列, 若产品名称相同, 则按金额从大
到小进行排列
相应语句:
if((strcmp(sell[k].mc, sell[j].mc)< 0)||(strcmp(sell[k].mc, sell[j].mc)==0)&&(sell[k].je < sell[j].je))
之九 排序要求:
按产品代码从小到大进行排列, 若产品代码相同, 则按金额从小
到大进行排列
相应语句:
if((strcmp(sell[k].dm,sell[j].dm)>0)||(strcmp(sell[k].dm,sell[j].dm)==0)&&(sell[k].je>sell[j].je
code: /* 已知在文件IN.DAT中存有100个产品销售记录, 每个产品销售记录由产品代码dm(字符型4位), 产品名称mc(字符型10位), 单价dj(整型), 数量sl(整型), 金额je(长整型)五部分组成。其中: 金额=单价*数量计算得出。函数ReadDat()读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(), 其功能要求:按产品代码从大到小进行排列, 若产品代码相同, 则按金额从大 到小进行排列, 最终排列结果仍存入结构数组sell中。最后main()函数调用函数WriteDat()把结果输出到文件OUT10.DAT中。注意: 部分源程序存放在PROG1.C中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。*/ #include
300个四位数问题(此类共10题)
本类10题中,五题产生数组B,并对B按一定要求排序; 其余五题是求平均值。我把它们分成两组五题来讨论。
以下为产生数组B之题一:
code: /* 已知数据文件IN.DAT中存有300个四位数, 并已调用读函数readDat()把这些数存入数组a中, 请编制一函数jsvalue(),其功能是: 求出个位数上的数减千位数上的数减百位数上的数减十位
数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中, 然后对数组b的四位数按从大到小的顺序进行排序。最后main()函数调用写函数writeDat()把数组b中的数输出到文件OUT.DAT。例如: 1239, 9-1-2-3>0, 则该数满足条件存入数组b中, 且 个数cnt=cnt+1。
8129, 9-8-1-2<0, 则该数不满足条件忽略。
注意: 部分源程序存在文件PROG1.C文件中。程序中已定义数组: a[300], b[300], 已定义变量: cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读 函数readDat()和写函数writeDat()的内容。*/ #include
求出所有这些四位数是素数的个数cnt,再把所有满足此
条件的四位数依次存入数组b中, 然后对数组b的四位数按从小到
大的顺序进行排序。
out.dat 文件内容应当为: 1231 1277 1283 1319 2543 2609 3793 3911 4013 4549 4817 4933 5591 5843 5939 6733 6791 6841 6871 6917 7297 7369 7703 8101 8221 8941 9013 9461 9689 9887 之四
要求:
求出千位数上的数减百位数上的数减十位数上的数减个位
数上的数大于零的个数cnt,再把所有满足此条件的四位数依次
存入数组b中, 然后对数组b的四位数按从小到大的顺序进行排序。
out.dat 文件内容应当为: 20 4002 4102 5111 5400 6014 6302 7050 7105 7113 8101 8130 8203 8221 8303 8700 9013 9016 9052 9053 9800
之五
要求:
求出千位数上的数加百位数上的数等于十位数上的数加个 位数上的数的个数cnt,条件的四位数依次存入 数组b中, 然后对数组b的四位数按从大到小的顺序进行排序。out.dat 文件内容应当为: 7795 7429 7328 7153 6978 6767 6556 6226 5591 5555 5427 4509 4013 3672 3663 3205 3131 2855
再把所有满足此
2763 2543 2507 1625 __________________ 老枪
求满足条件的数的个数、平均值……
求满足条件的数的个数、平均值及不满足条件的数的平均 值等,此类也是五题。本处仅给出一个全题,其余题只给出不同 之处。
code: /* 已知数据文件IN.DAT中存有300个四位数, 并已调用读函数readDat()把这些数存入数组a中, 请编制一函数jsvalue(),其功能是: 求出千位数上的数减百位数上的数减十位数上的数减个位
数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1, 以及所有不满足此条件的四位数平均值pjz2。最后main()函数调用写函数writeDat()把结果cnt,pjz1,pjz2输出到 OUT.DAT文件。
例如: 9123, 9-1-2-3>0, 则该数满足条件计算平均值pjz1, 且个数cnt=cnt+1。
9812, 9-8-1-2<0, 则该数不满足条件计算平均值pjz2。注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义数组: a[300], 已定义变量: cnt,pjz1,pjz2 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读 函数readDat()和写函数writeDat()的内容。*/ #include
int a[300], cnt=0;double pjz1=0.0, pjz2=0.0;jsvalue(){/**/ int i;for(i=0;i < 300;i++)if(a[i]/1000-a[i]/100%10-a[i]/10%10-a[i]%10>0){ cnt++;pjz1+=a[i];} else pjz2+=a[i];if(cnt)pjz1/=cnt;if(cnt<300)pjz2/=300-cnt;/**/ } main(){ int i;readDat();jsvalue();writeDat();printf(“cnt=%dn满足条件的平均值pzj1=%7.2lfn不满足条件的平均值pzj2=%7.2lfn”, cnt,pjz1,pjz2);} readDat(){ FILE *fp;int i;fp = fopen(“in.dat”,“r”);for(i = 0;i < 300;i++)fscanf(fp, “%d,”, &a[i]);fclose(fp);} writeDat(){ FILE *fp;int i;fp = fopen(“out.dat”,“w”);fprintf(fp, “%dn%7.2lfn%7.2lfn”, cnt, pjz1, pjz2);fclose(fp);} in.dat 与前面给出的完全相同,out.dat 内容应当如下:
7389.55 5524.03 __________________ 满足条件数的平均数……四题之说明
之二
要求:
求出千位数上的数加百位数上的数等于十位数上的数加个 位数上的数的个数cnt,再求出所有满足此条件的四位数平均值 pjz1, 以及所有不满足此条件的四位数平均值pjz2。
正确程序生成的 out.dat 文件内容应当如下:
4876.86 5709.46
之三
要求:
求出个位数上的数减千位数上的数减百位数上的数减十位 数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1, 以及所有不满足此条件的四位数平均值pjz2。
正确程序生成的 out.dat 文件内容应当如下:
2926.08 5761.83
之四
要求:
求出所有这些四位数是素数的个数cnt,再求出所有满足 此条件的四位数平均值pjz1, 以及所有不满足此条件的四位数平均值pjz2。
正确程序生成的 out.dat 文件内容应当如下: 5782.87 5633.46
之五
要求:
求出千位数上的数加个位数上的数等于百位数上的数加十 位数上的数的个数cnt,再求出所有满足此条件的四位数平均值 pjz1, 以及所有不满足此条件的四位数平均值pjz2。
正确程序生成的 out.dat 文件内容应当如下:
6681.22 5582.48 __________________ 老枪
200个四位数(此类共10题)此部分题与300个数的题有相似之处。
之一
code: /* 已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和十位数字重新组成一个新的十位数ab(新
十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字), 以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字, 新十位数的个位数字是原四位数的百位数字), 如果新组成的两个十位数ab>cd, ab必须是偶数且能被5整除, cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从
大到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意: 部分源程序存在文件PROG1.C文件中。程序中已定义数组: a[200], b[200], 已定义变量: cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。*/ #include
之二
要求:
把千位数字和十位数字重新组成一个新的十位数(新十 位数的十位数字是原四位数的千位数字,新十位数的个位数字是 原四位数的十位数字), 以及把个位数字和百位数字组成另一个 新的十位数(新十位数的十位数字是原四位数的个位数字, 新十 位数的个位数字是原四位数的百位数字), 如果新组成的两个十 位数均是素数且新数的十位数字均不为零,则将满足此条件的四
位数按从大到小的顺序存入数组b中, 并要计算满足上述条件的 四位数的个数cnt。
out.dat 的内容应当为: 9971 8398 7711 6375 4719 4173 2736 2398 2397 1997
之三
要求:
把个位数字和千位数字重新组成一个新的十位数(新十 位数的十位数字是原四位数的个位数字,新十位数的个位数字是 原四位数的千位数字), 以及把百位数字和十位数字组成另一个
新的十位数(新十位数的十位数字是原四位数的百位数字, 新十 位数的个位数字是原四位数的十位数字), 如果新组成的两个十 位数必须是一个奇数,另一个为偶数并且两个十位数中至少有一
个数能被17整除,同时两个新数的十位数字均不为零, 则将满足 此条件的四位数按从大到小的顺序存入数组b中, 并要计算满足 上述条件的四位数的个数cnt。
out.dat 的内容应当为: 8656 8174 7781 7683 4313 4173 2513
之四
要求:)把这些数存入数组a中,请考生编制一函数jsVal(),其 功能是: 把千位数字和十位数字重新组成一个新的十位数ab(新 十位数的十位数字是原四位数的千位数字,新十位数的个位数字
是原四位数的十位数字), 以及把个位数字和百位数字组成另一 个新的十位数cd(新十位数的十位数字是原四位数的个位数字, 新十位数的个位数字是原四位数的百位数字), 如果新组成的两
个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新 数的十位数字均不为零,则将满足此条件的四位数按从大到小的
顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。
out.dat 的内容应当为: 9068 5224 5024 3821 2281
之五
要求:
如果四位数各位上的数字均是0或2或4或6或8, 则统计 出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存 入数组b中。
out.dat 的内容应当为: 8448 6820 4488 4060 2888 2884 2686 2624 2484 2420 2042
之六
要求:
把千位数字和个位数字重新组成一个新的十位数(新十 位数的十位数字是原四位数的千位数字,新十位数的个位数字是 原四位数的个位数字), 以及把百位数字和十位数字组成另一个 新的十位数(新十位数的十位数字是原四位数的百位数字, 新十 位数的个位数字是原四位数的十位数字), 如果新组成的两个十 位数均是奇数并且两个十位数中至少有一个数能被5整除, 同时
两个新数的十位数字均不为零,则将满足此条件的四位数按从大 到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个 数cnt。
out.dat 的内容应当为: 9851 8275 6375 5755 5359 4951 4595 4395 3575 3135
之七
要求:
把个位数字和千位数字重新组成一个新的十位数(新十 位数的十位数字是原四位数的个位数字,新十位数的个位数字是 原四位数的千位数字), 以及把百位数字和十位数字组成另一个
新的十位数(新十位数的十位数字是原四位数的百位数字, 新十 位数的个位数字是原四位数的十位数字), 如果新组成的两个十 位数均是偶数并且两个十位数中至少有一个数能被9整除, 同时 两个新数的十位数字均不为零,则将满足此条件的四位数按从大 到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个 数cnt。
out.dat 的内容应当为: 8761 8724 8441 6722 6603 6545 6323 6181 4369 4285 4125 2724 2362
之八
要求:
把千位数字和十位数字重新组成一个新的十位数ab(新 十位数的十位数字是原四位数的千位数字,新十位数的个位数字 是原四位数的十位数字), 以及把个位数字和百位数字组成另一
个新的十位数cd(新十位数的十位数字是原四位数的个位数字, 新十位数的个位数字是原四位数的百位数字), 如果新组成的两 个十位数ab 同时两个新数的十位数字均不为零,则将满足此条件的四位数按 从大到小的顺序存入数组b中, 并要计算满足上述条件的四位数 的个数cnt。
out.dat 的内容应当为: 7878 5437 3897 2893 2877 2438 2039 2035 2033 1619 1494 1493
之九
要求:
如果四位数各位上的数字均是奇数,则统计出满足此条 件的个数cnt并把这些四位数按从大到小的顺序存入数组b中。
out.dat 的内容应当为: 9971 7973 7711 7511 5755 5359 5311 3575 3537 3135 1997 1979 1531 之十
要求:
把千位数字和十位数字重新组成一个新的十位数ab(新 十位数的十位数字是原四位数的千位数字,新十位数的个位数字 是原四位数的十位数字), 以及把个位数字和百位数字组成另一
个新的十位数cd(新十位数的十位数字是原四位数的个位数字, 新十位数的个位数字是原四位数的百位数字), 如果新组成的两 个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数, 同时两个新 数的十位数字均不为零,则将满足此条件的四位数按从大到小的 顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。
out.dat 的内容应当为: 8398 7996 5954 4313 2311 __________________ 老枪
小于200个四位数之一(共四题)code: /* 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数, 函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数Calvalue(), 其功能要求: 1.求出这文件中共有多少个正整数totNum;2.求出这些数中的各位数字之和是奇数的数的个数totCnt, 以及满足此条件的这些的算术平均值totPjz。最后main()函数调用函数WriteDat()把所求的结果输出到OUT.DAT文 件中。
注意: 部分源程序存放在PROG1.C中。请勿改动数据文件IN.DAT中的任何数据,主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。*/ #include
6045,6192,1885,3580,8544,6826,5493,8415,3132,5841, 6561,3173,9157,2895,2851,6082,5510,9610,5398,5273, 3438,1800,6364,6892,9591,3120,8813,2106,5505,1085, 5835,7295,6131,9405,6756,2413,6274,9262,5728,2650, 6266,5285,7703,1353,1510,2350,4325,4392,7573,8204, 7358,6365,3135,9903,3055,3219,3955,7313,6206,1631, 5869,5893,4569,1251,2542,5740,2073,9805,1189,7550, 4362,6214,5680,8753,8443,3636,4495,9643,3782,5556, 1018,9729,8588,2797,4321,4714,9658,8997,2080,5912, 9968,5558,9311,7047,6138,7618,5448,1466,7075,2166, 4025,3572,9605,1291,6027,2358,1911,2747,7068,1716, 9661,5849,3210,2554,8604,8010,7947,3685,2945,4224, 7014,9058,6259,9503,1615,1060,7787,8983,3822,2471, 5146,7066,1029,1777,7788,2941,3538,2912,3096,7421, 9175,6099,2930,4685,8465,8633,2628,7155,4307,9535, 4274,2857,6829,6226,8268,9377,9415,9059,4872,6072, out.dat 文件内容应当如下:
160 69 5460.51 __________________ 老枪
小于200个四位数之二(共四题)code:/* 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数, 函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数Calvalue(), 其功能要求: 1.求出这文件中共有多少个
正整数totNum;2.求出这些数中的各位数字之和是偶数的数的个数totCnt, 以及满足此条件的这些数的算术平均值totPjz。最后main()函数调用函数WriteDat()把所求的结果输出到OUT.DAT文 件中。注意: 部分源程序存放在PROG1.C中。请勿改动数据文件IN.DAT中的任何数据,主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。*/ #include #include
#define MAXNUM 200 int xx[MAXNUM];int totNum = 0;/* 文件IN.DAT中共有多少个正整数 */ int totCnt = 0;/* 符合条件的正整数的个数 */ double totPjz = 0.0;/*平均值 */ int ReadDat(void);void WriteDat(void);void Calvalue(void){/**/ for(;xx[totNum];totNum++)if((xx[totNum]/1000+xx[totNum]/100%10+xx[totNum]/10%10+xx[totNum]%10)%2==0){ totCnt++;totPjz+=xx[totNum];} if(totCnt)totPjz/=totCnt;/**/ } void main(){ int i;clrscr();for(i = 0;i < MAXNUM;i++)xx[i] = 0;if(ReadDat()){ printf(“数据文件IN.DAT不能打开! 07n”);return;} Calvalue();printf(“文件IN.DAT中共有正整数=%d个n”, totNum);printf(“符合条件的正整数的个数=%d个n”, totCnt);printf(“平均值=%.2lfn”, totPjz);WriteDat();} int ReadDat(void){ FILE *fp;int i = 0;if((fp = fopen(“in.dat”, “r”))== NULL)return 1;while(!feof(fp)){fscanf(fp, “%d,”, &xx[i++]);} fclose(fp);return 0;} void WriteDat(void){ FILE *fp;fp = fopen(“OUT.DAT”, “w”);fprintf(fp, “%dn%dn%.2lfn”, totNum, totCnt, totPjz);fclose(fp);} out.dat 文件内容应当如下:
160 91
5517.1200个四位数之三(共四题)code:/* 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数, 函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数Calvalue(), 其功能要求: 1.求出这文件中共有多少个
正整数totNum;2.求这些数右移1位后, 产生的新数是奇数的数的个数totCnt, 以及满足此条件的这些数(右移前的值)的算术平均值totPjz。最后main()函数调用函数WriteDat()把所求的结果 输出到文件OUT.DAT中。注意: 部分源程序存放在PROG1.C中。请勿改动数据文件IN.DAT中的任何数据,主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。*/ #include #include
#define MAXNUM 200 int xx[MAXNUM];int totNum = 0;/* 文件IN.DAT中共有多少个正整数 */ int totCnt = 0;/* 符合条件的正整数的个数 */double totPjz = 0.0;/*平均值 */ int ReadDat(void);void WriteDat(void);void Calvalue(void){/**/ for(;xx[totNum];totNum++)if((xx[totNum]>>1)%2){ totCnt++;totPjz+=xx[totNum];} if(totCnt)totPjz/=totCnt;/**/ } void main(){int i;clrscr();for(i = 0;i < MAXNUM;i++)xx[i] = 0;if(ReadDat()){ printf(“数据文件IN.DAT不能打开! 07n”);return;} Calvalue();printf(“文件IN.DAT中共有正整数=%d个n”, totNum);printf(“符合条件的正整数的个数=%d个n”, totCnt);printf(“平均值=%.2lfn”, totPjz);WriteDat();} int ReadDat(void){ FILE *fp;int i = 0;if((fp = fopen(“in.dat”, “r”))== NULL)return 1;while(!feof(fp)){ fscanf(fp, “%d,”, &xx[i++]);} fclose(fp);return 0;} void WriteDat(void){ FILE *fp;fp = fopen(“OUT.DAT”, “w”);fprintf(fp, “%dn%dn%.2lfn”, totNum, totCnt, totPjz);fclose(fp)} out.dat 文件内容应当如下:
160 80 5537.54 __________________ 老枪
小于200个四位数之四(共四题)code: /* 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数, 函数ReadDat()读取这若干个正整数并存入数组xx中。请编
制函数Calvalue(), 其功能要求: 1.求出这文件中共有多少个 正整数totNum;2.求这些数右移1位后, 产生的新数是偶数的数 的个数totCnt, 以及满足此条件的这些数(右移前的值)的算术平均值totPjz。最后main()函数调用函数WriteDat()把所求的结果 输出到文件OUT.DAT中。
注意: 部分源程序存放在PROG1.C中。
请勿改动数据文件IN.DAT中的任何数据,主函数main()、读 数据函数ReadDat()和输出数据函数WriteDat()的内容。*/ #include #include
#define MAXNUM 200 int xx[MAXNUM];int totNum = 0;/* 文件IN.DAT中共有多少个正整数 */ int totCnt = 0;/* 符合条件的正整数的个数 */ double totPjz = 0.0;/*平均值 */ int ReadDat(void);void WriteDat(void);void Calvalue(void){/**/ for(;xx[totNum]>0;totNum++)if((xx[totNum]>>1)%2==0){ totCnt++;totPjz+=xx[totNum];} if(totCnt)totPjz/=totCnt;/**/ } void main(){ int i;clrscr();for(i = 0;i < MAXNUM;i++)xx[i] = 0;if(ReadDat()){ printf(“数据文件IN.DAT不能打开! 07n”);return;} Calvalue();printf(“文件IN.DAT中共有正整数=%d个n”, totNum);printf(“符合条件的正整数的个数=%d个n”, totCnt);printf(“平均值=%.2lfn”, totPjz);WriteDat();} int ReadDat(void){ FILE *fp;int i = 0;if((fp = fopen(“in.dat”, “r”))== NULL)return 1;while(!feof(fp)){ fscanf(fp, “%d,”, &xx[i++]);} fclose(fp);return 0;} void WriteDat(void){ FILE *fp;fp = fopen(“OUT.DAT”, “w”);fprintf(fp, “%dn%dn%.2lfn”, totNum, totCnt, totPjz);fclose(fp);} out.dat 文件内容应当如下:
160 80 5447.93 __________________ 老枪
英文文章——字符串处理(共10题)
之一
code: /* 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到 字符串数组xx中;请编制函数SortCharD(), 其函数的功能是: 以 行为单位对字符按从大到小的顺序进行排序, 排序后的结果仍按行 重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把 结果xx输出到文件OUT2.DAT中。例: 原文: dAe,BfC.CCbbAA 结果: fedCBA., bbCCAA 原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include
in.dat 文件内容为:
You can create an index on any field, on several fields to be used
together, or on parts thereof, that you want to use as a key.The
keys in indexes allow you quick access to specific records and define
orders for sequential processing of a ISAM file.After you no longer
need an index, you can delete it.Addition and indexes have no effect
on the data records or on other indexes.You may want a field in field in each record to uniquely identify that
record from all other records in the file.For example, the Employee
Number field is unique if you do not assign the same number to two
different employees, and you never reassign these numbers to other
employees.If you wish to find or modify the record belonging to a
specific employee, this unique field saves the thouble of determining
whether you have the correct record.If you do not have a unique field, you must find the first record
the matches your key and determine whether the record is the one you
want.If it is not the correct one, you must search again to find others.If you know that you have a unique field within your records, you
can include this fact in the key description, and ISAM will allow only
unique keys.For example, if you specify that the employee numbers are
unique, ISAM only lets you add records to the file for, or change
numbers to, employee numbers that do not alreadly exist int file.out2.dat 文件内容应当为:
yxvuuttsssrroooonnnnnnllliiiffeeeeeeeeeddddccbaaaaaY, yywuuttttttttsssrrrrpoooooonnkhhhhgfeeeeeeeaaaaaT.,,yyxwuutssssssrrqpoooonnnnllkkiiiiiiffeeeeeeeeddddccccccaaa yuuttssssrrrrrrqpooooooonnnnllliiiggffffeeeeeeedcaaSMIAA.yxxvuttttsooonnnnnnnnliiiiihffeeeeeeeeeeedddddddccaaaaA., xtttssrrrrooooonnnihheeeeedddcaa.yyywuuutttttrrqooonnnnnmllliiiiiiihhfffeeeeeeddddccaaaaaY yxtttsrrrrrrrppoooooonmmmllllliihhhffeeeeeeeeeeddccaaFE., ywuuuuuttttssssrrqooooonnnnmmmliiiiihgffeeeeeeddbbaaN yyvuuttttsssssrrrrrpoooonnnnnmmliihhgffeeeeeeeeeeeeddbaa, yyywutttssrrrpoooooooonnnmmlliiiihhggfffeeeeeedddcbaI.yvuuuttttssssrqppooonnnmmllliiiiiiihhhgfffeeeeeeeeeeeddccba, ywvutttrrrrrooohhhheeeeeedccca.yyvuuuuuttttssrrrqooooonnnmliiiihhffffeeeeeddddcaaI,yyywuuttttttssrrrrroooonnnmmkiihhhhhheeeeeeeeeeeedddccaa ywuuttttttttssssrrrroooooonnnnnmiiiihhhgffeeeeedcccaaaaI.., yyyywwvuuuuuutttsrrrqoooooonnnlkiiiihhhffeeeeddcaaaI, yywwuttttssrpooonnnnnnllllllkiiiiiihhfeeeedddccccaaaaSMIA, yyyyxuuuutttsssrrrqpppooonnmmmllkiiihhffeeeeeeeeeeecbaaaF., yyuuutttssrrrrqoooooonnnllliihhgffeeeeeedddccaaSMIA, yyxuuttttttsssrrrpoooonnnnmmmlllliiihfeeeeeeeeddbbaaa., __________________ 字符串处理之二
code: /* 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入 到字符串数组xx中;请编制函数ConvertCharA(), 其函数的功能 是: 以行为单位把字符串中的所有小写字母改写成该字母的下一 个字母, 如果是字母z, 则改写成字母a,大写字母和其它字符保 持不变。把已处理的字符串仍按行重新存入字符串数组xx中。最 后main()函数调用函数WriteDat()把结果xx输出到文件OUT3.DAT 中。
例: 原文: Adb.Bcdza abck.LLhj 结果: Aec.Bdeab bcdl.LLik 原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include #include #include
char xx[50][80];int maxline = 0;/* 文章的总行数 */ int ReadDat(void);void WriteDat(void);void ConvertCharA(void){/**/ int i,j;for(i=0;i < maxline;i++)for(j=0;j < strlen(xx[i]);j++)if(xx[i][j]=='z')xx[i][j]='a';else if((xx[i][j]>='a')&&(xx[i][j]<'z'))xx[i][j]++;/**/ } void main(){ clrscr();if(ReadDat()){ printf(“数据文件IN.DAT不能打开!n 07”);return;} ConvertCharA();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;clrscr();fp = fopen(“OUT3.DAT”, “w”);for(i = 0;i < maxline;i++){ printf(“%sn”, xx[i]);fprintf(fp, “%sn”, xx[i]);} fclose(fp);}
out3.dat文件内容应当如下:
Ypv dbo dsfbuf bo joefy po boz gjfme, po tfwfsbm gjfmet up cf vtfe
uphfuifs, ps po qbsut uifsfpg, uibu zpv xbou up vtf bt b lfz.Tif
lfzt jo joefyft bmmpx zpv rvjdl bddftt up tqfdjgjd sfdpset boe efgjof
psefst gps tfrvfoujbm qspdfttjoh pg b ISAM gjmf.Agufs zpv op mpohfs
offe bo joefy, zpv dbo efmfuf ju.Aeejujpo boe joefyft ibwf op fggfdu
po uif ebub sfdpset ps po puifs joefyft.Ypv nbz xbou b gjfme jo gjfme jo fbdi sfdpse up vojrvfmz jefoujgz uibu
sfdpse gspn bmm puifs sfdpset jo uif gjmf.Fps fybnqmf, uif Enqmpzff
Nvncfs gjfme jt vojrvf jg zpv ep opu bttjho uif tbnf ovncfs up uxp
ejggfsfou fnqmpzfft, boe zpv ofwfs sfbttjho uiftf ovncfst up puifs
fnqmpzfft.Ig zpv xjti up gjoe ps npejgz uif sfdpse cfmpohjoh up b
tqfdjgjd fnqmpzff, uijt vojrvf gjfme tbwft uif uipvcmf pg efufsnjojoh
xifuifs zpv ibwf uif dpssfdu sfdpse.Ig zpv ep opu ibwf b vojrvf gjfme, zpv nvtu gjoe uif gjstu sfdpse
uif nbudift zpvs lfz boe efufsnjof xifuifs uif sfdpse jt uif pof zpv
xbou.Ig ju jt opu uif dpssfdu pof, zpv nvtu tfbsdi bhbjo up gjoe puifst.Ig zpv lopx uibu zpv ibwf b vojrvf gjfme xjuijo zpvs sfdpset, zpv
dbo jodmvef uijt gbdu jo uif lfz eftdsjqujpo, boe ISAM xjmm bmmpx pomz
vojrvf lfzt.Fps fybnqmf, jg zpv tqfdjgz uibu uif fnqmpzff ovncfst bsf
vojrvf, ISAM pomz mfut zpv bee sfdpset up uif gjmf gps, ps dibohf
ovncfst up, fnqmpzff ovncfst uibu ep opu bmsfbemz fyjtu jou gjmf.__________________ 老枪
字符串处理之三
code: /* 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到 字符串数组xx中;请编制函数SortCharA(), 其函数的功能是: 以 行为单位对字符按从小到大的顺序进行排序, 排序后的结果仍按行 重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把 结果xx输出到文件OUT1.DAT中。例: 原文: dAe,BfC.CCbbAA 结果: ,.ABCdef AACCbb 原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include #include #include
char xx[50][80];int maxline = 0;/* 文章的总行数 */ int ReadDat(void);void WriteDat(void);void SortCharA(void){/**/ int i,j,k,m,n;char ch;for(i=0;i < maxline;i++){ j=strlen(xx[i]);for(m=0;m < j-1;m++){ k=m;for(n=m+1;n < j;n++)if(xx[i][k] > xx[i][n])k=n;if(k!=m){ ch=xx[i][k];xx[i][k]=xx[i][m];xx[i][m]=ch;} } } /**/ } void main(){ clrscr();if(ReadDat()){ printf(“数据文件IN.DAT不能打开!n 07”);return;} SortCharA();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;clrscr();fp = fopen(“OUT1.DAT”, “w”);for(i = 0;i < maxline;i++){ printf(“%sn”, xx[i]);fprintf(fp, “%sn”, xx[i]);} fclose(fp);}
out1.dat 文件内容如下(注意每行的前面有若干空格):,Yaaaaabccddddeeeeeeeeeffiiilllnnnnnnoooorrsssttuuvxy ,.Taaaaaeeeeeeefghhhhknnooooooprrrrsssttttttttuuwyy
aaaccccccddddeeeeeeeeffiiiiiikkllnnnnoooopqrrsssssstuuwxyy.AAIMSaacdeeeeeeeffffggiiilllnnnnooooooopqrrrrrrssssttuuy ,.Aaaaaccdddddddeeeeeeeeeeeffhiiiiilnnnnnnnnooosttttuvxxy.aacdddeeeeehhinnnooooorrrrsstttx
Yaaaaaccddddeeeeeefffhhiiiiiiilllmnnnnnoooqrrtttttuuuwyyy ,.EFaaccddeeeeeeeeeeffhhhiilllllmmmnoooooopprrrrrrrstttxy Naabbddeeeeeeffghiiiiilmmmnnnnoooooqrrssssttttuuuuuwy ,aabddeeeeeeeeeeeeffghhiilmmnnnnnooooprrrrrsssssttttuuvyy.Iabcdddeeeeeefffgghhiiiillmmnnnooooooooprrrsstttuwyyy ,abccddeeeeeeeeeeefffghhhiiiiiiilllmmnnnoooppqrssssttttuuuvy.acccdeeeeeehhhhooorrrrrtttuvwy ,Iaacddddeeeeeffffhhiiiilmnnnoooooqrrrssttttuuuuuvyy
aaccdddeeeeeeeeeeeehhhhhhiikmmnnnoooorrrrrssttttttuuwyyy ,..Iaaaacccdeeeeeffghhhiiiimnnnnnoooooorrrrssssttttttttuuwy ,Iaaacddeeeeffhhhiiiiklnnnooooooqrrrstttuuuuuuvwwyyyy ,AIMSaaaaccccdddeeeefhhiiiiiikllllllnnnnnnoooprssttttuwwyy ,.Faaabceeeeeeeeeeeffhhiiikllmmmnnooopppqrrrssstttuuuuxyyyy ,AIMSaaccdddeeeeeeffghhiilllnnnooooooqrrrrsstttuuuyy ,.aaabbddeeeeeeeefhiiillllmmmnnnnooooprrrsssttttttuuxyy __________________ 老枪
字符串处理之四
code: /* 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到 字符串数组xx中;请编制函数StrCharJL(), 其函数的功能是: 以 行为单位把字符串中的所有字符的ASCII值左移4位, 如果左移后, 其字符的ASCII值小于等于32或大于100, 则原字符保持不变, 否则 就把左移后的字符ASCII值再加上原字符的ASCII值, 得到新的字符 仍存入原字符串对应的位置上,之后把已处理的字符串仍按行重新 存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果 xx输出到OUT7.DAT文件中。
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include #include #include
char xx[50][80];int maxline = 0;/* 文章的总行数 */ int ReadDat(void);void WriteDat(void);void StrCharJL(void){/**/ int i,j;char m;/****老王注:此题的关键是定义 char m。记得往年的考试类似题可以不必定义,如果要定义的话,则必须定义为 int 结果才能正确。看来理解出题 者的意图是机试的难点之一。****/ for(i=0;i < maxline;i++)for(j=0;j < strlen(xx[i]);j++){ m=xx[i][j]<<4;if((m>32)&&(m<=100))xx[i][j]+=m;} /**/ } void main(){ clrscr();if(ReadDat()){ printf(“数据文件IN.DAT不能打开!n 07”);return;} StrCharJL();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;clrscr();fp = fopen(“OUT7.DAT”, “w”);for(i = 0;i < maxline;i++){ printf(“%sn”, xx[i]);fprintf(fp, “%sn”, xx[i]);} fclose(fp);}
字符串处理之五
code: /* 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到 字符串数组xx中;请编制函数StrCharJR(), 其函数的功能是: 以 行为单位把字符串中的所有字符的ASCII值右移4位, 然后把右移后 的字符ASCII值再加上原字符的ASCII值, 得到新的字符仍存入原字 符串对应的位置上,之后把已处理的字符串仍按行重新存入字符串 数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文 件OUT8.DAT中。
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include #include #include
char xx[50][80];int maxline = 0;/* 文章的总行数 */ int ReadDat(void);void WriteDat(void);void StrCharJR(void){/**/ int i,j;for(i=0;i for(j=0;j xx[i][j]+=xx[i][j]>>4;/**/ } void main(){ clrscr();if(ReadDat()){ printf(“数据文件IN.DAT不能打开!n 07”);return;} StrCharJR();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;clrscr();fp = fopen(“OUT8.DAT”, “w”);for(i = 0;i < maxline;i++){ printf(“%sn”, xx[i]);fprintf(fp, “%sn”, xx[i]);} fclose(fp);}
out8.dat 文件内容应当如下:
^u|“igt”iykg{k“gt”otjk•“ut”gt?“lokrj.”ut“zk}kygr”lokrjz“{u”hk“|zkj
{umk{nky.”uy“ut”wgy{z“{nkykul.”{ng{“?u|”~gt{“{u”|zk“gz”g“qk?0”Ynk qk?z“ot”otjk•kz“grru~”?u|“x|oiq”giikzz“{u”zwkioloi“ykiuyjz”gtj“jklotk
uyjkyz”luy“zkx|kt{ogr”wyuikzzotm“ul”g“MXEQ”lork0“El{ky”?u|“tu”rutmky tkkj“gt”otjk•.“?u|”igt“jkrk{k”o{0“Ejjo{out”gtj“otjk•kz”ng}k“tu”kllki{ ut“{nk”jg{g“ykiuyjz”uy“ut”u{nky“otjk•kz0
^u|”sg?“~gt{”g“lokrj”ot“lokrj”ot“kgin”ykiuyj“{u”|tox|kr?“ojkt{ol?”{ng{ ykiuyj“lyus”grr“u{nky”ykiuyjz“ot”{nk“lork0”Juy“k•gswrk.”{nk“Iswru?kk R|shky”lokrj“oz”|tox|k“ol”?u|“ju”tu{“gzzomt”{nk“zgsk”t|shky“{u”{~u jollkykt{“kswru?kkz.”gtj“?u|”tk}ky“ykgzzomt”{nkzk“t|shkyz”{u“u{nky kswru?kkz0”Ml“?u|”~ozn“{u”lotj“uy”sujol?“{nk”ykiuyj“hkrutmotm”{u“g zwkioloi”kswru?kk.“{noz”|tox|k“lokrj”zg}kz“{nk”{nu|hrk“ul”jk{kysototm ~nk{nky“?u|”ng}k“{nk”iuyyki{“ykiuyj0
Ml”?u|“ju”tu{“ng}k”g“|tox|k”lokrj.“?u|”s|z{“lotj”{nk“loyz{”ykiuyj
{nk“sg{inkz”?u|y“qk?”gtj“jk{kysotk”~nk{nky“{nk”ykiuyj“oz”{nk“utk”?u|
~gt{0“Ml”o{“oz”tu{“{nk”iuyyki{“utk.”?u|“s|z{”zkgyin“gmgot”{u“lotj”u{nkyz0 Ml“?u|”qtu~“{ng{”?u|“ng}k”g“|tox|k”lokrj“~o{not”?u|y“ykiuyjz.”?u|
igt“otir|jk”{noz“lgi{”ot“{nk”qk?“jkziyow{out.”gtj“MXEQ”~orr“grru~”utr? |tox|k“qk?z0”Juy“k•gswrk.”ol“?u|”zwkiol?“{ng{”{nk“kswru?kk”t|shkyz“gyk |tox|k.”MXEQ“utr?”rk{z“?u|”gjj“ykiuyjz”{u“{nk”lork“luy.”uy“ingtmk t|shkyz”{u.“kswru?kk”t|shkyz“{ng{”ju“tu{”grykgjr?“k•oz{”ot{“lork0 __________________ 老枪
字符串处理之六
code: /* 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到 字符串数组xx中;请编制函数StrOL(), 其函数的功能是: 以行为 单位对行中以空格或标点符号为分隔的所有单词进行倒排,同时去 除标点符号,之后把已处理的字符串(应不含标点符号)仍按行重新 存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果 xx输出到文件OUT6.DAT中。例如: 原文: You He Me I am a student.结果: Me He You student a am I 原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。
**** 同1998年3B第六题 **** */ #include
如果漏写,结果显然不正确,但并不影响得分。*/ yy[n]=0;strcpy(xx[i],yy);} /* 标准答案与此法结果相比,每行后面多一个空格。*/ } void main(){ clrscr();if(ReadDat()){ printf(”数据文件IN.DAT不能打开!n 07“);return;} StrOL();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;clrscr();fp = fopen(”OUT6.DAT“, ”w“);for(i = 0;i < maxline;i++){ printf(”%sn“, xx[i]);fprintf(fp, ”%sn“, xx[i]);} fclose(fp);} out6.dat 内容应当如下:
used be to fields several on field any on index an create can You
The key a as use to want you that thereof parts on or together define and records specific to access quick you allow indexes in keys
longer no you After file ISAM a of processing sequential for orders
effect no have indexes and Addition it delete can you index an need
indexes other on or records data the on
that identify uniquely to record each in field in field a want may You
Employee the example For file the in records other all from record
two to number same the assign not do you if unique is field Number
other to numbers these reassign never you and employees different
a to belonging record the modify or find to wish you If employees
determining of thouble the saves field unique this employee specific
record correct the have you whether
record first the find must you field unique a have not do you If
you one the is record the whether determine and key your matches the
others find to again search must you one correct the not is it If want
you records your within field unique a have you that know you If
only allow will ISAM and description key the in fact this include can
are numbers employee the that specify you if example For keys unique
change or for file the to records add you lets only ISAM unique
file int exist alreadly not do that numbers employee to numbers 字符串处理之七
code: /* 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入 到字符串数组xx中;请编制函数ConvertCharD(), 其函数的功能 是: 以行为单位把字符串中的所有小写字母改写成该字母的上一 个字母, 如果是字母a, 则改写成字母z,大写字母和其它字符保 持不变。把已处理的字符串仍按行重新存入字符串数组xx中。最 后main()函数调用函数WriteDat()把结果xx输出到文件OUT4.DAT
中。
例: 原文: Adb.Bcdza abck.LLhj 结果: Aca.Bbcyz zabj.LLgi 原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include
i++;} maxline = i;fclose(fp);return 0;} void WriteDat(void){ FILE *fp;int i;clrscr();fp = fopen(”OUT4.DAT“, ”w“);for(i = 0;i < maxline;i++){ printf(”%sn“, xx[i]);fprintf(fp, ”%sn“, xx[i]);} fclose(fp);} out4.dat 文件内容应当如下:
Ynt bzm bqdzsd zm hmcdw nm zmx ehdkc, nm rdudqzk ehdkcr sn ad trdc
snfdsgdq, nq nm ozqsr sgdqdne, sgzs xnt vzms sn trd zr z jdx.Tgd
jdxr hm hmcdwdr zkknv xnt pthbj zbbdrr sn rodbhehb qdbnqcr zmc cdehmd
nqcdqr enq rdptdmshzk oqnbdrrhmf ne z ISAM ehkd.Aesdq xnt mn knmfdq
mddc zm hmcdw, xnt bzm cdkdsd hs.Acchshnm zmc hmcdwdr gzud mn deedbs
nm sgd czsz qdbnqcr nq nm nsgdq hmcdwdr.Ynt lzx vzms z ehdkc hm ehdkc hm dzbg qdbnqc sn tmhptdkx hcdmshex sgzs
qdbnqc eqnl zkk nsgdq qdbnqcr hm sgd ehkd.Fnq dwzlokd, sgd Eloknxdd
Ntladq ehdkc hr tmhptd he xnt cn mns zrrhfm sgd rzld mtladq sn svn
cheedqdms dloknxddr, zmc xnt mdudq qdzrrhfm sgdrd mtladqr sn nsgdq
dloknxddr.Ie xnt vhrg sn ehmc nq lnchex sgd qdbnqc adknmfhmf sn z
rodbhehb dloknxdd, sghr tmhptd ehdkc rzudr sgd sgntakd ne cdsdqlhmhmf
vgdsgdq xnt gzud sgd bnqqdbs qdbnqc.Ie xnt cn mns gzud z tmhptd ehdkc, xnt ltrs ehmc sgd ehqrs qdbnqc
sgd lzsbgdr xntq jdx zmc cdsdqlhmd vgdsgdq sgd qdbnqc hr sgd
nmd xnt
vzms.Ie hs hr mns sgd bnqqdbs nmd, xnt ltrs rdzqbg zfzhm sn ehmc nsgdqr.Ie xnt jmnv sgzs xnt gzud z tmhptd ehdkc vhsghm xntq qdbnqcr, xnt
bzm hmbktcd sghr ezbs hm sgd jdx cdrbqhoshnm, zmc ISAM vhkk zkknv nmkx
tmhptd jdxr.Fnq dwzlokd, he xnt rodbhex sgzs sgd dloknxdd mtladqr zqd
tmhptd, ISAM nmkx kdsr xnt zcc qdbnqcr sn sgd ehkd enq, nq bgzmfd
mtladqr sn, dloknxdd mtladqr sgzs cn mns zkqdzckx dwhrs hms ehkd.__________________ 老枪
字符串处理之八
code: /* 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到 字符串数组xx中;请编制函数CharConvA(), 其函数的功能是: 以 行为单位把字符串中的最后一个字符的ASCII值右移4位后加最后第 二个字符的ASCII值, 得到最后一个新的字符, 最后第二个字符的 ASCII值右移4位后加最后第三个字符的ASCII值,得到最后第二个新 的字符, 以此类推一直处理到第二个字符, 第一个字符的ASCII值 加原最后一个字符的ASCII值, 得到第一个新的字符, 得到的新字 符分别存放在原字符串对应的位置上,之后把已处理的字符串仍按 行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT10.DAT中。
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include
for(j=ll-1;j;j--)xx[i][j]=(xx[i][j]>>4)+xx[i][j-1];xx[i][0]+=ch;} /**/ } void main(){ clrscr();if(ReadDat()){ printf(”数据文件IN.DAT不能打开!n 07“);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;clrscr();fp = fopen(”OUT10.DAT“, ”w“);for(i = 0;i < maxline;i++){ printf(”%sn“, xx[i]);fprintf(fp, ”%sn“, xx[i]);} fclose(fp);} 字符串处理之九
code: /*
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到 字符串数组xx中;请编制函数StrOR(), 其函数的功能是: 以行为 单位依次把字符串中所有小写字母o 左边的字符串内容移到该串的 右边存放, 然后并把小写字母o删除,余下的字符串内容移到已处理 字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串 数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文 件OUT5.DAT中。
例如: 原文: You can create an index on any field.you have the correct record.结果: n any field.Yu can create an index rd.yu have the crrect rec 原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include
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;clrscr();fp = fopen(”OUT5.DAT“, ”w“);for(i = 0;i < maxline;i++){ printf(”%sn“, xx[i]);fprintf(fp, ”%sn“, xx[i]);} fclose(fp);}
out5.dat 文件内容应当如下:
be usedYu can create an index n any field, n several fields t use as a key.Thetgether, r n parts theref, that yu want t
rds and definekeys in indexes allw yu quick access t specific rec
ngerrders fr sequential prcessing f a ISAM file.After yu n l effectneed an index, yu can delete it.Additin and indexes have n
ther indexes.n the data recrds r n
uniquely identify thatYu may want a field in field in each recrd t
yeerecrd frm all ther recrds in the file.Fr example, the Empl Number field is unique if yu d nt assign the same number t tw therdifferent emplyees, and yu never reassign these numbers t aemplyees.If yu wish t find r mdify the recrd belnging t f determiningspecific emplyee, this unique field saves the
thuble
rd.whether yu have the crrect rec
rdIf yu d nt have a unique field, yu must find the first rec
uthe matches yur key and determine whether the recrd is the ne y
thers.want.If it is nt the crrect ne, yu must search again t find
uIf yu knw that yu have a unique field within yur recrds, y nlycan include this fact in the key descriptin, and ISAM will allw
yee numbers areunique keys.Fr example, if yu specify that the empl
r changeunique, ISAM nly lets yu add recrds t the file fr, t alreadly exist int file.numbers t, emplyee numbers that d n __________________ 老枪
字符串处理之10 code: /* 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到 字符串数组xx中;请编制函数ChA(), 其函数的功能是: 以行为单 位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值, 得 到第一个新的字符, 第二个字符的ASCII值加第三个字符的ASCII值, 得到第二个新的字符, 以此类推一直处理到最后第二个字符, 最后 一个字符的ASCII值加原第一个字符的ASCII值, 得到最后一个新的 字符, 得到的新字符分别存放在原字符串对应的位置上,之后把已 处理的字符串逆转后仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT9.DAT中。原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含 标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函 数WriteDat()的内容。*/ #include
for(j=0;j < strlen(xx[i])-1;j++)xx[i][j]+=xx[i][j+1];xx[i][j]+=ch;strrev(xx[i]);} /**/ } void main(){ clrscr();if(ReadDat()){ printf(”数据文件IN.DAT不能打开!n 07“);return;} ChA();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;clrscr();fp = fopen(”OUT9.DAT“, ”w“);for(i = 0;i < maxline;i++){ printf(”%sn“, xx[i]);fprintf(fp, ”%sn", xx[i]);} fclose(fp);}
第二篇:2012年最新全国计算机等级考试三级网络技术上机试题100套(名师总结)
全国计算机等级考试三级网络技术上机试题
壹、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 e
3 2 1 9 8 7 6 5 则处理后的字符串 h g f d a b c d 8 7 6 5 9 1 2 3 4 注意:部分源程序给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。#include
str=strlen(xx[i]);
half=str/2;
for(j=0;j for(k=j+1;k if(xx[i][j]>xx[i][k])/*如果存在顺序,交换两个元素*/ {ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;} for(j=half-1;k=str-1;j>=0;j--,k--) {ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;} } } void main(){ readDat();jsSort(); writeDat();} void readDat(){ FILE *in;int i=0;char *p;in=fopen(”in.dat”,”r”);while(i<20&&fgets(xx[i],80,in)!=NULL){ } fclose(in);p=strchr(xx[i],’n’);if(p)*p=0;i++;} void writeDat(){ FILE *out;int I;clrscr();out=fopen(“out.dat”,”w”);for(i=0;i<20;i++){ } fclose(out);} printf(“%sn”,xx[i]);fprintf(out,”%sn”,xx[i]);运算 排序 出现次数 ☆题目19(单词个数统计题)编写一个函数findStr(char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为“asd asasdfg asd as zx67 asd mklo”,子字符串为“as”,函数返回值是6。 函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。 int findStr(char *str,char *substr){ int i,j,len1,len2,cnt=0,flag;len1=strlen(str);len2=strlen(substr);for(i=0;i 在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。其函数的功能是:要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat()把结果bb输出到文件out.dat中。int jsSort(){int i, j, cnt=0;data ch;for(i=0;i<200;i++)if(aa[i].x2>aa[i].x1+aa[i].x3)bb[cnt++]=aa[i];for(i=0;i ★题目79(数字运算题)请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。void countValue(int *a,int *n){ int i;*n=0;for(i=1;i<=1000;i++)if(i%7==0&&i%11||i%7&&i%11==0)a[(*n)++]=i;} ★题目90(整数排序题) 下列程序的功能是:将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数jsValue()实现此功能,最后调用writeDat()函数将新序列输出到文件out.dat中。 说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。 例:序列{6,8,9,1,2,5,4,7,3} 经重排后成为{3,4,5,2,1,6,8,9,7} jsValue(int a[10][9]){ int i,j,k,val,num;for(i=0;i<10;i++){ val=a[i][0];for(j=0;j<9;j++)if(a[i][j] } { num=a[i][j];for(k=j;k>0;k--)a[i][k]=a[i][k-1];a[i][0]=num;} } ★题目94(整数统计运算题)请编制程序prog1.c,从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx中值为偶数的算术平均值pj(保留2位小数)。 结果cnt1,cnt2,pj输出到out.dat中。cnt1=0;cnt2=0;pj=0.0;for(m=0;m ★题目3函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR(),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。void StrOR(void){int i,righto,j,s,k;char tem[80];for(i=0;i 例如:原文:You He Me I am a student.结果:Me He You student a am I 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。void StrOL(void){ int i,j,k,s,m,strl;char str[80];for(i=0;i 例:原文:dAe,BfC.CCbbAA 结果:fedCBA.bbCCAA void SortCharD(void){int i,j,k,strl;char ch;for(i=0;i 例:原文:Adb.Bcdza abck.LLhj 结果:Aec.Bdeab bcdl.LLik void ConvertCharA(void){ int i,j;for(i=0;i 请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT()把结果输出到文件bc1.out中。 例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。void chg(char *s){int I;for(I=0;I 例如:s字符串中原有内容为:Mn.123xyZ,则调用该函数后,结果为:n.123xyZM。void chg(char *s){ int i;char ch=*s;for(i=0;i 例:原文:Adb.Bcdza abck.LLhj 结果:Aca.Bbcyz zabj.LLgi void ConvertCharD(void){ int i,j;for(i=0;i ☆题目39(选票问题)现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。 void CountRs(void){ int i,j,count;for(i=0;i<100;i++){ count=0;for(j=0;j<10;j++)if(xx[i][j]=='1')count++;if(count==0||count==10)continue;for(j=0;j<10;j++)if(xx[i][j]=='1')yy[j]++;} } 题目58(选票问题)现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。void CountRs(void){ int i,j,count;for(i=0;i<100;i++){ count=0;for(j=0;j<10;j++)if(xx[i][j]=='1')count++;if(count<=5)continue;for(j=0;j<10;j++)if(xx[i][j]=='1')yy[j]++;} } ☆题目84(选票问题)现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。void CountRs(void){ int i,j,count;for(i=0;i<100;i++){ count=0;for(j=0;j<10;j++)if(xx[i][j]=='1')count++;if(count>5)continue;for(j=0;j<10;j++)if(xx[i][j]=='1')yy[j]++;} } 素数问题 01112***819题目27(整数各位数字运算题)已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:9123,9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812,9-8-1-2>0,则该数不满足条件忽略。jsValue(){ int i,j,qw,bw,sw,gw;for(i=0;i<300;i++){ qw=a[i]/1000;bw=a[i]/100%10;sw=a[i]%100/10;gw=a[i]%10;if(qw-bw-sw-gw>0)b[cnt++]=a[i];} for(i=0;i 例如:6712,6+2=7+1,则该数满足条件存入数组b中,且个数cnt=cnt+1。8129,8+9<>1+2,则该数不满足条件忽略。jsValue(){int i,qw,bw,sw,gw,j;for(i=0;i<300;i++){qw=a[i]/1000;bw=a[i]%1000/100;sw=a[i]%100/10;gw=a[i]%10;if(qw+gw==bw+sw)b[cnt++]=a[i];} for(i=0;i 例如:9123,9-1-2-3>0,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。9812,9-8-1-2<0,则该数不满足条件计算平均值pjz2。jsValue(){int i,qw,bw,sw,gw,n=0;for(i=0;i<300;i++){qw=a[i]/1000;bw=a[i]%1000/100;sw=a[i]%100/10;gw=a[i]%10;if(qw-bw-sw-gw>0){cnt++;pjz1+=a[i];} else {n++;pjz2+=a[i];} } if(cnt==0)pjz1=0;else pjz1/=cnt;if(n==0)pjz2=0;else pjz2/=n;} ☆题目53(整数各位数字运算题)已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:9123,9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812,9-8-1-2>0,则该数不满足条件忽略。 部分源程序存在文件prog1.c中。 程序中已定义数组:a[300],b[300],已定义变量:cnt 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#include 例如:7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。8129,8+1<>2+9,则该数不满足条件忽略。jsValue(){ int i,j,qw,bw,sw,gw;for(i=0;i<300;i++){ qw=a[i]/1000;bw=a[i]/100%10;sw=a[i]%100/10;gw=a[i]%10;if(qw+bw==sw+gw)b[cnt++]=a[i];} for(i=0;i 例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812是非素数,则该数不满足条件忽略。int isP(int m){ int i;for(i=2;i jsValue(){int i,j,value;for(i=0;i<300;i++)if(isP(a[i]))b[cnt++]=a[i];for(i=0;i 例如:1239,9-1-2-3>0,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,9-8-1-2<0,则该数不满足条件计算平均值pjz2。jsValue(){int i,j,thou,hun,ten,data,n=0;for(i=0;i<300;i++){thou=a[i]/1000;hun=a[i]/100%10;ten=a[i]%100/10;data=a[i]%10;if(data-thou-hun-ten>0){ cnt++;pjz1+=a[i];} else { n++;pjz2+=a[i];} } if(cnt==0)pjz1=0;else pjz1/=cnt;if(n==0)pjz2=0;else pjz2/=n;} ☆题目81(整数各位数运算题)已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+1<>2+9,则该数不满足条件计算平均值pjz2。jsValue(){int i,thou,hun,ten,data,n=0;for(i=0;i<300;i++){thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;if(thou+hun==ten+data){cnt++;pjz1+=a[i];} else {n++;pjz2+=a[i];} } if(cnt==0)pjz1=0;else pjz1/=cnt;if(n==0)pjz2=0;else pjz2/=n;} ★题目82(素数题)已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果cnt,pjz1,pjz2输 出到out.dat文件。 例如:5591是素数,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。9812是非素数,则该数不满足条件计算平均值pjz2。int isP(int m){int i;for(i=2;i 例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+9<>1+2,则该数不满足条件计算平均值pjz2。jsValue(){ int i,gw,sw,bw,qw,cnt2=0;for(i=0;i<300;i++){gw=a[i]%10;sw=a[i]/10%10;bw=a[i]/100%10;qw=a[i]/1000;if((qw+gw)==(sw+bw)){ cnt++;pjz1+=a[i];} else { cnt2++;pjz2+=a[i];} } if(cnt==0)pjz1=0;else pjz1/=cnt;if(cnt2==0)pjz2=0;else pjz2/=cnt2;} 200个整数 小于200 ☆题目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 5099 void 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] 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。void jsSort(){ int i,j,data;for(i=0;i<199;i++)for(j=i+1;j<200;j++)if(aa[i]%1000 1、求出这N个实数的平均值aver; 2、分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数writedat()把所求的结果输出到文件out.dat中。void CalValue(void){ int i; } double x, sum = 0;for(i=0;i } aver = sum/MAXNUM;sumint = sumint+(int)xx[i];x = xx[i]-(int)xx[i];sumdec = sumdec+x;sum = sum+xx[i];☆题目26(整数统计运算题)已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求: 1、求出这文件中共有多少个正整数totNum; 2、求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。void CalValue(void){int i,data;for(i=0;i 1、求出这文件中共有多少个正整数totNum; 2、求这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。void CalValue(void){ int i,qw,bw,sw,gw;for(i=0;i 1、求出这文件中共有多少个正整数totNum; 2、求这些数中的各位数字之和是奇数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。void CalValue(void){ int i ,qw,bw,sw,gw;for(i=0;i 1、求出这文件中共有多少个正整数totNum; 2、求这些数右移1位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。void CalValue(void){int i,data;for(i=0;i ☆ 题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 程序中已定义数组:a[200],b[200],已定义变量:cnt void jsVal(){ int i,j,qw,bw,sw,gw;for(i=0;i 最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 void jsVal(){ int i,j,qw,bw,sw,gw,ab,cd;for(i=0;i ☆题目7(结构体操作题)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。 void SortDat(){int i,j;PRO xy;for(i=0;i<100;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中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。void SortDat(){int i,j;PRO xy;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je>sell[j].je){xy=sell[i];sell[i]=sell[j];sell[j]=xy;} 题目13(结构体运算题)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能 要求:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT9.DAT中。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 void SortDat(){int i,j;PRO xy;for(i=0;i<99;i++)for(j=i+1;j<100;j++)if(sell[i].je 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;} } 题目42 结构体运算题已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。void SortDat(){int i,j;PRO xy;for(i=0;i<99;i++)for(j=i+1;j<100;j++) if(strcmp(sell[i].mc,sell[j].mc)<0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je ★题目43(字符排序题)无忧id 82题(只是将结果按“从大到小”排序)函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。 例如:位置 0 1 2 3 4 5 6 7 源字符串 a b c d e f g h 则处理后字符串 a h c f e d g b void jsSort(){int i,j,k,strl;char ch;for(i=0;i<20;i++){ strl=strlen(xx[i]);for(j=1;j 条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。 例如:位置 0 1 2 3 4 5 6 7 8 源字符串 a b c d h g f e 1 2 3 4 9 8 7 6 5 则处理后字符串 h g f e d c b a 8 7 6 5 9 4 3 2 1 void jsSort(){ int i,j,k,strl,half;char temp;for(i=0;i<20;i++){ strl=strlen(xx[i]);half=strl/2;for(j=0;j 条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。 例如:位置 0 1 2 3 4 5 6 7 8 源字符串 d c b a h g f e 4 3 2 1 9 8 7 6 5 则处理后字符串 h g f e a b c d 8 7 6 5 9 1 2 3 4 void jsSort(){ int i,j,k,strl,half;char temp;for(i=0;i<20;i++){ strl=strlen(xx[i]);half=strl/2;for(j=0;j 条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。 例如:位置 0 1 2 3 4 5 6 7 8 源字符串 a b c d h g f e 1 2 3 4 9 8 7 6 5 则处理后字符串 d c b a e f g h 4 3 2 1 9 5 6 7 8 void jsSort(){int i,j,k,strl,half;char ch;for(i=0;i<20;i++){ strl=strlen(xx[i]);half=strl/2;for(j=0;j 1.IPv6地址在使用双冒号法表示时,双冒号只允许出现一次 2.BGP协议的打开(OPEN)分组用于与相邻的另一个BGP发言人建立相邻关系;更新(Update)分组用于发送某一路由的信息,以及列出要撤销的多条路由;保活(Keepalive)分组用来确认打开报文,以及周期性地证实相邻边界路由器的存在;通知(Notification)分组用于发送检测到的差错。 3.漏洞扫描器的主要性能指标有速度、发现漏洞数量、是否支持可定制攻击方法、报告和更新周期。 4.X.Scanner运行在Windows平台下,主要针对Windows NT/Windows 2000/Windows XP操作系统的安全进行全面细致评估。 5.网站访问权限选项卡中的选项有读取、运行脚本、执行、写入和浏览。6.无源光纤网(PON)是ITU(国际电信联盟)的SG15研究组在G.983建议“基于无源光纤网的高速光纤接人系统”进行标准化的。该建议分为两个部分: (1)OC.3,155.520Mbps的对称业务。 (2)上行OC-3,155.520Mbps;下行OC-12,622.080Mbps的不对称业务。 OC-x是ITu-T的推荐标准中定义的光纤的物理层接口,它以51.84Mbps为单位定义了多个级别,用作通信服务提供商采用的光纤通信系统(SONET及SDH)、ATM交换机和路由器等的接口。7.建立VLAN的命令格式“vlan 8.通过IDS获取网络流量的方法不包括在网络中串接一台交换机。 9.AS内部的路由算法称为内部网关协议,As之间的路由算法称为外部网关协议。RIP协议、0SPF协议和ISIS协议均在一个AS内部使用 10.在DNS服务器中,资源记录是指区域中的一组结构化的记录。常用的资源记录包括:主机地址资源记录,它将DNS域名映射到IP地址;邮件交换器资源记录,为邮件交换器主机提供邮件路由;别名资源记录,将别名映射到标准DNS域名。DNS服务器中没有FTP服务器这一资源记录。 11.网络地址为IP地址与子网掩码相与后得到的结果。直接广播地址为主机号全1的IP地址。网络号置0得到主机号。子网内的第一个可用IP地址是网络地址加l。子网内的最后一个可用IP地址是直接广播地址减l。12.配置千兆以太网接口: Router(config)#interface<接口名> Router(config-if)#description To<目的网络名> Router(config-if)#bandwidth l0000000(带宽l0Gbps=10000000Kbps)Router(config-if)#ip address 13.地址聚合计算办法:取两个网络前缀共同的部分即为聚合后的地址。计算机系的IP地址块为202.113.16.224/27,其二进制表示为ll001100 01110001 00010000 11100000,自动化系的IP地址块为202.113.16.192/27,其二进制表示为ll001100 01110001 00010000 11000000,这两个IP地址中前26位是相同的,因此两个IP地址可聚合为202.113.16.192/26。 14.conduit命令用来允许数据流从具有较低安全级别的接口流向具有较高安全级别的接口,例如允许从外部到DMZ或内部接口的进入方向的会话。对于向内部接口的连接,将联合使用static和conduit命令来指定会话的建立。15.嵌入式安装插座是用来连接双绞线的,多介质信息插座用来连接铜缆和光纤。 16.ROM主要用来永久保存路由器的开机诊断程序、引导程序和操作系统软件。RAM主要存储路由表、各种缓存和运行配置文件等临时信息,关机和重启后数据自动丢失。NVRAM主要用于存储启动配置文件或备份配置文件。闪存主要用于存储路由器当前使用的操作系统映像文件和一些微代码。 17.转发器也是一个DNS服务器,是本地DNS服务器用于将外部DNS名称的DNS查询转发给该DNS服务器。18.每一个OSPF区域拥有一个32位的区域标识符,每一个区域内的路由器数不超过200个。19.建立VLAN命令格式: Switch-6500>(enable)set vlan Switch一6500>(enable)set vlan Switch一6500>(enable)set trunk Switch一6500>(enable)set trunk 21.使用ipconfig/all命令可以完整地查看DHCP客户端获得的地址租约及其他配置信息。22.使用ipconfig/release命令可以释放已获得的地址租约。 23.生成树协议STP工作时,在交换机之间传递网桥协议数据单元BPDU,其数据包有两种类型,一种是包含配置信息的配置BPDU(不超过35个字节),另一种是包含拓扑变化信息的拓扑变化通知BPDU(不超过4个字节)。24.RPR将沿顺时针传输的光纤环叫做外环,将沿逆时针传输的光纤环叫做内环。内环和外环都可以用统计复用的方法传输IP分组。 25.RAID是磁盘阵列技术,它在一定程度上可以提高磁盘存储容量,但不能提高容错能力。26.交换机的生成树优先级的取值范围是0~61440,增量倍数为4096。27.V1AN工作在OSI参考模型的第二层(数据链路层),而不是网络层。 28.以太无源光纤网络(EPON)是光纤接入技术;同步数字体系(SDH)在各种宽带光纤接入网技术中应用普遍;无线应用协议(WAP)是一项全球性的网络通信协议。无线接入技术主要有802.11标准的无线局域网(WLAN)接入、802.16标准的无线城域网(WMAN)接入以及正在发展的Ad hoc接入技术。在无线宽带接入网的结构中,远距离采用802.16标准的WiMAX技术,可以在50m范围内提供70 Mbps的传输速率;近距离采用802.11标准的WLAN,可以满足一定地理范围内的用户无线接入的需求。 29.802.11标准的重点在于解决局域网范围的移动结点通信问题,802.16标准的重点是解决建筑物之间的数据通信问题,802.16a增加了非视距和对无线网格网结构的支持,用于固定结点接入。30.链路状态的“度量”主要有带宽、距离、费用和延时等。 31.BGP协议交换路由信息的结点数是以自治系统数为单位的,所以不会小于自治系统数。 32.VLAN建立在局域网交换机基础之上,第二层交换机工作在数据链路层,没有路由交换功能,仅依据MAC地址完成数据帧的交换,而第三层交换机工作在网络层,可以实现不同逻辑子网、不同VLAN之间的数据通信。 33.可信计算机系统评估准则将计算机系统的安全可信度从低到高分为四类,共七个级别:D级,最小保护,该级的计算机系统除了物理上的安全设施外没有任何安全措施,任何人只要启动系统就可以访问系统的资源和数据;Cl级,自主保护类,具有自主访问控制机制,用户登录时需要进行身份鉴别;C2级,自主保护类,具有审计和验证机制;B1级,强制安全保护类,引入强制访问控制机制,能够对主体和客体的安全标记进行管理;B2级,结构保护,要求计算机系统中所有的对象都加标签,而且给设备分配单个或多个安全级别;B3级,具有硬件支持的安全域分离措施,从而保证安全域中软件和硬件的完整性,提供可信通道;A1级,要求对安全模型作形式化的证明,对隐通道作形式化的分析,有可靠的发行安装过程。 34.ICMP消息封装在IP数据包内而非TCP数据包内。35.宽带城域网的核心交换层主要有以下几个基本功能: (1)核心交换层将多个汇聚层连接起来,为汇聚层的网络提供高速分组转发,为整个城市提供一个高速、安全与 具有QoS保障能力的数据传输环境。 (2)核心交换层实现与主干网络的互联,提供城市的宽带IP出口。 (3)核心交换层提供宽带城域网的用户访问Internet所需要的路由访问。 36.配置域的存储位置时,小的域应选择.INI文件存储,而大的域(用户数大于500)应选择注册表。37.DNS服务器配置的主要参数: (1)正向查找域(将域名映射到IP地址数据库,用于将域名解析为IP地址)。(2)反向查找域(将IP地址映射到域名数据库,用于将IP地址解析为域名)。 (3)资源记录(区域中的一组结构化记录,包括主机地址资源记录、邮件交换器资源记录和别名资源记录)。(4)转发器(本地DNS服务器用于将外部DNS名称的DNS查询转发给该DNS服务器)。38.路由器有多种配置方式:(1)使用控制端口配置。 (2)使用AUX端口连接一台Modem,通过拨号远程配置路由器。(3)使用telnet远程登录到路由器上配置路由器。 (4)使用TFTP服务,以拷贝配置文件、修改配置文件的形式配置路由器。 (5)通过网络管理协议SNMP修改路由器配置文件的方式,从而对路由器进行配置。39.Catalyst 6500交换机配置设备管理地址的格式是: set interface sc0 40.入侵防护系统主要分为三种:基于主机的入侵防护系统,安装在受保护的主机系统中,检测并阻挡针对本机的威胁和攻击;基于网络的入侵防护系统,布置在网络出口处,一般串联于防火墙与路由器之间,网络进出的数据流都必须经过它;应用入侵防护系统,一般部署于应用服务器前端,将基于主机和入侵防护系统功能延伸到服务器之前的高性能网络设备上。 41.执行“ipConfig/f1ushdns”命令可以清除DNS缓存。nbtstat可以刷新NetBIOS名称缓存以及使用Windows Intemet名称服务注册的名称。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的数据,一般用于检验本机各端口的网络连接情况。Ns1ookup是一个监测网络中DNS服务器是否能正确实现域名解析的命令。 42.IEEE 802.16定义了宽带无线城域网接人标准,其传输速率为32~134Mbps。IEEE 802.16是一个点对多点的视距条件下的标准,最高传输速率为134Mbps。 43.在Windows Server 2003操作系统的cmd命令窗口中,命令netstat用于显示活动的TCP连接、侦听端口、以太网统计信息、IP路由表和IP统计信息。其后带上参数“-a”,将显示出所有连接和侦听端口。命令nbtstat用于显示本机与远程计算机的基于TCP/IP的NetBIOS的统计及连接信息。其后带上“-a”,显示结果将使用远程计算机的名称列出名称表。命令arp-a用于显示当前主机的地址转换协议(ARP)表项。命令net view用于显示域列表、计算机列表或指定计算机上共享资源的列表。 44.路由器内存用于保存路由器配置、路由器操作系统和路由协议软件等。路由器内存主要有只读存储器(ROM)、随机存储器(RAM)、非易失性随机存储器(NVRAM)和闪存(Flash)等类型。其中,ROM主要用于永久保存路由器的开机诊断程序、引导程序和操作系统软件。Flash主要存储路由器当前使用的操作系统映像软件和一些微代码。RAM作用于路由器操作系统运行期间,主要存储路由表、快速交换缓存和ARP缓存等。NVRAM主要用于存储启动配置文件或备份配置文件。45.在Cisco PIX 525防火墙配置模式“pixfirewall(config)#”下,conduit命令用于允许数据流从具有较低安全级别的接口流向具有较高安全级别的接口;global命令用于指定外部IP地址范围(地址池);route命令用于设置指向内网和外网的静态路由;nat命令用于指定要进行地址转换的内部地址。 46.常用ICMP报文类型主要有0 Echo应答、3目标不可到达、4源抑制、5重定向、8 Echo请求、9路由器通告、ll超时以及l2参数失灵等。 47.网桥的主要性能指标包括帧转发速率和帧过滤速率。48.IEEE 802.11最初定义的三个物理层包括了两个扩频技术和一个红外传播规范,无线传输的频道定义在2.4GHz的ISM波段内。IEEE 802.11无线标准定义的传输速率是lMbps和2Mbps。49.无线接人技术主要有WLAN、WiMAX、Wi-Fi、WMAN和Ad hoc等。 50.“ipconfig/release”命令可以释放已获得的地址租约,使其IP Address和Subnet Mask均为0.0.0.0。51.命令nslookup的功能是用于测试域名与IP地址的相互解析,arp命令用于显示和修改地址转换协议(ARP)表项,netstat命令用于显示活动的TCP连接、侦听的端口、以太网统计信息、IP路由表和IP统计信息等内容,query是应用程序的查询命令。 52.OSPF协议使用层次结构的区域划分。 53.蓝牙软件结构标准包括Core(核心)和Profile(应用协议栈)两大部分。 54.城域网的概念泛指:网络运营商在城市范围内提供各种信息服务业务的所有网络。55.入侵检测技术可以分为 异常榆测 与 误用检测。 子网地址规划需要回答的5个基本问题: 1、被选定的子网掩码可产生多少个子网? 2、每个子网内部可有多少个合法的subnet ID? 3、这些合法的主机地址是什么? 4、每个子网的广播地址是什么? 5、每个子网内部的net ID是什么? 56.ipconfig/all 用来显示当前电脑ip相关的所有信息,包括ip,服务器ip,mac地址,服务器名称 57.Internet中自治系统最重要的特点就是它有权自主决定在本系统内应采用何种 路由选择 协议。 58.综合布线采用的主要连接部件分为建筑群配线架、大楼主配线架、楼层配线架、转接点和 通信引出端或TO。59.网络应用软件开发与运行环境包括:网络数据库管理系统 与 网络软件开发工具。 60.FTP服务器的选项包括服务器选项、域选项、组选项和 用户选项 选项。 61.局域网交换机通过一种 自学习的方法,自动地建立和维护一个记录着目的MAC地址与设备端口映射关系的交换表。 62.路由器的基本检测命令有telnet、ping、trace与 show 等。 63.IEEE 802.11 b的典型解决方案有:对等 解决方案,单接入点解决方案,多接入点解决方案与无线中继解决方案。 64.网络地址规划的内容: 1、判断用户对网络与主机数的需求; 2、计算满足用户需求的基本网络地址结构; 3、计算地址掩码; 4、计算网络地址; 5、计算网络广播地址; 6、计算网络的主机地址。65.在路由器上loopback接口没有一个实际的物理接口与之对应。66.综合布线系统设计等级分为基本型、增强型、综合型。 67.在设置IIS安全性功能之前确认用户的用户标识,可以选择配置下列三种方法:身份验证和访问控制、IP地址和域名限制与安全通信。 68.标准访问控制列表只能检查数据包的 原地址。69.用于衡量路由信息源可信度的值是 管理距离。 70.局域网交换机根据进入端口数据帧中的MAC地址,过滤和转发数据帧。 80.综合布线系统由留个子系统组成,他们是工作区子系统、水平子系统、垂直子系统、设备间子系统、建筑群子系统、管理子系统。 81.IPSec是IETF的IP安全性协议工作组定义的一套用于网络层安全的协议,它在IP层上提供访问控制无连接完整性、数据源认证、拒绝重放包、加密和流量保密服务。 82.组播协议分为域内组播协议和域间组播协议,域内组播协议又分为两种模式:密集模式和稀疏模式。密集模式组播协议有DVMRP、MOSPF和PIM—DM等协议,稀疏模式组播协议有CBT和PIM—SM协议。 83.目的地不可达可以分为网络不可达、主机不可达、协议和端口不可达等多种情况。根据每一种不可达的具体原因,路由器发出相应的ICMP目的地不可达差错报告。 84.Web流量安全性方法包括网络级、传输级和应用级三种。 85.采用广播信道的通信子网的基本拓扑结构主要有总线型、树型、环型与无线通信和卫星通信型。 86.互联层控制主要包括拥塞控制、流量控制两大内容。 87.以太网交换机的帧转发方式有:直通交换方式、存储转发交换方式和改进的直通交换方式。88.网桥可以通过帧地址过滤和转发帧隔开网段中的流量。 89.网络防火墙包括包过滤路由器、应用级网关和电路级网关。 90.用户检索POP3邮件服务器的过程可以分成3个阶段:认证阶段、事务处理阶段、更新阶段。91.对于打开的文件其惟一的识别依据是句柄。 通信子网中的结点是通信控制处理机。它负责完成数据单元的接收、差错校验、存储、路径选择和转发功能。 93.IP电话系统有4个基本组件:终端设备、网关、多点控制单元和网守。 94.网桥的设计有以下几点需要强调: ①网桥不更改接收帧的数据字段的内容和格式,只简单地将每个要传输的帧从一个局域网中复制下来,再原封不动地传送到另一个局域网,因此它要求两个局域网在MAC层以上使用相同的协议: ②衡量网桥性能的参数主要是每秒钟接收与转发的帧数; ③网桥必须具有寻址能力和路由选择能力;(4)网桥所连接的局域网的MAC层与物理层协议可以不同。 95.为了使电子邮件能够传输多媒体等二进制信息,MIME协议对RFC 822进行了扩充。96. 09年3月全国计算机考试三级网络技术笔试试题及答案 (1)1959年10月我国研制成功的一台通用大型电子管计算机是(B) A)103计算机B)104计算机C)120计算机D)130计算机 (2)关于计算机应用的描述中,错误的是(C) A)模拟操作是一种特殊的研究方法B)大气预报采用了巨型计算机处理数据 C)经济运行模型还不能用计算机模拟D)过程控制可采用抵挡的处理芯片 (3)关于服务器的描述中,正确的是(D) A)按体系结构分为入门级、部门级、企业级服务器B)按用途分为台式、机架式、机柜式服务器 C)按处理器类型分为文件、数据库服务器D)刀片式服务器的每个刀片是一块系统主板 (4)关于计算机配置的描述中,错误的是(A) A)服务器机箱的个数用1U/2U/3U/....../8U表示B)现在流行的串接口硬盘是SATA硬盘 C)独立磁盘冗余阵列简称磁盘阵列D)串行SCSI硬盘简称SAS硬盘 (5)关于软件开发的描述中,正确的是(B) A)软件生命周期包括计划、开发两个阶段B)开发初期进行需求分析、总体设计、详细设计 C)开发后期进行编码、测试、维护D)软件运行和使用中形成文档资料 (6)关于多媒体的描述中,错误的是(D) A)多媒体的数据量很大,必须进行压缩才能实用B)多媒体数据有许多冗余,这是进行的基础 C)信息编码法提供了无损压缩D)常用的预测编码是变换编码 (7)关于数据报交换方式的描述中,错误的是(A) A)在报文传输前建立源结点与目标的结点之间的虚电路B)同一报文的不同分组可以经过不同路径进行传输 C)同一报文的每个分组中都要有源地址和目标地址D)同一报文的不同分组可能不按顺序到达目的结点 (8)IEEE802.11无线局域网的介质访问控制方法中,帧间间隔大小取决于(D) A)接入点B)交换机C)帧大小D)帧类型 (9)以下网络应用中不属于Web应用的是(B) A)电子商务B)域名解析C)电子政务D)博客 (10)关于千兆以太网的描述中,错误的是(C) A)与传统以太网采用相同的帧结构B)标准中定义了千兆介质专用接口 C)只使用光纤作为传输介质D)用GMII分割MAC子层与物理层 (11)虚拟局域网的技术基础是(C) A)路由技术B)宽带分配C)交换技术D)冲突检测 (12)关于OSI参考模型的描述中,正确的是(C) A)高层为低层提供所需的服务B)高层需要知道低层的实现方法 C)不同结点的同等层有相同的功能D)不同结点需要相同的操作系统 (13)如果网络结点传输10bit数据需要1×10-8,则该网络的数据传输速度是(B) A)10MbpsB)1GbpsC)100MbpsD)10Gbps (14)关于传统Ethernet的描述中,错误的是(D) A)是一种典型的总线型局域网B)结点通过广播方式发送数据 C)需要解决介质访问控制问题D)介质访问控制方法是CSMA/CA (15)网桥实现网络互联的层次是(A) A)数据链路层B)传输层C)网络层D)应用层 (16)在TC/IP参考模型中,负责提供面向连接服务的协议是(C) A)FTPB)DNSC)TCPD)TDP (17)以下哪一个不是无线局域网IEEE80211规定的物理层传输方式?(C) A)直接序列扩频B)跳频扩频C)蓝牙D)红外 (18)关于网络层的描述中,正确的是(B) A)基本数据传输单位是帧B)主要功能是提供路由选择 C)完成应用层信息格式的转换D)提供端到端的传输服务 (19)1000BASE-T标准支持的传输介质是(C) A)单模光纤B)多模光纤C)非屏蔽双绞线D)屏蔽双绞线 (20)电子邮件传输协议是(D) A)DHCPB)FTPC)CMIPD)SMTP (21)关于IEEE802模型的描述中,正确的是(B) A)对应于OSI模型的网络层B)数据链路层分为LLC与MAC层 C)只包括一种局域网协D)针对广域网环境 (22)关于Ad Hoc网络的描述中,错误的是(B) A)是一种对等的无线移动网络B)在WALN的基础上发展起来 C)采用无基站的通信模式D)在军事领域应用广泛 (23)以下P2P应用软件中不属于文件共享类应用的是(A) A)SkypeB)GnutellaC)NapsterD)BitTorrent (24)关于服务器操作系统的描述中,错误的是(D) A)是多用户、多任务的系统B)通常采用多线程的处理方式 C)线程比进程需要的系统开销小D)线程管理比进程管理复杂 (25)关于Windows Server基本特征的描述中,正确的是(B) A)Windows 2000开始与IE集成,并摆脱了DOSB)Windows 2003依据.NET架构对NT技术做了实质的改进 C)Windows 2003 R2可靠性提高,安全性尚显不足D)Windows 2008重点加强安全性,其他特征与前面版本类似 (26)关于活动目标的描述中,错误的是(D) A)活动目标包括目录和目录服务B)域是基本管理单位,通常不再细分 C)活动目标采用树状逻辑结构D)通过域构成树,树再组成森林 (27)关于Unix操作系统的描述中,正确的是(A) A)Unix由内核和外壳两部分组成B)内核由文件子系统和目录子系统组成C)外壳由进程子系统和线程子系统组成D)内核部分的操作原语对用户程序起作用 (28)关于Linux操作系统的描述中,错误的是(C) A)内核代码与Unix不同B)适合作为Internet服务平台 C)文件系统是网状结构D)用户界面主要有KDE和GNOME (29)关于TCP/IP协议集的描述中,错误的是(A) A)由TCP和IP两个协议组成B)规定了Internet中主机的寻址方式 C)规定了Internet中信息的传输规则D)规定了Internet中主机的命名机制 (30)关于IP互联网的描述中,错误的是(C) A)隐藏了低层物理网络细节B)数据可以在IP互联网中跨网传输 C)要求物理网络之间全互连D)所有计算机使用统一的地址描述方法 (31)以下哪个地址为回送地址?(B) A)128.0.0.1B)127.0.0.1C)126.0.0.1D)125.0.0.1 (32)如果一台主机的IP地址为20.22.25.6,子网掩码为255.255.255.0,那么该主机的主机号为(A) A)6B)25C)22D)20 (33)一个连接两个以太网的路由器接收到一个IP数据报,如果需要将该数据报转发到IP地址为202.123.1.1的主机,那么该路由器可以使用哪种协议寻找目标主机的MAC地址?(B) A)IPB)ARPC)DNSD)TCP (34)在没有选项和填充的情况下,IPv4数据报报头长度域的值应该为(C) A)3B)4C)5D)6 (35)对IP数据报进行分片的主要目的是(D) A)提高互联网的性能B)提高互联网的安全性 C)适应各个物理网络不同地址的长度D)适应各个物理网络不同的MTU长度 (36)以下关于ICMP差错报文特点的描述中,错误的是(A) A)享受特别优先权和可靠性B)数据包含故障IP数据报数据区的前64比特 C)伴随抛弃出错IP数据报产生D)目的地址通常为抛弃数据报的源地址 (37)一个路由器的路由表如下所示。如果该路由器接收到一个目的IP地址为10.1.2.5的报文,那么它应该将其投递到(B) 要到达的网络下一路由地址 10.2.0.0直接投递 10.3.0.0直接投递 10.1.0.010.2.0.5 10.4.0.010.3.0.7 A)10.1.0.0B)10.2.0.5C)10.4.0.0D)10.3.0.7 (38)关于RIP与OSPF协议的描述中,正确的是(C) A)RIP和OSPF都采用向量-距离算法B)RIP和OSPF都采用链路-状态算法 C)RIP采用向量-距离算法,OSPF采用链路-状态算法D)RIP采用链路-状态算法,OSPF采用向量-距离算法 (39)为确保连接的可靠建立,TCP采用的技术是(D) A)4次重发B)3次重发C)4次握手D)3次握手 (40)关于客户机/服务器模式的描述中,正确的是(A) A)客户机主动请求,服务器被动等待B)客户机和服务器都主动请求 C)客户机被动等待,服务器主动请求D)客户机和服务器都被动等待 (41)关于Internet域名系统的描述中,错误的是(C) A)域名解析需要一组既独立又协作的域名服务器B)域名服务器逻辑上构成一定的层次结构 C)域名解析总是从根域名服务器开始D)递归解析是域名解析的一种方式 (42)pwd是一个FTP用户接口命令,它的意义是(A) A)请求用户输入密码B)显示远程主机的当前工作目录 C)在远程主机中建立目录D)进入主动传输方式 (43)为了使电子邮件能够传输二进制信息,对RFC822进行扩充后的标准为(C) A)RFC823B)SNMPC)MIMED)CERT (44)关于WWW服务系统的描述中,错误的是(B) A)WWW采用客户/机服务器模式B)WWW的传输协议采用HTML C)页面到页面的链接信息由URL维持D)客户端应用程序称为浏览器 (45)下面哪个不是Internet网络管理协议?(D) A)SNMPv1B)SNMPv2C)SNMPv3D)SNMPv 4(46)根据计算机信息系统安全保护等级划分准则,安全要求最高的防护等级是(D) A)指导保护级B)强制保护级C)监督保护级D)专控保护级 (47)下面那种攻击属于被动攻击?(A) A)流量分析B)数据伪装C)消息重放D)消息篡改 (48)AES加密算法处理的分组长度是(B) A)56位B)64位C)128位D)256位 (49)RCS加密算法没有采用的基本操作是(C) A)异或B)循环C)置换D)加 (50)关于消息认证的描述中,错误的是(C) A)消息认证称为完整性校验B)用于识别信息源的真伪 C)消息认证都是实时的D)消息认证可通过认证码实现 (51)关于RSA密码体制的描述中,正确的是(D) A)安全性基于椭圆曲线问题B)是一种对称的密码体制 C)加密速度很快D)常用于数字签名 (52)关于Kerberors认证系统的描述中,错误的是(D) A)有一个包含所有用户密钥的数据库B)用户密钥是一个加密口令 C)加密算法必须使用DESD)Kerberos提供会话密钥 (53)RSA算法加密时,已知公钥是(e=7,n=20),私钥是(d=3,n=20),用公钥对消息M=3加密,得到的密文是:(D) A)19B)13C)12D)7 (54)下面哪个地址不是组播地址?(还不确定) A)224.0.1.1B)232.0.0.1C)233.255.255.1D)240.255.255.1 (55)下面哪种P2P网络拓扑不是分布式非结构化的?(B) A)GnutellaB)MazeC)LimeWireD)BearShare (56)关于即时通信的描述中,正确的是(C) A)只工作在客户机/服务器方式B)QQ是最早推出的即时通信软件 C)QQ的聊天通信是加密的D)即时通信系统均采用SIP协议 (57)下面哪种服务不属于IPTV通信类服务?(C) A)IP语音服务B)即时通信服务C)远程教育服务D)电视短信服务 (58)从技术发展角度看,最早出现的IP电话工作方式是(A) A)PC-to-PCB)PC-to-PhoneC)Phone-to-PCD)Phone-to-Phone (59)数字版权管理主要采用数据加密、版权保护、数字签名和(B) A)认证技术B)数字水印技术C)访问控制技术D)防篡改技术 (60)网络全文搜索引擎一般包括搜索器、检索器、用户接口和(A) A)索引器B)机器人C)爬虫 二、填空题(每题2分,共40分) (1)精简指令集计算机的英文缩写是【RISC】。 (2)流媒体数据流具有连续性、实时性和【时序性】三个特点。 (3)00-60-38-00-08-A6是一个【MAC】地址。 (4)Ethernet V2.0规定帧的数据字段的最大长度是【1500B】。 (5)RIP协议用于在网络设备之间交换【路由】信息。 (6)网络协议的三个要素是【语法】、语义与时序。 (7)TCP/IP参考模型的主机—网络层对应于OSI参考模型的物理层与【数据链路层】。 (8)一台Ethernet交换机提供24个100Mbps的全双工端口与1个1Gbps的全双工端口,在交换机满配 置情况下的总带宽可以达到【6.8Gps】。 (9)Web/OS是运行在【浏览器】中的虚拟操作系统。 (10)Novell公司收购了SUSE,以便通过SUSE【Linux】Professional产品进一步发展网络操作系统业务。 (11)IP服务的三个特点是:不可靠、面向非连接和【尽最大努力投递】。 (12)如果一个IP地址为10.1.2.20,子网掩码为255.255.255.0的主机需要发送一个有限广播数据报,该有限广播数据报的目的地址为【255.255.255.255】。 (13)IPv6的地址长度为【128】位。 (14)浏览器结构由一个【控制单元】和一系列的客户单元、解释单元组成。 (15)为了解决系统的差异性,Telnet协议引入了【网络虚拟终端(或NVT)】,用于屏蔽不同计算机系统对键盘输入解释的差异。 (16)SNMP从被管理设备收集数据有两种方法:基于【轮询】方法和基于中断方法。 (17)数字签名是笔迹签名的模拟,用于确认发送者身份,是一个【加密】的消息摘要。 (18)包过滤防火墙依据规则对收到的IP包进行处理,决定是【转发】还是丢弃。 (19)组播允许一个发送方发送数据包到多个接收方。不论接收组成员的数量是多少,数据源只发送【一次】数据包。 (20)P2P网络存在四种主要结构类型,Napster是【集中】目录式结构 计算机三级网络技术考试大纲提示 基本要求 1、具有计算机软件及应用的基本知识 2、掌握操作系统的基本知识 3、掌握计算机网络的基本概念与基本工作原理 4、掌握internet的基本应用知识 5、掌握组网,网络管理与网络安全等计算机网络应用的基础知识 6、了解网络技术的发展 7、掌握计算机操作并具有c语言编程(含上机调试)的能力考试内容 一、基本知识 1、计算机系统组成2、计算机软件的基础知识 3、多媒体的基本概念 4、计算机应用领域 二、操作系统 1、操作系统的基本概念,主要功能和分类 2、进程、线程、进程间通信的基本概念 3、存储管理、文件管理、设备管理的主要技术 4、典型操作系统的使用 三、计算机网络的基本概念 1、数据通讯技术的定义与分类 2、数据通讯技术基础 3、网络体系结构与协议的基本概念 4、广域网、局域网与城域网的分类、特点与典型系统 5、网络互连技术与互连设备 四、局域应用技术 1、局域网分类与基本工作原理 2、高速局域网 3、局域网组网方法 4、网络操作系统 5、结构化布线技术第三篇:计算机三级网络技术总结
第四篇:2009年3月全国计算机考试三级网络技术笔试试题及答案
第五篇:计算机三级网络技术考试大纲提示