1、国家三级(网络技术)机试模拟试卷 278及答案与解析 一、程序设计题 1 请编制函数 moveChar(char*s),其功能是;把 S字符串中偶数位的字符左移到其相邻的偶数位上,偶数位的第一个字符移到最后一个偶数位上。奇数位的字符右移到与其相邻的奇数位上,奇数位的最后一个字符移到第一个奇数位上。函数readWriteData()负责读人文件 IN DAT中的数据,并把结果输出到 OUT DAT文件中。 例如; S字符串中原有内容为 abcdefg,则调用该函数后,结果为 gdafcbe。 注意;部分源程序已给出。 请勿改动主函数 main()和输出函数 readWriteData()的内容。
2、 试题程序; #include #include #include #define N 81 void readWriteData(); void moveChar(char*s) void main() char inputN; int i; for(i=0; i1; i-=2) *(s+i-1)=*(s+i-1-2); 奇数位右移 *s=temp1; 将奇数位的最后一位放到奇数队列的首位 for(i=2; i1; i-=2) *(x+i-1)=*(s+i-1-2); 奇数位右移 *s=temp1; 将奇数位的最后一位放到奇数队列的首位 for(i=2; ilen-1; i+=2) *(s+i-1)=*(s+i-1+2); 将偶数位左移 *(s+len-2)=temp0; 将偶数位的首位放到偶数队列的末位 【试题解析】 本题主要考查利用指针对字符串中字符进行移动。基本步骤是;1分别将偶数位的头一位和 奇数位的最后一位保存; 2利用指针,分别对数组中的奇数位和偶数位进行赋值移动; 3将保存起来的值放到移动后的留下的位置处。