注:所用Xfce终端进行的编写(可用vim)
我们编写一个程序分析一下他们转换的编译过程,编写程序 5-3.c:
# include<stdio.h>
int main()
{
int i = 3;
float f = 4.3;
double d = 7.5;
double sum;
sum = 10 + 'a' + i * f - d / 3;
printf("\n%lf",sum);
return 0;
}
在 sum=10+'a'+i*f-d/3;
这条语句中,右边的表达式从左到右扫描,运算次序为:
10 + 'a' 的运算,'a' 的值是整数 97,运算结果为 107。 i * f 的运算。先将 i 与 f 都转换为 double 型,两者运算 12.9,double 型。 整数 107 与 i * f 的值相加,结果为 119.9,double 型。 d / 3 的运算,现将 3 转换 double 类型,d/3 的结果为 2.5,double 型。 将119.9 与 2.5相减,117.4,double 型。
编译运行结果如下:
要求给定一个大写字母要求用小写字母输出,编写 5-4.c。
解题思路:我们前面已经介绍过,字符数据以 ASCII 码存储在内存中,形式与整数的存储形式相同,所以字符型数据和其他算数型数据之间可以相互赋值和运算。 通过 ASCII 码表我们可以找到同一个字母的大写形式和小写形式之间有什么内在的联系。那就是同一个字母,用小写表示的字符的 ASCII 码比用大写表示的 ASCII 码大 32。 代码如下:
#include<stdio.h>
int main()
{
char c1,c2;
printf("Please enter a capital letter:");
scanf("%c",&c1);
c2 = c1 + 32;
printf("\n%c",c2);
return 0;
}
网友评论