当前位置: 首页 > news >正文

习题-位运算

选择题

1、设 int b=2; 表达式 (b>>2)/(b>>1) 的值是 【 正确答案: A】。

A.0    B.2     C.4        D.8

2、有以下程序:

int main( )

    unsigned char a,b;

    a=4|3;

    b=4&3;

    printf( “ %d %d\n” ,a,b);

    return 0;

}

执行后输出结果是 【 正确答案: A】。

A.7 0                   B. 0 7                 C.1 1                    D.43 0

3、整型变量 x 和 y 的值相等、且为非 0 值,则以下选项中,结果为零的表达式是  【 正确答案: D】。
A. x || y         B. x | y          C. x & y              D. x ^ y

4、以下程序的输出结果是 【 正确答案: A】。

int main()

{

     char x=040;

    printf("%o\n",x<<1);

    return 0;

}

A. 100      B. 80        C. 64         D. 32

5、有以下程序:

int main()

    unsigned char a,b,c;

    a=0x3; 

    b=a|0x8;

    c=b<<1;

    printf( “ %d %d\n” ,b,c);

    return 0;

}

程序运行后的输出结果是 【 正确答案: D】。

A. -11 12       B. -6 -13        C. 12 24             D. 11 22

6、设 char 型变量 x 中的值为 10100111 ,则表达式( 2+x)^( ~ 3)的值是 【 正确答案: D】。
A. 10101001         B. 10101000         C. 11111101         D. 01010101

7、有以下程序:

int main()

{    

    int x=3, y=2,z=1;

    printf("%d\n",x/y&~z);

    return 0;

}

程序运行后的输出结果是 【 正确答案: D】。

A.3          B.2         C.1           D.0

8、有以下程序:

int main()

     unsigned short a;

     int b=-1;

     a=b;

     printf("%hu",a);

     return 0;

}

程序运行后的输出结果是 【 正确答案: B】。

A. -1             B. 65535               C. 32767              D. -32768

9、设有定义语句: char c1 = 92, c2 = 92;, 则以下表达式中值为零的是 【 正确答案: A】。

A. c1^c2             B. c1&c2         C. ~c2             D. c1|c2

10、若a = 1,b = 2; 则a|b的值是 【 正确答案: D】。
A.0             B.1              C.2               D.3

编程题

1、判断一个数是否是2的幂

【问题描述】以十进制形式输入一个整数,判断这个数是否是2的幂

【输入形式】一个十进制整数

【输出形式】判断这个数是否是2的幂
【样例输入】256
【样例输出】256 is a power of 2

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{int n=1,x,i;scanf("%d",&x);for(i=1;i<=32;i++)while(n<x){n=1<<i;i++;}if(n==x){printf("%d is a power of 2\n",x);}else{printf("%d is not a power of 2\n",x);}return 0;
}

2、编程取二进制数的奇数位

【问题描述】编程实现,对一个16位的二进制数取出它的奇数位(16位分别是:1~16位,奇数位即从左边起第1,3,5,...15位),组成一个新的数。

【输入形式】输入一个八进制数

【输出形式】用8进制形式输出取出的奇数位所组成的数
【样例输入】145432
【样例输出】result:263

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{int x,i,j=7,sum=0;unsigned short int y,z;scanf("%o",&x);for(i=0;i<=14;i=i+2){y=x<<i;z=y>>15;sum+=z*(int)pow(2.0,j);j--;}printf("result:%o\n",sum);return 0;
}

3、从一个16位的单元中取出某几位

【问题描述】从一个16位的单元中取出某几位(即该几位保留原值,其余位为0. 使用value存放该16位的数,n1为欲取出的起始位,n2为欲取出的结束位。(注意:是从左到右取)

【输入形式】

输入3个数:value n1,n2 

value为八进制数

n1、n2为十进制数,n1与n2之间英文逗号间隔

【输出形式】

以8进制形式输出取出的从n1~n2这几位的值
【样例输入】

173253

5,8

【样例输出】

result:6

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{unsigned short int x,y;int a,n1,n2;scanf("%o",&a);scanf("%d,%d",&n1,&n2);x=a<<(n1-1);y=x>>(16-(n2-n1+1));printf("result:%o\n",y);return 0;
}


http://www.mrgr.cn/news/44403.html

相关文章:

  • 快递物流跟踪:掌握最后更新时间,高效筛选单号管理
  • 若依权限设计与自定义新增用户
  • 数据分析之Spark框架介绍
  • VMware Tanzu Kubernetes Grid Integrated Edition 1.20 发布下载,新增功能概览
  • JS中浅拷贝和深拷贝的区别
  • 解锁数字化营销成功密码
  • 美客多测评系统:批量注册买家号的新利器
  • 【C++ Primer Plus】4
  • T-Sql_while循环语句
  • Linux之实战命令27:apropos应用实例(六十一)
  • [C++]使用onnxruntime部署yolov8-cls图像分类onnx模型
  • Unsloth 大模型微调工具简明教程
  • 分词的艺术:为AI拆解文本
  • 课堂点名系统小程序的设计
  • 问:说说JRE、JDK、JVM 及 JIT都是干嘛的?
  • Apache Ranger 70道面试题及参考答案
  • 基于Python的人工智能应用案例系列(19):SpaCy评论情感极性分类
  • SumatraPDF一打开就无响应怎么办?
  • 信息学奥赛一本通 2100:【23CSPJ普及组】一元二次方程(uqe) | 洛谷 P9750 [CSP-J 2023] 一元二次方程
  • Ajax面试题:(第一天)