文档详情

c语言习题第六章下.doc

发布:2016-12-15约字共15页下载文档
文本预览下载声明
/*下列给定程序中函数fun的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如,当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */ #include stdlib.h #include stdio.h #include string.h void fun (char *s, char *t ) { int i,s1; s1=strlen(s); for (i=0;is1;i++) /**********ERROR**********/ t[i]=s[s1-1]; for (i=0;is1;i++) t[s1+i]=s[i]; /**********ERROR**********/ t[2*s1]=\0; } void main() {char s[100], t[100]; printf(\nPlease enter string s: ); scanf(%s,s); fun(s,t); printf (The result is: %s\n,t); } 【改错1】 错误 【学生答案】 t[i]=s[s1-1]; 【参考答案】 t[i]=s[s1-1-i]; t[i]=s[s1-i-1]; ============================================================ 【改错2】 错误 【学生答案】 t[2*s1]=\0; 【参考答案】 t[2*s1]=\0; t[2*s1]=0; ============================================================ /*下列给定程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上, 并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入ABCDeFGH,调用后字符串中的内容为eABCDFGH。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */ #include stdio.h /**********ERROR**********/ fun(char *p) { char max, *q;int i=0; max=p[i]; while (p[i]!=0) {if (maxp[i]) { /**********ERROR**********/ p = q +i;max=p[i]; } i++; } /**********ERROR**********/ while(qp) {*q=*(q-1); q--; } p[0]=max; } void main() {char str[80]; printf(Enter a string: ); gets(str); printf(\nThe original string: ); puts(str); fun(str); printf(\nThe string after moving: ); puts(str); printf(\n\n); } 【改错1】 错误 【学生答案】 fun(char *p) 【参考答案】 void fun(char *p) ============================================================ 【改错2】 错误 【学生答案】 p = q +i;max=p[i]; 【参考答案】 q=p+i; q=i+p; ============================================================ 【改错3】 错误 【学生答案】 while(qp) 【参考答案】 while(qp) while(pq) ============================================================ /*下列给定程序中,函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。 请改正函数fun中的错误或在横线处填上适当的内容并把横线
显示全部
相似文档