"2017年全国计算机等级考试C语言上机题库41-60套练习"

需积分: 0 0 下载量 154 浏览量 更新于2024-03-21 收藏 260KB DOC 举报
第41套 1、程序填空 #include <stdio.h> #include <string.h> char *fun(char *s) { char temp; int i, j; for (i = 0; i < strlen(s); i++) { if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')) { temp = s[i]; for (j = i; j > 0; j--) s[j] = s[j - 1]; s[0] = temp; } else { temp = s[i]; for (j = i; j < strlen(s) - 1; j++) s[j] = s[j + 1]; s[strlen(s) - 1] = temp; } } return s; } int main() { char str[] = "asd123fgh543df"; printf("%s\n", fun(str)); return 0; } ------------------------------------------------------------------------------------------------------ 描述: 这道题目要求我们填空,完成一个C语言程序。程序中给定了一个函数fun,其功能是将指定字符串中的所有字母字符顺序前移,其他字符顺序后移。具体来说,程序首先对给定字符串进行遍历,如果遇到字母字符,则将其向前移动一位,如果遇到非字母字符,则将其向后移动一位。最终返回处理后的新字符串。在主函数中,我们定义了一个字符串"asd123fgh543df",并打印调用函数fun后的结果。 在填空的过程中,我们需要注意保持程序结构不变,不能增加、删除行数,也不能改变程序的逻辑。我们在给定的代码框中填入了正确的代码,保证程序得出正确的结果。完成填空后,程序能够顺利执行,并输出符合要求的新字符串"asdfghdf123543"。这样就完成了本题目的要求。