第1个回答 2012-01-26
char a=0,ch;
while((ch=getchar())!='\n') 当读入的字符不是回车时做下面的语句
{
if(a%2!=0&&(ch>='a'&&ch<='z')) 当a不是2的倍数 且 刚才读入的字符是a~z中的其中一个时做下面的语句
ch=ch-'a'+'A'; 将小写字母变成大写字母
a++; 数字a增加1
putchar(ch); 输出之前变成的大写字母
}
printf("\n"); 输出回车
第2个回答 2012-01-26
定义字符a=0,ch
从屏幕上读取一个字符给ch并且这个字符不是回车
当a为奇数且ch是小写字母时
ch转为大写(ch+('A'-'a'))
输出ch,换行
第3个回答 2012-01-26
从键盘输入的字符不是回车时进入循环,若此字符的ASCII值是奇数并且是小写的英文字母,则进入后续的处理
第4个回答 2018-04-14
char a=0,ch;
while((ch=getchar())!='\n') //当输入回车时结束循环
{
if(a%2!=0&&(ch>='a'&&ch<='z')) //a代表字符的位数,注意,第一位时a=0,所以a不能被2整除即a为奇数,但是是第偶数位 并且这个字符属于a~z
ch=ch-'a'+'A'; //相当于ch=ch+(‘A’-‘a’)即这个字符加上这个字符大写与小写相差的数值,就是说将该字符转换成大写字母
a++; //相当于a=a+1
putchar(ch); //输出ch
}
printf("\n");
奇数位不变;偶数位,a变为A,c变为C,d变为D,2不属于a~z,不变,f变为F
因此最后输出的结果为1AbCeDf2dF