任务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();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务6:位运算符和位运算  《编程语言-C语言》45分钟专题训练-第1页
1
任务6:位运算符和位运算  《编程语言-C语言》45分钟专题训练-第2页
2
任务6:位运算符和位运算  《编程语言-C语言》45分钟专题训练-第3页
3

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。