2015 04 18数据类型的自动转换与强制转换

合集下载

c 式转换规则

c 式转换规则

c 式转换规则
C语言中的数据类型转换规则可以分为自动转换和强制转换两类。

自动转换发生在不同数据类型的数据混合运算时,C语言会根据需要将数据类型转换统一,以保证运算的正确性。

具体转换规则如下:
1. 算术运算中,低类型能够转换为高类型。

例如,char类型和short类型会转换为int类型,float类型数据在运算时一律转换为double类型。

2. 在赋值表达式中,右边表达式的值会自动隐式转换为左边变量的类型,并赋值给左边变量。

如果右边变量的数据类型长度比左边长,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。

3. 在函数调用中,系统会隐式地将实参转换为形参的类型后,赋给形参。

4. 函数有返回值时,系统将隐式地将返回表达式类型转换为返回值类型,赋值给调用函数。

强制转换是通过类型转换运算来实现的,形式为在要转换的数值或者表达式前用小括号将要类型括起来。

例如:(int)x表示将x转换为整型。

如需获取更多C语言中数据类型的转换规则和相关解释,可以查阅相关的编程书籍或者咨询专业技术人员。

Java试题及答案

Java试题及答案

一、单项选择填空(每小题2分,共50分)1.下列不属于main方法的修饰词的是()A.public B.void C.static D.final2.Java源程序经过编译后的文件类型是()A.字节码文件 B.可执行文件C.目标文件D.中间文件3.下列关于运算符的结合性说法正确的是()A.算术运算符和条件运算符都是左结合(即从左至右)算术不一定++的前缀和后缀不一样B.单目运算符是左结合C.关系运算符是左结合 D.赋值运算符是左结合4.对于同一消息,对象可以产生不同的行为,这称为类的什么特性?()A.继承性B.抽象性C.封装性D.多态性5.下面哪个是合法的布尔值()A.”false”B.false C.0 D.f6.下面哪个是Java语言中的关键字?()A.sizeof B.abstract C.InstanceOf D.Native7.哪种循环在条件表达式被计算之前至少执行循环体语句一次?()A.do-while循环B.for循环C.while循环D.以上都不是8.以下哪个选项用以确定字符串的长度?()A.size B.length C.max_value D.length()9.下面的语句哪个是正确的?()A.char=’abc’; B.long l=0xfff; C.float f=0.23 需加上f;D.double=0.7e-3;10.下列哪个类的声明是错误的?()A.final abstract class A B.final class AC.protected class A D.public class A11.下面程序段的执行结果是什么?()public class Foo{public static void main(String[] args){try{return;}finally{System.out.println(“Finally!”);}}}A.程序正常运行,但不输出任何结果B.程序正常运行,并输出FinallyC.编译能通过,但运行时会出现例外D.因为没有catch语句块,所以不能通过编译12.设a=0,b=-3,则表达式(a>=1)&&++a<=12?b:a的结果为()A.1 B.2 C.0 D.-313.Java语言中,下列常量中是字符型常量的为()A.’\0xFFFF’B.’\u’C.’\\’转义字符D.”ABC”14.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用____个比特位。

c语言强制类型转换格式

c语言强制类型转换格式

C语言中强制类型转换使用的格式如下所示:
```
(目标类型) 带转换表达式
```
其中,括号中的目标类型是要将表达式转换成的类型,带转换表达式是需要进行转换的表达式。

注意,在进行强制类型转换时需要考虑以下几点:
1. 强制类型转换可以改变表达式的类型,但并不会影响表达式的值。

2. 强制类型转换可能会导致精度损失或溢出等问题,请谨慎使用。

3. 强制类型转换只对表达式有效,对变量本身并不会产生影响。

4. 强制类型转换的优先级较高,因此需要注意运算顺序。

下面是一些实例:
```
int a = 10;
double b = (double)a; // 将整型变量a强制转换为double类型
float c = 3.14;
int d = (int)c; // 将浮点型常量3.14强制转换为整型
```
需要注意的是,在进行强制类型转换时,需要遵循 C 语言的数据类型规则,例如不能将浮点型数据转换为字符型数据等。

国家二级(JAVA)笔试-试卷5

国家二级(JAVA)笔试-试卷5

国家二级(JAVA)笔试-试卷5(总分:104.00,做题时间:90分钟)一、选择题(总题数:36,分数:72.00)1.选择题()下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

(分数:2.00)__________________________________________________________________________________________ 解析:2.对于算法的每一步,指令必须是可执行的。

算法的( )要求算法在有限步骤之后能够达到预期的目的。

(分数:2.00)A.可行性√B.有穷性C.正确性D.确定性解析:3.下列叙述中错误的是( )。

(分数:2.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据处理的效率无关√C.数据的存储结构与数据处理的效率密切相关D.数据的存储结构在计算机中所占的空间不一定是连续的解析:4.在结构化程序设计方法中,下面内聚性最弱的是( )。

(分数:2.00)A.逻辑内聚B.时间内聚C.偶然内聚√D.过程内聚解析:5.最简单的交换排序方法是( )。

(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序√解析:6.在深度为7的满二叉树中,叶子结点的个数为( )。

(分数:2.00)A.32B.31C.64 √D.63解析:7.在结构化方法中,软件功能分解属于下列软件开发中的阶段是( )。

(分数:2.00)A.详细设计B.需求分析C.总体设计√解析:8.结构化程序设计的主要特征是( )。

(分数:2.00)A.封装和数据隐藏B.继承和重用C.数据和处理数据的过程分离√D.把数据和处理数据的过程看成一个整体解析:9.在数据库管理系统的层次结构中,处于最上层的是( )。

(分数:2.00)A.应用层√B.语言翻译处理层C.数据存取层D.数据存储层解析:10.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是( )。

java练习题答案

java练习题答案

java练习题答案第1章java语言概述习题一、填空题1、面向对象程序的主要特征:继承,__封装___,___多态_____。

2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是因为它使代码可以__重用或复用___.3、java语言中,为将源代码翻译成__字节码__文件时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。

4、javac是java语言中的编译器,基本语法是:javac[选项]__文件名__,java是java语言中的解释执行器,基本语法是:java[选项]___类名___.5、java语言的主要贡献者是谁Jamegoling二、单选题1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。

A、javaB、.claC、htmlD、.e某e2、main方法是JavaApplication程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。

A、publictaticvoidmain()B、publictaticvoidmain(Stringarg[])C、publictaticintmain(String[]arg)D、publicvoidmain(Stringarg[])三、判断1、Java语言具有较好的安全性和可移植性及与平台无关等特性。

√2、Java语言的源程序不是编译型的,而是编译解释型的。

√四、问答题1、编写、运行java程序需要经过哪些主要步骤?答:1.编写源文件,扩展名必须是.java2.编写java源程序,使用java编译器编写源文件,得到字节码文件3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字节码文件。

2、阅读下列java源代码文件,并回答问题publicclaSpeak{voidpeakHello(){Sytem.out.println(\);}}cla某iti8{publictaticvoidmain(Stringarg[]){Speakp=newSpeak();p.peakHello();}}(1)上述源文件的名字是什么?Speak.java(2)上述源文件编译后生成几个字节码文件,这些字节码文件的名字分别是什么?Speak.cla某iti8.cla第2章(1)基本数据类型练习题一、填空题1、java基本数据类型中整型,字符型分别占用字节数为___4___,___2____.2、java语言中的浮点数根据数据存储长度和数值精度的不同,进一步分为_float__和__double__两种具体类型。

python数据类型的强制转换

python数据类型的强制转换

python数据类型的强制转换数据类型的强制转换如果要将⼀个数据转换成另⼀个数据类型,只需要将其放⼊相应类型的函数中去。

Number类型的数据转换强制转换为1. int 整型2. float 浮点型3. bool 布尔型4. str 字符串(整型)# 整型(整型转换是原封不动的)print(int(10))# 浮点型(浮点型转成整型按照退⼀法)print(int(10.999))# 布尔型(布尔型只有两种值,转换成为整型也只有两种,True=1,False=0)print(int(True))print(int(False))# 字符串(字符串只有去掉引号是整型的才能转换)print(int('-123'))print(int('123'))强制转换为1. int 整型2. float 浮点型3. bool 布尔型4. str 字符串(整型、浮点型)# 整型(整型转换是添加⼀位⼩数,⼩数位为0)print(float(10))# 浮点型(浮点型转换原封不动)print(float(10.999))# 布尔型(布尔型只有两种值,转换成为整型也只有两种,True=1.0,False=0.0)print(float(True))print(float(False))# 字符串(字符串只有去掉引号是整型和浮点型的才能转换)print(float('-123'))print(float('1234.134'))强制转换为python中所有的数据类型都可以转换成为布尔型,但是结果只有两种,True和False在python中,只有⼗种情况下的数据转换成为bool的值是False,其余皆为True。

# 就是说,python中⼀切为空的数据都为False# 1、整型(0)print(bool(0))# 2、浮点型(0.0)print(bool(0.0))# 3、布尔型(False)print(bool(False))# 4、复数(0j)print(bool(0j))# 5、字符串(空字符串)print(bool(''))# 6、列表(空列表)print(bool([]))# 7、元组(空元组)print(bool(()))# 8、集合(空集合)print(bool(set()))# 9、字典(空字典)print(bool({}))# 10、None(python关键字,表⽰什么也没有)print(bool(None))强制转换为1. int 整型2. float 浮点型3. bool 布尔型4. complex 复数5. str 字符串(整型、浮点型、复数)# 整型(整型转换是原数+0j)print(complex(10))# 浮点型(浮点型转换是原数+0j)print(complex(10.999))# 布尔型(布尔型只有两种值,转换成为整型也只有两种,True=1+0j,False=0j)print(complex(True))print(complex(False))# 复数(复数转换原封不动,0+0j=0j)print(complex(1234+341j))print(complex(0+0j))# 字符串(字符串只有去掉引号是整型、浮点型和复数的才能转换)print(complex('-123'))print(complex('1234.134'))print(complex('1234+0j'))不同类型的数字在⼀起运算时,结果会按照精度从低到⾼⾃动的进⾏转换。

Java数据类型转换:强制类型转换 自动类型转换28

Java数据类型转换:强制类型转换 自动类型转换28

数据类型的转换是在所赋值的数值类型和被变量接收的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。

数据类型的转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。

隐式转换(自动类型转换)如果以下 2 个条件都满足,那么将一种类型的数据赋给另外一种类型变量的时,将执行自动类型转换(automatic type conversion)。

•两种数据类型彼此兼容•目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)当以上 2 个条件都满足时,拓宽转换(widening conversion)发生。

例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。

在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。

自动转换的规则是从低级类型数据转换成高级类型数据。

转换规则如下:•数值型数据的转换:byte→short→int→long→float→double。

•字符型转换为整型:char→int。

以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。

例 1顾客到超市购物,购买牙膏 2 盒,面巾纸 4 盒。

其中牙膏的价格是 10.9 元,面巾纸的价格是5.8 元,求商品总价格。

实现代码如下:1.public static void main(String[] args) {2. float price1 = 10.9f; // 定义牙膏的价格3. double price2 = 5.8; // 定义面巾纸的价格4. int num1 = 2; // 定义牙膏的数量5. int num2 = 4; // 定义面巾纸的数量6. double res = price1 * num1 + price2 * num2; // 计算总价7. System.out.println("一共付给收银员" + res + "元"); // 输出总价8.}上述代码中首先定义了一个 float 类型的变量存储牙膏的价格,然后定义了一个 double 类型的变量存储面巾纸的价格,再定义两个 int 类型的变量存储物品的数量,最后进行了乘运算以及和运算之后,将结果储存在一个 double 类型的变量中进行输出。

JAVA各章习题及答案-全解

JAVA各章习题及答案-全解

第1章Java入门一、选择题1.下列选项中,不属于Java语言特点的一项是〔C 〕.〔A〕分布式〔B〕安全性〔C〕编译执行〔D〕面向对象[解析]Java程序采用解释执行的方法.在系统编译运行Java程序时,Java编译器将Java程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行.2.在Java语言中,〔 C 〕是最基本的元素?〔A〕方法〔B〕包〔C〕对象〔D〕接口[解析]构成Java程序的基本元素类〔抽象的对象〕. 3.编译一个定义了3个类和10个方法的Java源文件后,会产生〔D 〕个字节码文件?扩展名是〔D 〕?〔A〕13个字节码文件,扩展名为.class〔B〕1个字节码文件,扩展名为.class〔C〕3个字节码文件,扩展名为.java〔D〕3个字节码文件,扩展名为.class[解析]源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class.4.在创建Applet应用程序时,需要用户考虑问题是〔B 〕.〔A〕窗口如何创建〔B〕绘制的图形在窗口中的位置〔C〕程序的框架〔D〕事件处理[解析]创建Applet程序时必须继承系统类Applet,而Applet类中已经包含了如何创建窗口以与事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定.5.Java语言属于〔B 〕种语言?〔A〕面向机器的语言〔B〕面向对象的语言〔C〕面向过程的语言〔D〕面向操作系统的语言[解析]Java语言是一种纯面向对象的语言.6.下列关于Application和Applet程序的说法中不正确的一项是〔B 〕.<A>Application使用解释器java.exe<B>Application不使用独立的解释器〔C〕Applet在浏览器中运行〔D〕Applet必须继承Java的Applet类[解析]Application程序包含main<>方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行. 7.下列选项中,不属于Java核心包的一项是〔A 〕.〔A〕javax.swing 〔B〕java.io〔C〕java.utile 〔D〕ng[解析]凡是以java开头的包都是Java核心包,以javax 开头的包则属于Java扩展包.8.下列描述中,不正确的是〔A 〕.〔A〕不支持多线程〔B〕一个Java源文件不允许有多个公共类〔C〕Java通过接口支持多重继承〔D〕Java程序分为Application和Applet两类[解析]Java是支持多线程的语言.9.阅读下列代码,选出该代码段正确的文件名〔C 〕.class A{void method1<>{System.out.println<"Method1 in class A">;}}public class B{void method2<>{System.out.println<"Method2 in class B">;}public static void main<String[] args>{System.out.println<"main<> in class B">;}}〔A〕A.java 〔B〕A.class〔C〕B.java 〔D〕B.class[解析]Java源文件名必须和公共类的名字完全一样,源文件的扩展名为.java. 10.编译下面源程序会得到哪些文件〔D 〕?class A1{}class A2{}public class B{public static void main<String[] args>{}}〔A〕只有B.class文件〔B〕只有A1.class 和A2.class文件〔C〕编译不成功〔D〕A1.class、A2.class和B.class文件[解析]由于该程序包含3个类,每个类编译后都会生成1个字节码文件,因此编译后会生成以这3个类名命名的字节码文件.11.编译Java程序时,用于指定生成class文件位置的选项是〔 A 〕.A.-d B.-g C.-verbose D.-nowarn 12.下列标识符〔名字〕命名原则中,正确的是〔 C 〕. A.类名的首字母小写 B.接口名的首字母小写C.常量全部大写 D.变量名和方法名的首字母大写13.下面哪种注释方法能够支持javadoc命令?〔C〕A.// B./*...*/ C./**...*/ D./**...**/ 14.下面哪些选项是正确的main方法说明?〔D〕A.void main<>B.private static void main<String args[]> C.public main<String args[]> D.public static void main<String args[]>二、填空题1.Java程序的编译和执行模式包括2点,是半编译和半解释.2.Java语言支持TCP/IP 协议,从而使得Java程序在分布式环境中能够很方便地访问处于不同地点的对象. 3.开发Java程序的一般步骤是:源程序编辑、生成字节码和解释执行.4.每个Java Application程序可以包括许多方法,但是必须有且只能有一个main<> 方法,统一格式为public static void main<String[] args> ,它是程序执行的入口.5.JVM把字节码程序与各种不同的操作系统和硬件分开,使得Java程序独立于平台.6.在Java程序中,能在WWW浏览器上运行的是Applet 程序.7.Java源程序文件和字节码文件的扩展名分别为.java 和.class .8.如果在Java程序中需要使用java.utile包中的所有类,则应该在程序开始处加上import java.utitle.* 语句.三、判断题1.Java语言具有较好的安全性和可移植性与与平台无关等特性.〔√ 〕2.Java语言的源程序不是编译型的,而是编译解释型的.〔√ 〕3.Java Application程序中,必有一个主方法main<>,该方法有没有参数都可以.〔√ 〕4.java.util.Scanner<System.in>可以接收用户从键盘输入的简单数据.〔√ 〕5.Java程序中不区分大小写字母.〔× 〕6.机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行.〔√ 〕7.System类中的println<>方法分行显示信息,而print<>方法不分行显示信息.〔√ 〕8.当前路径的标识是".".〔√ 〕9.java命令不区分大小写,而javac命令区分大小写.〔× 〕10.printf<>和 format<>方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流〔S ystem.out对象〕中.〔√ 〕11.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class.〔× 〕第2章标识符与简单数据类型一、选择题1.下列〔D 〕是合法的标识符?〔A〕12class 〔B〕void 〔C〕-5 〔D〕_blank 2.下列〔B 〕不是Java中的保留字?〔A〕if 〔B〕sizeof 〔C〕private 〔D〕null 3.下列〔C 〕不是合法的标识符?〔A〕$million〔B〕$_million〔C〕2$_million 〔D〕$2_million4.下列选项中,〔B 〕不属于Java语言的基本数据类型?〔A〕整数型〔B〕数组〔C〕浮点型〔D〕字符型5.下列关于基本数据类型的说法中,不正确的一项是〔D 〕.〔A〕boolean类型变量的值只能取真或假〔B〕float是带符号的32位浮点数〔C〕double是带符号的64位浮点数〔D〕char是8位Unicode字符[解析]Java中的字符采用的是16位的Unicode字符. 6.下列关于基本数据类型的取值范围的描述中,正确的一个是〔B 〕.〔A〕byte类型的取值范围是-128~128〔B〕boolean类型的取值范围是真或假〔C〕char类型的取值范围是0~65536〔D〕short类型的取值范围是-32767~32767[解析]根据每种类型占几个字节即可推算出其取值范围,如byte类型占1个字节,即共包含28个数值,其取值范围范围应为-128~127,其他类型也是如此.7.下列关于Java语言简单数据类型的说法中,正确的一项是〔A 〕.〔A〕以0开头的整数代表8进制整型常量〔B〕以0x或0X开头的整数代表8进制整型常量〔C〕boolean类型的数据作为类成员变量的时候,相同默认的初始值为true〔D〕double型数据占计算机存储的32位8.下列Java语句中,不正确的一项是〔C 〕.〔A〕$e, a, b = 10; 〔B〕char c, d = ‘a’;〔C〕float e = 0.0d; 〔D〕double c = 0.0f;[解析]不能将double类型的常量赋值给float类型的变量.9.在编写Java程序时,如果不为类的成员变量定义初始值,Java会给出它们的默认值,下列说法中不正确的一个是〔D 〕.〔A〕byte的默认值是0 〔B〕boolean的默认值是false 〔C〕char类型的默认值是’\0’〔D〕long类型的默认值是0.0L10.下列语句中不正确的一个是〔B 〕.〔A〕float f = 1.1f; 〔B〕byte b = 128;〔C〕double d = 1.1/0.0; 〔D〕char c = <char>1.1f;[解析]bytel类型变量的取值范围是-128~127. 11.下列表达式1+2+ "aa"+3的值是〔B 〕.〔A〕"12aa3" 〔B〕"3aa3 " 〔C〕"12aa" 〔D〕"aa3"[解析]整数和整数相加得到两个整数的和,而整数和字符串相加得到的是字符串.12.已知y=2, z=3, n=4,则经过n=n+ -y*z/n运算后n的值为〔A 〕.〔A〕3〔B〕-1 〔C〕-1 〔D〕-3[解析]根据运算符的优先级,该表达式相当于n=n+ <<-y>*z>/n.13.已知a=2, b=3,则表达式a%b*4%b的值为〔A 〕.〔A〕2 〔B〕1 〔C〕-1 〔D〕-2[解析]根据运算符的优先级,该表达式相当于<<a%b>*4>%b.14.已知x=2, y=3, z=4,则经过z- = --y – x--运算后,z的值为〔D 〕.〔A〕1 〔B〕2 〔C〕3 〔D〕4[解析]在表达式运算过程中,--y的值变为2,x—的值还是2,等号右侧运算后的值为0,因此z的值没有变化. 15.表达式<12==0> && <1/0 < 1>的值为〔B 〕.〔A〕true B〕false 〔C〕0 〔D〕运行时抛出异常[解析]由于<12==0>的值为false,因此整个表达式发生短路运算,即<1/0 < 1>就没有参与运算,整个表达式的值为false.16.设有类型定义short i=32; long j=64; 下面赋值语句中不正确的一个是〔B 〕〔A〕j=i; 〔B〕i=j; 〔C〕i=<short>j; 〔D〕j=<long>i;[解析]long类型的数据不能自动转变为short类型,因此不能将long类型的变量直接赋值给short类型. 17.现有1个char类型的变量c1=66和1个整型变量i=2,当执行c1=c1+<char>i;语句后,c1的值为〔D 〕.〔A〕'd' 〔B〕'D' 〔C〕68 〔D〕语句在编译时出错[解析]两个字符型的数据相加,得到的是一个整数,而如果把整数再赋值给一个字符型变量则会在编译时出错. 18.下列说法中,正确的一项是〔D 〕.〔A〕字符串"\\abcd" 的长度为6〔B〕False是Java的保留字〔C〕123.45L代表单精度浮点型〔D〕False是合法的Java标识符[解析]Java语言对字符的大小写是敏感的,False不是false,因此False是合法的Java标识符.19.以下的变量定义语句中,合法的是〔D 〕〔A〕float _*5 = 123.456F; 〔B〕byte $_b1 = 12345; 〔C〕int _long_ = 123456L;〔D〕double d = Double.MAX_V ALUE;[解析]〔A〕中_*5不是合法的标识符,〔B〕中12345超出byte范围,〔C〕中不能将long类型的常量赋值给int 型的变量.20.下列关于运算符优先级的说法中,不正确的一个是〔C 〕〔A〕运算符按照优先级顺序表进行运算〔B〕同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的〔C〕同一优先级的运算符在表达式中都是按照从右到左的顺序进行运算的〔D〕括号可以改变运算的优先次序[解析]同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的.二、填空题1.变量是Java程序的基本存储单元之一,变量的主要类型包括2大类:字符型和数值型.2.Java语言的整数类型变量和常量一样,各自都包括4种类型的数据,它们分别是byte、int 、short 和long. 3.boolean 类型数据不可以做类型转换.4.在Java语言的基本数据类型中,占存储空间最少的类型是boolean ,该类型占用的存储空间为 1 位. 5.Java语言中的保留字具有特殊意义和作用,不能作为普通标识符使用.6.在Java语言中,浮点类型数据属于实型数据,可以分为单精度和双精度两种.7.char类型的数据可以表示的字符数共为65536 .8.定义初始值为10的8次方的常整型变量iLong的语句是final iLong = 100000000L.9.Java语言中的数据类型转换包括自动转换和强制转换两种.10.Java中的字符采用的是16位的Unicode 编码.11.数据类型中存储空间均为64位的两种数据类型是long 和double .12.表达式9*4/ -5%5的值为-2 .〔十进制表示〕13.表达式5&2的值为0 .〔十进制表示〕14.表达式42<<4的值为672 .〔十进制表示〕15.表达式11010011>>>3的值为11010 .〔二进制表示〕16.表达式7|3的值为7 .〔十进制表示〕17.表达式10^2的值为8 .〔十进制表示〕18.Java语言中的逻辑与<&&>和逻辑或<||>运算采用短路方式进行运算.19.若a、b为int型变量,并且已分别赋值为5和10,则表达式<a++>+<++b>+a*b的值为82 .20.假设i=10, j=20, k=30,则表达式!<i<j+k> || !<i+10<=j> 的值为false .三、判断题1.Java语言使用的是Unicode字符集,每个字符在内存中占8位.〔×〕2.Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变.〔√〕3.所有的变量在使用前都必须进行初始化.〔×〕4.已知byte i = <byte>127; i = i +1;这两个语句能被成功编译.〔√〕5.String str="abcdefghi"; char chr=str.charAt<9>; 〔×〕6.char[] chrArray={ 'a', 'b', 'c', 'd', 'e', 'f', 'g'}; char chr=chrArray[6]; 〔√〕7.int i,j; boolean booleanValue=<i==j>; 〔×〕8.int intArray[]={0,2,4,6,8}; int length=int Array.length<>;〔×〕9.String str="abcedf"; int length=str.length; 〔×〕10.short shortValue=220; byte byteValue=shortValue; 〔×〕11.int[] intArray[60]; 〔×〕12.char[] str="abcdefgh"; 〔×〕13.说明或声明数组时不分配内存大小,创建数组时分配内存大小.〔√〕14.强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型.〔√〕第3章运算符、表达式与语句一、选择题1.下列〔D 〕不属于Java语言流程控制结构?〔A〕分支语句〔B〕跳转语句〔C〕循环语句〔D〕赋值语句[解析]Java语言流程控制结构只包括分支、循环和跳转三种语句.2.假设a是int类型的变量,并初始化为1,则下列〔D 〕是合法的条件语句?〔A〕if<a>{} 〔B〕if<a<<=3>{}〔C〕if<a=2>{}〔D〕if<true>{}[解析]条件语句中的"条件表达式"只能是boolean类型,不能是其他类型.3.下列说法中,不正确的一个是〔C 〕.〔A〕switch语句的功能可以由if…else if语句来实现〔B〕若用于比较的数据类型为double型,则不可以用switch语句来实现〔C〕if …else if语句的执行效率总是比switch语句高〔D〕case子句中可以有多个语句,并且不需要大括号{}括起来[解析]语句执行效率高低要根据具体语句来确定,不能简单地说if…else if语句的执行效率总是比switch语句高. 4.设a、b为long型变量,x、y为float型变量,ch为char 类型变量且它们均已被赋值,则下列语句中正确的是〔 B 〕.〔A〕switch<x+y> {} 〔B〕switch<ch+1> {}〔C〕switch ch {} 〔D〕switch<a+b>; {}[解析]switch后面的表达式必须放在括号<>中,且表达式的类型只能是byte、short、int和char类型,不能是其他类型.5.下列循环体执行的次数是〔 C 〕.int y=2, x=4;while<--x != x/y>{ }〔A〕1 〔B〕2 〔C〕3 〔D〕4[解析]第1次执行while时,--x的值为3,3/2=1,满足等号两端值不等的条件,执行一次循环体;第2次执行while 时,--x的值为2,2/2=1,条件满足,又执行一次循环体;第3次执行while时,--x的值为1,1/2=0,条件满足,再次执行一次循环体;第4次执行while时,--x的值为0,0/2=0,条件不满足满足,结束循环.因此在这个循环语句执行的过程中,循环体共执行了3次.6.下列循环体执行的次数是〔 B 〕.int x=10, y=30;do{ y-=x;x++; }while<x++<y-->;〔A〕1 〔B〕2 〔C〕3 〔D〕4[解析]执行1次循环体后,y的值为20,x值为11,然后执行while,此时x++的值为11,y—的值为20,因此x++<y—条件满足,判断完后,x的值变为12,y的值变为19;接着执行第2次循环体,执行完第2次循环体后,y的值为9,x值为13,然后执行while,此时x++的值为13,y—的值为9,因此x++<y—条件不满足,结束循环.因此在这个循环语句执行的过程中,循环体共执行了2次.7.已知如下代码:switch<m>{case0:System.out.println<"Condition 0">;case1:System.out.println<"Condition 1">;case2:System.out.println<"Condition 2">;case3:System.out.println<"Condition3">;break;default:System.out.println<"OtherCondition">; }当m的值为< D >时,输出"Condition 3"〔A〕2 〔B〕0、1 〔C〕0、1、2〔D〕0、1、2、3 [解析]当m的值为0、1、2、3时,都能输出"Condition 3",因为case 0、case 1、case 2后面的语句都没有break,因此可以继续向后执行.二、填空题1.跳转语句包括break、continue、return和throw 2.switch语句先计算switch后面的表达式的值,再和各case 语句后的值做比较.3.if语句合法的条件值是boolean 类型. 4.continue语句必须使用于循环语句中. 5.break语句有两种用途:一种从switch 语句的分支中跳出,一种是从循环语句内部跳出.6.do -while循环首先执行一遍循环体,而while循环首先判断表达式的值 . 7.与C++语言不同,Java语言不通过goto 语句实现跳转.8.每一个else子句都必须和它前面的一个距离它最近的if 子句相对应.9.在switch语句中,完成一个case语句块后,若没有通过break语句跳出switch语句,则会继续执行后面的case 语句块.10.在for循环语句中可以声明变量,其作用域是for循环体.第4章类与对象一、选择题1.下列哪种类成员修饰符修饰的变量只能在本类中被访问?〔D 〕〔A〕protected 〔B〕public 〔C〕default〔D〕private2.在Java语言中,哪一个包中的类是自动导入的?〔 A 〕A〕ng B〕java.awtC〕java.io D〕java.applet[解析]只有ng包中的类能够被自动导入.3.给出下面的程序代码:public class X4_1_3 {private float a;public static void m< >{ }}如何使成员变量a被方法m< >访问〔 C 〕〔A〕将private float a改为protected float a〔B〕将private float a改为public float a〔C〕将private float a改为static float a〔D〕将private float a改为float a[解析]static类型的方法只能访问static类型的数据成员.4.有一个类B,下面为其构造方法的声明,正确的是〔 B 〕.〔A〕void B<int x> {} 〔B〕B<int x> {}〔C〕b<int x> {} 〔D〕void b<int x> {}5.下面关于类的说法,不正确的是〔 C 〕.〔A〕类是同种对象的集合和抽象〔B〕类属于Java语言中的复合数据类型〔C〕类就是对象〔D〕对象是Java语言中的基本结构单位[解析]类是对象的抽象,对象是类的实例6.下面关于方法的说法,不正确的是〔C 〕. 〔A〕Java中的构造方法名必须和类名相同〔B〕方法体是对方法的实现,包括变量声明和合法语句〔C〕如果一个类定义了构造方法,也可以用该类的默认构造方法〔D〕类的私有方法不能被其他类直接访问[解析]类中一旦用户定义了构造方法,该类默认的构造方法就不存在了,除非用户再自定义该类的默认构造方法. 7.关于内部类,下列说法不正确的是〔A 〕.〔A〕内部类不能有自己的成员方法和成员变量〔B〕内部类可用private或protected修饰符修饰〔C〕内部类可以作为其他类的成员,而且可访问它所在的类的成员〔D〕除static内部类外,不能在类内声明static成员8.定义外部类时不能用到的关键字是〔 C 〕.〔A〕final 〔B〕public 〔C〕protected 〔D〕abstract[解析]定义外部类不能使用protected修饰符.9.为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为〔 D 〕〔A〕abstract void f<> 〔B〕public void f<>〔C〕final void f<> 〔D〕static void f<> [解析]只有static类型的方法才可以直接使用类名来引用.10.定义一个公有double型常量PI,哪一条语句最好?〔 B 〕〔A〕public final double PI;〔B〕public final static double PI=3.14;〔C〕public final static double PI;〔D〕public static double PI=3.14;[解析]用public final static来定义常量,既可以节省存储空间,又可以保证数值不会被改变.二、填空题1.对象是对事物的抽象,而类是对对象的抽象和归纳.2.从用户的角度看,Java源程序中的类分为两种:系统定义的类和用户自己定义的类.3.一个类主要包含两个要素:数据成员和成员方法.4.创建包时需要使用关键字package .5.类中的构造方法是一个特殊的方法,该方法的方法名和类名相同.6.如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个默认构造方法.这个方法没有形式参数,也没有任何具体语句,不能完成任何操作.7.静态数据成员被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中.因此,一个类的任何对象访问它时,存取到的都是相同〔相同/不同〕的数值.8.静态数据成员既可以通过对象名来访问,也可以通过类名直接访问它.9.定义常量时要用关键字final ,同时需要说明常量的数据类型并指出常量的具体值 .10.方法体内定义变量时,变量前不能加修饰符;局部变量在使用前必须明确赋值,否则编译时会出错;而类变量在使用前可以不用赋值,它们都有一个默认的值.11.static方法中只能引用static 类型的数据成员和static 类型的成员方法;而非static类型的方法中既可以引用static 类型的数据成员和成员方法,也可以引用非static 类型的数据成员和成员方法.12.引用static类型的方法时,可以使用类名做前缀,也可以使用对象名做前缀.13.当程序中需要引用java.awt.event包中的类时,导入该包中类的语句为import java.awt.event.*.14.定义类时需要class 关键字,继承类时需要extends 关键字,实现接口时需要关键字implements .三、判断题1.类是一种类型,也是对象的模板.〔√〕2.类中说明的方法可以定义在类体外.〔×〕3.实例方法中不能引用类变量.〔×〕4.创建对象时系统将调用适当的构造方法给对象初始化.〔√〕5.使用运算符new创建对象时,赋给对象的值实际上是一个引用值.〔√〕6.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值.〔√〕7.对象可作方法参数,对象数组不能作方法参数.〔×〕8.class是定义类的惟一关键字.〔√〕9.Java语言会自动回收内存中的垃圾.〔√〕第5章子类与继承一、选择题1.已知有下面类的说明:public class X5_1_1 extends x{private float f =10.6f;int i=16;static int si=10;public static void main<String[] args> {X5_1_1 x=new X5_1_1<>;}}在main<>方法中,下面哪条语句的用法是正确的?〔 A 〕A.x.f B.this.si C.X5_1_1.i D.X5_1_1.f[解析]由于x是在main方法内部定义的对象,因此它可以引用类的非static类型的属性,因此选A,而this和super不能在main方法中使用,使用类名只能引用本类的静态属性,因此B、C、D不对. 2.下列程序的运行结果是〔C 〕.public class X5_1_2 extends x{int ab<>{static int aa=10;aa++;System.out.println<aa>;}public static void main<String[] args> { X5_1_2 x=new X5_1_2<>;x.ab<>;}}A.10 B.11C.编译错误D.运行成功,但不输出[解析]方法体内的局部变量不能使用static修饰符.3.下面关于接口的说法中不正确的是〔C 〕.A.接口中所有的方法都是抽象的B.接口中所有的方法都是public访问权限C.子接口继承父接口所用的关键字是implements D.接口是Java中的特殊类,包含常量和抽象方法[解析]子接口继承父接口所用的关键字也是extends,只有类实现接口时才使用implements.4.区分类中重载方法的依据是〔 A 〕.A.形参列表的类型和顺序B.不同的形参名称C.返回值的类型不同D.访问权限不同[解析]形参表的类型和顺序不同时区分重载方法的唯一标志.5.子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?〔 B 〕A.能,能B.能,不能C.不能,能D.不能,不能[解析]子类对象可以直接赋值给父类对象,而父类对象不能直接赋值给子类对象.6.Java语言类间的继承关系是〔 A 〕.A.单继承B.多重继承C.不能继承D.不一定[解析]Java语言类间的继承关系是单继承,但一个类可以实现多个接口.7.Java语言接口间的继承关系是〔B 〕.A.单继承B.多重继承C.不能继承D.不一定[7.解析]Java语言接口间的继承关系允许多重继承. 8.一个类实现接口的情况是〔A 〕.A.一次可以实现多个接口B.一次只能实现一个接口C.不能实现接口D.不一定[解析]Java语言允许一个类一次实现多个接口.9.定义外部类的类头时,不可用的关键字是〔 C 〕. A.public B.finalC.protected D.abstract[解析]定义外部类时不能使用protected关键字.10.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?〔 B 〕A.不能引用,必须改名,使它们的名称不相同B.在成员变量前加this,使用this访问该成员变量C.在成员变量前加super,使用super访问该成员变量D.不影响,系统可以自己区分[解析]this可以用来引用本类对象.11.下面说法不正确的是〔 B 〕.A.抽象类既可以做父类,也可以做子类B.abstract和final能同时修饰一个类C.抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口D.声明为final类型的方法不能在其子类中重新定义[解析]abstract和final不能同时修饰一个类,因为abstract 类需要子类,而final类不能有子类.二、填空题1.消息就是向对象发出服务请求,是对数据成员和成员方法的引用.2.在面向对象系统中,消息分为两类公有消息和私有消息.3.在面向对象程序设计中,采用继承机制可以有效地组织程序结构.充分利用已有的类来创建更复杂的类,大大提高程序开发的效率,提高代码的复用率,降低维护的工作量.4.数据成员的隐藏是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员.5.子类可以重新定义与父类同名的成员方法,实现对父类方法的覆盖.6.子类在重新定义父类已有的方法时,应保持与父类完全相同的方法名、返回值类型和参数列表,否则就不是方法的覆盖,而是子类定义自己特有的方法,与父类的方法无关. 7.this代表了当前对象的一个引用,super表示的是当前对象的直接父类对象的引用.8.抽象类不能创建对象,该工作由抽象类派生的非抽象子类来实现.9.如果父类中已有同名的abstract方法,则子类中就不能〔能/不能〕再有同名的抽象方法.10.abstract类中不能有private 访问权限的数据成员或成员方法.11.interface 是声明接口的关键字,可以把它看成一个特殊类.接口中的数据成员默认的修饰符是public static final ,接口中的成员方法默认的修饰符是public abstract .12.如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须实现该接口的所有抽象方法;如果实现某接口的类是abstract的抽象类,则它可以不实现该接口所有的方法.但是对于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法以与自身所实现接口中的抽象方法都必须有实在的方法体. 13.包的作用有两个,一是划分类名空间,二是控制类之间的访问.14.封装也称信息隐藏,是指类的设计者只为类的使用者提供类的可以访问的部分〔包括类的数据成员和成员方法〕,而把类中的其他成员隐藏起来,使用户不能访问的机制.15.Java提供了4种访问权限来实现封装机制,即private 、protected 、默认和public .16.Java中提供两种多态机制, 重载与覆盖.17.当一个构造方法需要调用另一个构造方法时,可以使用关键字this ,同时这个调用语句应该是整个构造方法的第一条可执行语句.18.如果子类自己没有构造方法,那么父类也一定没有〔有/没有〕带参的构造方法,此时它将继承父类的无参构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行父类的构造方法,然后再执行自己的构造方法 .19.对于父类的含参数构造方法,子类可以通过在自己的构造方法中使用super 关键字来调用它,但这个调用语句必须是子类构造方法的第一条可执行语句.20.创建一个名为myPachkage的包的语句为package myPackage; ,该语句应该放在程序第一行位置.三、判断题1.Java语言中,构造方法是不可以继承的.〔√〕2.子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目.〔×〕3.抽象方法是一种只有说明而无具体实现的方法.〔√〕4.Java语言中,所创建的子类都应有一个父类.〔√〕5.调用this 或super构造方法的语句必须放在第一条语句.〔√〕6.一个类可以实现多个接口,接口可以实现"多重继承".〔√〕7.实现接口的类不能是抽象类.〔√〕8.使用构造方法只能给实例成员变量赋初值.〔√〕9.Java 语言不允许同时继承一个类并实现一个接口.〔×〕。

鲲鹏应用开发考试(习题卷2)

鲲鹏应用开发考试(习题卷2)

鲲鹏应用开发考试(习题卷2)第1部分:单项选择题,共39题,每题只有一个正确答案,多选或少选均不得分。

1.[单选题]下列选项中,哪个linux工具可以用于评估当前主机或虚拟机内存的性能?A)PerfB)VmstatC)LmbenchD)Free答案:D解析:2.[单选题]关于 C/C++程序中的数据类型转换,以下说法错误的是?A)当超出整型取值范围的双精度浮点型数据, 转换为整型时, 鲲鹏处理器遵循保留最大值或最小值 的原则B)C/C++双精度浮点型数据转整型数据时,如果超出了整型的取值范围,鲲鹏处理器的表现与 x86 平台的表现不同C)程序应尽量避免数据类型转换时溢出D)当双精度浮点型数据,转换为整型时, x86 处理器定义 了一个 indefinite integer value- --“不确定 数值”,用来处理溢出情况答案:D解析:3.[单选题]下列哪些oS是银河麒麟发布的OS版本?A)KylinV3.3B)NeoKylinV7.6C)NeoKylinV7.5D)KylinV4.0.2答案:D解析:4.[单选题]下列哪项不是在性能调优前必做的步 ?A)保证客户端压力足够大B)通过华为鲲鹏HCIP认证C)保证组件依赖的物理资源已充分分配D)保证客户端与服务端之间的组网不是瓶颈答案:B解析:5.[单选题]Porting Advisor工具在移植源码过程中的作用是?()A)分析源码,并给出移植工作量B)分析源码,并给出分析报告和源码修改建议C)分析源码,并修改源码D)分析源码,并给出性能优化建议答案:B解析:6.[单选题]在鲲鹏架构下编译 C/C++程序,对 char 类型应如何处理?()C)在编译选项中-fsigned-charD)在编译选项中设置-mabi=lp64答案:C解析:7.[单选题]鲲鹏920处理器是()架构?A)TPC/IPB)SMPC)NUMAD)C/S答案:C解析:8.[单选题]使用 gcc 编译时,编译选项-march 的作用是什么?A)指定指令集B)指定 cpu 型号C)指定流水线D)提升兼容性答案:A解析:9.[单选题]以下关于使用yum安装软件,说法不正确的是?A)自动安装依赖包B)缺乏自主性C)全自动安装D)自定义安装路径答案:D解析:10.[单选题]以下关于 Kunpeng 920 SAS子系统的说法,哪个是不正确的?A)提供2个X8 SAS 3.0控制器B)支持SAS 3.0.向下兼容SAS 2.0和SAS 1.0C)可以连接 SAS Expander扩展更多磁盘D)可以直接不经过 xpander最大连接8个SAS盘或者SATA盘,但两者不可以混插答案:D解析:11.[单选题]降低网卡中断触发频率可能会导致哪种现象?A)数据包接发收时延降低B)数据包接发收时延提高C)网卡不接发收数据包D)不会影响数据包接发收时延降答案:B解析:12.[单选题]“敏捷软件开发宣言”是敏捷开发的理论基石,以下哪个不是“敏捷软件开发宣言”提出的核心价值?A)流程和工具高于个体与交互B)客户合作高于合同谈判C)工作的软件高于详尽的文档解析:13.[单选题]鲲鹏系列裸金属服务器的CPU核数能达到多少核()A)32B)64C)128D)支持无限扩展答案:C解析:14.[单选题]如下那些能力是鲲鹏920芯片独有。

C语言程序设计习题集及解答

C语言程序设计习题集及解答

目录第一章C语言基础知识 (1)第二章C语言程序设计的初步知识 (2)第二章答案 (25)第三章顺序结构程序设计 (3)第四章选择结构程序设计 (4)第五章循环结构程序设计 (6)第六章数组 (7)第六章答案 (26)第七章函数 (9)第七章答案 (27)第八章指针 (12)第八章答案 (28)第九章结构体与共用体 (14)第九章答案 (28)第十章文件 (16)第十章答案 (29)模拟试题 (17)模拟试题答案 (25)第一章C语言基础知识考点:1.C语言的特点。

2.C语言的基本结构、字符集、标识符、关键字。

3.算法的概念和描述方法。

一、选择题1. A 是C程序的基本构成单位。

A)函数B) 函数和过程C) 超文本过程D) 子程序2.下列说法正确的是 C 。

A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B)一个函数的函数体必须要有执行部分,可以没有变量定义C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D)以上都不对3.下列说法正确的是C。

A)在执行C程序时不是从mian函数开始的B)C程序书写格式严格限制,一行内必须写一个语句C)C程序书写格式自由,一个语句可以分写在多行上D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号4.下列标识符正确的是C。

A)x+y123 B)4_student C)a456 D)U.S5.以下说法正确的是C。

A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分6.B不是C语言提供的合法关键字。

A)char B)scanf C)case D)default7.C语言提供的合法关键字是C。

A)ELSE B)INT C)case D)printf8. 一个C语言程序是由B。

A)一个主程序和若干个子程序组成;B)函数组成, 并且每一个C程序必须且只能由一个主函数;C)若干过程组成;D)若干子程序组成.9. 以下叙述中错误的是(C )A.C语言是一种结构化程序设计语言。

JAVA各章习题及答案

JAVA各章习题及答案

JAVA各章习题及答案面向对象程序设计―Java语言习题答案第1章一、选择题1.下列选项中,不属于Java语言特点的一项是(C )。

(A)分布式(B)安全性(C)编译执行(D)面向对象Java程序采用解释执行的方法。

在系统编译运行Java程序时,Java编译器将Java程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行。

2.在Java语言中,( C )是最基本的元素?(A)方法(B)包(C)对象(D)接口构成Java程序的基本元素类(抽象的对象)。

3.编译一个定义了3个类和10个方法的Java源文件后,会产生( D )个字节码文件?扩展名是( D )?(A)13个字节码文件,扩展名为.class (B)1个字节码文件,扩展名为.class(C)3个字节码文件,扩展名为.java (D)3个字节码文件,扩展名为.class源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class。

5.Java语言属于(B )种语言?(A)面向机器的语言(B)面向对象的语言(C)面向过程的语言(D)面向操作系统的语言Java语言是一种纯面向对象的语言。

6.下列关于Application和Applet程序的说法中不正确的一项是( B )。

(A)Application使用解释器java.exe (B)Application不使用独立的解释器(C)Applet在浏览器中运行(D)Applet必须继承Java的Applet类Application程序包含main()方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行。

7.下列选项中,不属于Java核心包的一项是(A )。

(A)javax.swing (B)java.io (C)java.utile (D)ng 凡是以java开头的包都是Java核心包,以javax开头的包则属于Java扩展包。

8.下列描述中,不正确的是(A )。

JAVA各章习题及答案-全解

JAVA各章习题及答案-全解

第1章Java入门一、选择题1.下列选项中,不属于Java语言特点的一项是(C )。

(A)分布式(B)安全性(C)编译执行(D)面向对象【解析】Java程序采用解释执行的方法。

在系统编译运行Java程序时,Java编译器将Java程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行。

2.在Java语言中,( C )是最基本的元素?(A)方法(B)包(C)对象(D)接口【解析】构成Java程序的基本元素类(抽象的对象)。

3.编译一个定义了3个类和10个方法的Java源文件后,会产生(D )个字节码文件?扩展名是(D )?(A)13个字节码文件,扩展名为.class(B)1个字节码文件,扩展名为.class(C)3个字节码文件,扩展名为.java(D)3个字节码文件,扩展名为.class【解析】源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class。

4.在创建Applet应用程序时,需要用户考虑问题是(B )。

(A)窗口如何创建(B)绘制的图形在窗口中的位置(C)程序的框架(D)事件处理【解析】创建Applet程序时必须继承系统类Applet,而Applet类中已经包含了如何创建窗口以及事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定。

5.Java语言属于(B )种语言?(A)面向机器的语言(B)面向对象的语言(C)面向过程的语言(D)面向操作系统的语言【解析】Java语言是一种纯面向对象的语言。

6.下列关于Application和Applet程序的说法中不正确的一项是(B )。

(A)Application使用解释器java.exe(B)Application不使用独立的解释器(C)Applet在浏览器中运行(D)Applet必须继承Java的Applet类【解析】Application程序包含main()方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行。

数据类型-转换-隐式转换和显式转换

数据类型-转换-隐式转换和显式转换

数据类型-转换-隐式转换和显式转换数据类型转换分为隐式转换和显式转换,根据不同的转换对象,来确定是那种类型的转换。

隐式转换:就是系统默认的、不需要加以声明就可以进⾏转换。

⾸先来说在程序语⾔中默认的类型,⼀般整数是int类型,浮点数(3.14),默认就是double类型。

但是还有其他类型的,例如整数类型的long,浮点数的float。

当相同类型之间相遇的时候,就会出现隐式转换的问题。

那么隐式转换的规则就是根据数据类型从⼩到⼤的转换:byte→short→int→long(整数类型)例如:long num1 = 100;这个num1根据类型命名为long整数型,但是右侧的100在程序语⾔中默认为是int整数类型。

然⽽根据隐式转换规则,int类型可以⾃动的转换为long整数类型。

故⽽在程序运⾏的时候不会出现错误。

float→double(浮点数)例如:double num1 = 2.5F(F在这⾥代表是float类型的意思);这个同上复述。

num1是double类型,但是2.5F是float类型,因为符合隐式转换的规则,所以2.5F会⾃动的转换为双精度类型,2.50.显⽰转换:当系统默认转换不能转换的时候,⽽我们⼜需要把某⼀类型改为另⼀个类型,这个过程我们称之为显⽰转换也叫做强制转换。

例如:double类型转换成int类型,如int num1 = 3.14(3.14默认为double类型)int是整数型,是不带⼩数点的,然⽽在double类型中是带⼩数点之后两位的,如果要想让这⾏代码成⽴,则需要强制转换,在不同的程序语⾔中有不同的⽅法,这⾥是⽤java语⾔来说明的,int num1 =(int)3.14;只要如此写,在程序中这⾏代码就可以运⾏。

精度丢失:然⽽在这样情况下,会出现⼀个⽐较常见的问题,也是经常会遇见的错误,精度丢失,就是3.14double类型的转换到int类型之后,就只剩下了⼀个3,变为整数型。

mysql数据类型转换规则

mysql数据类型转换规则

mysql数据类型转换规则
MySQL支持的数据类型转换规则如下:
1. 自动转换数据类型:当MySQL执行一个操作时,如果操作数的数据类型不同,MySQL会自动进行数据类型转换。

2. 显式转换数据类型:用户可以通过使用MySQL的转换函数来显式地转换数据类型。

3. 数据类型优先级:当MySQL执行一个操作时,会按照数据类型的优先级来进行数据类型转换。

优先级从高到低依次为:BINARY、VARBINARY、BLOB、CHAR、VARCHAR和TEXT,INT、INTEGER、MEDIUMINT、SMALLINT、TINYINT、FLOAT、DOUBLE和DECIMAL。

4. 隐式转换的规则:当MySQL执行一个操作时,如果两个操作数的数据类型不同,则从较低优先级向较高优先级进行强制转换。

例如,如果一个操作数是INT 类型,另一个操作数是FLOAT类型,则FLOAT类型会被自动转换为INT类型。

5. 转换顺序:当MySQL执行一个操作时,如果需要进行多个数据类型转换,则执行顺序和MySQL函数执行顺序一样,即先执行内层函数,再执行外层函数的转换操作。

JAVA各章习题及答案

JAVA各章习题及答案

第1章一、选择题1.下列选项中‎,不属于Ja‎v a语言特‎点的一项是‎(C )。

(A)分布式(B)安全性(C)编译执行(D)面向对象【解析】Java程‎序采用解释‎执行的方法‎。

在系统编译‎运行Jav‎a程序时,Java编‎译器将Ja‎v a程序转‎化为字节码‎,在运行时,解释器将编‎译得到的字‎节码进行解‎释执行。

2.在Java‎语言中,( C )是最基本的‎元素?(A)方法(B)包(C)对象(D)接口【解析】构成Jav‎a程序的基‎本元素类(抽象的对象‎)。

3.编译一个定‎义了3个类‎和10个方‎法的Jav‎a源文件后‎,会产生(D )个字节码文‎件?扩展名是( D )?(A)13个字节‎码文件,扩展名为.class‎(B)1个字节码‎文件,扩展名为.class‎(C)3个字节码‎文件,扩展名为.java (D)3个字节码‎文件,扩展名为.class‎【解析】源文件中的‎每一个类编‎译后都会生‎成一个字节‎码文件,字节码文件‎的扩展名是‎.class‎。

4.在创建Ap‎pl et应‎用程序时,需要用户考‎虑问题是( B )。

(A)窗口如何创‎建(B)绘制的图形‎在窗口中的‎位置(C)程序的框架‎(D)事件处理【解析】创建App‎l et程序‎时必须继承‎系统类Ap‎pl et,而Appl‎e t类中已‎经包含了如‎何创建窗口‎以及事件处‎理等内容,这类程序的‎框架也都是‎固定的,而绘制图形‎在窗口中的‎位置则需要‎由用户确定‎。

5.Java语‎言属于(B )种语言?(A)面向机器的‎语言(B)面向对象的‎语言(C)面向过程的‎语言(D)面向操作系‎统的语言【解析】Java语‎言是一种纯‎面向对象的‎语言。

6.下列关于A‎p plic‎a tion‎和A ppl‎e t程序的‎说法中不正‎确的一项是‎(B)。

(A)Appli‎ca tio‎n使用解释‎器j ava‎.exe (B)Appli‎catio‎n不使用独‎立的解释器‎(C)Apple‎t在浏览器‎中运行(D)Apple‎t必须继承‎Java的‎A p ple‎t类【解析】Appli‎catio‎n程序包含‎m ai n()方法,它是一种独‎立执行的程‎序,因此必须使‎用独立的解‎释器解释执‎行。

long类型转short类型的原理 -回复

long类型转short类型的原理 -回复

long类型转short类型的原理-回复Long类型转Short类型的原理在Java中,long类型是一个64位的有符号整数,而short类型是一个16位的有符号整数。

即使它们都是整数类型,但它们的位数不同。

因此,将long类型的值转换为short类型的值可能会导致数据丢失或溢出。

在本篇文章中,我们将一步一步探讨long类型转换为short类型的原理。

一、了解long类型和short类型的位数在理解long类型转换为short类型的原理之前,我们需要先了解它们的位数。

如上所述,long类型是一个64位的整数,short类型是一个16位的整数。

这意味着long类型可以容纳更大的数值范围,而short类型的数值范围较小。

二、值范围溢出由于short类型的范围较小,如果我们尝试将一个很大的long值转换为short类型,就会发生值范围溢出的情况。

例如,如果将一个超过short 类型范围的值强制转换给short类型,该值将被截断为short类型的最大值或最小值。

例如,尝试将2^16转换为short类型(即65536),实际上被截断为short类型的最大值(即32767)。

同样,尝试将-2^16转换为short 类型,实际上会被截断为short类型的最小值(即-32768)。

这就是为什么将一个超过short类型范围的long值转换为short类型时需要谨慎的原因。

三、自动转换和强制转换在Java中,有两种类型转换方式:自动转换和强制转换。

自动转换是指从一个小范围的数据类型转换为一个大范围的数据类型,而强制转换是指从一个大范围的数据类型转换为一个小范围的数据类型。

对于long类型转换为short类型来说,我们需要使用强制转换。

四、强制转换规则在进行强制转换之前,我们需要知道一些强制转换的规则。

强制转换可以通过使用强制转换运算符`()`来实现。

当我们将一个long类型的值强制转换为short类型时,会丢失高位字节,只保留低位字节。

Java面向对象程序设计智慧树知到答案章节测试2023年陕西交通职业技术学院

Java面向对象程序设计智慧树知到答案章节测试2023年陕西交通职业技术学院

第一章测试1.下列选项中,可以正确配置classpath的命令是()A:set classpath =C:Files.0_15 B:classpath set : C:Files.0_15 C:classpath set=C:Files.0_15 D:set classpath : C:Files.0_15 答案:A2.在JDK安装目录下,用于存放可执行程序的文件夹是()A:binB:dbC:jreD:lib答案:A3.下面关于Java程序的描述中,错误的是()A:不同操作系统上的Java虚拟机是相同的B:Java程序运行时,必须经过编译和运行两个步骤。

C:.class格式的文件是用来运行的D:.java格式的源文件是用来编译的答案:A4.下列选项中,哪些选项用于构成JDK开发环境()。

A:Java运行工具B:Java编译工具C:Java文档生成工具D:Java打包工具答案:ABCD5.下列关于使用Javac命令编译后生成文件的说法中,正确的是()A:编译后生成文件的后缀名为.classB:编译后生成的文件可以在Java虚拟机中运行C:编译后生成的文件为二进制文件D:编译后生成文件的后缀名为.java答案:ABC6.下列目录中,哪些属于JDK安装后的子目录()A:jre目录B:lib目录C:include目录D:demo目录答案:ABC7.lib是library的缩写,用于存放Java类库或库文件。

( )A:对B:错答案:A8.如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。

( )A:错B:对答案:B9.在任意命令行窗口中执行javac命令,如果都能正常地显示帮助信息,说明系统path环境变量配置成功。

( )A:对B:错答案:A10.Eclipse只是一个框架和一组服务,所有功能都是将插件组件加入到Eclipse框架中来实现的。

( )A:对B:错答案:A第二章测试1.下列关于注释作用的描述中,错误的是()A:可以对程序进行说明B:会参与编译C:帮助整理编程思路D:可以帮助调试程序答案:B2.下面关于整数类型的描述中,错误的是()A:int是java中的整数类型,它在内存中占4个字节。

Scala类型自动转换强制转换

Scala类型自动转换强制转换

Scala类型⾃动转换强制转换当Scala程序在进⾏赋值或者运算时,精度⼩的类型⾃动转换为精度⼤的数值类型,这个就是⾃动类型转换(隐式转换)。

数据类型按精度(容量)⼤⼩排序为:(1)⾃动提升原则:有多种类型的数据混合运算时,系统⾸先⾃动将所有数据转换成精度⼤的那种数据类型,然后再进⾏计算。

(2)把精度⼤的数值类型赋值给精度⼩的数值类型时,就会报错,反之就会进⾏⾃动类型转换。

(3)(byte,short)和char之间不会相互⾃动转换。

(4)byte,short,char他们三者可以计算,在计算时⾸先转换为int类型。

注意:Scala还提供了⾮常强⼤的隐式转换机制(隐式函数,隐式类等)强制类型转换1)基本说明⾃动类型转换的逆过程,将精度⼤的数值类型转换为精度⼩的数值类型。

使⽤时要加上强制转函数,但可能造成精度降低或溢出,格外要注意。

Java : int num = (int)2.5Scala : var num : Int = 2.7.toInt案例实操(1)将数据由⾼精度转换为低精度,就需要使⽤到强制转换(2)强转符号只针对于最近的操作数有效,往往会使⽤⼩括号提升优先级object TestForceTransfer {def main(args: Array[String]): Unit = {//(1)将数据由⾼精度转换为低精度,就需要使⽤到强制转换var n1: Int = 2.5.toInt // 这个存在精度损失//(2)强转符号只针对于最近的操作数有效,往往会使⽤⼩括号提升优先级var r1: Int = 10 * 3.5.toInt + 6 * 1.5.toInt // 10 *3 + 6*1 = 36var r2: Int = (10 * 3.5 + 6 * 1.5).toInt // 44.0.toInt = 44println("r1=" + r1 + " r2=" + r2)}}数值类型和String类型间转换1)基本说明在程序开发中,我们经常需要将基本数值类型转成String类型。

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

高聪数据类型的转换
1数据的自动转换
数据在计算的过程中往往会发生数据类型的转换,例如:在做2+2.5的时候,2是整型的数据,而2.5是双精度型的,而得到的结果是4.5也是双精度型的,如果你声明的和的变量类型是整形的话,程序将不能输出结果,程序将会报错,数据将损失精度。

程序
A public class G{
public static void main(String[] args){
int a=2;
double b=2.5;
int c=a+b;
System.out.println(c);
}
} B public class G{
public static void main(String[] args){
int a=2;
double b=2.5;
double c=a+b;
System.out.println(c);
}
}
程序A输出的是正确的答案4.5 但是B无法输出答案,报错提示数据价格损失精度。

public class G{
public static void main(String[] args){
String a="喜欢";
char b='男';
char c='女';
String d=b+a+c;
System.out.println(d);
}
}
这里的+是用作连接符的,d是bac相加的结果,所以d是一个字符串类型的变量,所以声明d时要用String 2数据类型的强制转换
int age=19;(正确) char sex=’女’;(正确)char R=age+sex;(错误)
(因为将age和sex连接起来的话是19女,这是一个字符串类型的,而char是用来声明单个的字符的)Int a=10;(正确) int b=10.2;(错误) double c=10;(正确)c=a;(正确) int d=c;(错误)
(int是声明整型的,double是声明双精度型的,声明C的时候用的是double所以c是双精度型的,为10.0,将a的值10付给c之后,属于自动转换,但是c还是双精度型的10.0,后面将c赋值给整形的d的话,还是错误的)——也就是说int类型的可以自动给转换为double型的,但是double不可以自动给转换成int int和char的内存比较double和String来说比较小,所以前者不能自动转换成后者。

字符类型的强制转换
double不能自动转换成int,但是有时候又需要做数据的转换,那么就要做强制转换的工作。

转换方式:int b=(int)10.2;char不可以强制转换成String类型。

例题:去年苹果笔记本所占的市场份额是20,今年增长的市场份额是9.8,仅今年的岁哦站份额(整型输出) 程序:public class G{
public static void main(String[] args){
int a=20;
double z=9.8;
int N=a+(int)z; //(int)z 就是将9.8强制转换成9的整型,a本来就是不需要转换
System.out.println(N);
}。

相关文档
最新文档