实验二 数据类型

合集下载

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

实验二 数据类型、运算符和表达式
(1)
(2)
四、实验体会
作业一
已知以下各小题的初始值都是:i=2;j=2;
1、执行a=i+1,b=j+1后,a、b、i、j的值分别为?
2、执行a=i++,b=j++后,a、b、i、j的值分别为?
3、执行a=++i,b=++j后,a、b、i、j的值分别为?
4、执行a=i++ + ++j后,a、i、j的值分别为?
case 'B': cout<<"70~84";
case 'C': cout<<"60~69";
case 'D': cout<<"<60";
default: cout<<"Input error!";
}
return 0;
}
如果在键盘上输入B,会产生什么结果,为什么会产生这种结果?
5、a=+ + i + + + + + j + +,该表达式是否有错误,如果没有,请给出执行该表达式后a、i、j的值,如果有错误,请给出错误原因。
6、你理解的+,++,++i,i++的意义和优先级别。
作业二
已知a=3,b=4,执行以下语句:a=b,b=a希望交换两个变量的值。
请问上述操作会产生什么结果,为什么会产生这种结果?
作业三
已知以下程序:
#include
using namespace std;
int main ()

实验二 基本数据类型

实验二  基本数据类型

实验二基本数据类型、运算符及表达式1. 分析以下程序,判断输出结果,然后上机运行程序验证结果。

(1)# include <stdio.h>main( ){ int sum = 1 ;sum = sum +100 ;printf("SUM = %d\n", sum);}输出结果为:101(2)改正后的程序为:# include <stdio.h>main( ){ char ch1 , ch2 ;ch1 = 'b' ;//不能把字符串"b"赋给字符变量ch2 = ch1 - 32 ;printf("%c %d %c %d\n", ch2,ch2,ch1,ch1);}(3)# include <stdio.h>main( ){ int a = 10 , b =3 ;printf("%d\n", (a = a - 1 , b + a , b + 2));}输出结果为5,(a = a - 1 , b + a , b + 2)作为一个逗号表达式。

(4)# include <stdio.h>main( ){int a = 5 , b = 3 , c = 4 ;a *= a += 3;b = ++c ;c = b++ ;a =b +++c ;printf("\n%d,%d,%d", a , b , c);}输出结果为:11,7,5(5)程序改正为:# include <stdio.h>main( ){int a = 1 , b = 2 , c = 3 , logic ;logic = a + b > c && b <= c ;printf("logic = %d\n", logic);logic = a >= b + c || b == c;printf("logic = %d\n", logic);logic =!(a < c) +b!=1 && (a + c)/2 ;printf("logic = %d\n", logic);}输出结果为:logic = 0logic = 0logic = 12. 以下程序可能有多处错误,请改正并调试运行程序。

实验报告_实验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 基本数据类型、表达式和基本语句

实验2 基本数据类型、表达式和基本语句

实验2 基本数据类型、表达式和基本语句实验内容(1 )测试基本数字类型char、int和short之间的转换。

(2 )测试有自增自减运算符号的表达式的结果和运行次序。

(3 )Ex –Prime?输出1 ~100的素字(用for语句编写).(4 )程序Ex -CircleAndBall?设圆半径r?2.5,圆柱h=4,求圆的周长、圆面积?圆球体积圆柱体积。

用cin输入要计算的项目,然后输出计算结果,输入、输出时要有文字提示。

实验准备和说明(1)在学习完第1章的“基本语句”内容之后进行本次实验。

(2)编写本次上机所需要的程序。

实验步骤1.创建工作文件夹打开计算机上,在“D\VisualC??程序\LiMing”文件夹中创建一个新的子文件夹“实验2”。

2.创建应用程序项目Ex –Simple创建应用程序项目Exx–Simple的具体步骤如下。

(1 )启动D\VisualC + +6.0。

(2 )选择“文件” →“新建”菜单命令。

显示出“新建”对话框,切换到“工程”标签页面,在列表框中选定Wiin32ConsoleApplication项。

(3 )在“工程”编辑框中输入控制台应用程序项目名称Ex –Simple,并将项目文件夹定位到“D\VisualC??程序\LiMing实验1”。

(4 )单击“确定”按钮,显示“Win32应用程序向导”对话框。

选中A“H ello,World!”application项。

单击“完成”按钮,系统将显示向导创建的信息,单击“确定”按钮将自动创建此应用程序。

3.修改并添加类型转换的测试代码(1 )展开工作区窗口的ClassView页面的所有结点,单击main结点,在文档窗口中显示main 函数的源代码。

(2)将main函数修改成下列的代码?#include <iostream.h>void main(){char c1,c2,c3;c1=97; c2=98; c3=99;cout<<c1<<”,”<c2<”,”<<c3 <<endl ;}(3)编译运行,看看出现的结果与理解的是否一样?那么,怎样将输出的结果变成数值而不是字符呢?有2种办法?一种是将c1、c 2和c3的变量类型由char变为int或short;另一种是变量类型保持不变,在输出语句中加入类型的强制转换,如?cont<<(short)cl<<”,”<<(short)c2<<”,”<<(short)c3<<endl;想一想除了上述2种办法外,使用数据类型的“自动转化”也可使上述结果显示为数值,那么应如何修改上述代码呢?4.修改并添加复杂表达式的测试代码修改并添加复杂表达式的测试代码的具体步骤如下。

实验二+基本数据类型、数组

实验二+基本数据类型、数组

实验二基本数据类型、数组一、.数据类型及相互转化1. .数据类型将该程序代码在机器上运行,并修改相应错误。

2. 数据类型转化按下列要求写出Java语言的语句。

✓定义一个double类型的变量d,并赋初值为2.5。

✓在屏幕上输出显示上面所定义的变量d的值。

✓定义一个字符型一维数组ch,大小为10。

✓定义一个字符串常量s1,赋值‘abc’。

✓定义一个布尔型变量b,赋初值true。

✓在屏幕上输出显示26个大写字母。

✓将代数式s=a2+2ab+b2写成一个赋值表达语句。

✓a,b和c是3个int型变量,用条件表达式写出a>b,c值为a,否则c值为b。

✓用for循环语句实现下述循环:循环变量m为100,每次循环m减10;当m等于50时退出循环,循环体输出m值。

参考答案:3. 思考下列各题的输出情况并上机调试。

问题一、问题二//public class Operators {public static void main (String [] args){ int a = 2;int b = 3;int c = 4;int d = 5;String s ="a";String s2 = "1";prt(""+'a'+a);prt('a'+a+"");prt(a+b+s+c+d);// prt(Integer.parseInt(s)+"");// prt(Integer.parseInt(s2)+"");// prt(String.valueOf(c));}字符串强制转换为整型三部可以的注释掉二、数组1、一维数组的创建、声明、初始化(同教材P23例1-5)将下面代码在机器上调试。

提高:尝试自己给该数组赋初值,并将结果重新输出。

2、二位数组引用(教材P25 例1-6)23、数组操作测试下面程序段查看api 文档http://10.10.25.101/java/docs/api/学习使用arraycopy方法复制数组。

Lab2 数据类型和表达式

Lab2 数据类型和表达式

姓名学号班级说明:1.将本Word文档改名为“学号_姓名_班级_Lab2.doc”,完成以下实验内容后;2.4月2日之前通过课程中心提交本文档。

实验2 数据类型和表达式(p120)一.实验目的(1)了解C语言数据类型的意义。

(2)掌握C语言的基本数据类型。

(3)初步掌握常量和变量的使用。

(4)掌握转义字符的使用方法。

二.实验内容和实验要求1.练习一输入并运行练习册上的练习一程序,分析程序的运行结果。

程序代码:#include "stdio.h"void main(){ int x=0165, a=322,b=-1;char c;c=a;printf("x1=%d, x2=%x, ",x,x);printf("c=%c\n",c);printf("a: %d, %o, %x\n",a,a,a);printf("b: %d, %u, %x, %X\n",b,b,b,b);}运行结果:1.给变量x赋初值使用八进制;2.输出变量想,使用了十进制和十六进制;3.将变量a的值赋给c,因为两个变量的类型不一样,分配的存储空间的长度也不同,int长度4字节,char长度为1字节,故只把a的最低字节11000010B(66D)赋值给c,根据ASC2码结果为B;4.输出变量a,分别用了十进制、八进制和十六进制。

5.输出变量b,分别用了十进制、无符号十进制和十六进制(注意小写x与大写X的区别)。

2.练习题二输入并运行练习册上的练习二程序,分析程序的运行结果。

程序代码:void main(){ int a=12,b=5;printf("a/b=%d, b/a=%d\n",a/b,b/a);printf("%f,%f\n",(float)a/b,(float)(a/b));printf("a%%b=%d,b%%a=%d\n",a%b,b%a);}运行结果:1.在进行除法运算时,若运算符两边的分量均是int时,自动取整;2.在进行强制类型转换时,注意括号的使用;3.在输出时,若要输出百分号(%),则要写%%;4.取余运算实际做的是除法;5.C语言规定,取余运算符两边的分量必须是整型。

实验二 基本数据类型

实验二 基本数据类型

实验二基本数据类型1.实验目的1、掌握char 型数据和int型数据之间的互相转换,同时了解Unicode字符表;2、掌握从键盘为简单型变量输入数据;3、学习掌握使用数组处理大整型数据的加法。

2.实验内容1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。

1)实验1 输出特殊偏旁的汉字2)实验2 输入、输出学生的基本信息3)实验3 超大整数的加法4)实验4 输出希腊字母表2、根据要求完成下列任务。

1)下列哪些变量名是合法的?Ab?1, @abc , lname, _int, $25, private, ab*5, #abc2)写出以下表达式的值:知识点:运算符, 表达式, 运算符的优先级(1)int a = 2, b = 3, c;c = a / b * 8;(2)float a = 3.0F, b;b = a / 0;(3)double a = 3.0, k;Int b = 3, c = 2;k = a / c + b / c;(4)int a = 3, b = 6, c;c = (a++) + (++b) + a * 2 + b * 4;(5)int a = 10, b=3, c;c = ((a % b) == 0) ? ++a * 2:++b * 2;(6)int a = 5,b ;b = 5 << 2;(7)int a = 0, b = 12345, c = 0xffffffff, d, e, f;d = a & b;e = a | b;f = b & c;3)写出以下程序的运行结果:public class Test {public static void main (String args[]) {float a = 3.25F, b= -2.5F;int c , d;c = (int) (a * b);d = (byte) 386;System.out.println(“c=c” + c);System.out.println(“d=” +d);}}3、按要求编写程序:1)编写一个Java应用程序,在主类的main方法中声明用于存放矩形的宽和高的2个double型变量:width、height以及存放矩形面积的double 型变量area。

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

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

实验二数据类型、运算符和表达式一、实验目的(1)了解C 语言数据类型的意义,掌握基本数据类型变量的特点和定义方法。

(2)学会使用C 的算术运算符,以及包含这些运算符的算术表达式。

(3)掌握自加(++)和自减(--)运算符的使用。

(4)进一步熟悉C 程序的编辑、编译、连接和运行的过程。

二、实验要点基本数据类型包括整型、字符型、实型。

三、实验要求(1)上机前先阅读和编写以下要调试的程序。

(2)上机输入和调试程序并存在磁盘上。

(3)检查实验结果是否正确。

四、实验内容1. 调试程序,分析输出结果(1)输入并运行以下程序。

main(){float a,b;a=123456.789e5;b=a+20;printf("a=%f,b=%f\n",a,b);}将第二行改为:double a,b;再运行,分析运行结果。

说明:由于实型变量的值是用有限的存储单元存储的,因此其有效数字的位数是有限的。

float型变量最多只能保证7 位有效数字,后面的数字是无意义的,不能准确表示该数。

(2)输入并运行以下程序。

main(){char c1,c2;c1=97;c2=98;printf("%c %c\n",c1,c2);printf("%d %d\n",c1,c2);}①将第二行改为:int c1,c2;再运行。

②再将第三行改为:c1=300;c2=400;再运行,分析运行结果。

说明:字符型数据可作为整型数据处理,整型数据也可以作为字符型数据处理,但应注意字符数据只占一个字节,它只能存放0-2 55 范围的整数。

2.完成以下填空,并把程序调通,写出运行结果。

下面的程序计算由键盘输入的任意两个整数的平均值:main(){int x,y ;float a; ;scanf(“%d,%d”,&x,&y);a=(x+y)/2 ;printf("The average is :%f ",a);}3. 指出以下程序的错误并改正,上机把程序调通main();{int a;A=5;printf(“a=%d, a)//printf(“a=%d, a);//}4. 编写程序并上机运行要将“China”译成密码,译码规律是:用原来字母后面的第3 个字母代替原来的字母。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二数据类型、表达式和输入输出
一、目的和要求
1.掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;
2.学会使用C++的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(——)运算符的使用;
3. 进一步熟悉C++程序的编辑、编译、连接和运行的过程; 4. 掌握数据的输入输出方法。

二、实验设备及分组
1. Windows XP 操作系统; 2. Visual C++6.0语言环境; 3. 每人一台PC 机。

三、内容和步骤
(一)验证分析程序
1.编写程序完成变量x 和变量y 值的交换,调试程序并观察运行结果。

要交换变量x 和变量y 的值,可以借用临时变量z 进行交换。

一个完整的参考程序如下:
#include<iostream.h> void main() {
intx,y,z; //A cout<<"x,y= "; cin>>x>>y;
cout<<"输入的x="<<x<<" y="<<y <<endl; z=x; x=y; y=z;
cout<<"输出的x="<<x<<" y="<<y <<endl; }
思考:
● 在键盘上分别按如下格式输入两组数据,并观察程序运行结果:
5,3(回车) 5 3(回车)
● 将程序中的x ,y ,z 命名为auto ,break ,case ,观察是否出错?分析原因。

● 只将程序A 行x 改为大写X ,观察是否出错?分析原因。

● 修改程序,用条件运算符输出两个数中的较大数。

2.编程序输入x 、y 和z 的值,计算的值。

表达式的值不一定为整数,故程序中变量的类型应采用实型。

参考程序如下:
z x y x +-+)1)(1(z x y x +-+)1)(1(
#include<iostream.h>
void main()
{
floatx,y,z,e,f ,w; //A
cout<<"x,y,z= "<<endl;
cin>>x>>y>>z;
e= (x+1)*(y-1); //B
f=x+y; //C
w=e/f; //D
cout<<"w="<<w<<endl;
}
思考:
●输入x=5.4,y=3.1,z=2.7,观察程序运行结果。

●将程序中A行改为“intx,y,z,e,f,w ;”,输入x=5.4,y=3.1,z=2.7,观察程序运行
结果。

●将程序中A行改为“float x,y,z,w;”,B、C、D行改为“w=(x+1)*(y-1)/x+y;”,观察
程序运行结果。

3.编写程序,从键盘输入一个三位正整数,将其倒序输出。

例如:输入861,输出为168。

输入的三位数为整数,变量类型按整型进行处理。

可采用求余数的方法计算各位上的数,然后逆序输出。

参考程序如下:
#include<iostream.h>
void main()
{
intn,i,j,k;
cout<<"输入一个三位正整数n:";
cin>>n;
i=n%10; //i存放个位数
n=(n-i)/10; //去掉个位数
j=n%10; //j存放十位数
n=(n-j)/10; //去掉十位数
k=n; //k存放百位数
n=i*100+j*10+k;
cout<<"逆转数为:"<<n<<endl;
}
思考:
●修改程序,使其先取百位数,再取十位数,最后取个位数。

4.本例测试了不同数据类型之间的数据转换。

分析下列程序的运行结果。

#include<iostream.h>
void main()
{
int a=32,b;
double c=2.7,d;
char e='D',f;
b=a+c; //A
d=a+c;
f=a+e;
cout<<"b="<<b<<endl;
cout<<"d="<<d<<endl;
cout<<"f="<<f<<endl; //B
cout<<b+d+f<<endl; //C
}
思考:
●修改程序A行,对b的输出值四舍五入。

●修改程序B行,按整型值输出f。

●分析C行数据的值的类型。

(二)完成实验项目
1.输入二整数a、b,实现二个数的交换(不借用第三变量)。

2.从键盘输入三角形的三边长,输出三角形的周长和面积(此处假设可以构成三角
形)。

3.编写程序输入两个整数,输出它们的商和余数。

四、课后作业
1.从键盘输入一个三位整数n=abc,从左到右用a、b、c表示各位的数字,现要求依
次输出从右到左的各位数字,即输出另一个三位数m=cba,例如:输入123,输出321。

(不得采用实验中已使用过的方法)
2.撰写实验报告。

实验报告格式
实验内容涉及四个部分,即“目的和要求”、“实验设备及分组”、“内容和步骤”及“课后练习”。

其中“内容和步骤”中又设立二个模块:“验证分析程序”和“完成实验项目”模块。

“验证实验程序”模块中针对该次实验的具体要求与实验的目的,列了一些典型的例题,并给出了详细的解法,同时提了一些问题,帮助同学们理解要掌握的内容。

“完成实验项目”模块要求同学们在读懂、验证过例题之后,独立完成题目要求,写出代码,调试通过。

“课后练习”部分的题目留作同学们自行练习,可以作为理论课作业或课堂提问。

本实验课程的主要成果之一就是实验报告,要严格按照以下格式书写,内容详实,实验数据的采集要准确合理,实验结果的分析及时、全面。

实验报告格式如下(以实验一为例):。

相关文档
最新文档