问题
单项选择题
有以下程序
void ss(char *s,char t)
{
while { *s)
if (*s==t) *s-t-’a’ +’A’;
S++;
main ()
{
char strl [100] =" abcddfefdbd" , c= ’d’;
ss(str1,c); printf ("%s\n" ,str1);
}
程序运行后的输出结果是
A.ABCDDEFEDBD
B.abcDDfefDbD
C.abcAAfefAbA
D.Abcddfefdbd
答案
参考答案:B
解析: 本题中的函数ss()有两个参数,一个是字符型指针变量s,另一个是字符型变量t在函数中通过一个while循环,在循环中一次取出s指向的字符串并判断它是否和t中存放的字符相同,若相等,则执行“s=t-’a’+’A’:” (若是小写字母,则把它转换成大写字母)语句。在主函数中执行函数调用ss(strl,c),很显然是把str1数组中所有字符“d”变成大写字母,其他字符不变。所以4个选项中B正确。