100全国计算机三级网络技术上机习题附答案.docx
《100全国计算机三级网络技术上机习题附答案.docx》由会员分享,可在线阅读,更多相关《100全国计算机三级网络技术上机习题附答案.docx(144页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 :下列程序的功能是:将大于整数m且紧 靠m的k个素数存入数组xx.请编写函数 num(int m,int k,int xx)实现函数的要求, 最后调用函数readwriteDAT。把结果输出 到文件out.dat中。例如:若输入17, 5,则应输出:19, 23, 29, 31, 37.注意:部分源程序已给出.请勿改动主函数main ()和函数readwri tcDAT () 的内容.类型:素数.void num(int m, int k, int xx 口)/ 标准答案 */int data=m+l;int half, n=0,1;(hal f=data/2; for (I =2; I
2、= half; 1+)if(data%12 0)break;if(Ihalf)xxn=data;n+;if (n=k)break;data+:或者:void num(int m, int k, int xx)int i, j, s=0;for(i=m+1;k0:i+)for(j=2; j i; j+)if(i%j=0) break; /注:素数为只能被自己和1 整除的数.如果i%j等于(),说明i不是素数,跳出 本层循环/if(i=j)xxs+=i;k一; )或者:void num(int m, int k, int xx) int i=0;for(m=m+1;k0;m+)if (isP(m)
3、 xxi+=m;k; 原程序如下:#include #include void readwriteDAT();int isP(int m) int i ;for(i = 2 ; i m ; i+)if(m % i = 0) return 0 ;return 1 ;Ivoid num(int m, int k, int xx)mainO int m, n, xxlOOO;clrscr();printf(*XnPlease enter two integers:*) scanf (*%d, %d*, &m, &n );num (m, n, xx);for (m = 0 ; m n ; m+)pri
4、ntf(*%d *, xxm);printf(n);readwriteDAT();system(pause);)void readwriteDAT() int m, n, xx1000, 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 xxm);fprintf(wf, n);fclose(rf);fcl
5、ose(wf);2 :已知数据文件IN.DAT中存有200个四位数,并 已调用读函数readDat ()把这些数存入数组a中. 请考生编制函数jsVal (),其功能是:如果四 位数各位上的数字均是。或2或1或6或8,则统计 出满足此条件的个数ent,并把这些四位数按从 大到小的顺序存入数组b中。最后main()函数调 用写函数writeDat()把结果cnt以及数组b中符 合条件的四位数输出到0T.DAT文件中。注意:部分源程序存在文件PR()G 1. C文件中。程序中已定义数组:a200, b200,已定义变 量:ent请勿改动数据文件IN. DAT中的任何数据、主函数 main。、读函数
6、 readDat ()和写函数writ eDat () 的内容void jsVal() /标准答案/int bb4;int I, j, k, flag;for (I=0;K200;I+)bb0=a11/1000; bbl=aI%1000/100;bb2=aI%100/10; bb3=aI%10;for (j=0;j4;j+)if (bbj%2=0)flag=l;elseflag=0;break;)if (flag=l) bcnt=aI;cnt+; for(1=0;Icnt-1;1+) for(j=I+l;jcnt;j+) if (bIbj)k=bI;bI=bj;bj=k; )原程序如下:inc
7、lude define MAX 200int aMAX, bMAX, ent = 0;void jsVal () void readDat() int i ;FILE *fp ;fp = fopen(*in. dat, r);for(i = 0 ; i MAX ; i+) fscanf(fpJ飞d”, &ai);fclose(fp);)void main() int i ;readDat ();jsVal ();printf(满足条件的数二%dn”, ent);for(i = 0 ; i ent ; i+) printf(%d bi);printf(n);writeDat ();system(
8、pause);writeDat () FILE *fp ;int i ;fp = fopen (out. dat, w);fprintf(fp, %dn, ent);for(i = 0 ; i ent ; i+) fprintf(fp, %dn, bi);fclose(fp);)3例数READDAT ()实现从文件IN. DAT中读取篇 英文文章存入到字符串数组XX中;请编制函数 STROR (),其函数功能是:以行为单位把字符串中 的所有小写字母左边的字符串内容移到该串的 右边存放,然后并把小写字母(删除,余下的字符 串内容移到已处理字符串的左边存放.最后把已 处理的字符串仍按行重新存入字符
9、串数组XX中, 最后调用函数M RITEDAT ()把结果XX输出到文件 OUT. DAT中.例如:原文:You can create an index on any field.you have the correct record.结果: n any field. You can create an index rd.yu have the crrect rec原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格.类型 字符串(单词)的倒置和删 除.void StrOR(void) /标准答案/(int I, j, k, index, strl;char ch;for
10、(1=0; Kmaxl ine; 1+)strl=strlen(xxI);index=strl;for(j=0;jstrl;j+)if(xxIj= o)(for(k=j;k=index;j)ch=xxI strl-1;for(k=strl-l;kO;k一)xxIk=xxIk-l;xxI0=ch;)或者:void StrOR(void)(int i;char a80, *p;for(i=0;imaxline;i+) p= strchr (xxi, );while(p) memset (a, 0, 80);memcpy (a, xxi, p-xxi);strcpy(xxi, p+1);strcat
11、 (xxi, a);p=strchr (xx i, o); )或者:void StrOR(void) ./*我的非指针解法/int i, righto, j, k;char tern80;for(i=0;i=0;j)if (xxi j=,o) righto=j;break; for(j=righto+l;jstrlen(xxi);j+) temk+=xxi j;for (j=0; jrighto; j+)if(xxij!= o) temk+=xxij;strcpy(xxi, tern);或者:注:该题要求的字符串中所有小写字母。左边的 字符串内容移到该串的右边存放,即将串中“最 后”个字母左右
12、两侧的内容互换。题中第一个 while ()特环的作用是让pl指向最后个字母 。、第一个ctrcatO函数的作用是将pl以后的 字符都放到新串t中,第二个Strcat ()函数的作 用是将p !以前的字符连接到新串t的后面(注意: 在些之前要让p 1所指的单元成为p 1前面字符串 的结束位置pl=、0)这时完成左右互换。最 后个whi le ()循环的作用是删除新串中的所有 小写字母飞,,采用的删除方法是不是的字母 一律留下,否则不留(即相当于删除.)void StrOR(void)int i;char *pl, *p2, t80;for(i=0;i=xxi) pl-;memcpy (t 1,
13、 pl + 1, p2-p 1);tlp2-pl=0;strcat (t, tl);strcat(t,);if(plxxi) k=0;strcpy(xxi, t);I1原程序如下:# include*stdio. h# include*string. h# include*conio. h*char xx5080;int maxline=0;int ReadDat(void);void WriteDat(void);void StrOR(void) void main()clrscr();if (ReadDat ()(printf(*Can* t open the file!n*);retur
14、n;StrOR();WriteDat();system(pause);)int ReadDat(void)FILE *fp;int i=0;char *p;if(fp=fopen(in. dat*, r)=NULL) return1;while(fgets(xxi, 80, fp)!=NULL)p=strchr(xxi, n);if(p) *p=。;i+;)maxiine=i;fclose(fp);return 0;Ivoid WriteDat(void)FILE *fp;int i;fp=fopen (out. dat, w);for(i=0;imaxline;i+)printf(%sn,
15、xxi);fprintf(fp, *%sn*, xxi);;fclose(fp);I4 :函数ReadDat ()实现从文件IN. DAT中读取 篇英文文章存入到字符串数组XX中;请编制函 数StrOL(),其函数的功能是:以行为单位对 行中以空格或标点符号为分隔的所有单词进行 倒排,同时去除标点符号,之后把已处理的字符 串(应不含标点符号)仍按行重新存入字符串数 组xx中。最后main()函数调用函数WrileDal() 把结果xx输岀到文件OUT6. DAT中。例如:原文:You He MeI am a student.结果:Me He Youstudent a am I原始数据文件存放的
16、格式是:每行的宽度均小 于80个字符,含标点符号和空格。类型:字符串(单词)的倒置和删 除。void StrOL(void) /标准答案/int I, j, k, strl, 1 ;char c;for (1=0; Kmaxline; 1+)for(j=0;j=,A &c=,a &c; for (1=0; Kmaxline; 1+)(char ch80 = 0; char pp80 = 0);strl=strlen(xxl);I=strl-l; k=l;while(l)while(xxl I= a &xxl I= A &xxl1=0; j)ppj+l=ppj ; pp0=xxl I; k+;I
17、; strcat (ch, pp); strcpy (pp, ); k= 1;if (I=-l) break;while(xxl I z )&I=0)(for(j=k; j=0; j) ppj+l=ppj ; pp0=xxl I; k+; I; strcat (ch, pp); strcpy (pp, );k=0;if(I=-l)break;strcpy(xx1,ch);)或者:void StrOL(void) int i, j, k, m, n, 11;char yy80;for(i=0; i =0; j) if (isalpha(xxi j) k+;else for(m=l; m=k; m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 100 全国计算机 三级 网络技术 上机 习题 答案
限制150内