给定程序MODll.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。例如,当s所指字符串为:“ABCD”时,则t所指字符串中的内容应为:“ABCDDCBA”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

题目

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

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

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

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


相似考题
更多“ 给定程序MODll.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。例如,当s所指字符串为:“ABCD”时,则t所指字符串中的内容应为:“ABCDDCBA”。请改正程序”相关问题
  • 第1题:

    下列给定的程序中,函数fun()的功能是;将s所指字符串中出现的n所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如:当s所指字符串中所指的内容为 abcdabfab,t1所指字符串中的内容为ab,t2所指字符串中的内容为99时,结果在w所指的数组中的内容应为99cd99f99。

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

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

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <string.h>

    /*************found**************/

    int fun (char *s, char *t1, char *t2, char *w)

    {

    int i; char *p,*r,*a;

    strcpy(w,s);

    while (*w)

    {p=w; r=t1;

    /*************found**************/

    while (r)

    if (*r= =*p) {r++;p++;}

    else break;

    if (*r= ='\0')

    {a=w; r=t2;

    /*************found**************/

    while (*r){*a=*r;a++;r++}

    w+=strlen(t2);

    }

    else w++;

    }

    }

    main()

    {char s[100],t1[100],t2[100],w[100];

    clrscr();

    printf("\nPlease enter string S: ");

    scanf("%s",s);

    printf("\nPleaseentersubstring t1: ");

    scanf ("%s", t1);

    printf("\nPlease enter substring t2: ");

    scanf ("%s",t2);

    if (strlen(t1)= =strlen(t2))

    {

    fun (s,t1,t2,w);

    printf("\nThe result is : %s\n",w);

    }

    else printf("Error : strlen(t2)\n");

    }


    正确答案:(1)错误:int fun(char *schar *t1char *t2 char *w) 正确:void fun(char *schar *t1char *t2 char *w) (2) 错误:while(r) 正确:while(*r) (3) 错误:r++ 正确:r++;
    (1)错误:int fun(char *s,char *t1,char *t2, char *w) 正确:void fun(char *s,char *t1,char *t2, char *w) (2) 错误:while(r) 正确:while(*r) (3) 错误:r++ 正确:r++; 解析:在int fun(char *s,char *t1,char *t2, char *w)中,用int型定义指针数组。ANSI标准要求动态分配系统返回void指针。 void指针具有一般性,它们可以指向任何类型的数据。但目前绝大多数C编译所提供的这类函数都返回char指针。无论以上两种情况的哪一种,都需要强制类型转换的方法把char指针转换成所需的类型。该程序段应该是void fun(char *s,char *t1, char *t2, char *w),另外,while(r)和r++都是简单的逻辑和语法错误,只要加强了C语言的基础,这样的错误明显是“送分”的。

  • 第2题:

    给定程序中,函数fun的功能是:将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。

    例如,形参s所指的字符串为:Abe@1x56*。程序执行后t所指字符数组中的字符串应为:A@156*。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:源程序存放在考生文件夹下的BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:(1)*s (2)s++ (3)n
    (1)*s (2)s++ (3)n 解析:本题中函数fun的功能是将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。逐个搜索s字符串,如果字符的ASCII.码值小于97,那么将该字符存入形参t所指字符数组中,并统计个数,搜索完整个字符串便可完成要求的功能。

  • 第3题:

    请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。

    例如,当str所指字符串中的内容为abcdefg,则在t所指数组中的内容应是bdf。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。

    试题程序:


    正确答案:



    【解析】题目要求将下标为偶数的字符删除,其余字符放在新的字符数组t中。首先取出字符串str中下标为奇数的字符,将其赋值给新的字符串t,最后用ˊ\0ˊ作为字符串结束的标志。

  • 第4题:

    给定程序MODll.C中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”1时,c所指数组中的内容应该为“a4b3e2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串中的内容为“abedefg”时,c所指数组中的内容应该为“lg2f3e4dcba”。

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

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


    正确答案:(1)while(ij)或while(j>i) (2)if(*a)
    (1)while(ij)或while(j>i) (2)if(*a) 解析:本题中函数的功能是首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。其中,对于字符串的逆序过程,分别用变量i和j代表字符串中开始和末尾字符的下标,把下标i和j元素中的值对调后,i++和j--直到i的值大于j时逆序操作完成。

  • 第5题:

    给定程序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串的后面。解题思路是首先对字符串进行逆序存放,然后再把字符串正序连接在串后。