实验2基本数据类型与数组(最新整理)
实验2 VFP数据类型、常量、变量和数组

实验二 Visual FoxPro数据类型、常量、变量和数组一、实验目的1.熟悉Visual FoxPro的基本数据类型和常量。
2.掌握内存变量的基本操作。
3.了解数组的定义和赋值。
二、实验内容及上机步骤【上机题一】Visual FoxPro的基本数据类型和常量的定义。
【上机步骤】本题考查的知识点是Visual FoxPro的基本数据类型和常量,操作步骤如下:(1)在命令窗口中分别执行如下命令,观察屏幕显示结果:命令屏幕显示结果? [3*5],"常量" 3*5 常量? 3*5 15? 常量找不到变量‘常量’(2)在命令窗口中分别执行如下命令,观察屏幕显示结果:命令屏幕显示结果? "2005/11/17" 2005/11/17? {^2005/11/17} 11/17/05? 2005/11/17 10.72(3)在命令窗口中分别执行如下命令,观察屏幕显示结果命令屏幕显示结果? .T.,.F.,.N.,.Y. .T. .F. .F. .T.? T,F,N,Y 找不到变量’T’【上机题二】内存变量的基本操作。
【上机步骤】本题考查的知识点是内存变量的基本操作,操作步骤如下:(1)内存变量的赋值, 分别执行如下命令A1=3A2=.F.A3={^2005/11/17}STORE " abg" TO B1,B2,B3,B4C1=A1+3*5(2)内存变量的显示, 分别执行如下命令,并观察屏幕显示结果,了解DISPLAY与LIST 命令动词的区别命令命令功能DISPLAY MEMORY 示例:分屏方式显示所有内存变量的内容LIST MEMORY 滚屏方式显示所有内存变量的内容DISPLAY MEMORY LIKE A* 分屏方式显示以字母A开头的所有内存变量的内容LIST MEMORY LIKE ?1 滚屏方式显示第二个字符为1的只有两个字符内存变量的内容(3)内存变量的删除与显示,分别执行如下命令,观察屏幕显示结果,总结命令功能RELEASE B4 && 删除指定内存变量B4DISPLAY MEMORYRELEASE ALL LIKE ?2 && 将所有第二个字符为…2‟的内存变量删除DISPLAY MEMORYRELEASE ALL EXCEPT A* && 删除不以“A”开头的变量DISPLAY MEMORYCLEAR MEMORY && 删除所有内存变量DISPLAY MEMORY命令命令功能RELEASE B4删除指定内存变量B4DISPLAY MEMORY显示内存变量(注意观察屏幕显示结果,总结功能)RELEASE ALL LIKE ?2将所有第二个字符为…2‟的只有两个字符的内存变量删除DISPLAY MEMORY显示内存变量(注意观察屏幕显示结果,总结功能)RELEASE ALL EXCEPT A*删除不以“A”开头的变量DISPLAY MEMORY显示内存变量(注意观察屏幕显示结果,总结功能)CLEAR MEMORY清除内存变量DISPLAY MEMORY显示内存变量(注意观察屏幕显示结果,总结功能)【上机题三】Visual FoxPro数组变量的定义和赋值。
基本数据类型和数组

1.逻辑类型
常量:true ,false。
变量的定义: 使用关键字boolean来定义逻辑变量,定义时也可以赋给初值。
例: boolean x, ok=true, 关闭=false;
4
2.整数类型
常量:123,6000(十进制),077(八进制),0x3ABC(十六进制)。 整型变量的定义分为4种。 (1)int 型 使用关键字int来定义int 型整型变量,定义时也可以赋给初值,例如:int x,平均=9898; 对于int型变量,内存分配给4个字节(byte)。 int型变量的取值范围是: - 231~ 231 -1。 (2)byte 型 使用关键字byte 来定义byte 型整型变量。 对于byte型变量,内存分配给1个字节,占8位,byte型变量的取值范围是-27~27-1。 (3)short 型 使用关键字short来定义short型整型变量。对于short型变量,内存分配给2个字节,short型变量的取值范围是-215~ 215-1。 (4)long 型 使用关键字long来定义long型整型变量,对于long型变量,内存分配给8个字节,long型变量的取值范围是 -263~263-1。
9
例子2-2效果图
10
2.4 数据的输入与输出
由于C语言出现的比较早,那个时候还没有图形用户界面的概念(Graphics User Interface),因此,C语言提供了许多用来输入、输出数据的函数,例如printf 、scanf等。 Java不象C,提供在命令行进行数据输入、输出的功能不多。 关于输入、输出我们将在第九章详细介绍,现在只需知道它的作用是在命令行窗口(例如,MS-DOS窗口)输出数据即可。Sun公司新推出的JDK1.5又新增了一些在命令行进行数据输入、输出的功能。
实验二 基本数据类型

实验二基本数据类型、运算符及表达式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 数据类型与表达式(学生学号__姓名)一、实验目的: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 基本数据类型、表达式和基本语句实验内容(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)

实验二基本数据类型(1)【实验目的】:1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型变量,以及对它们赋值的方法。
2、掌握不同的类型数据之间赋值的规律。
3、进一步熟悉C程序的编辑、编译、连接和运行的过程。
【实验时数】:2学时【实验内容】:一、新建文件夹首先在各自计算机K盘的对应文件夹中新建一个文件夹,文件夹的名字为“班级+学号的后两位+姓名”,如食品1081班、学号后两位是02的、姓名为“张三”的同学,则其对应的文件夹名字是:食品108102张三(注意中间不要加任何空格)。
然后在刚才建好的文件夹里面再建立一个文件夹,文件夹为“第2次”以下实验内容除实验四需要编写源程序并保存在所建的第2次文件夹内,其余均为验证型实验,不需要保存。
希望同学们在做前三个实验之前,先认真分析程序的运行结果,后再上机验证。
二、实验内容和步骤[程序1]:输入并运行下面的程序#include <stdio.h>main(){ char c1, c2; /*定义了两个字符型变量c1,c2*/c1 = 'a';c2 = 'b';printf (“%c %c\n”c1, c2);}(1)运行此程序,查看运行结果。
(2) 在此基础上,即在printf(“%c %c\n”,c1,c2);后面增加一条语句:printf(“%d %d\n”,c1,c2);再运行,并分析结果。
(3) 将第3行的内容即char c1, c2改为:int c1,c2; 再使之运行,并观察结果。
(4)将第 4、5行改为:c1 = 300; /* 用大于255的整数 */c2 = 400;再使之运行,分析其运行结果。
(5)将第4、5行改为:c1=a;c2=b;再使之运行,分析其运行结果.......。
说明:字符是以ASCII码的形式存放在计算机内存中,而且字符是占一个字节,整数占两个字节。
整数300所对应的二进制形式为0000000100101100,所以转换成字符时只取该字符的低八位,即蓝色部分的00101100,它所对应的十进制为44,而ASCII码为十进制44所对应的字符为逗号“,”。
实验二+基本数据类型、数组

实验二基本数据类型、数组一、.数据类型及相互转化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方法复制数组。
关于数组的实验报告

一、实验目的1. 理解数组的概念和特点,掌握数组的定义、声明、初始化和访问方法;2. 掌握一维数组和二维数组的区别和应用场景;3. 学习数组在实际编程中的应用,提高编程能力。
二、实验内容1. 实验一:一维数组的定义、初始化和访问(1)定义一个整型一维数组,包含10个元素;(2)初始化数组,为每个元素赋值;(3)遍历数组,输出每个元素的值;(4)修改数组中某个元素的值;(5)查找数组中特定值的元素索引。
2. 实验二:二维数组的定义、初始化和访问(1)定义一个整型二维数组,包含3行4列;(2)初始化数组,为每个元素赋值;(3)遍历数组,输出每个元素的值;(4)修改数组中某个元素的值;(5)查找数组中特定值的元素索引。
3. 实验三:数组在实际编程中的应用(1)编写一个程序,计算10个整数的平均值;(2)编写一个程序,找出10个整数中的最大值和最小值;(3)编写一个程序,实现冒泡排序算法,对10个整数进行排序;(4)编写一个程序,实现二维数组的转置。
三、实验步骤1. 实验一:(1)定义整型一维数组int arr[10];(2)初始化数组:for(int i=0; i<10; i++) arr[i] = i+1;(3)遍历数组:for(int i=0; i<10; i++) printf("%d ", arr[i]);(4)修改数组中某个元素的值:arr[5] = 100;(5)查找数组中特定值的元素索引:for(int i=0; i<10; i++) if(arr[i] == 5) printf("Index: %d\n", i);2. 实验二:(1)定义整型二维数组int arr[3][4];(2)初始化数组:for(int i=0; i<3; i++) for(int j=0; j<4; j++) arr[i][j] = i4+j+1;(3)遍历数组:for(int i=0; i<3; i++) for(int j=0; j<4; j++) printf("%d ", arr[i][j]);(4)修改数组中某个元素的值:arr[1][2] = 100;(5)查找数组中特定值的元素索引:for(int i=0; i<3; i++) for(int j=0; j<4; j++) if(arr[i][j] == 5) printf("Index: (%d, %d)\n", i, j);3. 实验三:(1)计算10个整数的平均值:int sum = 0, avg; for(int i=0; i<10; i++) sum += arr[i]; avg = sum / 10;(2)找出10个整数中的最大值和最小值:int max = arr[0], min = arr[0];for(int i=1; i<10; i++) if(arr[i] > max) max = arr[i]; if(arr[i] < min) min = arr[i];(3)冒泡排序算法:for(int i=0; i<9; i++) for(int j=0; j<9-i; j++)if(arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; }(4)二维数组转置:int arrT[4][3]; for(int i=0; i<3; i++) for(int j=0;j<4; j++) arrT[j][i] = arr[i][j];四、实验结果与分析1. 实验一和实验二成功完成了数组的定义、初始化、访问和修改,验证了数组的基本操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2页共7页
民族学院实验报告单
2. 实验后练习 (1) 程序运行时,用户从键盘输入 2332,程序提示怎样的信息? 答 提示信息如图
(2) 程序运行时,用户从键盘输入 abc,程序提示怎样的信息? 答 :提示信息如图
三、数组的快速复制 1. 请查询 Java API 中 System 类中的静态方法 arraycopy()的使用方法,并编写
一个程序。要求: 建立一个一维整型数组,用于存放本班学生的 Java 成绩。该数组的元素 值为 60-100 的随机值,每行显示 10 个元素值; 调用 arraycopy()方法进行复制,并显示其值; 修改复制前的数组,并显示其值; 再显示复制的数组,并显示其值
第3页共7页
民族学院实验报告单
计算机科学 系 报告人
民族学院实验报告单
民族学院实验报告
级
班
20 年 月 日
指导教师 成绩
课程
名称 JAVA 语言程序设计 实验名称
实验二 基本数据类型与数组
实验 目的 实验仪器 和器材
1. 掌握基本数据类型及其相互之间的转换 2. 掌握 JAVA 中数组的使用
具有 JDK 环境的计算机一台
一、输出希腊字母表 1. 请按模板要求,将【代码】替换为 Java 程序代码,运行该程序时在命令窗
民族学院实验报告单
System.out.printf(" b 数组:\n"); Arrays.sort(a); for(i=0;i<24;i++){
System.out.printf("%5d",a[i]); if((i+1)%10==0){ System.out.printf("\n"); }s
(4)在应用程序的 main 方法中增加语句: int z=(byte)128;
程序输出的 z 值是多少? 答:输出的是-128;
二、从键盘输入数据 1. 编写一个 Java 程序,用户从键盘输入一个浮点数据,程序将输出这个数的平
方和三次方。 import java.util.*;
public class A{ public static void main(String args[]){ Scanner reader=new Scanner(System.in); double a=reader.nextDouble(); double b,c; b=a*a; c=b*a; System.out.printf("%f\n",b); System.out.printf("%f\n",c); }
System.arraycopy(a,0,b,0,24);
System.out.printf(" b 数组:\n");
for(int j=0;j<24;j++){
System.out.printf("%5d",b[j]); if((j+1)%10==0){
System.out.printf("\n"); } } a=b; System.out.printf(" b2 数组:\n"); for(int j=0;j<24;j++){
错误?
答:程序提示的内容为:“可能损失精度”。
(2)在应用程序的 main 方法中增加语句:
第1页共7页
民族学院实验报告单
float x=0.618;
程序能编译通过吗? 答:不能。因为可能损失精度。
(3)在应用程序的 main 方法中增加语句: byte y=128;
程序能编译通过吗? 答:不能。如下图,可能会损失精度
//i 做 char 型转换运算,并将结果赋值给 c
System.out.print(" "+c);
if ((i-startPosition+1)%10==0)
System.out.println();
}
}
}
2. 实验后练习
(1) 将一个 double 型数据直接赋值给 float 型变量,程序编译时提示怎样的
for( i=0;i<24;i++){
实验
grest=60+(int)(Math.random()*41);
结果
a[i]=grest;
System.out.printf("%5d",a[i]);
if((i+1)%10==0){
System.out.printf("\n");
}
ห้องสมุดไป่ตู้
}
System.out.printf("\n");
System.out.println("希腊字母\'α\'在 Unicode 表中的顺序位置:"+(int)cStart);
System.out.println("希腊字母表:");
for (int i=startPosition;i<=endPosition;i++){
char c='\0';
cStart=(char)i;
第4页共7页
一、
民族学院实验报告单
三 程序如下:
public class Arraycopy{
public static void main(String atgs[]){
int[] a=new int[24];
int[] b=new int[24];
int i;
int grest=0;
System.out.printf(" a 数组:\n");
2. 实验后练习 (1) 比较程序中源数组修改前后的值以及对复制的数组的影响; (2) 比较数组 a = b 与 arraycopy()的异同。 四、数组的排序 1. 请查询 Java API 中 Arrays 类中的静态方法 sort()的使用方法,并编写一个 程序。要求
对上述生成的保存学生成绩的数组进行排序; 显示排序后的数组。 2. 实验后练习 (1) 了解 Arrays 类中的其它静态方法; (2) 练习你所感兴趣的方法。
四 程序如下: import java.util.Arrays; public class Arraysort{
public static void main(String atgs[]){ int[] a=new int[24];
int[] b=new int[24]; int i; int grest=0; System.out.printf(" a 数组:\n"); for( i=0;i<24;i++){
} } } 2 给数组赋值用 fill 方法;数组排序用 sort 方法;用 binarySearch 方法可以对 数组进行二分查找。
第7页共7页
第5页共7页
民族学院实验报告单
System.out.printf("%5d",b[j]); if((j+1)%10==0){
System.out.printf("\n"); } } } }
答:(1)值随这原数组的值变化; (2)都是赋值的作用;a=b 是直接赋值,而 arraycopy()是通过函数赋值。
char cStart='α',cEnd='ω';
startPosition=(int)cStart; //cStart 做 int 型数据转换,并将结果赋值给 startPosition
endPosition=(int)cEnd; //cEnd 做 int 型数据转换,并将结果赋值给 EndPosition
grest=60+(int)(Math.random()*41); a[i]=grest; System.out.printf("%5d",a[i]); if((i+1)%10==0){ System.out.printf("\n"); } } System.out.printf("\n");
第6页共7页
口中输出希腊字母表。其运行效果如图 2.1 所示。
实验内容 和要求
图 2.1 输出希腊字母表
GreekAlphabet.java
public class GreekAlphabet {
public static void main(String[] args) {
int startPosition=0,endPosition=0;