填空题 下列给定程序中,函数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[s1];
正确:t[i]=s[i]; [解析] 函数proc()首先要实现将数组s中的元素顺序放在数组t中,即数组t中下标为i的元素在数组s中下标也为i,因此“t[i]=s[s1];”应改为“t[i]=s[i];”。