问题
单项选择题
有以下程序:
#include <stdio.h>
void ss(char *s, char t)
while(*s)
if(*s==t) *s=t='a'+'A';
s++;
main()
char strl[100]="123ddfefdbd", c='d';
ss(str1, c); printf("% s\n", str1);
程序运行后的输出结果是( )。
A) ABCDDEFEDBD
B) 123DDfefDbD
C) 123AAfefAbA
D) Abcddfefdbd
答案
参考答案:B
解析: 在内存中,字符数据以ASCII码存储,它的存储形式与整数的存储形式类似。C语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。在函数SS(char*s,char t)中,当*s==t时,*s通过运算变为大写,因此答案选择B)。