1 以下正确的是(B)

A在C语言中,逻辑真值和假值分别对应1和0

B关系运算符两边的运算对象可以是c语言中任意合法的表达式

C对于浮点变量x和y,表达式:x==运算非法的,会出现编译错误

D分支结构是根据算式表达式的结果来判断流程走向的


分析:

A 关系表达式和逻辑表达式的值 是布尔型:真或假(true or false),即0或1,但c语言没有布尔类型,以0为假,非0即真。
B是合法的,语法正确,算法错误。
D分支结构的流程走向是根据表达式的值,并不仅仅是算式表达式的值。
2.分析下列程序


#include<iostream>  
using namespace std;  
int main() {  
  int a=2,c=5;  
  printf("a=%%d,b=%%d\n",a,c);  
  return 0; 
 }
输出结果是 a=%d,b=%d
C 语言中用 "%%" 打印输出字符 "%", 所以 %%d, 输出为 %d 两个普通字符 , 而不是格式控制符 "%d" 的含义 , 所以打印结果为 C 。

3.分析下列程序,输出结果是253.



#include<iostream>  
using namespace std;  
int main() {  
   unsigned char i=1;  
   i-=4;  
   printf("%d",i);  
   return 0;  
}



再举一例,我们来看整数-1在计算机中如何表示。

假设这也是一个int类型,那么:

1)、先取1的原码:00000000 00000000 00000000 00000001

2)、得反码:    11111111 11111111 11111111 11111110

3)、得补码:    11111111 11111111 11111111 11111111

可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF

void swap_int(int *a,int *b) {  
    *a=*a+*b;  
    *b=*a-*b;  
    *a=*a-*b;  
} 
int power(int b,int e) {  
   if(e==0) return 1;  
   if(e%2==0) return power(b*b,e/2);  
   return b*power(b*b,e/2);  
}
int main() {  
printf("hello");  
fork();  
printf("hello");  
}