M008

02-程序修改题 飞快学 444浏览

所属年份:2010.9;2011.9;2012.3;2013.3;2013.9

下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其它字符不变。
例如,若输入”Ab,cD”,则输出”AB,CD”。

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

#include <stdio.h>
#include <string.h>
char* fun( char tt[] )
{
    int i;
    for( i = 0; tt[i]; i++ )
        /**********found***********/
        if(( 'a' <= tt[i] )||( tt[i] <= 'z' ) )
            /**********found***********/
            tt[i] += 32;
    return( tt );
}

main( )
{
    char tt[81];
    printf( "\nPlease enter a string: " );
    gets( tt );
    printf( "\nThe result string is:\n%s", fun( tt ) );
}

【参考答案】

(1)if((  tt[i]>='a')&&( tt[i] <= 'z'))
(2)tt[i]-=32;

【考点分析】
本题考查:if语句条件表达式;小写字母转大写字母的方法。

【解题思路】
(1)分析本题可知,要判断字符是否为小写字母,即判断其是否在a~z之间,所以这里需要进行连续的比较,用&&。
(2)从ASCII码表中可以看出,小写字母的ASCII码值比对应大写字母的ASCII值大32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASCII码值判断该字母是不是小写字母,若是,则ASCII码值减32即可。