关于c语言的一道选择题,高手帮我看看吧

.设char型变量x中的值为10100111,则表达式(2+x)^(~3)
A)10101001 B)10101000 C)11111101 D)01010101
高手帮我分析下吧,该选哪个?为什么?先谢谢了处理提问

D, 这么简单。

x = 10100111
2 = 00000010
x+2 = 10101001
---------------------

3 = 00000011
~3 = 11111100 (取反)

--------------------

然后做 异或
x+2 = 10101001
~3 = 11111100
结果 = 01010101追问

大哥,小弟还有一点不懂就是把x+2如何合成,最后等于10101001.还有x+2的结果与~3的结果合成,最后等于01010101。这是什么算法,还望指点一二。谢谢了

追答

x+2 就是简单的2进制加法, 1+1 = 0并且进位1, 0+0=0,0+1=1+0=1,不进位。

x+2的结果与~3的结果合成,是2进制的异或,也就是^。
0^0=1^1= 0 0^1=1^0=1, 也就是 位相同,结果为0, 位不同,结果为1.

我上面的算式回答全部是给你对好位了的,你竖着看啊

参考资料:就直接在这个文本框里敲敲,结果就出来了,很简单的

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-11
如果我没记错的话 B这种形式传的是形参,也就是说,在函数内部把x和y交换了但在函数外部,并没有交换x和y 答案是A: 显然不是B啊~~ B,不能追问

能具体点么?我真是c语言菜鸟,谢谢了

第2个回答  2011-06-11
大哥你把表达式搞清楚点先!貌似看不懂啊!追问

其实,我也没看懂,我是c语言初学者,我感觉一般经常学这个东西的人应该一看就明白了吧。所以我在等能看懂的人呀

追答

不是我不会,(2+x)^(~3) 这表达式似乎不对,你看一下把符号打错没

求教一个C语言选择题
答案是C A的值是30,数组里面第三个元素,但下标是2(从0开始)B的值是30,先移动括号里的指针,指针p指向第一个元素,(p+2)指向第三个元素 C是先用*运算符求指针a指向的元素值(即是10),之后再加10便是正确答案20 D的值是10,*运算符的优先级大于右++运算符 本题考察数组指针和运算...

帮忙解答一道C语言选择题
选项C:typedef struct student s;是将struct student定义为类型s,和第一部分的功能是类似的,只是类型名称不同而已,所以C也是对的.

c语言 选择题 求高手帮忙!
scanf("%s%s",a1,a2);可以正常读取aa bb a1=aa b1=bb gets(a3);gets(a4);gets(a3)读取了一个空字符('\/0')gets(a4)读取了 cc dd 所以输出是A ,这个你自己上机调试跟踪就可以了。这道题说明scanf和gets是有区别的,但我也说不清,上网查吧 ...

C语言选择题
答案选d。函数fun的类型为:返回值为int,两个形参(int,int);函数指针p的类型为fun函数类型的指针类型。所以只需p = fun就好。

跪求大神帮我解答c语言的选择题,感谢
1题选D,strcat是连接函数;2题选C,3题选B,i>3取1;i<3取0;结果就出来了;4题选C,*(P+3)代表啊a[3]=4;*(p+3)+=2后,*(p+3)=*(p+3)+2=4+2=6;p是数组a的首地址,所以*p=1;

一道C语言题选择题。如图,这个要怎么做?
答案C 计算字符串的长度 int fun(char *s){ char *t=s;\/\/指针t指向字符串s的第一个元素的地址(首地址)while(*t++);\/\/这里是将指针t移动到字符串s的 最后一个元素的后面;t--;\/\/这里指针t又向前 移动一个位置;这样刚好指向最后一个元素的地址;return (t-s);\/\/t(尾地址);s(首...

关于c语言的选择题,高手帮忙给我分析一下呀
选C!字符串后面的初值表里只有4个字符,所以D后面全都是字符串结束标志'\\0',而指针p指向了字符串的首地址,也就是'A',而*(p+4)指向a[4],也就是D后面的一个元素,是字符串结束标志'\\0'

一道C语言选择题,求答案及解析,好评
答案为:C 分析:1、switch(表达式)中的表达式不能为实型,所以A错误。同时B的用法错误,如果B改为 switch((int)x)那么B也是正确的;2、case 常量表达式: 中的 常量表达式不能是实型,所以A中的1.0和2.0都是错误的,同时该表达式也不能是变量或含有变量的表达式,所以D错误,因为D中有 case...

C语言,题目中的选择题,求详细解析
正确答案应该是B.15。这里考察的重点是符号常量的使用。主函数中出现符号常量FUN(x,y) 则直接用 (x)<(y)?(x):(y)替代即可。本题中:k=10*FUN(i,j);可以看作:k=10*(i)<(j)<(i):(j);而i=10,j=15 所以按照运算优先级有:k=100<15?10:15;结果显然是15。故选择B。

c语言 一道简单的选择题
答案是D。分析:按%d%d%d格式输入时,要求用空白(空格、换行等)作为分隔符。当输入3 4,5时,因为3 4符合输入格式的要求,所以会将3赋值给a,4赋值给b。但接下来遇到了逗号,不符合输入格式的要求,scanf函数会提前退出,并返回2(表示成功赋值了2个值),而c不会被赋值(保持它原来的值2),...

相似回答
大家正在搜