全国计算机等级考试三级网络技术南开上机100题7180.docx
- 文档编号:8206084
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:19
- 大小:19.77KB
全国计算机等级考试三级网络技术南开上机100题7180.docx
《全国计算机等级考试三级网络技术南开上机100题7180.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试三级网络技术南开上机100题7180.docx(19页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试三级网络技术南开上机100题7180
题目71(字符串左右排序题)
函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。
请编制函数jsSort(),其函数的功能是:
以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:
从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。
如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:
位置 0 1 2 3 4 5 6 7 8
源字符串 abcdhgfe
123498765
则处理后字符串dcbaefgh
432195678
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
charxx[20][80];
voidjsSort()
{inti,j,k,strl,half;
charch;
for(i=0;i<20;i++)
{strl=strlen(xx[i]);
half=strl/2;
for(j=0;j for(k=j+1;k if(xx[i][j] if(strl%2)half++; for(j=half;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;} } } voidmain() { readDat(); jsSort(); writeDat(); } readDat() { FILE*in; inti=0; char*p; in=fopen("in.dat","r"); while(i<20&&fgets(xx[i],80,in)! =NULL){ p=strchr(xx[i],'\n'); if(p)*p=0; i++; } fclose(in); } writeDat() { FILE*out; inti; clrscr(); out=fopen("out.dat","w"); for(i=0;i<20;i++){ printf("%s\n",xx[i]); fprintf(out,"%s\n",xx[i]); } fclose(out); } ************************************************************************** 题目72(整数各位打散组合运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把个位数字和千位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数均是偶数并且两个十位数中至少有一个数能被9整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。 最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意: 部分源程序存在文件prog1.c中。 程序中已定义数组: a[200],b[200],已定义变量: cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 #include #defineMAX200 inta[MAX],b[MAX],cnt=0; voidjsVal() {inti,j,thou,hun,ten,data,ab,cd; for(i=0;i<200;i++) {thou=a[i]/1000; hun=a[i]/100%10; ten=a[i]%100/10; data=a[i]%10; ab=10*data+thou; cd=10*hun+ten; if((ab%9==0||cd%9==0)&&ab%2==0&&cd%2==0&&hun! =0&&data! =0) {b[cnt]=a[i];cnt++;} } for(i=0;i for(j=i+1;j if(b[i] } voidreadDat() { inti; FILE*fp; fp=fopen("in.dat","r"); for(i=0;i fclose(fp); } voidmain() { inti; readDat(); jsVal(); printf("满足条件的数=%d\n",cnt); for(i=0;i printf("\n"); writeDat(); } writeDat() { FILE*fp; inti; fp=fopen("out.dat","w"); fprintf(fp,"%d\n",cnt); for(i=0;i fclose(fp); } *********************************************************************** ★题目73(字符替换题) 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConverCharD(),其函数的功能是: 以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z。 大写字母仍为大写字母,小写字母仍为小写字母,其它字符不变。 最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT4.DAT中。 例: 原文: Adb.Bcdza abck.LLhj 结果: Aca.Bbcyz zabj.LLgi 原始数据文件存放的格式是: 每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include #include #include charxx[50][80]; intmaxline=0;/*文章的总行数*/ intReadDat(void); voidWriteDat(void); voidConvertCharD(void) {inti,j; for(i=0;i {for(j=0;j if(xx[i][j]=='a')xx[i][j]='z'; elseif(xx[i][j]>='b'&&xx[i][j]<='z')xx[i][j]-=1; } } voidmain() { clrscr(); if(ReadDat()){ printf("数据文件IN.DAT不能打开! \n\007"); return; } ConvertCharD(); WriteDat(); } intReadDat(void) { FILE*fp; inti=0; char*p; if((fp=fopen("IN.DAT","r"))==NULL)return1; while(fgets(xx[i],80,fp)! =NULL){ p=strchr(xx[i],'\n'); if(p)*p=0; i++; } maxline=i; fclose(fp); return0; } voidWriteDat(void) { FILE*fp; inti; clrscr(); fp=fopen("OUT4.DAT","w"); for(i=0;i printf("%s\n",xx[i]); fprintf(fp,"%s\n",xx[i]); } fclose(fp); } ********************************************************************* ★题目74(字符ASCII值移位替换题) 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrCharJL(),其函数的功能是: 以行为单位把字符串中的所有字符的ASCII值左移4位,低位补0,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。 最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT7.DAT中。 原始数据文件存放的格式是: 每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include #include #include charxx[50][80]; intmaxline=0;/*文章的总行数*/ intReadDat(void); voidWriteDat(void); voidStrCharJL(void) {inti,j; charc; for(i=0;i for(j=0;j {c=xx[i][j]<<4; if(! (c<=32||c>100))xx[i][j]+=c; } } voidmain() { clrscr(); if(ReadDat()){ printf("数据文件IN.DAT不能打开! \n\007"); return; } StrCharJL(); WriteDat(); } intReadDat(void) { FILE*fp; inti=0; char*p; if((fp=fopen("IN.DAT","r"))==NULL)return1; while(fgets(xx[i],80,fp)! =NULL){ p=strchr(xx[i],'\n'); if(p)*p=0; i++; } maxline=i; fclose(fp); return0; } voidWriteDat(void) { FILE*fp; inti; clrscr(); fp=fopen("OUT7.DAT","w"); for(i=0;i printf("%s\n",xx[i]); fprintf(fp,"%s\n",xx[i]); } fclose(fp); } ************************************************************************ ★☆题目75(整数各位数运算及排序题) 在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。 函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是: 要求在200组数据中找出条件为每组中的第一个数大于第二个数加第三个数的和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到 文件out.dat中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include typedefstruct{ intx1,x2,x3; }data; dataaa[200],bb[200]; intjsSort() {inti,j,cnt=0; dataxy; for(i=0;i<200;i++) if(aa[i].x1>(aa[i].x2+aa[i].x3))bb[cnt++]=aa[i]; for(i=0;i for(j=i+1;j if(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3){xy=bb[i];bb[i]=bb[j];bb[j]=xy;} returncnt; } voidmain() { intcount; readDat(); count=jsSort();/*返回满足条件的个数*/ writeDat(count); } readDat() { FILE*in; inti; in=fopen("in.dat","r"); for(i=0;i<200;i++) fscanf(in,"%d%d%d",&aa[i].x1,&aa[i].x2,&aa[i].x3); fclose(in); } writeDat(intcount) { FILE*out; inti; clrscr(); out=fopen("out.dat","w"); for(i=0;i printf("%d,%d,%d第一个数+第三个数=%d\n",bb[i].x1,bb[i].x2,bb[i].x3,bb[i].x1+bb[i].x3); fprintf(out,"%d%d%d\n",bb[i].x1,bb[i].x2,bb[i].x3); } fclose(out); } ★题目76(整数各位打散组合运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把个位数字和千位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数必须是一个奇数,另一个为偶数并且两个十位数中至少有一个数能被17整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。 最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到 OUT.DAT文件中。 注意: 部分源程序存在文件prog1.c中。 程序中已定义数组: a[200],b[200],已定义变量: cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 #include #defineMAX200 inta[MAX],b[MAX],cnt=0; voidjsVal() {inti,j,thou,hun,ten,data,ab,cd; for(i=0;i {thou=a[i]/1000; hun=a[i]/100%10; ten=a[i]%100/10;data=a[i]%10; ab=10*data+thou;cd=10*hun+ten; if((ab%2! =cd%2)&&((ab%17==0||cd%17==0)&&ab>=10&&cd>=10)) b[cnt++]=a[i]; } for(i=0;i for(j=i+1;j if(b[i] } voidreadDat() { inti; FILE*fp; fp=fopen("in.dat","r"); for(i=0;i fclose(fp); } voidmain() { inti; readDat(); jsVal(); printf("满足条件的数=%d\n",cnt); for(i=0;i printf("\n"); writeDat(); } writeDat() { FILE*fp; inti; fp=fopen("out.dat","w"); fprintf(fp,"%d\n",cnt); for(i=0;i fclose(fp); } **************************************************************************** ★☆题目77(整数各位运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把一个四位数的千位数字上的值加上十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意: 部分源程序存在文件prog1.c中。 程序中已定义数组: a[200],b[200],已定义变量: cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 #include #defineMAX200 inta[MAX],b[MAX],cnt=0; voidjsVal() {inti,j,thou,hun,ten,data; for(i=0;i {thou=a[i]/1000; hun=a[i]/100%10; ten=a[i]%100/10;data=a[i]%10; if((thou+ten==hun+data)&&a[i]%2==0)b[cnt++]=a[i]; } for(i=0;i for(j=i+1;j if(b[i]>b[j]){thou=b[i];b[i]=b[j];b[j]=thou;} } voidreadDat() { inti; FILE*fp; fp=fopen("in.dat","r"); for(i=0;i fclose(fp); } voidmain() { inti; readDat(); jsVal(); printf("满足条件的数=%d\n",cnt); for(i=0;i printf("\n"); writeDat(); } writeDat() { FILE*fp; inti; fp=fopen("out.dat","w"); fprintf(fp,"%d\n",cnt); for(i=0;i fclose(fp); } **************************************************************************** ★题目78(整数各位统计排序题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 若一个四位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,以及十位数字上的值大于等于个位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 三级 网络技术 南开 上机 100 7180
![提示](https://static.bdocx.com/images/bang_tan.gif)