改错题
1. 下列给定程序中,函数proc()的功能是:先将字符串s中的字符按顺序存放到t中,然后把s中的字符按正序连接到t的后面。
例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void proc(char *s,char *t)
{
int i,s1;
s1=strlen(s);
for(i=0;i<s1;i++)
//****found****
t[i]=s[s1];
for(i=0;i<s1;i++)
t[s1+i]=s[i];
t[2*s1]='\0';
}
void main()
{
char s[100],t[100];
system("CLS");
printf("\nPlease enter string s:");
scanf("%s",s);
proc(s,t);
printf("The result is:%s\n",t);
}
【正确答案】错误:t[i]=s[st];
正确:t[i]=s[i];
【答案解析】 函数proc()首先要实现将数组s中的元素顺序放在数组t中,即数组t中下标为i的元素在数组s中下标也为i,因此,“t[i]=s[s1];”应改为“t[i]=s[i];”。