第11套上机考试试题
下列程序的功能是:把s字符串中的所有字符左移一个位置,字符串中的第一个字符移到最后。请编写函数change(char*s)实现程序要求,最后调用函数readwriteDAT()从IN.dat文件中读取50组数据,分别得出结果,且把结粜输出到OUT.dat文件中。
例如,S字符串中原有内容为:Mn.123xyZ,调用该函数后结果为:n.123xyZM。
注意:部分源程序已经给出。清勿改动主函数main()和输出数据函数readwriteDAT()中的内容。
第11套试题答案及详解
【审题分析】分析题目可知,本题只要实现change(char*s)函数的功能即可。change(char*s)要实现的功能足:把S字符串中的所有字符左移一个位置,串中的第一个字符移到最后。因此解答本题的关键在于如何将字符串拆分成单个字符并赋值给数组,并通过数组的下标将字符逐个左移一位。
【解题思路】首先用字符串函数strlen求出字符串S的长度,赋给变量str1.再把字符串的首字符赋给字符变最ch:然后在for循环语句中,变量i从0递增到str1-1,字符串s中的所有字符左移一个位置:最后把字符变最ch的值赋给*(s+str1-1),即完成了题目要求的功能。
【参考答案】
【易错分析】存字符串左移时要首先把首字符存入一个字符变量中。
【考点链接】字符串中字符的移动。
责任编辑:小草