




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章Java编程基础1教学目标(1)了解ASCII码,理解Unicode码、标识符、关键字(2)理解变量、常量(3)理解赋值语句与赋值表达式(4)了解并使用交互式工具Jshell(5)理解八种基本数据类型以及数据类型转换(6)理解并应用控制台输入/输出(7)理解并应用算术运算符、增强赋值运算符、关系运算符、逻辑运算符、条件运算符,并能进行混合运算(8)理解并应用数学函数(9)理解编程的步骤和算法概念,能用算法描述问题的解决方案;了解编程、算法思维和计算思维的关系(10)了解并遵守良好的编程规范,理解程序设计风格、注释、命名习惯(11)理解并避免三类程序设计错误23目录运算符和表达式求值数学函数编程与算法编程规范
程序设计错误标识符与关键字变量与常量赋值语句&表达式Jshell基本数据类型2.12.22.32.42.52.62.72.82.92.10目录2.1标识符与关键字编码&解码:编码是字符映射到其二进制序列的过程,解码是编码的逆过程计算机编码方案:ASCII(AmericanStandardCodeforInformationInterchange)码、Unicode码、GBK码、ISO-8859-1码;其中,GBK码对多大2万多的简繁汉字进行编码。4ASCII码与Unicode码标识符关键字内容2.1.1ASCII码和Unicode码ASCII码:基于拉丁字母的一套电脑编码系统,占用一个字节ASCII(AmericanStandardCodeforInformationInterchange)是“美国信息交换标准编码”的英文字头缩写ASCII码规定了用从0(0x00)到127(0x7F)的128个数字来代表信息的规范编码,包括33个控制码、一个空格码、和94个形象码Unicode码:Unicode码的出现是为了解决ASCII码只能表示128字符的限制占两个字节,表示65536个字符Unicode标准引入了补充字符集(supplementarycharacter),可支持1112064个字符一个Unicode字符使用两个字节,用\u开头的4位16进制数表示,范围从\u0000到\uFFFFUnicode码包含ASCII码,Unicode码的前128个字符(从\u0000到\u007F)与ASCII码的128字符一致示例:TestUnicode.java52.1.2标识符标识符:Java字母和Java数字组成的长度无限制的字符序列,字符序列的开头必须是Java字母,是用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。简单地说,标识符就是一个名字。标识符语法规则(1)由字母、数字构成,长度不限。(2)标识符以字母开头,不能以数字开头。(3)标识符不能是保留关键字(reservedkeyword),也不能是字面常量true、false、null。(4)标识符可以是上下文关键字(contextualkeyword),然而应尽量避免使用。62.1.2标识符Java字母:从整个Unicode字符集中提取,该字符集支持当今世界上使用的大多数书写脚本,包括中文、日文和韩文等的大型字符集。Java字母不仅包括大写和小写ASCII拉丁英文字母:A-Z(\u0041-\u005a)和a-z(\u0061-\u007a),而且包括汉语中的汉字、希腊字母、日文、韩文、俄文以及其他许多语言的文字出于历史原因,Java字母还包括ASCII美元符号($,或\u0024)和下划线(_,或\u005f)建议:美元符号$应该只在机器生成的源代码中使用,不要用来命名标识符下划线(_)可用于由两个或多个字符组成的标识符中,但由于单个下划线是关键字,因而不能用作单字符标识符。标识符举例有效:Hello_Java,$23,hello$,_count,你好,计数器无效:23$,#count,hello-world,hello?72.1.3关键字关键字是具有特定用途或特定意义的词,可分为保留关键字和上下文关键字保留关键字是由ASCII字符组成的51个字符序列,不能用作标识符。上下文关键字是由ASCII字符组成的16个字符序列。这16个字符序列可以被解释为上下文关键字或其他标记(即可使用的标识符),具体取决于它们出现的上下文。82.1.3关键字9保留关键字2.1.3关键字10上下文关键字112-1Java语言标识符使用的字母是指英文字母及美元符号$,这句话是否正确()正确错误AB提交单选题1分122-2下列变量定义中,不合法的是()int$Xint_123;intsummer_2010_gross_sale;int#dim;ABCD提交单选题1分2.2变量与常量13变量常量内容2.2.12.2.22.2.1变量变量是指在程序中可以被改变的量,具有4个基本要素:变量名:用来指代变量,可以使用合法标识符来命名数据类型:Java语言支持的各种数据类型存储单元:用来在内存中存储变量值的,不同的数据类型对存储单元有不同的要求变量值:在程序运行某个时刻的取值,被存储于该变量的存储单元中变量用于表示特定类型的数据,在使用之前,必须先进行声明和初始化。语法:数据类型变量名;举例:intcount;doubleradius;doubleintrstRate;几个变量为同一类型,允许同时声明语法:数据类型变量1,变量2,…,变量n;举例:charletter1,letter2,letter3;142.2.1变量通常变量具有初始值,而且变量在使用前必须具有初始值。变量可在声明后被初始化,也可在声明时一同初始化,还可被Java编译器默认初始化声明一个变量同时初始化的语法形式如下:
数据类型变量名=初值;例如:charletter1=‘中’;如果需要同时声明和初始化同一类型的多个变量,可采用如下语法形式:数据类型变量名1=初值1,变量名2=初值2,…,变量名n=初值n;例如,下面的一条语句:inti=2,j=3,k=5;152.2.2常量命名常量(namedconstant)是一个代表不变值的标识符,简称常量。常量必须在声明时进行初始化,使用关键字final。常量名是一个合法标识符,常常采用大写英文字母。16程序分析:CalcuCircleArea.javafinaldatatypeCONSTANTNAME=VALUE;finaldoublePI=3.14159;finalintSIZE=3;2.3赋值语句、赋值表达式赋值语句:语法:变量=表达式;举例:inty=1;intx=5*(3/2);x=y+1;如果用一个值给多个同类型变量赋值,也是可以的,其语法形式如下:变量名1=变量名1=…=变量名1=值;//链式赋值例如:令i,j,k均为整型变量,可以如下进行赋值:i=j=k=5;赋值语句去掉分号(;)就是赋值表达式。例:System.out.println(x=1);i=j=k=1;17x=1;System.out.println(x);k=1;j=k;i=j;等价于182-3将1赋给变量x,下面正确的代码是()
1=x;x=1;x:=1;1:=x;ABCD提交单选题1分讨论请指出并修改下面代码中的错误19错误在于:j、k不是已定义好的变量2.4JshellJshell(JavaShellTool)是自JavaSE9开始引入的一个命令行交互工具以REPL(Read-eval-printloop,读取-计算-打印循环)方式交互式评估Java语言的声明、语句和表达式Jshell可接受Java语句、变量定义、方法定义、类定义、导入语句和表达式。这部分输入的代码被称为代码段(snippet)在代码段被输入后,Jshell对其进行计算,并立即提供反馈。根据输入的代码段和选择的反馈模式,反馈信息包括从操作的结果和解释到无任何信息操作演示:启动-jshell,演示代码片段执行,退出-/exit202.4Jshell212.4Jshell-/edit命令222.4Jshell-/save命令232.4Jshell-/history、/list24命令/save还可以存储指定的代码片段,使用代码段ID来指定。2.4Jshell-/drop252.4Jshell-/open、Tab补全26272-4Jshell启动的命令是
[填空1]
,退出的命令是
[填空2]
作答填空题2分2.5基本数据类型282.5.1整型2.5.2浮点类型2.5.3字符类型2.5.4布尔类型2.5.5类型转换2.5.6输入基本数据类型2.5.7格式化控制台输出292-5下列选项中,()不属于Java语言的基本数据类型。整数类型数组类型浮点类型字符类型ABCD提交单选题1分2.5.1整型(1/2)Java语言提供了5种整数类型,其表示值的范围和占用存储空间大小30整型字面值是可以赋值给一个整型变量的常量值,如123、24等。整型字面值默认为int型为了表示一个长整型的整型字面值,需要在整型字面值后加L或l(L的小写字母)。2.5.1整型(2/2)默认情况下,整型字面值是一个十进制整数。Java语言也支持二进制、八进制、十六进制的整型字面值。二进制整型字面值使用前置0b(零b)或0B,如二进制数0b1010表示十进制整数10。八进制整型字面值使用前置0(零),如八进制数017表示十进制整数15。十六进制整型字面值使用前置0x(零x)或0X,如十六进制数0xA5表示十进制整数165。在使用时,凡是十进制整型字面值使用的地方,二进制、八进制、十六进制整型字面值都可以使用。例如,下面一段代码:inti1=0b1010;System.out.println(i1);//输出10一些数值型字面值数字比较多,为了提高程序的易读性,Java语言允许在一个数值型(整数类型、浮点类型)字面值中使用下划线分隔两个数字,但是下划线不能位于开头和结尾处。
例如:123_456_789,10_5678_3456,9876_5432_1234L312.5.2浮点类型(1/5)Java语言提供两种浮点类型:float(单精度浮点型)和double(双精度浮点型)浮点型字面值是带小数点的,默认为双精度浮点型double。例如,3.14就是一个double类型浮点字面值为了表示单精度浮点型字面值,需要在浮点型字面值后加字母f或F,例如,3.14f或3.14Fdouble型浮点字面值也可以加后缀d或D,例如,3.14d、3.14D、3.14都是等价的浮点型字面值溢出:超出double类型取值范围322.5.2浮点类型(2/5)Java语言用于表示溢出和出错情况的三个特殊浮点数值是:正无穷大(Infinity)、负无穷大(-Infinity)、NaN(NotaNumber,不是一个数字)通过使用常量表达式(如1f/0f、-1d/0d、0.0/0),可以表示无限(Infinity)、NaN,而不会产生错误332.5.2浮点类型(3/5)浮点型字面值也可以用a×10𝑏形式的科学记数法表示123.456:1.23456e+2或1.23456e20.0123456:1.23456e-2E或e(exponent):指数在浮点型字面值中,下划线也可用作数字之间的分隔符,既可用于表示整数部分的数字之间,也可用于表示小数的数字之间,还可用于表示指数部分的数字。但是,小数点前后不允许有下划线。下面是float型字面值的合法例子:5.f.5f1f3.14f1e-1f.1E2f12_34.5_678_923f5.003_7654e+2_3f2e-3f下面是double型字面值的合法例子:5.d.5d0d3.14d1e-1d.1E2d12_34.5_678_923d5.003_7654e+2_03d2e-201342.5.2浮点类型(4/5)浮点型精度:单精度浮点型(float):7位有效数字,至多7-8位小数位双精度浮点型(double):16位有效数字,至多15-17位小数位352.5.2浮点类型(5/5)浮点型精度示例:System.out.print(1f/3f);//结果是0.33333334,小数点后8位,7位有效数字System.out.print(1d/3d);//结果是0.3333333333333333,小数点后16位,16位有效数字System.out.print(1000f/3f);//结果是333.3334,小数点后4位,7位有效数字System.out.print(1000d/3d);//结果是333.3333333333333,小数点后13位,16位有效数字36372-6以下哪个是不正确的字面值()5_234e+1_25345_2.039dABCD提交单选题1分2.5.3字符类型(1/4)字符数据类型char表示单个字符,占用两个字节,本质上是一个无符号整数,表示0-65535之间的整数,对应字符的Unicode编码:从\u0000至\uffff字符字面值是用单引号括住的单个字符或是一个转义序列(escapesequence)charch1='中';//字符'中'赋值给char型变量charch2='α';//字符'α'赋值给char型变量charch3='\u4E2D';//转义序列,用Unicode码给char型变量赋值charch4='"';//用双引号"给char型变量赋值382.5.3字符类型(2/4)如果要输出:Hesaid,"Hello!"语句:
System.out.println("Hesaid,"Hello!"");是否正确?39转义序列由反斜杠(\)后面加上一个字符或一些数位组成。转义字符:反斜杠(\)一个转义序列被作为单个字符处理一些特殊字符的转义序列如下表所示(下一页PPT)正确语句:System.out.println("Hesaid,\"Hello!\"");2.5.3字符类型(3/4)40需要注意的是,值为换行符(LF)的字符字面值、值为回车(CR)的字符字面值、值为单引号的字符字面值,不能用其Unicode码的转义序列来表示,只能用其转义序列“\n”、“\r”、“\'”表示。2.5.3字符类型(4/4)转义序列\’、\t的使用示例:41在给字符变量赋值时,使用转义序列双引号和直接用双引号,效果一样2.5.4布尔类型布尔类型是仅有值为true或false的数据类型,其声明的变量是一个具有值为true或false的变量,使用关键字boolean声明,占用1个字节。布尔类型声明的变量可简称为布尔变量。布尔变量的声明如下所示:boolean变量名;示例:422.5.5类型转换(1/4)类型转换:一种数据类型是可以向另一种数据类型转换一个整数3可以转换成一个浮点数3.0d,一个浮点数2.0f可以转换成一个整数2隐式类型转换:总是可以将一种数值类型的数值直接赋值给支持更大范围数值类型的变量byte、short、int、long、float、double,按顺序,表示数的范围是越来越大的doubled1=20;//正确显式类型转换:把一个范围大的数值类型数值赋给一个范围小的数值类型变量,必须进行显式类型转换,也称为强制类型转换。一般语法形式如下:
目标数据类型变量名=(目标数据类型)表达式;例如:inti1=(int)43.2;四舍五入取整:(整型)(浮点类型数值+0.5)例如:inti2=(int)(43.6+0.5);432.5.5类型转换(2/4)字符类型与其他基本数据类型的转换字符类型表示的数值范围,低于三种数值类型(long、float、double)所支持的数值范围。因此,字符类型字面值可以直接隐式类型转换为这三种类型,反之,就必须使用显式类型转换。例如:longi3=98L;charc1=(char)i3;//显式类型转换,c1的值为'b'longi4='a';//隐式类型转换,i4的值为97Ldoubled2='a';//隐式类型转换,d2的值为97.0charc2=(char)97.7;//显式类型转换,c2的值为'a'442.5.5类型转换(3/4)字符类型与其他基本数据类型的转换byte、short、int类型与字符类型在进行相互转换时,赋值语句右边的表达式值或字面值只要不超出转换后数据类型的取值范围,可以直接相互赋值,即隐式转换。如果赋值语句右边的字面值超出转换后数据类型的取值范围,就需要进行显式类型转换。例如:bytei5='a';//隐式类型转换,i5的值为97shorti6='\u0065';//隐式类型转换,i6的值为101inti7='a';//隐式类型转换,i7的值为97charc1=97;//隐式类型转换,c的值为'a'charc2=65536;//编译器报错,超出范围45bytei8='\u0165';//编译器报错,超出范围shorti9='\uf365';//编译器报错,超出范围charc3=i5;//编译器报错charc4=i6;//编译器报错charc5=i7;//编译器报错2.5.5类型转换(4/4)布尔类型不能与其他基本数据类型进行相互的数据类型转换例如:booleanb1=5>3;//5>3的运算结果为true,布尔变量b的值为truefloatf1=(int)b1;//编译器报错booleanb2=(boolean)5;//编译器报错46472-7将一个double型变量d赋值给一个float型变量x,正确的语句是()x=(long)dx=(int)d;x=d;x=(float)d;ABCD提交单选题1分482-8下面语句的正确性:doubled=3;()
inti=3.0;()正确正确正确错误错误错误错误正确ABCD提交单选题1分2.5.6输入基本数据类型(1/3)System.out:标准输出设备System.in:标准输入设备1.创建一个Scanner对象Scannerinput=newScanner(System.in);2.使用nextDouble()方法获取一个双精度浮点值
System.out.print("Enteradoublevalue:");Scannerinput=newScanner(System.in);doubled=input.nextDouble();492.5.6输入基本数据类型(2/3)50Scannerinput=newScanner(System.in);intvalue=input.nextInt();2.5.6输入基本数据类型(3/3)导入语句:特定导入:在导入语句中指定单个具体的类,importjava.util.Scanner;通配符导入:通过使用星号*作为通配符(wildcardcharacter),导入一个包中所有的类,例如,importjava.util.*;导入语句只是告诉Java编译器在哪里能够找到程序中需要用到的类,并不是直接将包中所有类的信息加载到JVM中特定导入和通配符导入在性能上没有什么差别。示例1:ComputeRectAreajava(输入一个长方形的宽和高,计算其面积)示例2:ComputeAVG.java(要求用户连续输入3个单精度浮点数,并计算它们的平均值)示例3:StrCharInputDemo.Java(展示next()、nextLine()方法的使用以及字符的输入)注意:为了避免输入错误,一定不要在方法nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()、next()之后直接调用方法nextLine()输入值。51522-9假定创建了一个Scanner对象: Scannerinput=newScanner(System.in);
下面哪个选项能读入一个双精度浮点数()input.Double();input.double();input.nextdouble();input.nextDouble();ABCD提交单选题1分2.5.7格式化控制台输出(1/5)System.out.printf()方法在控制台上以某种指定的格式输出信息
System.out.printf(格式字符串,输出项1,输出项2,…,输出项k);格式字符串是一个由多个字符串子串和格式限定符构成的字符串格式限定符:%6.2f常用的简单格式限定符532.5.7格式化控制台输出(2/5)格式限定符与输出项必须在顺序、数量和数据类型上匹配示例:542.5.7格式化控制台输出(3/5)对于每一个格式限定符,还可以指定其域宽和精度。令m、n表示两个正整数,输出一个浮点数的般形式如下:%m.nf、%-m.nf、%m.ne、%-m.ne对于非浮点数,一般只能指定其域宽,假设以X表示非浮点数的转换码,一般形式如下:%mX、%-mX域宽可以是正整数,也可以是负整数。正整数表示右对齐,负整数表示左对齐。当域宽低于输出项的实际宽度时,按输出项的实际宽度输出。552.5.7格式化控制台输出(4/5)示例1:域宽System.out.printf("|%-4d|%3s|%-7.2f|%10.2e|",12,"Hello",123.5678,1234.5678);其输出结果如下(表示空格字符):|12|Hello|123.57|1.23e+03|示例2:数字前面用数字0作为前导而不是使用空格填充System.out.printf("|%04d|%010.2e|",12,1234.5678);其输出结果是:|0012|001.23e+03|示例3:显示带有千位分隔符的数字,千位分隔符也是占据域宽的System.out.printf("|%,010d|%,015.5f|",1234567,1234.5678);其输出结果是:|01,234,567|00001,234.56780|562.5.7格式化控制台输出(5/5)示例4:FormatOutDemo.java,通过一个表格方式输出11、12、13,这3个数及其平方、立方572.6运算符和表达式求值Java语言提供了丰富的运算符,包括:算术运算符、关系运算符、逻辑运算符、赋值与增强赋值运算符、位运算符等58内容2.6.1算术运算符2.6.2增强赋值运算符2.6.3关系运算符2.6.4逻辑运算符2.6.5条件运算符2.6.6运算符总述2.6.1算术运算符(1/11)加减运算符:+、-,二元运算符,从左向右2+4–3+5乘除运算符:*、/,二元运算符,从左向右4*3/2*2与数学运算一样,乘除优先级高于加减2+4*2-》2+8-》10需注意:当除法的两个操作数都是整数时,除法运算的结果也是整数,当出现不能整除的情况时,小数部分会被舍去。7/2的结果是3而不是3.5,而-7/2的结果是-3而不是-3.5如果除法运算需要保留小数部分,其中至少一个操作数必须是浮点数,例如,5.0/2、5/2d、5d/2等表达式的计算结果都是2.5。59602-10给出以下代码的输出:doubleamount=5;System.out.print(amount/2);System.out.println(","+5/2);输出结果为
[填空1]
作答正常使用填空题需3.0以上版本雨课堂填空题1分2.6.1算术运算符(2/11)取余运算操作符%被称为求余或取模操作符,可以求得除法的余数。操作符%通常用在正整数上,实际上,它也可以用于负整数和浮点值。只有当被除数是负数时,余数才是负的。61例:整数求余20%13=75%13=5-5%13=-5-12%4=0-26%-8=-226%-8=226%8=2-26%8=-2例:浮点数求余26%8.0=2.026%8.5=0.526.5%8=2.52.6.1算术运算符(3/11)取余运算操作符%被称为求余或取模操作符,可以求得除法的余数。操作符%通常用在正整数上,实际上,它也可以用于负整数和浮点值。只有当被除数是负数时,余数才是负的。622.6.1算术运算符(4/11)求余操作很有用,如偶数%2结果总是0,正奇数%2结果总是1,可判断一个数的奇偶性。示例:如果今天是星期六,7天之后又会是星期六,那么10天之后呢?632.6.1算术运算符(5/11)示例:如果1月1日是星期三,那么1月25日是星期几?表达式:3+(25-1)%764652-11假设今天是星期二,100天后将是星期几?星期[填空1]
答案写法:如果是星期二,填空中写:二,如果是星期日,填空中写:七作答正常使用填空题需3.0以上版本雨课堂填空题1分2.6.1算术运算符(6/11)示例:通过除法和取余运算求出一个三位数的百位数字、十位数字、个位数字代码:Digit3Demo.java662.6.1算术运算符(7/11)自增自减运算符67操作符名称示例(假设i=1)++var前置自增操作符intj=++i;var++后置自增操作符intj=i++;--var前置自减操作符intj=--i;var--后置自减操作符intj=i--;2.6.1算术运算符(8/11)自增自减运算符682.6.1算术运算符(9/11)自增自减运算符示例1:示例2:TestIncrement.java69intx=2;inty=x++*2+++x;System.out.println("x:"+x+";y:"+y)运行结果:x:4;y:8inty=x+++++x*3+x++*2;inty=1(x=2)+3(先自增)*3+3(x=4)*2;=1+9+6=162.6.1算术运算符(10/11)算术混合运算数学表达式:对应表达式:3*x/(x+5)+9*(x–2)*(a+b)/3–6*x*y/(a+b)考虑优先级和结合方向,如:5+3*2+(2+4)/3–7%3//最先计算括号里的5+3*2+6/3–7%3//从左向右,计算乘法5+6+6/3–7%3//计算除法5+6+2–7%3//计算取余5+6+2–1//从左向右,计算第一个加法11+2–1//计算第二个加法13-1//计算减法1270
2.6.1算术运算符(11/11)Java语言在计算算术表达式时,两个不同类型的操作数也能进行二元运算,Java语言提供了如下数据类型转换规则:如果一个操作数是双精度浮点数(double类型),那么另一个操作数也被转换为双精度浮点数,再进行运算,运算结果也是双精度浮点类型。例如,7.0/2的结果是3.5d。如果操作数的最高精度是单精度浮点类型(float类型),则另一个操作数也被转换为单精度浮点数,再进行运算,运算结果也是单精度浮点类型。例如,7.0f/2的结果是3.5f。如果操作数的最高精度是长整型(long类型),则另一操作数也被转换为长整型数,再进行运算,运算结果也是long类型。例如,10L+‘A’的结果是75L。如果操作数的最高精度是int类型或低于int类型,则所有操作数均被转换为int类型整数,再进行运算,运算结果也是int类型。例如,(byte)5+‘A’的值是70,7/2的结果是3。示例:摄氏转华氏.java712.6.2增强赋值运算符(1/2)在Java语言中,运算符+、–、*、/、%可以结合赋值运算符使用,形成增强赋值运算符72运算符名称示例等价表达式+=加法赋值运算符i+=5i=i+5-=减法赋值运算符i-=5i=i-5*=乘法赋值运算符i*=5i=i*5/=除法赋值运算符i/=5i=i/5%=取余赋值运算符i%=5i=i%5增强赋值运算符的优先级和赋值运算符一样,优先级在运算符中是最低的,而且也是从右向左结合的2.6.2增强赋值运算符(2/2)下面代码是否正确73在使用增强赋值运算符后,下面的代码是正确的inttotal=0;total=total+5.5;inttotal=0;total+=5.5;//这一行语句等价于:total=(int)(total+5.5);在Java语言中,x1op=x2形式的增强赋值表达式可等价转换为x1=(T)(x1opx2)742-12设
x
=
1
,
y
=
2
,
z
=
3,则表达式
y+=z--/++x
的值是(
)。33.544.5ABCD提交单选题1分2.6.3关系运算符关系运算符(relationoperator)也称为比较运算符(comparisonoperator),是二元运算符,用于比较两个值的关系75关系运算符名称数学符号示例(age=15)结果>
大于>
age>18false>=大于等于≥age>=18false<
小于<
age<18true<=小于等于≤age<=18true==等于=age==18false!=不等于≠age!=18true2.6.4逻辑运算符(1/6)逻辑运算符(logicaloperator)也称为布尔运算符(booleanoperator),用于计算布尔值,运算结果产生新的布尔值(true或false)逻辑运算符有4个:76运算符名称说明!非逻辑非&&与逻辑与||或逻辑或^
异或
逻辑异或2.6.4逻辑运算符(2/6)逻辑非运算符!77p!p示例(一个人的身高height=180cm,体重weight=160斤)truefalseheight>175为true,!(height>175)为falsefalsetrueweight>170为false,!(weight>170)为true2.6.4逻辑运算符(3/6)逻辑与运算符&&78p1p2p1&&p2示例(某人的身高height=180cm,体重weight=160斤)truetruetrueheight>175&&weight>140falsetruefalseheight>190&&weight>140truefalsefalseheight>175&&weight>170falsefalsefalseheight>190&&weight>1702.6.4逻辑运算符(4/6)逻辑或运算符||79p1p2p1||p2示例(某人的身高height=180cm,体重weight=160斤)truetruetrueheight>175||weight>140falsetruetrueheight>190||weight>140truefalsetrueheight>175||weight>170falsefalsefalseheight>190||weight>1702.6.4逻辑运算符(5/6)逻辑异或运算符^80p1p2p1^p2示例(某人的身高height=180cm,体重weight=160斤)truetruefalseheight>175^weight>140falsetruetrueheight>190^weight>140truefalsetrueheight>175^weight>170falsefalsefalseheight>190^weight>1702.6.4逻辑运算符(6/6)运算符&&和||被称为短路运算符或懒惰运算符对于运算符&&而言,如果第一个操作数为false,那么无论第二个操作数是什么值,运算结果都为false对于运算符||而言,如果第一个操作数为true,那么无论第二个操作数是什么值,运算结果都为true81822-13假定x=4、y=5,下列哪个结果是true?x<5&&y<5x<5||y<5x>5&&y>5x>5||y>5ABCD提交单选题1分2.6.5条件运算符Java语言提供了一个三元条件运算符“?:”,其一般形式是:布尔表达式1?表达式2:表达式3条件运算符的运算规则是:首先,判断布尔表达式1的值(true或false);如果值为true,那么整个条件运算表达式的值为表达式2的值;否则,整个条件运算表达式的值为表达式3的值。例如,intmax=x>y?x:y;x=3,y=5,max=5x=4,y=2,max=2832.6.6运算符总述(1/2)当各种运算符在一起进行混合运算时,如何确定它们的计算顺序呢?运算符优先级规则定义了运算符的先后次序优先级相同的运算符在一起运算时,它们的结合方向决定了运算的先后次序84运算符说明expr++(后置自增)、expr--(后置自减)算术运算++expr(前置自增)、--expr(前置自减)、+expr(一元加号)、-expr(一元减号)、!(一元逻辑非)算术运算与逻辑非运算(type)expr(类型转换)一元类型转换*(乘法)、/(除法)、%(取余)算术运算+(加法)、-(减法)算术运算>(大于)、>=(不小于)、<(小于)、<=(不大于)关系运算==(相等)、!=(不等)关系运算^(异或)逻辑运算&&(与)逻辑运算||(或)逻辑运算?:(条件运算符)三元运算符=、+=、-=、*=、/=、%=赋值运算符2.6.6运算符总述(2/2)booleanb=5+3*4<=3*(2+3)-4||3*(7–4)+1<8;//计算(2+3)booleanb=5+3*4<=3*5-4||3*(7–4)+1<8;//计算(7-4)booleanb=5+3*4<=3*5-4||3*3+1<8;//计算3*4booleanb=5+12<=3*5-4||3*3+1<8;//计算3*5booleanb=5+12<=15-4||3*3+1<8;//计算3*3booleanb=5+12<=15-4||9+1<8;//计算5+12booleanb=17<=15-4||9+1<8;//计算15–4booleanb=17<=11||9+1<8;//计算9+1booleanb=17<=11||10<8;//计算17<=11booleanb=false||10<8;//计算10<8booleanb=false||false;//计算false||falsebooleanb=false;85862-14 已知a=2,b=3,则表达式a%b*4%b的值为()21-1-2ABCD提交单选题1分872-15给定|x-2|≥4,下列哪个语句是等价的?()x-2>=4&&x-2<=-4x-2>=4||x-2<=-4x-2≥4&&x-2≤-4x-2≥4||x-2≤-4ABCD提交单选题1分2.7数学函数
88内容2.7.1三角函数2.7.2指数函数2.7.3服务方法2.7.1三角函数(1/2)89方法描述publicstaticdoublesin(doublea)返回以弧度为单位的角度a的三角正弦函数值publicstaticdoublecos(doublea)返回以弧度为单位的角度a的三角余弦函数值publicstaticdoubletan(doublea)返回以弧度为单位的角度a的三角正切函数值publicstaticdoubleasin(doublea)返回以弧度为单位的角度a的反三角正弦函数值publicstaticdoubleacos(doublea)返回以弧度为单位的角度a的反三角余弦函数值publicstaticdoubleatan(doublea)返回以弧度为单位的角度a的反三角正切函数值publicstaticdoubletoRadians(doubleangdeg)将以度为单位的角度值angdeg转换为以弧度为单位的值,并返回弧度值publicstaticdoubletoDegrees(doubleangrad)将以弧度为单位的角度angrad转换为以度为单位的值,并返回转换后的值方法toRadians的形式参数angdeg是以度为单位的角度值,其他所有方法的形式参数都是以弧度为单位的角度值2.7.1三角函数(2/2)π弧度是180°,对应的double类型值是3.1415926…。1°是π/180弧度,90°是π/2,60°是π/3。90调用方法说明Math.sin(Math.PI/2)返回1.0Math.sin(Math.PI/6)返回0.499…,相当于0.5Math.cos(Math.PI/2)返回6.12…E-17,相当于0Math.cos(Math.PI/6)Math.cos(0)返回1.0Math.asin(0.5)Math.acos(0.5)Math.acos(-1)Math.atan(1.0)Math.toRadians(90)Math.toDegrees(Math.PI/6)返回29.999….,相当于30验证:TestTriMathMethods.java912-16三角函数方法中的参数都是以弧度为单位的角,这个说法是否正确()正确错误AB提交单选题1分2.7.2指数函数5个指数方法92方法描述publicstaticdoubleexp(doublea)返回e的a次幂(ex)publicstaticdoublelog(doublea)publicstaticdoublelog10(doublea)publicstaticdoublesqrt(doublea)publicstaticdoublepow(doublea,doubleb)使用示例:TestExpMathMethod.java932-17Math.pow(2,3)返回值为
()989.08.0ABCD提交单选题1分2.7.3服务方法Math类的服务方法包括:取整、求最大值、求最小值、求绝对值、随机方法。Math类的取整方法如下所示94方法描述publicstaticdoubleceil(doublea)a向上取整为它最接近的整数,返回整数的双精度值publicstaticdoublefloor(doublea)a向下取整为它最接近的整数,返回整数的双精度值publicstaticdoublerint(doublea)a取整为它最接近的整数,如果a与相近的两个整数距离相等,那么返回偶数整数的双精度值publicstaticintround(floata)单精度浮点数a四舍五入为它最接近的整数(int类型)publicstaticlonground(doublea)双精度浮点数a四舍五入为它最接近的整数(long类型)使用示例:TestRoundMethods.java2.7.3服务方法求最大值max、求最小值min方法都有两个参数,用于返回两个参数的最大值和最小值这两个方法的参数可以是int、long、float、double型。Math.max(4,6)返回6,Math.min(4,6)返回4,Math.max(4.5,6.5)返回double型6.5求绝对值abs方法有一个参数,这个参数的类型也可以是int、long、float、double型例如,Math.abs(-3)返回3,Math.abs(-3.3)返回3.3952.7.3服务方法随机方法random(publicstaticdoublerandom()),生成一个大于等于0.0且小于1.0的double类型随机数。假设a、b为两个浮点数且a<b,生成a~b(含a不含b)之间的随机数,其计算表达式为:a+Math.random()*(b–a)例如,生成一个50.5~82.3(含50.3不含82.3)之间的随机数,其计算表达式为:50.5+Math.random()*(82.3–50.5)如果要生成一个范围内的随机整数,那么需要使用强制类型转换。假设a、b为两个整数且a<b,生成a~b(包含a、b)之间的随机数,其计算表达式为:a+(int)(Math.random()*(b–a+1))例如,生成一个50到85之间的随机整数,其计算表达式为:50+(int)(Math.random()*(85–50+1))96972-18请产生一个1-100之间(包含1和100)的随机整数:
[填空1]
答案输入字符,所有字符之间不加空格,避免自动判题被判错作答填空题2分2.8编程与算法98内容2.8.1编程2.8.2算法2.8.1编程编程是编写程序的简称,是使用特定计算机语言编写计算机程序,以控制计算机执行特定任务或解决特定问题。编程解决某个特定问题,一般需要两个步骤:设计解决问题的策略应用某种程序设计语言把这种策略转换成可以在现代通用计算机上执行的程序示例:输入一个三角形三条边的边长值,计算并显示该三角形的面积设计解决该问题的算法,算法可以用自然语言、或伪码(自然语言与一些程序设计代码的混合)、或程序流程图描述。自然语言描述992.8.1编程示例:输入一个三角形三条边的边长值,计算并显示该三角形的面积程序流程图描述算法程序流程图基本符号1002.8.1编程示例:输入一个三角形三条边的边长值,计算并显示该三角形的面积用程序设计语言将算法转换成程序101ComputeTriangleArea.java细化细化2.8.2算法在编写代码之前,以算法形式描述问题的求解策略,有助于我们更好地思考问题和做好规划,锻炼算法思维和计算思维算法是特定问题求解步骤的准确而完整的描述,是解决问题的有限指令序列有穷性:算法必须在执行有限个步骤之后结束,且每个步骤在有限时间内完成确定性:算法的每个步骤必须有确切的定义可行性:算法的所有步骤均可以分解为基本的、可执行的操作有输入:一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省昆明市西山区民中2024-2025学年数学高二下期末教学质量检测模拟试题含解析
- 西南名校2025届物理高二下期末复习检测试题含解析
- 浙江省金兰教育合作组织2025年高二数学第二学期期末达标测试试题含解析
- 财产保全担保合同(金融借贷合同中的资产保全协议)
- 节能环保车辆承运合同与绿色运输服务管理细则
- 风险管理型柴油发电机组采购合同
- 财务总监股权激励劳动合同
- 股权激励税务筹划与咨询合同
- 车辆挂靠业务合作经营合同
- 股权收购代理股权过户执行合同
- 央企华润集团杭州片区年度品牌传播策略案
- HG-T 4823-2023 电池用硫酸锰
- 2023年四川省绵阳市中考英语试卷真题(含答案)
- 监理预验收表格(共11页)
- 中国电信移动终端营销策略
- 学校考试A3试卷模板(共6页)
- 百胜餐饮HIC高效能的辅导
- 《就在今生》班迪达尊者着果儒钟苑文共译简体
- 皇家宠物食品有限公司的营销策略分
- [毕业设计精品]6502电气集中工程设计
- 红头文件任命书(模板)
评论
0/150
提交评论