国家三级(网络技术)机试模拟试卷202 (题后含答案及解析)
题型有:1. 程序设计题
程序设计题
1. 补充程序;该程序要求实现的功能是;把S字符串中的所有字符左移一个位置,串中的第一个字符移动到最后。请编写chg(char*s)函数实现以上功能,最后调用函数readWriteData( )从IN.DAT文件中读取50组数据,分别得出结果,并把结果输出到OUT.DAT文件中。例如;s字符串中原有内容为;Mn.123xyZ,调用后结果为;n.1 23xyZM。注意;部分源程序已经给出。请勿改动主函数main( )和输出函数readWriteData( )的内容。试题程序;#include<string.h>#include<stdio.h>#define N 81void readWriteData( )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); readWriteData( );}void readWriteData( ){ int i; char a[N]; FILE*rf,*wf; rf=fopen(“IN.DAT”,”r”); wf=fopen(“OUT.DAT”,”w”); for(i=0;i<50;i++) { fscanf(rf,”%S”,a); chg(a); fprintf(wf,”%s\n”,a); } fclose(rf); fclose(wf);}
正确答案: void chg(char*s) { int i,strl; char ch; strl=strlen(s); ch=*s; for(i=0;i<strl-1;i++) *(s+i)=*(s+i+1); *(s+str1-1)=ch; }
解析:取s所指的字符串的长度,将其首字母放入ch中,循环遍历第1至倒数第2个字符,再将后一个字符赋给前一个字符。将保存的第一个字符存入最后一个位置即可。
因篇幅问题不能全部显示,请点此查看更多更全内容