问题
单项选择题
有以下程序(说明:字母A的ASCII码值是65)
#include
void fun(char *s)
{ while(*s)
{ if(*s%2) printf("%c",*s);
s++;
}
}
main()
{ char a[]="BYTE";
fun(a); printf("\n");
}
程序运行后的输出结果是()
A.BY
B.BT
C.YT
D.YE
答案
参考答案:D
解析:
阅读程序可知,函数只会输出ASCII码值为奇数的字母,执行fun(a)时,依次取出a[]中的字母,当取第一个字母B时,因为B的ASCII码值为66,所以不会输出B,字母Y的ASCII码为89,字母T的ASCII码值为84,字母E的ASCII码值为69,所以最后输出字母YE。正确答案为D。