实验二 运算符和表达式
更新时间:2023-12-04 09:35:01 阅读量: 教育文库 文档下载
- 实验二中推荐度:
- 相关推荐
实 验 指 导 书 实验二 运算符和表达式
实验时间:2010年10月8日
【实验目的】
1、掌握C语言各种基本数据类型的定义和表示方法; 2、掌握变量的定义、赋值方法; 3、掌握基本运算符的功能及其应用; 4、掌握基本运算符的优先级和结合性; 5、掌握表达式的概念及运算规则; 6、掌握常用数据类型的转换规则。
【实验内容】
1、常用基本数据类型的存储长度,求字节运算符的使用; 2、运算符及其表达式的应用; 3、数据类型的自动转换与强制转换。
【实验步骤】
一、在E或F盘上建立以自己的学号命名的文件夹。 二、内容与步骤 1、求字节运算符的使用
利用sizeof()函数,了解C语言各种数据类型所占用的存储空间大小,将编写的源程序以文件名ex2_1.c保存在自己的文件夹内,并将结果填在下表内。 数据类型 char int float ⑴、/*ex2_2.c*/ #include
#define PRICE 12.5 main()
{ int num=3; float total; char ch1,ch2=?D?; total=num*PRICE; ch1=ch2-?A?+?a?;
printf(“total=%f,ch1=%c\\n”,total,ch1); }
⑵、/*ex2_3.c*/ # include
- 1 -
长度(字节) long 数据类型 short double 长度(字节) 2、写出下列程序运行的结果
实 验 指 导 书
{
int i, j, k; int m, n, p; i = 8; j = 10; k = 12;
/* 自增在操作数之前 */ m = ++i; printf(\printf(\ /* 自减在操作数之后 */ n = j--;
printf(\ printf(\ /* 自增、自减的混合运算 */ p = (++m)*(n++)+(--k); printf(\ printf(\}
3、运算符的优先级别和结合性:请写出下列程序运行的结果,并进行分析。 /*ex2_4.c*/ #include
printf(“x=%d\\ty=%d\\tz=%d\\n”,x,y,z); /*”\\t”为按横向跳格格式输出*/ x=y=z=-1; ++x||++y&&++z;
printf(“x=%d\\ty=%d\\tz=%d\\n”,x,y,z); x=y=z=-1; ++x&&++y&&++z;
printf(“x=%d\\ty=%d\\tz=%d\\n”,x,y,z); }
4、位运算符的使用
位运算符C语言提供了六种位运算符:
- 2 -
实 验 指 导 书
& 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 ⑴按位与运算
按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5
可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。
按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。
⑵按位或运算
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。 例如:9|5
可写算式如下: 00001001|00000101 00001101 (十进制为13)可见9|5=13 main() {
int a=9,b=5,c; c=a|b;
printf(\}
⑶按位异或运算
按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现, 例如9^5
可写成算式如下: 00001001^00000101 00001100 (十进制为12) /*ex2_5.c*/ #include
- 3 -
实 验 指 导 书
a=a^15;
printf(\}
⑷求反运算
求反运算符~为单目运算符,具有右结合性。 其功能是对参与运算的数的各二进位按位求反。 例如~9
运算为: ~(0000000000001001)结果为:1111111111110110 /*ex2_6.c*/ #include
printf(“b=%d\\n\}
⑸左移运算
左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如: a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
⑹右移运算
右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。 例如:设 a=15,a>>2
表示把000001111右移为00000011(十进制3)。 应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时, 最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。Turbo C和很多系统规定为补1。
5、程序调试与编程
(1)求圆锥体积,判定下列程序是否正确: main( ) {
int r=5, h=15; double v; v=1/3*3.14*r*r*h; printf(“v=%f ”,v); }
并将修改后的程序,以ex2_7.c保存在自己的文件内。
- 4 -
实 验 指 导 书
(2)计算下面各程序段的输出结果 int a=3,b=2,c; ① b*=a+4*3%5; printf(\,b ); ② a=8; a*=b=c=3;
printf(\,%d“,a,b); ③ a=5+(c+=3);
printf(\,%d“,a,c);
并将编译运行后的程序,分别以ex2_8.c、ex2_9.c、ex2_10.c命名,保存在自己的文件内。
(3)已知:a=3,b=2, c =1, 编程计算并输出下面各表达式的值, ①c > a+b ②a>b== c ③a==b
并将编译运行后的程序,以ex2_11.c命名,保存在自己的文件内。 (4)计算下面各程序段的输出结果
①int i=2 ; float f =3.6; double d=3.2; long int e=45; 10+?a?+i*f-d/e ; ②char st=?a? ; printf(“%d”,st); ③int a; double b=3.25 ; a=(int)b+8; printf(“%d, %f ”,a,b); ④ main( ) {
int a=1,b=2,c=3,d=4; int m, n=1; m=a>b&&(n=c>d);
printf(\ }
⑤ int a , b ,c ;
c=( a=1 , b = 3 , a+b ) ⑥ x = ( a=3, 6*a ) x = a = 3, 6*a ⑦ int x=5, y=2, z ;
- 5 -
实 验 指 导 书
z = sizeof( x > y? 1 : 1.5 ); ⑧ int a=1,b=2,c=3,d=4,m ; m = a>b ? a : c>d ? c :d ;
并将编译运行后的程序,分别以ex2_12.c、ex2_13.c、ex2_14.c、ex2_15.c、ex2_16.c、ex2_17.c、ex2_18.c、ex2_19.c、ex2_20.c命名,保存在自己的文件夹内。
【实验小结】
应知:
1、基本运算符的功能及其应用; 2、基本运算符的优先级和结合性; 3、基本数据类型及其转换。 应会:
1、各种运算符及其表达式的应用; 2、各种表达式的正确表示; 3、数据类型转换规则。
【实验思考】
1、请说明自增/自减运算符(++/--)前置运算和后置运算的区别。 2、试列出常用几种运算符的优先级别与结合方向。 3、数据类型转换的规则是什么?
- 6 -
正在阅读:
实验二 运算符和表达式12-04
个人实习工作总结报告优选例文04-03
C#设计由按钮类控件实现的功能窗体实验05-06
石家庄市系统集成公司名录2018版864家 - 图文01-21
l论文题目参考题目04-25
午夜随想04-16
MySQL数据库技术教案05-19
环境监测考试基础知识精选试题11-28
较难的典型分数应用题讲解 209-25
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 运算符
- 表达式
- 实验