有以下程序: void ss(char *s,char t) {while(*s) { if(*s==t) *s=t-’a’+’A’; s++; } } main() { char str1[100

admin2010-01-10  19

问题 有以下程序:    void  ss(char *s,char t)    {while(*s)     { if(*s==t)  *s=t-’a’+’A’;    s++;    }    }    main()    {  char  str1[100]="abcddfefdbd",c=’d’;    ss(str1,c);    printf("%s\n",str1);    }    程序运行后的输出结果是(  )。

选项 A、ABCDDEFEDBD
B、abcDDfefDbD
C、abcAAfefAbA
D、Abcddfefdbd

答案2

解析 本题中的函数ss()有两个参数,一个是字符型指针变量s,另一个是字符型变量t。在函数中通过一个while循环,在循环中依次取出s指向的字符串并判断它是否和t中存放的字符相同,若相等,则执行“*s=t’a’+’A’;”  (若是小写字母,则被转换成相应的大写字母)语句。在主函数中执行函数调用ss(str1,c),很显然是把str1数组中所有字符d变成大写字母,其他字符不变。所以4个选项中B正确。
转载请注明原文地址:https://kaotiyun.com/show/hHWp777K
0

最新回复(0)