实验2基本数据类型与数组(最新整理)
- 格式:pdf
- 大小:128.71 KB
- 文档页数:7
实验二 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. 分析以下程序,判断输出结果,然后上机运行程序验证结果。
(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 数据类型与表达式(学生学号__姓名)一、实验目的: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 )测试基本数字类型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、掌握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.实验目的1、掌握char 型数据和int型数据之间的互相转换,同时了解Unicode字符表;2、掌握从键盘为简单型变量输入数据;3、学习掌握使用数组处理大整型数据的加法。
2.实验内容1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。
1)实验1 输出特殊偏旁的汉字package work;public class InputChinese {public static void main(String[] args) {char ch='研',zifu=0;int p=22920,count=5,position=0;System.out.printf("输出%d个石字旁的汉字:\n",count);for(char c=ch;c<=ch+count;c++){position=(int)c;//【代码1】//c进行int型转换数据运算,并将结果赋值给positionSystem.out.printf("%c(%d)",c,position);}System.out.printf("\n输出%d个女字旁的汉字\n",count);for(int n=p;n<=p+count;n++){zifu=(char)n;//【代码2】 //n进行char型转换数据运算,并将结果赋值给zifuSystem.out.printf("%c(%d)",zifu,n);}// TODO Auto-generated method stub}}输出5个石字旁的汉字:研(30740)砕(30741)砖(30742)砗(30743)砘(30744)砙(30745) 输出5个女字旁的汉字妈(22920)妉(22921)妊(22922)妋(22923)妌(22924)妍(22925) 2)实验2 输入、输出学生的基本信息package work;import java.util.Scanner;public class InputMess {public static void main(String[] args) {Scanner reader=new Scanner(System.in);System.out.println("输入姓名(按Enter键确认):");String name=reader.nextLine();//【代码1】//从键盘为name 赋值System.out.println("输入年龄(按Enter键确认):");byte age=reader.nextByte();//【代码2】//从键盘为age赋值System.out.println("输入身高按Enter键确认):");float height=reader.nextFloat();//【代码3】//从键盘为height 赋值System.out.printf("%28s\n","--基本信息--");System.out.printf("%10s%-10s","姓名:",name);System.out.printf("%4s%-4d","年龄:",age);System.out.printf("%4s%-4.2f","身高:",height);}}输入姓名(按Enter键确认):输入年龄(按Enter键确认):19输入身高按Enter键确认):177.5--基本信息--姓名:liu 年龄:19 身高:177.503)实验3 超大整数的加法package work;public class HandleLargeNumber {public static void main(String[] args) {int a[]={0,9,9,7,9,4,5,6,7,2,3,4,5,6,4,7,8,9,8,7,6,9}; int b[]={0,0,5,9,1,6,4,5,6,2,3,4,5,7,2,1,3,4,0,3,2,9}; int c[]=new int[a.length];int i=0,result=0,k=0;for(i=0;i<a.length;i++){< p="">if(a[i]!=0){k=i;break;}}for(i=k;i<a.length;i++){< p="">System.out.printf("%d",a[i]);}System.out.printf("\n加上:\n");for(i=0;i<b.length;i++){< p="">if(b[i]!=0){k=i;break;}for(i=k;i<b.length;i++){< p=""> System.out.printf("%d",b[i]);}for(i=a.length-1;i>=0;i--){result=a[i]+b[i];if(result>=10){c[i]=result%10;a[i-1]=a[i-1]+1;}elsec[i]=result;}System.out.printf("\n等于:\n");for(i=0;i<c.length;i++){< p="">if(c[i]!=0){k=i;break;}}for(i=k;i<c.length;i++){< p=""> System.out.printf("%d",c[i]);}// TODO Auto-generated method stub } }4)实验4 输出希腊字母表package work; public class GreekAlphabet {public static void main(String[] args) {int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';startPosition = (int)cStart; //cStart做int型转换据运算,并将结果赋值给startPositionendPosition = (int)cEnd; //cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+ startPosition);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';c = (char)i; //i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}// TODO Auto-generated method stub}}希腊字母'α'在unicode表中的顺序位置:945希腊字母表:αβγδεζηθικλμνξοπρ ? στυφχψω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值的语句。