1、三级数据库技术-524 及答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.程序 test.c 的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母 z 改写成字母 a,字母 Z 改写成字母 A,其他字符不做改变。 请考生编写函数 chg(char*s)实现程序要求,最后调用函数 readwriteDAT()把结果输出到文件 out.dat 中。例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。 请勿改动数据文件 in.dat 中的任何数据、主函数 main()和输出数据函数 r
2、eadwriteDAT()的内容。 #include string.h #include stdio.h #include ctype.h #define N 81 void readwriteDAT(); void chg(char *s) main () char a N; printf (“Enter a string:“); gets (a); printf(“The original string is: “); puts(a); chg (a); printf (“The string after modified: “); puts (a); readwriteDAT (); /
3、*从文件 in.dat 中读入字符串赋给字符串变量 a,调用函数 chg(a)对字符串按照题目的要求进行处理,并把处理结果写入到文件 out.dat 中*/ void readwriteDAT() int i; char a N; FILE *rf, *wf; rf=fopen(“in.dat“, “r“); wf=fopen(“out.dat“, “w“); for(i=0; i10; i+) fscanf(rf, “%s“, a); chg (a); fprintf(wf, “%sn“, a); fclose(rf); fclose(wf); (分数:100.00)_三级数据库技术-524
4、 答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.程序 test.c 的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母 z 改写成字母 a,字母 Z 改写成字母 A,其他字符不做改变。 请考生编写函数 chg(char*s)实现程序要求,最后调用函数 readwriteDAT()把结果输出到文件 out.dat 中。例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。 请勿改动数据文件 in.dat 中的任何数据、主函数 main()和输出数据函数 readwriteDAT(
5、)的内容。 #include string.h #include stdio.h #include ctype.h #define N 81 void readwriteDAT(); void chg(char *s) main () char a N; printf (“Enter a string:“); gets (a); printf(“The original string is: “); puts(a); chg (a); printf (“The string after modified: “); puts (a); readwriteDAT (); /*从文件 in.dat
6、中读入字符串赋给字符串变量 a,调用函数 chg(a)对字符串按照题目的要求进行处理,并把处理结果写入到文件 out.dat 中*/ void readwriteDAT() int i; char a N; FILE *rf, *wf; rf=fopen(“in.dat“, “r“); wf=fopen(“out.dat“, “w“); for(i=0; i10; i+) fscanf(rf, “%s“, a); chg (a); fprintf(wf, “%sn“, a); fclose(rf); fclose(wf); (分数:100.00)_正确答案:()解析:char *p=s, ch
7、; while(*p) /当字符*p 非空时 ch=*p; /把字符*p 赋给字符 ch if(isalpha(ch) /把字母 ch 改成其下一个字母 else if(ch=“z“) /如果字母 ch 是字母“z“ *p=“a“; /则把其改成字母“a“ else if(ch=“z“) /如果字母 ch 是字母“z“ “p=“A“; /则把其改成字母“A“ p+; /字符指针变量 p 加 1,对字符串 s 的下一个字符进行处理 解析 把 str 字符串中的所有字母改写成该字母的下一个字母。 定义局部字符变量 ch 和字符指针变量 p,并使其指向字符串 s。 当 p 所指的字符非空时,把字符*p 赋给字符 ch,当字符 ch 不是字母“z“或者“Z“时,把字符 ch 的ASCII 码值加 1,变成其下一个字符的 ASCII 码,并把这个值赋给字符*p,否则,如果字符 ch 是字符“z“,则把字符*p 的设置为字符“a“,否则,如果字符 ch 是字符“Z“,则把字符*p 的设置为字符“A“,字符指针变量加 1,使其指向字符串 s 的下一个字符,在下一次循环中处理。