2013计算机二级C语言上机题库第三十七套及答案解析三 |
来源:2exam.com 2013-6-24 |
|
2013计算机二级C语言上机题库第三十七套及答案解析三 |
|
|
编程题 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度, 形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:A*BC*DEF*G。 注意: 部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include <stdio.h> void fun( char *a, int n,int h,int e ) { } 来源:考试大网 main() { char s[81],*t,*f; int m=0, tn=0, fn=0; printf("Enter a string:\n");gets(s); t=f=s; while(*t){t++;m++;} t--; while(*t=='*'){t--;tn++;} while(*f=='*'){f++;fn++;} fun( s , m,fn,tn ); printf("The string after deleted:\n");puts(s); NONO(); } 解题思路: 本题是考察对字符串的操作。 1. 求出字符串的长度。 2. 利用循环把字符串中字符按要求仍存放在原字符串首址开始的位置上。 参考答案: void fun( char *a, int n,int h,int e ) { char *p=a ; int j=0,len=0; while(*p) {p++; len++;} while(j<len-h-e) { a[j]=a[h+j]; j++; } a[j]=0; }
|
网站版权与免责声明
①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系. |
|
|
|