A-A+

有以下程序; void ss(char *s char t) { while(*s) { i

2022-08-06 00:21:37 问答库 阅读 173 次

问题详情

有以下程序; 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("%sn",str1); } 程序运行后的输出结果是()。
A.ABCDDEFEDBD
B.abeDDfefDbD
C.abcAAfefAbA
D.Abcddfefdbd请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:B
解析:本题中的函数ss()有两个参数,一个是字符型指针变量s,另一个是字符型变量t。在函数中通过一个while循环,在循环中一次取出s指向的字符串并判断它是否和t中存放的字符相同,若相等,则执行“*s=t-'a'+'A';”(若是小写字母,则把它转换成大写字母)语句。在主函数中执行函数调用ss(str1,c),很显然是把str1数组中所有字符“d”变成大写字母,其他字符不变。所以4个选项中B正确。

考点:程序