2. 改錯題
下列給定程序中,函數(shù)fun()的作用是:將字符串tt中的小寫字母都改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入"edS,dAd",則輸出"EDS,DAD"。
請改正程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
#include
/**********************found***********************/
char fun(char tt[])
{
int i;
for(i=0;tt[i];i++)
{
/**********************found***********************/
if((tt[i]>='A')&&(tt[i]<= 'Z'))
tt[i]-=32;
}
return(tt);
}
main()
{
int i;
char tt[81];
clrscr();
printf("\nPlease enter a string: ");
gets(tt);
printf("\nThe result string is: \n%s",fun(tt));
}
答案及評析:
(1)錯誤:char fun(char tt[])
正確:char *fun(char tt[])
(2)錯誤:if((tt[i]>='A')&&(tt[i]<= 'Z'))
正確:if((tt[i]>='a')&&(tt[i]<= 'z'))
【解析】錯誤1:函數(shù)的返回值是字符串的首地址,是指針類型,所以在函數(shù)名前要加'*'號。
錯誤2:題目要求將小寫字母改為大寫字母,所以if語句的判斷條件是小寫字母。
相關(guān)鏈接:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |