一、选择题: (1)以下程序的功能是进行位运算 main() { unsigned char a, b; a=7^3; b= ~4 & 3; printf("%d %d\n",a,b); } 程序运行后的输出结果是 A)4 3 B)7 3 C)7 0 D)4 0
(2)有以下程序 main() { int c=35; printf("%d\n",c&c); } 程序运行后的输出结果是 A) 0 B) 70 C) 35 D) 1
(3) 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是 A) c1^c2 B) c1&c2 C) ~c2 D) c1|c2
(4) 有以下程序 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
(5) 有以下程序 main() { int x=3, y=2,z=1; printf("%d\n",x/y&~z); } 程序运行后的输出结果是 A) 3 B) 2 C) 1 D) 0
(6) 设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是 A) 10101001 B) 10101000 C) 11111101 D) 01010101
(7) 有以下程序 main() { unsigned char a,b,c; a=0x3; b=a|0x8; c=b<<1; printf(“%d%d\n”,b,c); } 程序运行后的输出结果是 A) –11 12 B) –6 –13 C) 12 24 D) 11 22
(8) 以下程序的输出结果是 main() { char x=040; printf("%0\n",x<<1); } A) 100 B) 80 C) 64 D) 32
(9) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是 A) x || y B) x | y C) x & y D) x ^ y
(10) 以下程序的输出结果是 A) 0 B) 1 C) 2 D) 3 main() { int x=0.5; char z=’a’; printf(“%d\n”, (x&1)&&(z<’z’) ); }
(11) 设 int b=2;表达式(b>>2)/(b>>1)的值是 A) 0 B) 2 C) 4 D) 8
(12) 设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是 A) 1 B) 0 C) -1 D) 2
(13) 语句:printf("%d \n",12 &012);的输出结果是 A) 12 B) 8 C) 6 D) 012
(14) 下面程序的输出是 A) 100 B) 160 C) 120 D) 64 main() { char x=040; printf("%d\n",x=x<<1);}
(15) 执行下面的程序段 int x=35; char z='A'; int b; B=((x&15)&&(z<'a')); 后,B的值为 A) 0 B) 1 C) 2 D) 3
(16) 设有以下语句: char a=3,b=6,c; c=a^b<<2; 则c的二进制值是 【16】 。 A) 00011011 B)00010100 C)00011100 D)00011000
二、填空题:
(1) 设二进制数a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变,则二进制数b应是 【1】 。
答案: 一、选择题: 1) A 2) C 3) A 4) A 5) D 6) B 7) D 8) A 9) D 10) B 11) D 12) B 13) B 14) D 15) B 16) A 17) 18) 19) 20) 二、填空题:
(1) 11110000
|