JAVA程序设计实用教程课后习题简答(第3版)
更新时间:2023-09-19 16:12:01 阅读量: 小学教育 文档下载
第1章 Java 概述
1.Java具有那些适合在Internet环境中的特点?
【答】简单性和完全面向对象,平台无关性,安全性和可靠性,多线程,高效的网络编程。
2.Java保留、放弃了C/C++语言中哪些语法和面向对象机制?为什么需要这样做?
【答】 在语法规则方面,Java语言放弃了全程变量、goto语句、宏定义、全局函数以及结构、联合和指针数据类型,使Java语言更简单、更精练。
在面向对象概念方面,Java语言放弃了多元继承、友元类和运算符重载,采用“单重继承+接口”的方式代替多重继承,提供语言级的内存自动管理和异常处理方式,使Java语言更健壮、更安全、更高效。
3.Java对原程序文件的命名规则有什么要求?源程序文件编译后生成什么文件?
【答】 要求:源程序文件与类同名,文件扩展名为.java;编译后生成字节码文件(*.class)。
4.Java程序的运行机制是怎样的?与C++或其他语言有什么不同? 【答】Java的每一个类都有一个class文件和它对应,Java在程序的启动的时候将程序运行需要用到的类加载到虚拟机中,根据Java的虚拟机规范进行连接(动态连接),程序的组装是在运行的时候完成的
C++和其他的编译型的语言一样,它的程序的组装方式是一种传统的组装方式。C++在编译的时候生成适用于某一平台的二进制代码,在连接的时候找到需要调用的库,然后将这些库中的代码连接进可执行程序之中,生成的可执行程序运行速度非常的快,但是可执行代码已经变成了一个整体,不可能再分开
5.什么是平台无关性?Java是怎样实现平台无关性的?
【答】平台无关性即Java程序的运行不依赖于操作系统。Java采用虚拟机技术实现平台无关性。程序由虚拟机解释执行,不同的操作系统上运行不同版本的Java虚拟机。
6.Java应用程序由哪两种形式?他们的运行方式有什么不同?
【答】Application和applet两种形式,其中application是能够独立运行的应用程序,既可以以DOS的命令方式运行,也可以以图形用户界面方式运行。Applet是可以嵌入页面的最小应用程序,不能独立运行,必须嵌入超文本中,由浏览器 显示运行。
7.什么是解释执行?Java怎样解释执行两种应用程序? 【答】解释执行即将字节码解释成本地机器码并执行。 Java源程序文件经编译后生成字节码文件,若是application应用程序,则将字节码文件交由Java解释器解释执行,最后在windows操作系统上运行。若是applet应用程序,则将字节码文件嵌入超文本文件并下载到web浏览器上,最后由windows操作系统中的Java虚拟机运行。
8.作为一个软件开发人员,应该具备那些基础知识用以开发windows应用程序? 【答】略
第2章 Java 语言基础
1.标示符和关键字在定义和使用方面有何区别?
【答】定义方面:标示符是用户定义的、以字母开头的字母数字序列,关键字是由Java语言定义的、具有特定含义的英文单词。
使用方面:标示符用于命名变量、常量、类、对象等元素,每一个关键字都有特定的含义,不能被赋予别的含义。
2.Java语言的基本数据类型有哪些?引用数据类型有哪些?
【答】基本数据类型有:整数类型byte、short、int、long,浮点数类型float、double,字符
类型char,布尔类型boolean;引用数据类型包括数组(array)、类(class)和接口(interface)
3.试分析基本数据类型与引用数据类型的主要特点,并说明使用这两种变量有哪些差别?【答】基本数据类型的变量保存数据值,而引用数据类型的变量保存地址。
4.算术运算、关系运算、逻辑运算和位运算各有哪些运算符? 【答】算术运算:单目运算符有+(正)、—(负)、++(自增)、——(自减),双目运算符有+(加)、—(减)、*(乘)、/(除)、%(取余)
关系运算:=(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)都是双目运算
逻辑运算:&(与)、|(或)、!(非)、^(异或)、&&(条件与)、||(条件或),其中!是单目运算,其它都是双目运算
位运算:~(非)、&(与)、|(或)、^(异或)、<<(左移位)、>>(右移位)、>>>(无符号移位)
5.程序中为什么需要常量和变量?声明常量或变量时,为什么必须给出其所属的数据类型? 【答】在程序中使用的数据大多需要经常变化,用常量值表示显然不够,因此每一种算法语言都提供常量和变量来存储数据。
为了确定常量或变量的数据性质、取值范围、以及它们占用的内存单元的字节数和它们参加的合法运算和操作。
6.什么是变量的作用域,声明变量时,如何确定变量的作用域?
【答】 变量的作用域是指其作用范围。变量声明的位置决定了它的作用域
7.设i是一个整数类型变量,写出下列问题对应的表达式? (1) 判断i为奇数或偶数;
【答】i%2==0 //取值为true时是偶数,否则是奇数
(2) 判断i的值是否在0~9之间;
【答】(i>0)&&(i<9)
8.设ch是一个字符变量,写出下列问题对应的表达式 (1) 判断ch是一个十进制的数字字符
(2) (3) (4) (5) (6) 判断ch是一个十六进制的数字字符 判断ch是一个大写字母
判断ch是一个英文字母,不论大写和小写
如何将一个十进制的数字字符ch转换成对应的整数类型值 如何将一个十六进制的数字字符ch转换成对应的整数类型值
9.说明for、while、和do-while三种循环语句的特点和区别?
While语句的特点:“先判断后执行”,当条件满足时执行循环体 Do-while语句的特点:“先执行后判断”,先执行循环体,再判断条件是否满足 For语句的特点:“先判断后执行”,但for语句将循环控制变量初始值、循环条件和变量的变化规律都以表达式形式写在循环体之前。
10.分别用for,while,do-while三种循环语句计算一个正数的阶乘
(1)for(i=1,i<=10,i++){
int Sum=1;
Sum=Sum*i;} \\\\等价于Sum*=i; (2)int i=1; while(i<=10){ int Sum=1; Sum=Sum*i; i++;}
int i=Sum=1; do{
Sum=Sum*i;
i++;}while(i<=10);
11.输出以下数字的形式; (1) 0 0 0 0
0 1 1 1 0 1 2 2 0 1 2 3
〖解答〗采用二重循环的程序如下。
public class Phalanx {
public static void main(String args[]) {
int n=4; //阶数 for (int i=0;i for (int j=0;j System.out.print(\ \ System.out.println(); } } } (2)输出下列形式的数字三角阵(当n=4时)。 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 〖解答〗采用二重循环的程序如下。 public class Tower { public static void main(String args[]) { int n=4; //行数 for (int i=1;i<=n;i++) { for (int j=1;j<=n-i;j++) //前导空格 System.out.print(\ \ for (int j=1;j<=i;j++) System.out.print(\ \ for (int j=i-1;j>0;j--) System.out.print(\ \ System.out.println(); } } } 12.下列程序希望用for语句求出1~n累加和并显示,请问程序有错误吗?错在哪里?输出结果i和s的值分别是多少? int i=1,n=10,s=0; for(i=1,i<=n,i++); s+=i; System.out.pointln(“Sum=1+??+”+n+”=”+s); 有错误,正确的如下 int i=1,n=10,s=0; for(i=1,i<=n,i++) s+=i; System.out.pointln(“Sum=1+??+”+n+”=”+s); 13.编程验证哥德巴赫猜想。哥德巴赫猜想: (1)任何大于2的偶数都可以表示为2个素数之和,如16=3+13,16=5+11 (2)任何大于5的奇数都可以表示为3个素数之和,如11=2+2+7,11=3+3+5 〖解答〗程序如下。 public class Goldbach { static final int MAX=30; //数据范围 static int[] prime=null; //存放素数的一维数组 static int number; //素数个数,即数组的实际元素个数 public Goldbach(int n) //输出n的哥德巴赫算式 { if (prime==null) init(); if (n%2==0) //偶数 { int i=0; while (i if (isPrime(n-prime[i])) System.out.print(n+\ \ i++; } } else //奇数 { int i=0; while (i int j=i; //如果j=0,则会出现重复的算式 while (j if (isPrime(n-prime[i]-prime[j])) System.out.print(n+\ +(n-prime[i]-prime[j])+\ j++; } i++; } } System.out.println(); } public static void init() //初始化数组,筛选法求素数 { prime = new int[30]; prime[0]=2; //已知的最小素数 number=1; //素数个数 int i=1; //下一个素数应存放的数组下标位置 int k=3; //从最小奇数开始测试,所有偶数不需测试
正在阅读:
研学04-28
奇妙的旅程(转载)02-12
关系数据库设计理论练习题(答案)07-05
(2019-2020)山东省齐河县高考数学三轮冲刺 专题 计数原理练习(含解析)12-02
知识与育人一体,创新与涵养互映04-21
四阶段法的应用实例 - 图文03-20
太白酒厂实习报告 - 图文02-28
- 通信原理实验报告
- 2016年上半年安徽省临床医学检验技术中级技师职称试题
- 传智播客刘意老师JAVA全面学习笔记
- 星级酒店客房部保洁服务标准与工作流程操作规范 - PA新员
- 算法竞赛入门经典授课教案第1章 算法概述
- 《微信公众平台架起家校互通桥》结题报告
- 2018年宁夏银川市高考数学三模试卷(理)Word版含解析
- 大学生创业基础 - 尔雅
- 2016年6月英语六级真题写作范文3套
- 中国磁性材料纸行业专项调查与发展策略分析报告(2015-2020)
- 云南省2018届高三普通高中学业水平考试化学仿真试卷二Word版缺答案
- 窗函数法设计低通滤波器
- 第三章 绩效考评方法与绩效管理模式
- 高等数学教案
- 个人独资合伙企业习题及答案
- 小学语文沪教版三年级上册第六单元第30课《想别人没想到的》公开课优质课教案比赛讲课获奖教案
- 曳引钢丝绳及其他曳引系统校核计算 - 图文
- 淮阴工学院管理学期末试卷7 - 图文
- 受力分析方法(1)
- 2013-2014学年陕西省西安市西工大附小五年级(上)期末数学试卷及解析
- 课后
- 习题
- 程序设计
- 实用
- 教程
- 简答(
- JAVA
- XXXX小区智能化合同(文库)
- 公需科目—《职业发展与规划》试题及答案
- 2016公务员考试行测言语类题目的金钥匙 - 巧用代词
- 阴燃火灾的预防和扑救的注意事项
- B737机电(有答案)
- 三年级下册成语训练
- 最新湘教版小学语文一年级上册《in un ün》优秀教案第一课时(精品)
- 浙江省2004年高中证书会考试卷化学
- 隧道监控量测作业指导书2011.3.4
- 变送器技术规格书
- 二(1)品社评语2014.5
- 第十二届中国诚信企业家大会推选宣传项目申报书 - 图文
- ISIS 是一个什么样的组织 - 图文
- 2016年资料员继续教育考试答案
- 《现代交换原理》综合练习题
- 塔吊基础施工方案 - 图文
- 山作文之资阳字库山公园作文
- 采煤工作面季度质量标准化达标规划
- 把ape、wav无损音乐转换为flac等格式
- 统计学模拟题(A-C 201312)