沙皇能出发冥火吗:C语言问题16

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 20:03:33
有以下定义
#include <stdio.h>
char a[10],*b=a;
不能给数组a输入字符串的语句是
A) gets(A) B) gets(a[0]) C) gets(&a[0]); D) gets(B) ;

有以下程序
main( )
{ unsigned char a,b;
a=4|3;
b=4&3;
printf(“%d %d\n”,a,b(;
}
执行后输出结果是
A) 7 0 B) 0 7 C) 1 1 D) 43 0
能详细解释下为什么吗?

题目应该是这样子的:有以下定义
#include <stdio.h>
char a[10],*b=a;
不能给数组a输入字符串的语句是
A) gets(a) B) gets(a[0]) C) gets(&a[0]); D) gets(b) ;
选B.因为只有a[0]不是地址啊,不符合gets的用法啊.括号里应该是数组的起始地址啊

4的二进制数为0100,3的二进制为0011,两者相或,为0111,即十进制中的7,相与则为0000,即是十进制中的0

1.选B

2.选A
4的二进制表示为0100,3的二进制表示为0011,然后进行与或运算