M015

02-程序修改题 软件154 范金瑞 811浏览

所属年份:2010.9;2011.3;2012.3;

下列给定程序中函数fun的功能是:将字符串中的字符逆序输出,但不改变字符串中的内容。
例如,若字符串为”abcd”,则应输出:”dcba”。

请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

/************found************/
void fun (char a)
{
    if ( *a )
    {
        fun(a+1) ;
        /************found************/
        printf("%c" *a) ;
    }
}

main( )
{
    char s[10]="abcd";
    printf("处理前字符串=%s\n处理后字符串=", s);
    fun(s);
    printf("\n") ;
}

【参考答案】

(1)void fun(char *a)
(2)printf("%c" ,*a) ;

【考点分析】
本题考查:函数定义,本题为有参函数定义。printf()函数,其一般形式为”printf(‘格式控制字符串’,输出表列) ;”。
“%d”表示按十进制整型输出;
“%ld”表示按十进制长整型输出;
“%c”表示按字符型输出等。
非格式字符串在输出时原样输出,起提示作用。

【解题思路】
(1)定义函数时形参的类型要与调用函数中实参的类型一致,主函数中fun传递的是字符串s的首地址,所以此处形参应为指针类型。
(2)根据printf函数格式,很容易找到错误之处。