C语言关于运算符的一个小问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:26:08
条件:
char a1='a',a2='A';
int n1=65,n2=97;

问题:
a1>=n1的值是( )
a2>=n2的值是( )

可以的话写出原因,我菜鸟,不懂,哈
先谢谢各位了~!
https://gss0.baidu.com/7LsWdDW5_xN3otqbppnN2DJv/%90%5B%DF%52%EC%FB%BB%B6%9B%6D/pic/item/6c725c167cd31a4cf3de32d5.jpg

代码运行时显示的,第二个应该等于0啊~!

因为对于ASCII字符 'a'=97,'A'=65;
所以

a1>=n1的值是(1 )
a2>=n2的值是(0 )

#include<stdio.h>

main()
{
char a1='a',a2='A';
int n1=65,n2=97;
printf("%d,%d\n",a1,a2);
printf("a1>=n1 是 %d,a2>=n2是%d\n",a1>=n1,a2>=n2);

}

1.逻辑关系只有对与错!对返回值为1,错为0;
2.‘a’的ASII 码为97>65,正确,所以 a1>=n2 的值是 1;
同理 a2 =65 <n2 所以 a2>=n2为假 值为0
3.答案:
a1>=n1的值是(1 )
a2>=n2的值是(1 )

逻辑关系只有对与错!对返回值为1,错为0;
‘a’的ASII 码为97>65,正确,所以 a1>=n2 的值是 1;
同理 a2 =65 <n2 所以 a2>=n2为假 值为0

我只给你思路。a1>=n像这样的运算叫做关系运算,它的值只有两个0或1意思是如果a1>=n是真的值是一否则是0,这里a1是个字符所以要用这个字符ASCII编码来做。

第一个答案是ture
第二个答案也是ture
因为字符在编译的时候是被转换成数值了,a就是65,A就是97

顶楼上的几位