c语言习题第六章下.doc
文本预览下载声明
/*下列给定程序中函数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中的错误或在横线处填上适当的内容并把横线
显示全部