niusouti.com

下列给定程序中函数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=strle

题目

下列给定程序中函数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]; 解析:该题也是几个循环语句的嵌套使用,难度并不大,重要的足要读懂程序,题目中赋值语句t[i]=s[]s1-1;并不能完成累计循环,所以正确的应该是t[i]=s[s1-1-i];。
更多“下列给定程序中函数fun()的功能是;先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正 ”相关问题
  • 第1题:

    标准库函数fgets(s,n,file)的功能是( )。A.从文件file中读取长度为n的字符串存入字符数组S由S

    标准库函数fgets(s,n,file)的功能是( )。

    A.从文件file中读取长度为n的字符串存入字符数组S由

    B.从文件file中读取长度不超过n-1个字符的字符串放到字符数组S中

    C.从文件file中读到n个字符串存入字符数组s中

    D.从文件file中读取长度为n-1个字符的字符串存人字符数组s中


    正确答案:B
    本题考查fgets()函数的使用调用形式:fgets(S,n,fp)。fgets函数参数说明:“s”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件型指针。fgets函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串放到字符数组s中,读入字符串后会自动在字符串末尾加入″\0″结束符。表示字符串结束。

  • 第2题:

    给定程序MODll.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。

    例如:当s所指的字符串为:“ABCDE”时,则t所指的字符串应为:“EDCBAABCDE”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)int isl; (2)t[i]=s、[sl-i-1];
    (1)int i,sl; (2)t[i]=s、[sl-i-1]; 解析:本题中函数的功能是先将字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。解题思路是首先对字符串进行逆序存放,然后再把字符串正序连接在串后。

  • 第3题:

    给定程序MODll.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。

    例如,若字符串为abcd,则应输出:dcba。

    请改正程序中的错误,使它能计算出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)void fun(char *a)(2)printf("%c" *a)
    (1)void fun(char *a)(2)printf("%c", *a), 解析:本题中函数的功能是将字符串中的内容逆序。题干中给出的fun函数通过递归调用自身,实现字符串的逆序。

  • 第4题:

    下列函数的功能是set(s,t){ char *s,*t; while((*s)&&(*t)&&(*t++==*s++)); return(*s-*t);}A.求字符串的长度B.比较两字符串的大小C.将字符串s复制到字符串t中D.将字符串s连接到字符串t后


    正确答案:B
    在本题中,从题目给出的四个选项我们就可以知道,程序是对两个字符串进行操作。下面将具体分析程序。
    程序首先定义两个字符型的指针变量s和t,从后面的程序中不难看出这两个指针变量应该用来对两个字符串进行操作处理。用循环来对字符串进行处理时,循环继续的条件是指针变量s和指针变量t所指向的结果值不为0,且两结果值相等。很显然,指针变量s和指针变量t所指向的结果值不为0,说明两字符串没有结束,只有结束时才为0,而结果值相等说明两字符相等,如果不等,循环则结束,此时程序将要求返回不等元素之间的差值,从差值的正负关系我们可以判断出哪个元素更大。综上所述,程序段的作用是用来比较两字符串的大小。因此,本题正确的答案选B。

  • 第5题:

    给定程序MODll.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。

    例如,当s所指字符串为:“ABCD”时,则t所指字符串中的内容应为:“ABCDDCBA”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)void fun(char*s char*t) (2)t[2*d]=‘\0’;
    (1)void fun(char*s, char*t) (2)t[2*d]=‘\0’; 解析:本题中函数的功能是将字符串的正序和反序进行连接。题目中首先由字符串的起始位置正序取字符,然后再由串尾逆序取字符,实现正序和逆序的连接。