问题 填空题

下列给定程序中函数fun()的功能是;先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。例如:当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <conio.h> #include <stdio.h> #include <string.h> void fun (char *s, char *t ) { int i,sl; sl=strlen(s); for (i=0;i<sl;i++) t[i]=s[sl-1]; for (i=0; i<sl; i++) /*************found**************t [sl+i]=s [i]; t [2*sl]-’\0’; } main ( ) { char s[100], t[100]; clrscr(); printf("\nPlease enter string s: "); scanf ("%s", s); fun (s,t); printf ("The result is: %s\n",t); }

答案

参考答案:错误: t[i]=s[s1-1]; 正确: t[i]=s[s1-1-i];

解析: 该题也是几个循环语句的嵌套使用,难度并不大,重要的足要读懂程序,题目中赋值语句t[i]=s[]s1-1;并不能完成累计循环,所以正确的应该是t[i]=s[s1-1-i];。

单项选择题
单项选择题