实验二 运算符和表达式

合集下载

实验2 运算符和表达式

实验2  运算符和表达式

实验2 运算符和表达式实验目标编写简单程序完成数学公式的程序表达方法。

实验目的验证C/C++语言的常用运算符、表达式的作用。

实验内容按照上次实验课的做法,创建一个空的Win32控制台项目(给它起一个有意义的名字),添加一个源文件(cpp文件)。

分别将下面的代码输入到cpp文件中,中编译运行以验证各种运算符的作用。

(1)算术运算符:加:+ 减:- 乘:* 除:/ 模:%(2)关系与逻辑运算符。

关系运算符:小于‘<’大于‘>’小于等于‘<=’大于等于‘>=’不等于‘!=’逻辑运算符:与‘&&’(条件同时成立)或‘||’(任一条件成立)非‘!’(取相反条件)。

main函数代码如下:练习1填空题:在下划线处补充完整if语句的条件表达式,要求条件表达式能与对应的输出相符。

/*****代码1 比较运算符*****/#include <iostream>using namespace std;int main(){int x=9;if ( )cout << "x小于10" << endl;if ( )cout << "x不小于5" << endl;if ( )cout << "x小于10并且x不小于5";return 0;}/*****代码2 加一与减一运算符*****/#include <iostream>using namespace std;int main(int argc, char* argv[]){int i,j;cout << "请输入一个整数i=";cin >> i;cout << endl;cout << "原来i = " << i << endl;cout << " j = i++ = " << (________) << ",\t 要求:j为i 加之前的值。

实验报告_实验2 数据类型与表达式

实验报告_实验2 数据类型与表达式

实验报告_实验 2 数据类型与表达式(学生学号__姓名)一、实验目的:1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;3、熟悉字符常量与一般常量的定义、使用;4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。

二、实验内容1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。

回答下列问题:(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。

可以。

(2)整数的占用长度与其数值大小有关吗?答:有。

(3)字符串中’\’’、’\n’、’\t’的功能各是什么?答:单引号,换行,水平制表。

(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?答:1个字节;4个字节;结束符‘\0’。

(5)整数的存储形式是什么?答:二进制补码。

2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。

回答下列问题:(1)字符数据在内存中是以什么方式存储的?答: ASCII码。

(2)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符”方式输出字符?答:能,整数:”%d”,字符:”%c”。

(3)大小写字母的ASCII有什么关系?(如:’G’与’g’)答:ASCII码相差32。

(4)如何由’A’、’a’分别得到后续的大写字母、小写字母?答:’A+1’,’a+1.’(5)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个字符吗?若能,如何得到?答:两个ASCII码绝对值相减,’a’-5,’a’+10.(6)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’?答:”C”字符串,’c’字符,能.3、(基础题)符号常量与常变量(即用const关键字定义)的使用:回答问题:(1)写出用符号常量定义PI的格式;#define PI(2)写出用“常变量”方式定义PI值的语句。

实验2-1数据类型、运算符与表达式

实验2-1数据类型、运算符与表达式

实验2-1 数据类型、运算符与表达式1【实验目的】(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法(2)掌握不同类型数据之间赋值的规律(3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(- -)运算符的使用(4)进一步熟悉C程序的编辑、编译、连接和运行的过程【实验要求】(1)熟练掌握C程序的调试方法(2)熟练掌握常量和变量的定义及使用(3)熟练掌握算术运算符和逗号运算符的使用方法【实验环境】(1) Microsoft XP操作系统(2) Microsoft VC++ 6.0【实验内容】1、程序改错题目描述:阅读下面程序段,编译调试程序,并改正错误语句。

#include <stdio.h>#define PI 3.14159;int main(){float r;PI=3.14159;scanf("%.2f",r);float area;area=PI*r*r;printf("%.2f",area);return 0;}输入:输入半径输出:修改程序段,输出园的面积样例输入:1样例输出:3.142、常量变量练习/sdutoj/problem.php?action=showproblem&problemid=1111题目描述:用c语言的基本输出格式打印下列内容:100A3.140000输入:本题目没有输入数据输出:输出三行数据:100A3.140000示例输入:无示例输出:100A3.1400003、整数求和/acmhome/problemdetail.do?&method=showdetail&id=1001题目描述:求两个整数之和。

输入:输入数据只包括两个整数A和B。

输出:两个整数的和。

样例输入:1 2样例输出:34、交换两个整数的值/sdutoj/problem.php?action=showproblem&problemid=1115题目描述:输入两个变量的值,由终端输入两个整数给变量x、y,然后交换x和y的值后,输出x和y。

实验2-转义字符、类型转换、运算符

实验2-转义字符、类型转换、运算符

实验2 Java符号与表达式2.1 实验目的(1)熟悉基本数据类型及其占用空间大小,熟悉标识符的定义特点;(2)熟悉常见转义字符的含义;(3)掌握不同类型数据的赋值转换原则,熟悉自动转换与强制转换的含义;(4)掌握常用运算符的使用。

2.2 知识要点2.2.1 基本数据类型、变量(1)标识符的命名原则:以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。

(2)基本数据类型(见表2-1)表2-1 基本数据类型●八进制表示形式:以0(零)开头,如:012;●十六进指表示形式:以0x开头,如:0xa1;●整数默认int型,长整数可在后面加L;●实数默认双精度型,要明确表示为float型在数据后加F。

●布尔型数据只有true和false两个值;●字符型数据是用单引号括起来。

2.2.2 特殊字符—转义符Java字符采用Unicode编码。

“\”(反斜杠)在字符表示或字符串中有特殊作用,它和之后的字符合并解释,用于表示一些特殊字符。

见表2-2。

表2-2 常见转义符2.2.3 自动类型转换与强制类型转换(1)自动转换次序byte-->short→char→int→long→float→double按照箭头所示方向,处于左边的数据类型的数据可以自动转换赋值给右边的数据类型的变量,但反之,将处于右边的数据类型的数据赋值给处于左边的数据类型的变量必须经过强制转换。

(2)布尔类型不能与其他类型进行转换;(3)赋值时强制转换可能导致数据丢失精度。

2.2.4 输出语句的使用(1)print()方法与println()的差异是前者输出后不换行,而后者换行。

(2)输出时可以通过“+”号将任何数据与字符串拼接。

如果拼接的是基本类型变量,则在其位置输出变量值,如果是对象,则在其位置输出对象的toString()方法的返回结果。

2.2.5 容易用错的运算符(1)++或--的位置相关性。

不妨假设原来a值为4,则使用++或--运算符后的结果如表2-3所示。

实验三--运算符和表达式-实验报告

实验三--运算符和表达式-实验报告

实验三--运算符和表达式-实验报告计算机科学与工程学院天津理工大学计算机科学与工程学院实验报告20__至20__学年第一学期课程名称程序设计(C 语言)学号学生姓名班级级专业计算机科学与技术(合作)实验地点 7-215 实验项目运算符与表达式实验时间批改意见成绩教师签字:实验(一))实验名称运算符与表达式开发环境 PC 机,windows7 操作系统开发工具 VC6.0 实验目的(1 1 )掌握 C C 语言中常用运算符的基本功能,以及优先级与结合性;(2 2 )正确使用运算符和数据实体构建表达式,并表达式的计算过程;(3 3 )进一步熟悉 0 Visual C++6.0 开发环境下调试程序的基本步骤。

实验要求认真完成实验内容,编写程序代码;要求程序正确无误,并输出合理的实验结果;书写并提交实验报告。

实验内容(应包括实验题目、代码实现、编译、运行结果等,也可给出程序的算法描述、重点程序语句的注释等。

))(2)建立项目文件,运行下列程序,并记录程序执行的结果:#include<stdio.h> void main {int a,b,c,d;printf(“Input a, b\n”);scanf(“%d, %d”, ;a, ;b);c=(a++)+(b++);printf(“c=%d\n”, c);d=(++a)+(++b);printf(“d=%d\n”, d); } ○1 如果从键盘输入 3,5 给变量 a 和 b,记录程序执行结果为:c=10d=8○2 如果仅将程序中语句“c=(a++)+(b++);” 修改为“c=(a--)+(b--);” 并从键盘输入 3,5给变量 a 和 b,则程序运行结果为:c=6d=8○3 如果仅将程序中语句“c=(++a)+(++b);” 修改为“c=(--a)+(--b);” 并从键盘输入 3,5给变量 a 和 b,则程序运行结果为:c=8d=8(7)建立项目文件,并在源文件中正确书写下列表达式,同时在屏幕上打印出表达式的运算结果。

c语言程序设计实验指导答案

c语言程序设计实验指导答案

太原理工大学现代科技学院C语言程序设计课程实验报告专业班级学号姓名指导教师焦雄5.#include <stdio.h> void main(){int a=10,n=5;a+=a;printf("%d\n",a);a=10,a-=2;printf("%d\n",a);a=10,a*=2+3;printf("%d\n",a);a=10,a/=a+a;printf("%d\n",a);a=10,a%=(n%=2);printf("%d\n",a);a=10,a+=a-=a*=a;printf("%d\n",a); }遇到的问题和解决方法心得体会实验三简单程序、分支程序和循环程序设计实验名称实验目的和要求1.理解C语言程序的基本结构和实现基本结构的语句;2.熟练应用赋值、输入和输出语句;3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;4.熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;实验内容1.输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。

2.输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。

3.已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。

4.输入一百分制成绩,输出成绩等级A、B、C、D、E。

90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。

要求程序能处理错误的输入数据。

5.利用公式:π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。

(fabs(t)表示t的绝对值,1e-6=1*10-6)。

6.求100-200间所有素数。

7.输出三角形的九九乘法口诀表。

8.打印水仙花数。

水仙花数是指一个3位数,其各位数字立方和等于该数本身。

实验报告实验2 数据类型与表达式

实验报告实验2 数据类型与表达式

实验报告_实验 2 数据类型与表达式(学生学号__姓名)一、实验目的:1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;3、熟悉字符常量与一般常量的定义、使用;4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。

二、实验内容1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。

回答下列问题:(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。

可以。

(2)整数的占用长度与其数值大小有关吗?答:有。

(3)字符串中’\’’、’\n’、’\t’的功能各是什么?答:单引号,换行,水平制表。

(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?答:1个字节;4个字节;结束符‘\0’。

(5)整数的存储形式是什么?答:二进制补码。

2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。

回答下列问题:(1)字符数据在内存中是以什么方式存储的?答: ASCII码。

(2)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符”方式输出字符?答:能,整数:”%d”,字符:”%c”。

(3)大小写字母的ASCII有什么关系?(如:’G’与’g’)答:ASCII码相差32。

(4)如何由’A’、’a’分别得到后续的大写字母、小写字母?答:’A+1’,’a+1.’(5)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个字符吗?若能,如何得到?答:两个ASCII码绝对值相减,’a’-5,’a’+10.(6)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’?答:”C”字符串,’c’字符,能.3、(基础题)符号常量与常变量(即用const关键字定义)的使用:回答问题:(1)写出用符号常量定义PI的格式;#define PI 3.14(2)写出用“常变量”方式定义PI值的语句。

C语言实验报告数据类型、运算符和表达式

C语言实验报告数据类型、运算符和表达式
2.参考例题2-2完成题目:
设圆半径r=1.5圆柱高h=3求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积,输入结果要有文字说明,如The area is 7.06
(其中π定义;圆周长2πr、圆面积πr2、圆球表面积4πr2、圆球体积4/3πr3、圆柱体积πr2h)
四实验结果与数据处理四实验结果与数据处理四实验结果与数据处理五分析与讨论五分析与讨论五分析与讨论这次上机操作无实例可看一看题目毫无头绪经过同学的指点和自己的这次上机操作无实例可看一看题目毫无头绪经过同学的指点和自己的这次上机操作无实例可看一看题目毫无头绪经过同学的指点和自己的实践才得以完成任务需要多加练习
3.设计算法输入一个四位正整数,将它们倒排,例如输入1234,输出4321。(提示:分别应用/求整数部分,%求余数部分。例如7/5=1,7%5=2)。
4.参考例题2-10完成题目:
要将”CHINA”译成密码,密码规律是:用原来的字幕后面第4个字母代替原来的字母,例如字母’A’后面第4个字母是’E’,用’E’代替’A’。因此”CHINA”应该翻译成”GLMRE”。请编写一个程序将”CHINA”运算后变成”GLMRE”并输出。
《高级语言程序设计》实验报告
实验序号:2实验项目名称:数据类型、运算符和表达式
学 号
实验地点
一、实验目的及要求
1.学会使用基本数据类型
2.熟练使用C常量、变量和表达式
3.使用格式化输入输出函数
二、实验设备(环境)及要求
使用turbo c 2.0+windows系列操作系统的环境。
三、实验内容与步骤
1.看懂并上机验证例题2-1---2-24。
四、实验结果与数据处理
2.
3.
4.
五、分析与讨论

C语言运算符和表达式-实验报告

C语言运算符和表达式-实验报告

中山大学南方学院电子通信与软件工程系课程名称:高级语言程序设计实践实验题目:运算符和表达式附:实验报告专业:年级:完成日期:学号:姓名:成绩:一、实验目的1、能够使用C语言进行简单的算术运算、关系运算和逻辑运算。

2、掌握不同的类型数据之间赋值的规律。

3、进一步熟悉C语言程序的编辑、编译和运行的过程。

二、实验原理1、用int定义整型变量来存放整数;2、用float定义浮点数变量来存放小数;3、使用scanf() 函数从键盘输入两个整型数据,并赋值给两个变量。

三、实验过程1、算术运算实验代码如下:#include <stdio.h>#include <stdlib.h>int main(){int a=2, b=3;float x=3. 9, y=2. 3;float result;result=(float) (a+b) /2+(int) x%(int) y;return result}输出结果如图:2、算术运算实验代码如下:#include <stdio.h>#include <stdlib.h>int main(){int number;int a1, a2, a3;printf("请输入一个三位数:");scanf("%d", &number) ;a1=number%10;number=number/10;a2=number%10;a3=number/10;printf("三位数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",number,a1, a2, a3) ;return 0;}输出结果如图:3、关系运算与逻辑运算实验代码如下:#include <stdio.h>#include <stdlib.h>int main(){int x;printf("输入x的值:") ;scanf("%d", &x) ;printf("表达式(x>0)的值:%d\n", x>0) ;printf("表达式(x>=-20&&x<=-10)的值:%d\n", x>=-20&&x<=-10) ;printf("表达式(x>=100||x<10)的值:%d\n", x>=-20&&x<=-10) ;printf("表达式(x>20&&x%3==0的值:%d\n", x>20&&x%3==0) ;if(x%5==0&&x%3==0)printf("yes\n") ;elseprintf ("no\n") ;return 0;}输出结果如图:4、综合任务实验代码如下:#include <stdio.h>#include <stdlib.h>int main(){int grad1, grad2;scanf("%d%d", &grad1, &grad2) ;printf("表达式(grad1>=0&&grad1<=100)值:%d\n",grad1>=0&&grad1<=100);printf("表达式(grad2>=0&&grad2<=100)值:%d\n",grad2>=0&&grad2<=100);printf("%d", grad1>grad2? grad1:grad2) ;return 0;}输出结果如图:四、思考并回答以下问题1、举例说明逻辑运算符的短路特性。

实验二 数据类型与运算符实验报告

实验二   数据类型与运算符实验报告

XXX大学软件类实验报告
课程名称:C语言程序设计学号:
姓名:
班级:
指导教师:
开课学期:
学院:
XXX大学教务处
3.变量初始化与变量赋值。

四、实验过程及内容:(运行结果请抓图到对应题目的下方)
1.输入下列源程序,进行修改、编译、连接和运行。

2.分析下面的程序并上机验证运行结果。

实验结果:
3.分析下面的程序并上机验证运行结果。

实验结果:
4.分析下面的程序并上机验证、修正后使程序结果和要求一致,a,b,c分别为x的百位、十位和个位。

5.分析下面的程序并上机验证运行结果。

实验结果:
6.程序填空题。

从键盘输入3个整数a、b、c,把b中的值赋给a,把c中的值赋给b,把a的值赋给c,再输出a、b、c的值,要求程序运行结果。

(提示:使用中间变量)。

五、实验小结。

07级_实验二_用算符优先分析法进行表达式分析

07级_实验二_用算符优先分析法进行表达式分析
else
return ('*');
}
/**********************************/
int Operate(int a,int b,SYMBOL o)
{
switch (o)
{
case PLUS: return a+b;
case MINUS: return a-b;
case TIMES: return a*b;
若θ1和θ2之间无优先关系,则报错。
2、源程序提示
利用以前实验进行单词识别,并自组织工程文件,关于算符优先算法要用到的部份函数提示如下。
[1]一些自定义的变量和函数的声明
#define MAX 255
SYMBOLtitle[7]= {PLUS,MINUS,TIMES,SLASH,LPAREN,RPAREN,SHAP};//用来将相应的种别码与数组下标进行映射
θ2
θ1
+
-
*
/
(
)
#
+
>
>
<
<
<
>
>
-
>
>
<
<
<
>
>
*
>
>
>
>
<
>
>
/
>
>
>>
(
<
<
<
<
<
=
)
>
>
>
>

C语言程序设计实验报告——实验2 数据类型、运算符和表达式

C语言程序设计实验报告——实验2  数据类型、运算符和表达式

凯里学院 C 语言程序设计 实验报告××××× 专业×× 年级×× 班,学号×××××× 姓名××成绩 合作者 实验日期 年 月 日 指导教师 评阅日期 年 月 日实验二 数据类型、运算符和表达式一、实验目的:(1)掌握C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

(2)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。

(3)掌握C 语言的输入和输出函数的使用(4)进一步熟悉C 程序的编辑、编译、连接和运行的过程,学会使用step by step 功能。

(5)认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。

二、实验内容:(1)输人并运行下面的程序 #include<stdio.h> void main() {char c1,c2; c1='a'; c2='b';printf("%c %c\n",c1,c2); }(2)按习题3. 7的要求编程序并上机运行 该题的要求是:要将“China ”译成密码,密码规律是:用原来字母后面的第4个字母代替原来的字母。

例如,字母“A ”后面第4个字母是“E ”,用“E ”代替“A ”。

因此,“China ”应译为“Glmre" 。

请编一程序,用赋初值的方法使。

cl ,c2,c3,c4,c5五个变量的值分别为‘C ’、‘h ’、‘i ’、‘n ’、‘a ’,经过运算,使cl ,c2,c3,c4,c5分别变为‘G ’、‘l ’、‘m ’、‘r ’、‘e ’,并输出。

三、实验步骤:(1)输人并运行下面的程序 #include<stdio.h> void main() {char c1,c2; c1='a'; c2='b';printf("%c %c\n",c1,c2); }装订线装订线① 运行此程序。

实验2-数据类型、运算符、表达式、基本输入输出与结构控制

实验2-数据类型、运算符、表达式、基本输入输出与结构控制

实验2 数据类型、运算符、表达式、基本输入输出与结构控制一、实验目的1. 了解C++语言中数据类型的意义。

2. 理解常用运行符的意义,C++语言表达式的运行规则。

3. 掌握C++的基本输入输出格式。

4. 掌握各种选择语句的使用。

5. 掌握各种循环语句的使用。

6. 掌握各种转向语句的使用。

7. 学会综合运用控制语句进行简单的编程。

8.掌握中止语句和预处理语句。

二、知识要点1.C++语言中数据类型空类型void整 型int 字 符型char实 型逻辑型bool单字符型char 宽字符型w_char 单精度型float 双精度型double指 针type* 结 构struct 枚 举enum 类class非基本数据类型数据类型基本数据类型联 合union 数 组type[ ] 自定义typedef2.基本输入/输出C++中有2个预定义的流对象:(1)cin是标准输入流对象,键盘为标准设备;(2)cout是标准输出流对象,显示器为标准设备;“<<”和“>>”本来在C++中是被定义为左移位运算符和右移位运算符的,由于在iostream头文件中对它们进行了重载,使它们能用作标准类型数据的输入和输出运算符,所以,在出现它们的程序中必须用#include<iostream>如果想将“<<”和“>>”用于自己声明的类型的数据中,就不能简单地采用包含iostream 头文件来解决,必须对“<<”和“>>”进行重载。

3.结构控制C++语言中结构化算法的基本控制结构有3种:顺序结构、选择结构和循环结构。

另外还有多个转向语句,如break、continue、goto语句等。

(1)顺序结构语句1语句2……语句n+1(2)选择结构实现选择结构可用if和switch语句。

①简单if选择语句if(表达式){语句组}当语句组织有一个语句时,可以省略大括号。

实验2 数据类型与表达式

实验2 数据类型与表达式

实验2 数据类型与表达式一、实验目的:1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;3、熟悉字符常量与常变量的定义、使用;4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。

二、实验内容1、用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。

运行下列程序,回答相关问题:#include<stdio.h>int main( ){printf ("int 型数据所占字节数: %d\n",sizeof(int));printf ("整数23、所占字节数分别为: %d、%d\n",sizeof(23),sizeof(4567890));printf ("char 型数据所占字节数: %d\n",sizeof(char));printf ("字符\'s\'所占字节数: %d\n",sizeof('a'));printf ("字符串\"s\"所占字节数: %d\n",sizeof("a"));printf ("字符串\"CCTV即中央电视台\" 所占字节数: %d\n\n",sizeof("CCTV即中央电视台"));int n1=13;printf ("%d\t%X\n",n1,n1);int n2=-13;printf ("%d\t%X\n",n2,n2);return 0;}(项目名称为lab_2_1,下同,不一一说明)问题:(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?(2)整数的占用长度与其数值大小有关吗?(3)字符串中’\’’、’\”’、’\n’、’\t’的功能各是什么?(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?(5)整数的存储形式是什么?操作内容:请修改上述程序,使之能输出float、double、void类型所占用字节数。

数据类型、运算符和表达式实验报告

数据类型、运算符和表达式实验报告

广州大学实验报告学院商学院专业、班级姓名、学号课程名称C程序设计项目名称数据类型、运算符和表达式实验实验时间:2012 年 3 月20 日数据类型、运算符和表达式实验报告开课实验室:2012年3月20日d=5.670000,e=-6.780000f=1234.567890,g=0.123457m=50000,n=-600000p=32768,q=40000第3页四、实验结果及分析实验一输出结果为:a,b值互换。

分析:在C程序设计中,两个值互换需要一个中间变量来储存数据,如果直接交换会导致其中一个数据丢失。

实验二分析:实验二为自己设计的程序。

在设计这个程序是要注意scanf的用法。

Scanf 为格式输入符,在输入字符时要注意字符输入方式。

在本次实验中其调用格式为:scanf("<格式化字符串>",<地址表>);实验三分析:输出格式的不同会导致输出结果的不同。

将负数赋值给无符号变量时,无符号变量会将这个负值的符号也纳入计算范围从而返回一个正值,导致最后输出结果不正确。

这个实验让我认识到在设计程序时要注意输出格式的选择。

实验四分析:实验四更加强调个语句中在程序的含义。

程序为:printf("d=% f,e=% f\n",d,e);printf("f=% f,g=% f\n",f,g);输出结果为:当程序改为:printf("d=%-6.2f,e=%-6.2f\n",d,e);printf("f=%-15.6f,g=%-15.10f\n",f,g);输出结果为:继续将程序改边为:printf("d=%-6.2f\te=%-6.2f\n",d,e);printf("f=%-15.6f\tg=%-15.10f\n",f,g);输出结果为:以上3种都是改变了输出格式使输出数据的有效数字改变。

实验2 数据类型、运算符和表达式

实验2   数据类型、运算符和表达式

实验内容:
1.输入下面的程序: #include <stdio.h> void main( ) { char c1, c2; c1 = 'a'; c2 = ‘b’; printf (“%c %c\n”, c1, c2); } (1)运行此程序; 解:
(2)在程序的最后增加语句“printf(“%d%d\n”,c1,c2);”再运行,并分 析结果; 解:不能输出c1,c2,因为后面增加的c1,c2没有定义。 运行的结果出错为: D:\C Source File\是否.cpp(9) : error C2065: 'c1' : undeclared identifier
printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); return 0; } 运行结果:
②改变c1、c2、c3、c4、c5的初值为:’T’、’o’、’d’、’a’、’y’,对 译码规律作如下补充:’W’用’A’ 代替,’X’用’B’代替,’Y’用’C’代 替,’Z’用’D’代替。修改程序并运行。 解:该程序为: #include<stdio.h> int main() { char c1='T',c2='o',c3='d',c4='a',c5='y'; c1=c1+4; c2=c2+4; c3=c3+4; c4=c4+4; c5=c5-22; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); return 0; } 运行结果:
AN 运行的结果:
3.输入并运行下面的程序 #include <stdio.h> void main() { int a,b; unsigned c,d; long e,f; a = 100; b = -100; e = 50000; f = 32767; c = a; d = b; printf(“%d,%d\n”, a, b); printf(“%u,%u\n”, a, b); printf(“%u,%u\n”, c, b); c = a = e; d = b = f; printf(“%d,%d\n”, a, b); printf(“%u,%u\n”, c, d); } 请对照程序和运行结果分析:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
&按位与
|按位或
^按位异或
~取反
<<左移
>>右移
⑴按位与运算
按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。
例如:9&5
可写算式如下:00001001 (9的二进制补码)&00000101 (5的二进制补码)00000001 (1的二进制补码)可见9&5=1。
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("m=%d,n=%d\n",m,n);
}
⑤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 ;
z = sizeof( x > y? 1 : 1.5 );
实验二运算符和表达式
实验时间:2010年10月8日
【实验目的】
1、掌握C语言各种基本数据类型的定义和表示方法;
2、掌握变量的定义、赋值方法;
3、掌握基本运算符的功能及其应用;
4、掌握基本运算符的优先级和结合性;
5、掌握表达式的概念及运算规则;
6、掌握常用数据类型的转换规则。
【实验内容】
1、常用基本数据类型的存储长度,求字节运算符的使用;
【实验小结】
应知:
1、基本运算符的功能及其应用;
2、基本运算符的优先级和结合性;
3、基本数据类型及其转换。
应会:
1、各种运算符及其表达式的应用;
2、各种表达式的正确表示;
3、数据类型转换规则。
【实验思考】
1、请说明自增/自减运算符(++/--)前置运算和后置运算的区别。
2、试列出常用几种运算符的优先级别与结合方向。
例如9^5
可写成算式如下:00001001^00000101 00001100 (十进制为12)
/*ex2_5.c*/
#include <stdio.h>
main()
{
int a=9;
a=a^15;
printf("a=%d\n",a);
}
⑷求反运算
求反运算符~为单目运算符,具有右结合性。其功能是对参与运算的数的各二进位按位求反。
/*自增在操作数之前*/
m = ++i;
printf("i = %d\n", i);
printf("m = %d\n", m);
/*自减在操作数之后*/
n = j--;
printf("j = %d\n", j);
printf("n = %d\n", n);
/*自增、自减的混合运算*/
p = (++m)*(n++)+(--k);
例如~9
运算为:~(0000000000001001)结果为:1111111111110110
/*ex2_6.c*/
#include <stdio.h>
main()
{
int a=9;
a=~9;
printf(“b=%d\n",a);
}
⑸左移运算
左移运算符“<<”是双目运算符。其功能把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如:a<<4指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
①b*=a+4*3%5;
printf("%d“,b );
②a=8;
a*=b=c=3;
printf("%d,%d“,a,b);
③a=5+(c+=3);
printf("%d,%d“,a,c);
并将编译运行后的程序,分别以ex2_8.c、ex2_9.c、ex2_10.c命名,保存在自己的文件内。
(3)已知:a=3,b=2, 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保存在自己的文件内。
(2)计算下面各程序段的输出结果
int a=3,b=2,c;
例如:9|5
可写算式如下:00001001|00000101
00001101 (十进制为13)可见9|5=13
main()
{
int a=9,b=5,c;
c=a|b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
⑶按位异或运算
按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,
按位与运算通常用来对某些位清0或保留某些位。例如把a的高八位清0,保留低八位,可作a&255运算( 255的二进制数为0000000011111111)。
⑵按位或运算
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
total=num*PRICE;
ch1=ch2-‘A’+‘a’;
printf(“total=%f,ch1=%c\n”,total,ch1);
}
⑵、/*ex2_3.c*/
# include <stdio.h>
main()
{
int i, j, k;
int m, n, p;
i = 8;
j = 10;
k = 12;
①c > a+b②a>b== c③a==b<c
④m=b> c⑤m=a>*2 != b⑧m=c==a%b
并将编译运行后的程序,以ex2_11.c命名,保存在自己的文件内。
(4)计算下面各程序段的输出结果
①int i=2 ; float f =3.6; double d=3.2;
⑹右移运算
右移运算符“>>”是双目运算符。其功能是把“>>”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。
例如:设a=15,a>>2
表示把000001111右移为00000011(十进制3)。应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定。Turbo C和很多系统规定为补1。
printf("k = %d\n", k);
printf("p = %d\n", p);
}
3、运算符的优先级别和结合性:请写出下列程序运行的结果,并进行分析。
/*ex2_4.c*/
#include <stdio.h>
Main()
{
int x,y,z;
x=y=z=-1;
++x&&++y||++z;
printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);
数据类型
长度(字节)
数据类型
长度(字节)
char
short
int
long
float
double
2、写出下列程序运行的结果
⑴、/*ex2_2.c*/
#include <stdio.h>
#define PRICE 12.5
main()
{ int num=3;
float total;
char ch1,ch2=‘D’;
/*”\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、运算符及其表达式的应用;
3、数据类型的自动转换与强制转换。
【实验步骤】
一、在E或F盘上建立以自己的学号命名的文件夹。
二、内容与步骤
1、求字节运算符的使用
利用sizeof()函数,了解C语言各种数据类型所占用的存储空间大小,将编写的源程序以文件名ex2_1.c保存在自己的文件夹内,并将结果填在下表内。
相关文档
最新文档