1、三级信息管理技术机试-271 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:把 s 字符串中所有的字符左移一个位置,串中的第一个字符移到最后。请编制函数chg(char*s)实现程序要求,最后调用函数 readwriteDat()把结果输出到 out61.dat 文件中。例如:s 字符串中原有内容为 Mn,123xyZ,则调用该函数后,结果为 n,123xyZM。注意:部分源程序已给出。请勿改动主函数 main()和输入输出函数 readwriteDAT()的内容。试题程序#includestring.h#include
2、stdlib.h#includestdio.h#defiRe N 81void readwriteDAT();void chg(char*s)voidmain()char aN;system(“CLS“);printf(“Enter a string:“);gets(a);printf(“The original string is:“);puts(a);chg(a);print f(“The string after modi fied:“);puts(a);readwriteDAT();void readwriteDAT()int i;char aN;unsigned char*P;FIL
3、E*rf,*wf;rf=fopen(“in61.dat“,“r“);wf=fopen(“out61.dat“,“w“);for(i=0;i10;i+)fgets(a,80,rf);P=strchr(a,/n);if(P) *P=0;chg(a);fprintf(wf,“%s/n,a);fclose(rf);fclose(wf);(分数:100.00)_三级信息管理技术机试-271 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:把 s 字符串中所有的字符左移一个位置,串中的第一个字符移到最后。请编制函数chg(char*s)
4、实现程序要求,最后调用函数 readwriteDat()把结果输出到 out61.dat 文件中。例如:s 字符串中原有内容为 Mn,123xyZ,则调用该函数后,结果为 n,123xyZM。注意:部分源程序已给出。请勿改动主函数 main()和输入输出函数 readwriteDAT()的内容。试题程序#includestring.h#includestdlib.h#includestdio.h#defiRe N 81void readwriteDAT();void chg(char*s)voidmain()char aN;system(“CLS“);printf(“Enter a strin
5、g:“);gets(a);printf(“The original string is:“);puts(a);chg(a);print f(“The string after modi fied:“);puts(a);readwriteDAT();void readwriteDAT()int i;char aN;unsigned char*P;FILE*rf,*wf;rf=fopen(“in61.dat“,“r“);wf=fopen(“out61.dat“,“w“);for(i=0;i10;i+)fgets(a,80,rf);P=strchr(a,/n);if(P) *P=0;chg(a);f
6、printf(wf,“%s/n,a);fclose(rf);fclose(wf);(分数:100.00)_正确答案:(void chg(char*s)int i,str; /*定义变量,保存字符串长度*/char ch; /*定义字符暂存变量*/str=strlen(s); /*求字符串的长度*/ch=*s; /*将第一个字符暂赋给 ch*/for(i=0;istr-1;i+) /*将字符依次左移*/*(s+i)=*(s+i+1);*(s+str-1)=ch; /*将第一个字符移到最后*/)解析:解析 本题考查用指针访问字符串的方法。首先,通过字符串处理函数(strlen()求出字符串的长度,保存第一个字符。然后,利用一个 for 循环将字符串依次左移一位。最后,将保存的第一个字符移到最后。