全国计算机等级考试三级数据库技术上机试题汇编20xx_年版内容摘要:

} 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, 结果 : 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 include define N 81 void readwriteDAT()。 void chg(char*s) { } main( ) { char a[N]。 clrscr()。 printf(Enter a string : )。 gets(a)。 printf(The original string is : )。 puts(a)。 chg(a)。 printf(The string after modified : )。 puts (a)。 readwriteDAT()。 system(pause)。 } void readwriteDAT() { int i。 char a[N]。 FILE *rf, *wf。 rf = fopen(, r)。 wf = fopen(, w)。 for(i = 0。 i 10。 i++) { fscanf(rf, %s, a)。 chg(a)。 fprintf(wf, %s\n, a)。 } fclose(rf)。 fclose(wf)。 } 12:已知在文件 100个产品销售记录 ,每个产品销售记录由产品代码 dm(字符型 4位 ),产品名称 mc(字符型 10位 ),单价 dj(整型 ),数量 sl(整型 ),金额 je(长整型 )四部分组成。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。