C语言位运算经典练习

C语言位运算经典练习

ID:39577009

大小:78.14 KB

页数:4页

时间:2019-07-06

C语言位运算经典练习_第1页
C语言位运算经典练习_第2页
C语言位运算经典练习_第3页
C语言位运算经典练习_第4页
资源描述:

《C语言位运算经典练习》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、选择题1、以下程序的功能是进行位运算:voidmain(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d",a,b);}程序运行后的输出结果是(A)。A)43B)73C)70D)402、设有定义语句:charc1=92,c2=92;,则以下表达式中值为零的是(A)。A)c1^c2B)c1&c2C)~c2D)c1

2、c23、有以下程序:voidmain(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序运行后的输出结果是(B)。//在int占2byt

3、e时成立。A)-1B)65535C)32767D)-327684、有以下程序:voidmain(){unsignedchara,b;a=4

4、3;b=4&3;printf(“%d%d”,a,b)(;}执行后输出结果是(A)。A)70B)07C)11D)4305、有以下程序:voidmain(){intx=3,y=2,z=1;printf("%d",x/y&~z);}程序运行后的输出结果是(D)。A)3B)2C)1D)06、设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是(D)。A)1010100

5、1B)10101000C)11111101D)010101017、有以下程序:voidmain(){unsignedchara,b,c;a=0x3;b=a

6、0x8;c=b<<1;printf(“%d%d”,b,c);}程序运行后的输出结果是(D)。A)–1112B)–6–13C)1224D)11228、以下程序的输出结果是(A)。voidmain(){charx=040;printf("%0",x<<1);}A)100B)80C)64D)329、整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是(D)。A

7、)x

8、

9、yB)x

10、yC)x&yD)x^y10、以下程序的输出结果是(Ac)。A)0B)1C)2D)3voidmain(){intx=0.5;charz=’a’;printf(“%d”,(x&1)&&(z<’z’));}11、设intb=2;表达式(b>>2)/(b>>1)的值是(B)。A)0B)2C)4D)8二、填空题1、若有运算符<<,sizeof,^,&=,则按优先级由高到低排列为sizeof(),<<,^,&=。2、设有chara,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第1和第7位(右起为第0位),则b的二进制

11、数是10000010。3、测试char型变量a第五位是否为1的表达式是(a>>4&1)!=0。4、把int型变量low中的低字节及变量high中的高字节放入变量s中的表达式是low&0x00ff+high&0xff00。5、以下函数:unsignedgetbits(unsignedx,unsignedp,unsignedn){x=((x<<(p+1-n)&~((unsigned)~0>>n);4return(x);}若调用此函数时x=0115032,p=7,n=4,则函数返回值是0。6、若x=0123,则表达式(5+(int)(x

12、))&(~2)的值是88。三、编程题1、编写一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原值,其余位为0)。函数调用形式为:getbits(value,n1,n2)。value为该16位(两个字节)单元中的数据值,n1为欲取出的起始位,n2为欲取出的结束位如:getbits(0101675,5,8)表示对八进制101675这个数,取出它从左起的第5位到第8位.#includevoidgetbits(shortvalue,intn1,intn2);intmain(){shortvalue,n

13、1,n2;scanf("%hd%hd%hd",&value,&n1,&n2);getbits(value,n1,n2);return0;}voidgetbits(shortvalue,intn1,intn2){shorttemp=value;temp=temp<<(n1-1);for(inti=n1;i<=n2;i++){printf("%d的第%d位为:%d",value,i,(temp&0x8000)>>15);temp=temp<<1;}}2、写一个函数,对于一个16位的二进制数取出它的奇数位(即从左边起第1,3,5….

14、.15位)。#includevoidgetbits(shortvalue);intmain(){shortvalue;scanf("%hd",&value);getbits(value);return0;}voidgetbits(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。