以下程序的输出结果是【 】。 #include <stdio.h> main() { int i; for(i=’a’; i<’f’; i++,i++) printf("%c",i - ’a’

admin2009-06-20  25

问题 以下程序的输出结果是【 】。
#include   <stdio.h>
        main()
        {  int  i;
           for(i=’a’; i<’f’; i++,i++) printf("%c",i - ’a’ + ’A’);
           printf("\n");
        }

选项

答案ACE

解析 本题考查的知识点是:大小写字母转换。题目中for循环的循环变量i从字符’a’变到字符’e’,但由于每次循环后都连续执行了两次i++,所以for循环将执行3次,循环变量i的值依次为’a’、’c’、’e’。循环体中是—条输出语句,按字符输出表达式i-’a’+’A’。因为大小写字母的ASCII码是连续的,例如’b’/1=’c’、’W’=1=’V’,而且小写字母的ASCII码比大写字母的大。所以;同一个字母的大小写字符之差是—个固定值。由此可见,将一个字符从小写转换为大写,只需将其减去这个固定值,而将大写转为小写可以加上这个固定值。固定值可以通过任一字符的小写减去大写来得到。所以本题的i-’a’+’A’=i-(’a’-’A’),即让i减去了此固定值,从而使整个表达式的值为i所代表的小写字母的大写形式。故本题的输出结果是ACE。
转载请注明原文地址:https://jikaoti.com/ti/O5I0FFFM
0

最新回复(0)