文档详情

C语言程序设计位运算.doc

发布:2017-06-08约5千字共6页下载文档
文本预览下载声明
选择题 1、读程序片段: int x=20; printf(“%d\n”, ~x); 上面程序片段的输出结果是( ). A)02 B)–20 C)-21 D)-11 2、表达式~0x13的值是( ). A)0xFFEC B)0xFF71 C)0xFF68 D)0xFF17 3、在位运算中,操作数每右移一位,其结果相当于( ). A)操作数乘以2 B)操作数除以2 C)操作数除以4 D)操作数乘以4 4、在位运算中,操作数每左移一位,其结果相当于( ). A)操作数乘以2 B)操作数除以2 C)操作数除以4 D)操作数乘以4 5、设有以下语句: char x=3,y=6,z; z=x^y2; 则z的二进制值是( ). A B C D6、请读程序: struct bit {unsigned a_bit:2; unsigned b_bit:2; unsigned c_bit:1; unsigned d_bit:1; unsigned e_bit:2; unsigned word:8; }; main() {struct bit *p; unsigned int modeword; printf(“Enter the mode word (HEX):”); scanf(“%x”,modeword); p=(struct bit *)modeword; printf(“\n”); printf(“a_bit: %d\n”,p -a_bit); printf(“b_bit: %d\n”,p -b_bit); printf(“c_bit: %d\n”,p -c_bit); printf(“d_bit: %d\n”,p -d_bit); printf(“e_bit: %d\n”,p -e_bit);} 若运行时从键盘输入: 96回车 则以上程序的运行结果是( ). A)a_bit: 1 B) a_bit: 2 C)a_bit: 2 D) a_bit: 1 b_bit: 2 b_bit: 1 b_bit: 1 b_bit: 2 c_bit: 0 c_bit: 0 c_bit: 1 c_bit: 2 d_bit: 1 d_bit: 1 d_bit: 0 d_bit: 0 e_bit: 2 e_bit: 2 e_bit: 2 e_bit: 1 7、设有以下说明: struct packed { unsigned one:1; unsigned two:2; unsigned three:3; unsigned four:4; } data; 则以下位段数据的引用中不能得到正确数值的是( ). A) data.one =4 B) data.two=3 C) data.three =2 D) data.four=1 8、设位段的空间分配由右到左,则以下程序的运行结果是( ). struct packed_bit {unsigned a:2; unsigned b:3; unsigned c:4; int i; } data; main() {data.a=8; data.b=2; printf(“%d\n”,data.a+data.b);} A) 语法错 B) 2 C) 5 D) 10 二、填空题 1、在C语言中,运算符作为单目运算符时表示的是【 】;作为双目运算符时表示的是【】运算. 2、与表达式a=b 等价的另一书写形式是【 】. 3、与表达式x^=y-2等价的另一书写形式是【 】. 4、请读程序片段: int a=1,b=2; if(ab)printf(“***\n”); else printf(“$$$\n”); 以上程序片段的输出结果是【 】. 5、设有char a,b;若要通过ab运算屏蔽掉a中的其它位,只保留第2和第8位(右起为第1位),则b的二进制数是【 】. 6、测试char型变量a第六位是否为1的表达式是【 】(设最右位是第一位) 7、设二进制数x的值若想通过xy运算使x中的低4位不变,高4位轻零,则y的二进制数是【 】. 8、请读程序片段: int a=-1; a=a |0377; printf(“%d,%o\n”,a,a); 以上程序片段的输出结果是【 】. 9、设x是一
显示全部
相似文档