C语言各章节单元测试题及答案——位运算.docxVIP

C语言各章节单元测试题及答案——位运算.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 10章位运算 10.1 典型考试题剖析 10.1.1 选择题 【例 1】整型变量 的表达式是 。  x 和  y 的值相等、且为非  0 值,则以下选项中,结果为零 A) x || y  B) x | y  C) x y  D) x ^ y 考点:位运算的性质。 分析:答案 A 是两个非 0 数进行或运算,得到一定为非 0 值。答案 B 是两个非 0 数进行按位或运算,得到的也一定是非 0 值。答案 C 是两个非 0 数进行按位与运算,结果可能为 0,也可能不为 的性质可知,一个数和本身进行异或运算的值一定是 答案: D 【例 2】以下程序的输出结果是 。  0。答案 0。  D根据位运算 main() { char x=040; printf(%o\n,x1);} A) 100 B) 80 C) 64 D) 32 考点:左移运算。 分析: 040 是八进制数,用二进制表示为左移 1 位后得到 001000000即 64,用八进制输出结果为 100。 答案: A 【例 3】在位运算中,操作数每左移 A) 操作数乘以 2 B) 操作数除以  1 位,相当于 2 C) 操作数乘以  。 16  D)  操作 数除以 16 考点:左移运算的性质。 分析:因为位运算的操作对象是整型数据,所以乘、除 2 的整数倍可以 用移位来实现, 左移 1 位相当乘以 2,右移 1 位相当于除以 2,用移位方 法作乘除运算速度快。 答案: A 【例 4】下面语句输出结果是 。 char a=7; printf(%d,%d,~a,!a); A) 0,8  B) 8,0  C) -8,0  D) 0,-8 考点:按位取反运算和非运算。 分析:此题考察逻辑反和按位取反的区别,求逻辑反时,只要 a≠0就按真算,即! a=0;按位取反时,为此值正好是- 的补码。 答案: C 【例 5】设有以下语句,则 z 的二进制值是 。 char x=3,y=12,z; z=x^y2; A )B)C)D)考点:位运算的优先级。 分析:由于移位运算符的优先级高于异或运算符,所以先计算 y2 的值为又知 x 的值为于是可得 z 【例  答案: A 6】执行以下程序的输出结果是  。 #include stdio.h main() { unsigned short u; short n; u=024;n=-24; printf(%d,%d,%d,%d\n,u2,u2,n2,n2); } A) 80,5,-80,-5 B) 80,5,-96,-6 C) 96,3,-96,-6 D) 96,6,-80,-5 考点:左移和右移位运算。 分析:本题考查含有八进制数的移位运算和负数的左、 右移位运算。 024 是八进制数, C语言中八进制数无负数。负数在机内是按补码存放的, 最高位是符号,“ 0”代表正,“ 1”代表负,其符号位可以像数字一样参加运算,左移相当于乘以 2,右移一位相当于除以 2 的规律仍然适用。答案: B 10.1.2 填空题 【例 1】已知 a 为 8 位二进制数,要想通过 a^b 运算使 a 的低 4 位变反,高 四位不变, b 的值应为 。 考点:按位异或运算的性质。 分析:根据按位异或运算的性质可知, 与 1 异或得到的结果与原来的数 为:  据相反,与 0 异或得到的结果与原来的数据相同。因此 a 只需要低四位 与 1 异或,高四位与 0 异或即可。 答案:【例 2】设有以下变量说明,则 a+(int)((int)b+c)(int)(b-c) 的值 。 int a=5; float b=7.2,c=3.6; 考点:强制类型转换与位移操作。 分析:题目中的( int )=7, (int)((int)b+c)=10 ,a+10=15,又 (int)(b-c)=3 ,所以最后的算式为: 153。 【例  答案: 1 3】下面程序段实现不借助中间变量而交换  x 与  y 的值,请填空。 int x=6,y=7; x=x^y; y= x=  【1】 【2】  ; ; 考点:异或运算的性质。 分析:根据异或运算的性质知道, 进行三次按位异或运算操作可以交换两变量的值。 答案:【 1】 y^x 【2】x^y 10.2 自测练习与参考答案 10.2.1 选择题 1.若有运算符 , sizeof ,^,=,则它们按优先级由高到低的排列顺序 是 。 A) sizeof ,= ,,^ B) sizeof

文档评论(0)

150****2233 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档