《C语言程序设计上机指导》项目八枚举与位运算

上传人:206****923 文档编号:51719004 上传时间:2018-08-16 格式:PPTX 页数:56 大小:415.10KB
返回 下载 相关 举报
《C语言程序设计上机指导》项目八枚举与位运算_第1页
第1页 / 共56页
《C语言程序设计上机指导》项目八枚举与位运算_第2页
第2页 / 共56页
《C语言程序设计上机指导》项目八枚举与位运算_第3页
第3页 / 共56页
《C语言程序设计上机指导》项目八枚举与位运算_第4页
第4页 / 共56页
《C语言程序设计上机指导》项目八枚举与位运算_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《《C语言程序设计上机指导》项目八枚举与位运算》由会员分享,可在线阅读,更多相关《《C语言程序设计上机指导》项目八枚举与位运算(56页珍藏版)》请在金锄头文库上搜索。

1、项目八 枚举与位运算任务一 关于枚举实验任务二 关于位运算实验本章重点文本枚举列举变量的列举方 法。位运算的功能和规则任务一 关于枚举实验一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析实验描述枚举应用实验。 实验目的(1)了解枚举类型与#define类型的不 同。(2)正确的使用枚举类型变量。一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析任务实施实验8-1-1 枚举类型元素引用示 例 源程序8-1-1: #include void main( ) 一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析enum emem1=3,em2=1

2、,em3;char *aa= “AA”,”BB”,”CC”,”DD”;printf(“%s%s%sn”,aaem1, aaem2,aaem3); 一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析实验结果A不见了一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析实验结果C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出 某个枚举元素的值,它的上一个元素存在 并有明确值的情况下,这个枚举元素的值 为其上一个元素的值+1。一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析在实验中,没有明确说明枚举元 素em3的值,则em3=e

3、m2+1=1+1=2,进而 可知,在printf( )打印函数中,要打印的数 组元素是aa3,aa1,aa2。一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析实验结果 源程序8-1-1: #include void main( ) enum emem1=3,em2=1,em3;char *aa=一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析“AA”,”BB”,”CC”,”DD”;printf(“%s%s%sn”,aaem1, aaem2,aaem3); 一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析注意:1、printf(“%s”

4、,em1)不能输出字 符串“em1”。em1为常数值的别名,而不是字符串。2、不能这样定义枚举类型:比如 “enum em0,1,2;”。一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析思考那么若要完整的打印出char *aa的赋值我们就要修改源程序?一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析实验结果结果就是:修改后的源程序我们将得到对a的所有赋值!一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析任务考核 实验8-1-2 枚举类型元素引用示例#includeint main()enum一、关于枚举实验任务一 关于枚举实验二、实验

5、考核三、典型例题及解 析colorred,black,yellow,blue,whitei,j,pa;int n=0,loop;for(i=red;i void main() typedef enum一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析daysunday,monday,tuesday,wendsday,th ursday,friday, stadurdayday; day today; today = monday; if (today = sunday | today = stadurday)一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析

6、 printf(“休息日n”); else printf(“工作日n”); 一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析分析:我们在此实验中发现一个有趣 的表达式“day today;”,根据我们所学的知识,我们知道一、关于枚举实验任务一 关于枚举实验二、实验考核三、典型例题及解 析enumdaysunday,monday,tuesday,wednesda y,thursday,friday,saturday;这句定义了符号化的常量sunday ,monday等等。在下面的程序中,可以声 明枚举型变量day today,对其赋值,或者判断它的值。一、关于枚举实验任务一

7、关于枚举实验二、实验考核三、典型例题及解 析而且声明枚举变量时,编译器不 必检查变量中存储的是否是合法的枚举有 效值,但枚举变量则提供了检查的机会。任务二 关于位运算实验一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析实验描述位运算应用实验 实验目的(1)加深对二进制的认识。(2)理解位运算的概念、各种位运算的功能和规则,学会采用适当的位运算修 改数据的某些位。一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析(3)了解位段的概念和位段类型数据的引用形式。一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析任务实施实验8-

8、2-1输入并运行以下程序 (关于位、与、或的实验),分析程序运 行结果。 源程序8-2-1 # include int main()一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析int c,d,e;int a=6,b=12;c=ad=ab;e=ab;printf(“%d一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析printf(“%d%d=% dn”,a,b,d);printf(“%d%d=%dn”,a,b,e);return 0;一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析实验结果根据位、与、或的用法我们可

9、 以得出结果:6. if ( 18 a | a 60) . 程序如何改?一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析实验结果一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析实验考核 任务要求:1. 编写程序,取出一个16位二 进制数的奇数位(即从左边起第3,5, 15位)。2. 编写程序,从终端读入十六 进制无符号整数m,将m中的原始数据循环右 移n位,并输出移位前后的内容。一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析实验考核答案1# include int main() unsigned getbits(u

10、nsigned);unsigned int a;printf(“n input an octal number:”);一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析scanf(“%o”,printf(“result:%on” ,getbits(a);return 0; unsigned getbits (unsigned value) 一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析int i,j;unsigned int z,a,q;z=0;for(i=1;i(16-i);a=a15;Z=z+a*q;return(z);一、关于位运算实

11、验任务二 关于位运算实验二、实验考核三、典型例题及解 析实验考核答案2# includeint main()unsigned rightrot(unsigned,int n);unsigned int m,b;int n;一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析printf(“n input m and n”);scanf(“%x,%d”,printf(“m=%x,n=%dn”,m,n);b=rightrot(m,n);printf(“b=%xn”,b);return 0;一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析unsigne

12、d rightrot(unsigned a,int n)int rb;while(n0)rb=(aa=arb;return(a);一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析典型例题例8-2-6设有以下语句,则c的 二进制数是( ),十进制数是( )。char a=3,b=6,c;c=abmain()unsigned char a,b,c;a=0x3;b=a0x8;c=b1;一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析printf(“%d,%dn”,b,c); A-11,12 B-6,-13 C12,24 D11,22 答案:D一、关于位运算实 验任务二 关于位运算实验二、实验考核三、典型例题及解 析分析:a对应的二进制数为011,与0x8进行按位或运算后,b的值为1011,对应十进制 数为11,左移一位相当于原数乘以2,故c 的值为22。THANK YOU

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号