使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.c。在此程序中,函数fun()的功能是先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面。 例如,当s中

admin2023-02-27  7

问题 使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.c。在此程序中,函数fun()的功能是先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面。
    例如,当s中的字符串为"ABCDE"时,t中的字符串应为"ABCDEEDCBA"。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
1 #include<stdlib.h>
2 #include<conio.h>
3 #include<stdio.h>
4 #include<string.h>
5 void fun(char*s,char*t)
6 {
7    int i,s1;
8    sl=strlen(s);
9   /*********found*********/
10    for(i=0;i<=s1;i++)
11    t=s;
12    for(i=0;i<s1;i++)
13    t[s1+i]=s[s1-i-1];
14  /*********found*********/
15  t[s1]='\0';
16 }
17 void main()
18 {
19  char s[100],t[100];
20  system("CLS");
21    printf("\nPlease enter string s:");
22    scanf("%s",s);
23    fun(s,t);
24    printf ("The result is:%s\n",t);
25 }

选项

答案(1)for(i=0;i
解析 (1)字符串长度为s1,但数组中元素的下标为0~s1-1,因此不包括s1。
    (2)正序和逆序字符串都加入了t字符串中,此时t字符串中最后一个元素的下标为2*s1-1。所以在2*s1下标处加字符串结束标志"\0"。  
转载请注明原文地址:https://kaotiyun.com/show/2P0D777K
0

相关试题推荐
最新回复(0)