xx年3月汇编全国计算机等级考试三级网络技术上机试题汇编(南开100题内容摘要:

} void main() { memset(sell,0,sizeof(sell))。 ReadDat()。 SortDat()。 WriteDat()。 } void ReadDat() {FILE *fp。 char str[80],ch[11]。 int i。 fp=fopen(,r)。 for(i=0。 i100。 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(void) {FILE *fp。 int i。 fp=fopen(,w)。 for(i=0。 i100。 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)。 } 8:函数 ReadDat()实现从文件 ,存入到字符串数组 xx 中;请编制函数 encryptChar(),按给定的替代关系对数组 xx 中的所有字符进行替代 ,仍存入数组 xx的对应的位置上 ,最后调用函数 WriteDat()把结果 xx输出到文件。 替代关系: f(p)=p*11 mod 256 (p是数组中某一个字符的 ASCII值 ,f(p)是计算后新字符的 ASCII 值 ),如果计算后 f(p)值小于等于 32 或大于 130,则该字符不变 ,否则将 f(p)所对应的字符进行替代。 注意:部分源程序已给出。 原始数据文件存放的格式是:每行的宽度均小于80 个字符。 请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数WriteDat()的内容。 void encryptChar() /*标准答案 */ {int I。 char *pf。 for(I=0。 Imaxline。 I++) {pf=xx[I]。 while(*pf!=0) {if(*pf*11%256130||*pf*11%256=32)。 else *pf=*pf*11%256。 pf++。 } } } 或者: void encryptChar() { int i,j。 char *p。 for(i=0。 imaxline。 i++) for(j=0。 jstrlen(xx[i])。 j++) { p=(xx[i][j]*11)%256。 if(p=32||p130)。 else xx[i][j]=p。 } } 原程序如下: include include include include unsigned char xx[50][80]。 int maxline=0。 /*文章的总行数 */ int ReadDat(void)。 void WriteDat(void)。 void encryptChar() { } void main() { clrscr()。 if(ReadDat()){ printf(数据文件。 \n\007)。 return。 } encryptChar()。 WriteDat()。 system(pause)。 } int ReadDat(void) { FILE *fp。 int i=0。 unsigned char *p。 if((fp=fopen(,r))==NULL) return 1。 while(fgets(xx[i],80,fp)!=NULL){ p=strchr(xx[i],39。 \n39。 )。 if(p)*p=0。 i++。 } maxline=i。 fclose(fp)。 return 0。 } void WriteDat(void) { FILE *fp。 int i。 fp=fopen(,w)。 for(i=0。 imaxline。 i++){ printf(%s\n,xx[i])。 fprintf(fp,%s\n,xx[i])。 } fclose(fp)。 } 9:函数 ReadDat( )实现从文件 组 xx中。 请编制函 数 SortCharD( ), 其函数的功能是 : 以行为单位对字符按从大到小的顺序进行排序 , 排序后的结果仍按行重新存入字符串数组 xx 中。 最后main()函数调用函数 WriteDat()把结果 xx输出到文件。 例 : 原文 : dAe,BfC. CCbbAA 结果 : fedCBA., bbCCAA 原始数据文件存放的格式是 : 每行的宽度均小于 80 个字符 , 含标点符号和空格。 注意 : 部 分源程序存放在。 请勿改动主函数 main( )、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。 类型:字符串 (单词 )的倒置和删除。 void SortCharD(void) /*标准答案 */ {int I,j,k,strl。 char ch。 for(I=0。 Imaxline。 I++) {strl=strlen(xx[I])。 for(j=0。 jstrl1。 j++) for(k=j+1。 kstrl。 k++) if(xx[I][j]xx[I][k]) {ch=xx[I][j]。 xx[I][j]=xx[I][k]。 xx[I][k]=ch。 } }} 原程序如下: include include include char xx[50][80]。 int maxline = 0。 /* 文章的总行数 */ int ReadDat(void)。 void WriteDat(void)。 void SortCharD(void) {int I,j,k,strl。 char ch。 for(I=0。 Imaxline。 I++) {strl=strlen(xx[I])。 for(j=0。 jstrl1。 j++) for(k=j+1。 kstrl。 k++) if(xx[I][j]xx[I][k]) {ch=xx[I][j]。 xx[I][j]=xx[I][k]。 xx[I][k]=ch。 } } } void main() { clrscr()。 if(ReadDat()) { printf(数据文件 !\n\007)。 return。 } SortCharD()。 WriteDat()。 system(pause)。 } int ReadDat(void) { FILE *fp。 int i = 0。 char *p。 if((fp = fopen(, r)) == NULL) return 1。 while(fgets(xx[i], 80, fp) != NULL) { p = strchr(xx[i], 39。 \n39。 )。 if(p) *p = 0。 i++。 } maxline = i。 fclose(fp)。 return 0。 } void WriteDat(void) { FILE *fp。 int i。 clrscr()。 fp = fopen(, w)。 for(i = 0。 i maxline。 i++) { printf(%s\n, xx[i])。 fprintf(fp, %s\n, xx[i])。 } fclose(fp)。 } 10:请编制函数 ConvertCharA(), 其函数的功能是 : 以行为单位把字符串中的所有小写字母 改写成该字母的下一个字母 , 如果是字母 z, 则改写成字母 a,大写字母和其它字符保持不变。 把已处理的字符串仍按行重新存入字符串数组 xx中。 最后 main()函数调用函数 WriteDat() 把结果 xx输出到文件。 例 : 原文 : 结果 : 原始数据文件存放的格式是 : 每行的宽度均小于 80 个字符 , 含标点符号 和空格。 注意 : 部分源程序存放在。 请勿改动主函数 main( )、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。 类型:字符串 (单词 )的倒置和删除。 void ConvertCharA(void) /*标准答案 */ {int I,j,str。 for(I=0。 Imaxline。 I++) {str =strlen(xx[I])。 for(j=0。 jstr。 j++) if(xx[I][j]==39。 z39。 )xx[I][j]=39。 a39。 else if(xx[I][j]=39。 a39。 amp。 amp。 xx[I][j]=39。 y39。 ) xx[I][j]+=1。 } } 原程序如下: include include include char xx[50][80]。 int maxline = 0。 /* 文章的总行数 */ int ReadDat(void)。 void WriteDat(void)。 void ConvertCharA(void) { } void main() { clrscr()。 if(ReadDat()) { printf(数据文件 !\n\007)。 return。 } ConvertCharA()。 WriteDat()。 system(pause)。 } int ReadDat(void) { FILE *fp。 int i = 0。 char *p。 if((fp = fopen(, r)) == NULL) return 1。 while(fgets(xx[i], 80, fp) != NULL) { p = strchr(xx[i], 39。 \n39。 )。 if(p) *p = 0。 i++。 } maxline = i。 fclose(fp)。 return 0。 } void WriteDat(void) { FILE *fp。 int i。 clrscr()。 fp = fopen(, w)。 for(i = 0。 i maxline。 i++) { printf(%s\n, xx[i])。 fprintf(fp, %s\n, xx[i])。 } fclose(fp)。 } 11:下列程序的功能是:把 s字符串中的所有字母改写成该字母的下一个字符 ,字母 z改写成字母 a。 要求大写字母仍为大写字母 ,小写字母仍为小写字母 ,其他字符不做改变。 请编写函数 chg(char *s)实现程序的要求 ,最后调用函数readwriteDat()把结果输出到文件 中。 例如: s 字符串中原有的内容为:,则调用该函数后 ,结果为。 注意:部分源程序已给出。 请勿改动主函数 main()和输出数据函数 readwriteDat()的内容。 void chg(char*s) /*标准答案 */ {while(*s) if(*s==39。 z39。 ||*s==39。 Z39。 ) {*s=25。 s++。 } else if(*s=39。 a39。 amp。 amp。 *s=39。 y39。 ) {*s+=1。 s++。 } else if(*s=39。 A39。 amp。 amp。 *s=39。 Y39。 ) {*s+=1。 s++。 } else s++。 } 或者: void chg(char *s) { int i,k。 k=strlen(s)。 for(i=0。 ik。 i++) { if(s[i]==39。 z39。 ||s[i]==39。 Z39。 ) s[i]=25。 else if(isalpha(s[i])) s[i]++。 } } 原程序如下: include include include。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。