标签:
十、编写一个含有逻辑表达式的程序。
1 #include <stdio.h> 2 3 void main(void) 4 { 5 int x; 6 7 x = 1; 8 printf("%d ", x>=0 && x<=2); 9 10 x = 5; 11 printf("%d ", x>=0 && x<=2); 12 printf("%d ", x<-3 || x>3); 13 14 x = 0; 15 printf("%d ", x<-3 || x>3); 16 printf("%d ", !x); 17 18 x = 5; 19 printf("%d ", !x); 20 printf("%d ", 3 && ‘A‘); 21 printf("%d ", (x=2) || 0); 22 printf("x = %d\n", x); 23 }
结果:
1 0 1 0 1 0 1 1 x=2
“&&"为逻辑与, ”||“为逻辑或, "!"为逻辑非。
(1) 当关系表达式的判断结果为“真”(“假”)时,关系表达式的值为1(0),如(5>3)+7的值为8(1+7).
(2) 0<=x<=2永远成立,即为真,因为先判断0<=x,其结果是0或1,而0<=2(1<=2)的判断结果为“真".
十一、编写一个含有特殊逻辑表达式的程序。
1 #include <stdio.h> 2 3 void main(void) 4 { 5 int a, b; 6 7 a = 1; 8 printf("%d ", 0 && (a=2)); //没执行a=2 9 printf("a=%d ", a); 10 printf("%d ", 5 && (a=2)); //执行了a=2 11 printf("a=%d ", a); 12 13 b=1; 14 printf("%d ", 5 || (b=2)); //没执行b=2 15 printf("b=%d ", b); 16 printf("%d ", 0 || (b=2)); //执行了b=2 17 printf("b=%d ", b); 18 }
结果:
0 a=1 1 a=2 1 b=1 1 b=2
十二、输入一个字符,如果是数字字符,则转换成对应的数字。
1 #include <stdio.h> 2 3 void main(void) 4 { 5 char ch; 6 int a = -1; 7 8 printf("Input ch: "); 9 ch = getchar(); 10 if(ch >= ‘0‘ && ch <= ‘9‘) 11 a = ch - ‘0‘; 12 printf("ch=%c, a=%d\n", ch, a); 13 }
结果:
1.Input ch: 2
ch=2, a=2
2.Input ch: x
ch=x, a=-1
注:"ch-‘0‘"是"ch"的字符对应的十进制减48(‘0‘对应的十进制为48)
小写字母的ASCII码数(十进制):97~122(a~z)
大写字母的ASCII码数(十进制):65~90(A~Z)
数字字符的ASCII码数(十进制):48~57(0~9)
标签:
原文地址:http://www.cnblogs.com/zero-jh/p/5022737.html