C语言:下列程序运行时若输入 1abcedf2df<回车>输出结果为( )
#include<stdio.h>main(){chara=0,ch;while((ch=getchar())!=\n'){if(a%2!=0&&(ch>='a'&&ch...
#include<stdio.h>
main()
{ char a=0,ch;
while ((ch=getchar())!=\n')
{ if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';
a++;
putchar(ch);
}
printf("\n");
}
问题:求详细解答 展开
main()
{ char a=0,ch;
while ((ch=getchar())!=\n')
{ if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';
a++;
putchar(ch);
}
printf("\n");
}
问题:求详细解答 展开
展开全部
1AbCeDf2dF
VC6.0执行试过了。
#include<stdio.h>
main()
{ char a=0,ch;
while ((ch=getchar())!='\n')
{ if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';
a++;
putchar(ch);
}
printf("\n");
}
//输入1abcedf2df
第一次 a=0那么根据ascii表查看是null也就是空字符。第一次输入1,(a%2)是求和2的余数
结果是0而且1也不在a和z之间,所以if后面的ch=ch-'a'+'A';不执行。a变成1,输
出 ch也就是1.
第二次 a=1 输入a, (a%2)余数是1不为0,而且a在a-z范围内,所以执行ch=ch-'a'+'A'。
ch=ch-('a'-'A')=ch-32 注意看ascii表 a比A 要大32.,大写字母要比小写字母小32.
这样ch-32就是可以把ch变成大写字母。所以输出A 。a++变2
第三次 a=2 输入b (a%2)余数是0,这样if那个条件因为有&&所以两边都满足才会执行条件 语句。于此ch=ch-'a'+'A'就不执行了。直接输出b
1Ab....
由此类推即可。
希望对您有所帮助!:)
VC6.0执行试过了。
#include<stdio.h>
main()
{ char a=0,ch;
while ((ch=getchar())!='\n')
{ if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';
a++;
putchar(ch);
}
printf("\n");
}
//输入1abcedf2df
第一次 a=0那么根据ascii表查看是null也就是空字符。第一次输入1,(a%2)是求和2的余数
结果是0而且1也不在a和z之间,所以if后面的ch=ch-'a'+'A';不执行。a变成1,输
出 ch也就是1.
第二次 a=1 输入a, (a%2)余数是1不为0,而且a在a-z范围内,所以执行ch=ch-'a'+'A'。
ch=ch-('a'-'A')=ch-32 注意看ascii表 a比A 要大32.,大写字母要比小写字母小32.
这样ch-32就是可以把ch变成大写字母。所以输出A 。a++变2
第三次 a=2 输入b (a%2)余数是0,这样if那个条件因为有&&所以两边都满足才会执行条件 语句。于此ch=ch-'a'+'A'就不执行了。直接输出b
1Ab....
由此类推即可。
希望对您有所帮助!:)
展开全部
输出结果:1AbCeDf2dF
首先说a%2!=0,也就是在a为奇数时才成立,ch>='a'&&ch<='z'是判断输入字符是不是小写字符,如果是,把它转换成大写ch=ch-'a'+'A';
判断一个字符a增加一个,转换的字符为:2、4、6、10,1和8字符位数字,不需要准转换。
a从0开始计算a%2!=0,第一个字符时,a=0,但是字符为数字字符,不用转换;
a=1时,a%2!=0成立,输入字符为a,满足后面的条件,转换为大写A;
a=2时,a%2!=0不成立,不转换;
a=3时,a%2!=0成立,输入字符为c,满足后面的条件,转换为大写C;
以此类推。
首先说a%2!=0,也就是在a为奇数时才成立,ch>='a'&&ch<='z'是判断输入字符是不是小写字符,如果是,把它转换成大写ch=ch-'a'+'A';
判断一个字符a增加一个,转换的字符为:2、4、6、10,1和8字符位数字,不需要准转换。
a从0开始计算a%2!=0,第一个字符时,a=0,但是字符为数字字符,不用转换;
a=1时,a%2!=0成立,输入字符为a,满足后面的条件,转换为大写A;
a=2时,a%2!=0不成立,不转换;
a=3时,a%2!=0成立,输入字符为c,满足后面的条件,转换为大写C;
以此类推。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询