问题 单项选择题

有以下程序(说明:字母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。

问答题
单项选择题