一道C语言程序填空题,数字字符相互转换
函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9',则'0'~'9',则'0'转换成'9','1'转换成'8','2'转换成'7',……'9'转换成...
函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9',则'0'~'9',则'0'转换成'9','1'转换成'8','2'转换成'7',……'9'转换成'0'。若是其他字符则保持不变,并将转换后的结果作为函数值返回。
#include <stdio.h>
/**********found**********/
___1___ fun(char ch)
{
/**********found**********/
if (ch>='0' && ___2___)
/**********found**********/
return '9'- (ch-___3___);
return ch ;
}
main()
{ char c1, c2;
printf("\nThe result :\n");
c1='2'; c2 = fun(c1);
printf("c1=%c c2=%c\n", c1, c2);
c1='8'; c2 = fun(c1);
printf("c1=%c c2=%c\n", c1, c2);
c1='a'; c2 = fun(c1);
printf("c1=%c c2=%c\n", c1, c2);
}
第三空答案是'0',为什么呢?主要是不明白第三空所在语句为什么是这种写法,这条语句所要表达的意思是'9'减去形参ch,直接写成ch='9'-ch运行出来是错的。 展开
#include <stdio.h>
/**********found**********/
___1___ fun(char ch)
{
/**********found**********/
if (ch>='0' && ___2___)
/**********found**********/
return '9'- (ch-___3___);
return ch ;
}
main()
{ char c1, c2;
printf("\nThe result :\n");
c1='2'; c2 = fun(c1);
printf("c1=%c c2=%c\n", c1, c2);
c1='8'; c2 = fun(c1);
printf("c1=%c c2=%c\n", c1, c2);
c1='a'; c2 = fun(c1);
printf("c1=%c c2=%c\n", c1, c2);
}
第三空答案是'0',为什么呢?主要是不明白第三空所在语句为什么是这种写法,这条语句所要表达的意思是'9'减去形参ch,直接写成ch='9'-ch运行出来是错的。 展开
1个回答
展开全部
若形参ch中是数字字符'0'~'9',则'0'~'9',则'0'转换成'9','1'转换成'8','2'转换成'7',……'9'转换成'0'。
所以先判断是否在0~9之间,也就是
if (ch>='0' && ch<='9')
然后做转换。
如果不是字符,而是整型,那么要做的转换就是9-ch。 但这里是字符型。所以要先把字符转为整型。
ch-'0' 得到对应整型值。
然后9-(ch-'0') 这个是转换后的整型值。 再加上'0'就是最终值。 也就是这样写是最直观的
9-(ch-'0') +'0'
其中9+'0' 就是字符'9'
所以写成'9'-(ch-'0')也是可以的。
所以先判断是否在0~9之间,也就是
if (ch>='0' && ch<='9')
然后做转换。
如果不是字符,而是整型,那么要做的转换就是9-ch。 但这里是字符型。所以要先把字符转为整型。
ch-'0' 得到对应整型值。
然后9-(ch-'0') 这个是转换后的整型值。 再加上'0'就是最终值。 也就是这样写是最直观的
9-(ch-'0') +'0'
其中9+'0' 就是字符'9'
所以写成'9'-(ch-'0')也是可以的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询