任务6:位运算符和位运算 《编程语言-C语言》45分钟专题训练
|
2份
|
15页
|
91人阅读
|
1人下载
内容正文:
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目一: 基本数据类型与简单程序设计
第6卷: 位运算符和位运算
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共25小题,每小题2分,共50分)
1.若有位运算符:<<、>>、∧、&、|及长度运算符sizeof,则它们按照优先级由高到低的正确排列次序是( )
A.sizeof、&、|、<<和>>、∧ B.sizeof、&、∧、|、<<和>>
C.sizeof、<<和>>、&、∧、| D. sizeof、&、∧、<<和>>、|
【答案】C
2.sizeof(double)是( )
A.一种函数调用 B.一个不合法的表示形式
C.一个整型表达式 D.一个浮点表达式
【答案】C
3.已有定义:int a=0x15,b=017;执行语句:printf("%d",a&b);后的输出结果是( )
A.0x15 B.05 C.017 D.5
【答案】D
4.已有定义:int a=054,b=017;执行语句:printf("%o",a^b);后的输出结果是( )
A.47 B. 43 C.45 D.42
【答案】B
5.已有定义:int a=44,b=17;执行语句:printf("%d",a|b);后的输出结果是( )
A.60 B.61 C.62 D.63
【答案】B
6.已有定义:int a=12;执行语句:printf("%d",a>>1);后的输出结果是( )
A.24 B.6 C.8 D.3
【答案】B
7.已有定义:int a=022;执行语句:printf("%d",a<<2);后,的输出结果是( )
A.72 B.71 C.70 D.4
【答案】A
8.已有定义:int a=071,b=12;执行语句:printf("%d",a<<2&b);后的输出结果是( )
A.4 B.57 C.71 D.5
【答案】A
9.已有定义:int a=7,b=12;执行语句:printf("%o",a^b);后的输出结果是( )
A.11 B.C C.12 D.13
【答案】D
10.已有定义:int a=-7,b=12;执行语句:printf("%d",~a^b);后的输出结果是( )
A.11 B.10 C.12 D.13
【答案】B
11. 已有定义:int a=015,b=12;执行语句:printf("%d",a|b>>2);后的输出结果是( )
A.13 B.14 C.15 D.3
【答案】C
12.在位运算中,操作数每右移一位,其结果相当于( )
A.操作数乘以2 B.操作数除以2 C.操作数除以4 D.操作数乘以4
【答案】B
13.在位运算中,操作数每左移一位,其结果相当于( )
A.操作数乘以2 B.操作数除以2 C.操作数除以4 D.操作数乘以4【答案】A
14.已有定义:int t=126;执行语句:printf("%x",t^00);后的输出结果是( )
A.126 B.127 C.7e D.7E
【答案】C
15.已有定义:int x=3,y=6;执行语句:printf("%d",x^y<<2);后的输出结果是( )
A.20 B.24 C.21 D. 27
【答案】D
16.已有定义:int x=25;执行语句:printf("%d",~x);后的输出结果是( )
A.-26 B.26 C.25 D.-25
【答案】A
17.已有定义:char x,y;执行语句:x=5^3;y=~4&4;printf("%d,%d
",x,y);后的输出结果是( )
A.1,0 B.1,4 C.6,0 D.6,4
【答案】C。一个数位取反后与自己相与始终为0。
18.若“int a=5,b;”,执行:b=a>>2;”后,b的值为( )
A.10 B.20 C.1 D.2
【答案】C
19.已知:int a=1,b=2,c=3,x;x=(a^b)&c;,则x的值为( )
A.0 B.1 C.2 D.3
【答案】D
20.已知;int a=3,a+=a^2;则a的值为( )
A.12 B.9 C.6 D.4
【答案】D
21.已有定义:int a=1,b=2;执行语句:a=a^b;b=b^a;a=a^b;printf("%d,%d",a,b);后的输出结果是( )
A.1,2 B.2,1 C.2,2 D.1,1
【答案】B
22.已有定义:int x=68;执行语句:printf(“%c,%d”,x,~x);后的输出结果是( )
A.D,69 B.D,-69 C.68,69 D.68,-69
【答案】B
23.已有定义:char a=3,b=6,c;执行语句:c=a^b<<2;后,变量c中的二进制值是( )
A.0001 1011 B.0001 0100 C.0001 1100 D.0001 1000
【答案】B
24.已有定义:int a=3;执行语句:a=2%a<<2;printf(“%d”,a);的输出结果是( )
A.8 B.9 C.10 D.11
【答案】A
25.已有定义:int x=012,y=12;执行语句:printf("%o",x&y>>1);后的输出结果是( )
A.2 B.3 C.4 D.5
【答案】C
二、程序运行结果题(本题共5小题,每题5分,共25分)
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{unsigned a=021, x,y;
int n=5;x=a<<(16-n);
printf("x=%o\t",x);
y=a>>n;
printf("yl=%o\t",y);
y|= x;
printf("y2=%o
",y);
getch();}
答案:x=104000 yl=0 y2=104000
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char a=0x92,b,c;
b=(a&0xf)<<4;
c=(a&0xf1)>>4;
a=b|c;
printf("%x
",a);
getch();}
答案:29
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{unsigned char a,b;
a=0x91;b=0xa3;
printf("a AND b:%x
",a&b);
printf("a OR b:%x
",a|b);
printf("a NOR b:%x
",a^b);
getch();}
答案:
a AND b:81
a OR b:b3
a NOR b:32
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{unsigned char x,y,z;
x=0x13;
y= x|0x5;
z=x<<1;
printf("%d,%d
",y,z);
getch();}
答案:23,38
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x=0x02ff,y=0x0ff00;
printf("%d
",(x&y)>>4|0x005f);
getch();}
答案:127
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处5分,共10分)
31.下列程序的功能是将char型变量x中的大小写字母进行转换(即:大写字母变小写字母,小写字母变大写字母),题目中有两处错误,请你找出并改正。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {char x,y;
L5 printf("请你输入一个字符:");
L6 scanf("%c",x);
L7 y=x&32;
L8 printf("%c",y);
L9 getch();}
答案:
L6 scanf("%c",&x);
L7 y=x^32;
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空5分,共15分)
32.下面程序的功能是实现左右循环移位,当输入位移的位数是一正整数时循环右移,输入一负整数时循环左移。请填空。
#include <stdio.h>
#include<conio.h>
int moveright(int value, int n )
{ int z;
z=(value>>n)|(value<<(16-n));
return(z);}
int moveleft(int value,int n )
{ int z;
z= ① ;
return(z);}
main()
{int n,a;
printf("请输入一个八进制数:");
scanf("%o",&a);
printf("请输入位移的位数 :");
scanf("%d",&n);
if ( ② )
{printf("循环右移的结果为:%o
",moveright(a,n));}
else
{ ③ ;
printf("循环左移的结果为:%o
",moveleft(a,n));}
getch();}
答案:①(value<<n)|(value>>(16-n)) ②n>0 ③n=-n
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目一: 基本数据类型与简单程序设计
第6卷: 位运算符和位运算
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共25小题,每小题2分,共50分)
1.若有位运算符:<<、>>、∧、&、|及长度运算符sizeof,则它们按照优先级由高到低的正确排列次序是( )
A.sizeof、&、|、<<和>>、∧ B.sizeof、&、∧、|、<<和>>
C.sizeof、<<和>>、&、∧、| D. sizeof、&、∧、<<和>>、|
2.sizeof(double)是( )
A.一种函数调用 B.一个不合法的表示形式
C.一个整型表达式 D.一个浮点表达式
3.已有定义:int a=0x15,b=017;执行语句:printf("%d",a&b);后的输出结果是( )
A.0x15 B.05 C.017 D.5
4.已有定义:int a=054,b=017;执行语句:printf("%o",a^b);后的输出结果是( )
A.47 B. 43 C.45 D.42
5.已有定义:int a=44,b=17;执行语句:printf("%d",a|b);后的输出结果是( )
A.60 B.61 C.62 D.63
6.已有定义:int a=12;执行语句:printf("%d",a>>1);后的输出结果是( )
A.24 B.6 C.8 D.3
7.已有定义:int a=022;执行语句:printf("%d",a<<2);后,的输出结果是( )
A.72 B.71 C.70 D.4
8.已有定义:int a=071,b=12;执行语句:printf("%d",a<<2&b);后的输出结果是( )
A.4 B.57 C.71 D.5
9.已有定义:int a=7,b=12;执行语句:printf("%o",a^b);后的输出结果是( )
A.11 B.C C.12 D.13
10.已有定义:int a=-7,b=12;执行语句:printf("%d",~a^b);后的输出结果是( )
A.11 B.10 C.12 D.13
11. 已有定义:int a=015,b=12;执行语句:printf("%d",a|b>>2);后的输出结果是( )
A.13 B.14 C.15 D.3
12.在位运算中,操作数每右移一位,其结果相当于( )
A.操作数乘以2 B.操作数除以2 C.操作数除以4 D.操作数乘以4
13.在位运算中,操作数每左移一位,其结果相当于( )
A.操作数乘以2 B.操作数除以2 C.操作数除以4 D.操作数乘以414.已有定义:int t=126;执行语句:printf("%x",t^00);后的输出结果是( )
A.126 B.127 C.7e D.7E
15.已有定义:int x=3,y=6;执行语句:printf("%d",x^y<<2);后的输出结果是( )
A.20 B.24 C.21 D. 27
16.已有定义:int x=25;执行语句:printf("%d",~x);后的输出结果是( )
A.-26 B.26 C.25 D.-25
17.已有定义:char x,y;执行语句:x=5^3;y=~4&4;printf("%d,%d
",x,y);后的输出结果是( )
A.1,0 B.1,4 C.6,0 D.6,4
18.若“int a=5,b;”,执行:b=a>>2;”后,b的值为( )
A.10 B.20 C.1 D.2
19.已知:int a=1,b=2,c=3,x;x=(a^b)&c;,则x的值为( )
A.0 B.1 C.2 D.3
20.已知;int a=3,a+=a^2;则a的值为( )
A.12 B.9 C.6 D.4
21.已有定义:int a=1,b=2;执行语句:a=a^b;b=b^a;a=a^b;printf("%d,%d",a,b);后的输出结果是( )
A.1,2 B.2,1 C.2,2 D.1,1
22.已有定义:int x=68;执行语句:printf(“%c,%d”,x,~x);后的输出结果是( )
A.D,69 B.D,-69 C.68,69 D.68,-69
23.已有定义:char a=3,b=6,c;执行语句:c=a^b<<2;后,变量c中的二进制值是( )
A.0001 1011 B.0001 0100 C.0001 1100 D.0001 1000
24.已有定义:int a=3;执行语句:a=2%a<<2;printf(“%d”,a);的输出结果是( )
A.8 B.9 C.10 D.11
25.已有定义:int x=012,y=12;执行语句:printf("%o",x&y>>1);后的输出结果是( )
A.2 B.3 C.4 D.5
二、程序运行结果题(本题共5小题,每题5分,共25分)
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{unsigned a=021, x,y;
int n=5;x=a<<(16-n);
printf("x=%o\t",x);
y=a>>n;
printf("yl=%o\t",y);
y|= x;
printf("y2=%o
",y);
getch();}
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char a=0x92,b,c;
b=(a&0xf)<<4;
c=(a&0xf1)>>4;
a=b|c;
printf("%x
",a);
getch();}
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{unsigned char a,b;
a=0x91;b=0xa3;
printf("a AND b:%x
",a&b);
printf("a OR b:%x
",a|b);
printf("a NOR b:%x
",a^b);
getch();}
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{unsigned char x,y,z;
x=0x13;
y= x|0x5;
z=x<<1;
printf("%d,%d
",y,z);
getch();}
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{int x=0x02ff,y=0x0ff00;
printf("%d
",(x&y)>>4|0x005f);
getch();}
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处5分,共10分)
31.下列程序的功能是将char型变量x中的大小写字母进行转换(即:大写字母变小写字母,小写字母变大写字母),题目中有两处错误,请你找出并改正。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {char x,y;
L5 printf("请你输入一个字符:");
L6 scanf("%c",x);
L7 y=x&32;
L8 printf("%c",y);
L9 getch();}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空5分,共15分)
32.下面程序的功能是实现左右循环移位,当输入位移的位数是一正整数时循环右移,输入一负整数时循环左移。请填空。
#include <stdio.h>
#include<conio.h>
int moveright(int value, int n )
{ int z;
z=(value>>n)|(value<<(16-n));
return(z);}
int moveleft(int value,int n )
{ int z;
z= ① ;
return(z);}
main()
{int n,a;
printf("请输入一个八进制数:");
scanf("%o",&a);
printf("请输入位移的位数 :");
scanf("%d",&n);
if ( ② )
{printf("循环右移的结果为:%o
",moveright(a,n));}
else
{ ③ ;
printf("循环左移的结果为:%o
",moveleft(a,n));}
getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$