文档库 最新最全的文档下载
当前位置:文档库 › java第一次

java第一次

java第一次
java第一次

南昌航空大学实验报告

2016 年 4 月26 日

课程名称: java网络编程实验名称:线程与同步

学号:13201513 姓名:饶建同组人:

指导教师评定:签名:

一、实验目的

1.理解线程的基本概念

2.掌握Java中线程类与Runnable接口的应用

3.掌握控制线程基本方法

4.掌握Java中线程的同步与互斥的实现

二、实验内容

1.验证课堂练习的结果,下面是课堂练习的内容:

(1)编写一个程序,能够根据用户的输入的数值生成相应数目的线程,每1秒后结束。

(2)编写一个程序,能够生成n个线程,每个线程每隔1秒打印自己的序号,当用户输入m后第m个线程结束。

(3)编写一个程序,能够生成n个线程,每个线程打印自己的序号后结束,但要求最终的打印的结果为n,n-1,……1。

2.将第三题改写为能够按照任意顺序结束。

3.编写一个程序(由若干个类组成),该程序能够生成3个线程,其中2个线程向一个队列中写入数据,每次写入1个字节,1个线程从队列中读出数据,一次2个字节。

要求读写交替运行,并注意数据的同步,而且队列要借助数组实现。

三、实验步骤

1.运行Eclipse,在其中新建一个Java工程JavaNetwork;

2.创建package https://www.wendangku.net/doc/706365870.html,b2,并在其中创建一个Java类FirstThread并运行查看结果,其代码如下:package https://www.wendangku.net/doc/706365870.html,b2;

import java.io.*;

public class FirstThread extends Thread{

public static void main(String[] args) {

int n;

try {

n=Integer.parseInt((new BufferedReader( new InputStreamReader(System.in))).readLine());

for (int i=0;i

(new FirstThread()).start();

}

} catch (IOException e) {

e.printStackTrace();

}

}

public void run(){

System.out.println("Thread started....");

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println("Thread ended.");

}

}

运行该程序后,程序会等待用户的输入,如果用户输入:3

结果将会是:

Thread started....

Thread started....

Thread started....

Thread ended.

Thread ended.

Thread ended.

即程序会根据用户输入的数值来生成相应数目的线程,每个线程运行1秒后结束。3.在package https://www.wendangku.net/doc/706365870.html,b2中创建一个Java类SecondThread并运行查看结果,其代码如下:package https://www.wendangku.net/doc/706365870.html,b2;

import java.io.*;

public class SecondThread extends Thread{

private int id;

private boolean flag=true;

private static SecondThread t[];

private static int n=5;

public SecondThread(int id){

this.id=id;

}

public void stopThread(){

flag=false;

}

public boolean getThreadState(){

return flag;

}

public static void main(String[] args) {

int m;

t=new SecondThread[n];

for (int i=0;i

(t[i]=new SecondThread(i)).start();

}

while(testThreads()){

try {

m=Integer.parseInt((new BufferedReader(

new InputStreamReader(System.in))).readLine());

t[m].stopThread();

} catch (IOException e) {

e.printStackTrace();

}

}

System.out.println("program ended.");

}

public void run(){

System.out.println("Thread "+id+" started....");

while (flag){

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

System.out.println("Thread "+id+" ended.");

}

private static boolean testThreads(){

boolean flag=false;

for (int i=0;i

flag|=t[i].getThreadState();

}

return flag;

}

}

运行该程序后,屏幕将首先出现:

Thread 0 started....

Thread 1 started....

Thread 2 started....

Thread 3 started....

Thread 4 started....

然后等待用户输入,如果这时用户依次输入0、3、2、1、4,屏幕将依次出现0

Thread 0 ended.

3

Thread 3 ended.

2

Thread 2 ended.

1

Thread 1 ended.

4

Thread 4 ended.

即程序会根据用户输入的数值来结束相应序号的线程,所有线程结束后程序结束。

4.在package https://www.wendangku.net/doc/706365870.html,b2中创建一个Java类ThirdRunnable并运行查看结果,其代码如下:package https://www.wendangku.net/doc/706365870.html,b2;

public class ThirdRunnable implements Runnable{

private int id;

private static int stopid=-1;

static int n=10;

public ThirdRunnable(int id){

this.id=id;

}

public static void main(String[] args) {

for (int i=1;i<=n;i++){

new Thread(new ThirdRunnable(i)).start();

}

stopid=n;

}

public void run(){

System.out.println("Thread "+id+" started....");

while (id!=stopid){

Thread.yield();

}

System.out.println("Thread "+id+" ended.");

stopid--;

}

}

运行该程序后,屏幕将出现:

Thread 1 started....

Thread 2 started....

Thread 3 started....

Thread 4 started....

Thread 5 started....

Thread 6 started....

Thread 7 started....

Thread 8 started....

Thread 9 started....

Thread 10 started....

Thread 10 ended.

Thread 9 ended.

Thread 8 ended.

Thread 7 ended.

Thread 5 ended.

Thread 4 ended.

Thread 3 ended.

Thread 2 ended.

Thread 1 ended.

即程序会根据按照正序启动10个线程,然后逆序结束线程。

5.将ThirdRunnable类改写,使其能够按照任意顺序结束;

下面是就是改写后的结果。

package https://www.wendangku.net/doc/706365870.html,b2;

public class FourthRunnable implements Runnable{

//线程按照下面熟组元素的顺序依次结束。

private static int t[]={4,5,9,3,1,0,2,6,8,7};

private int id;

private static int stopid=0;

public FourthRunnable(int id){

this.id=id;

}

public static void main(String[] args) {

for (int i=0;i

(new Thread(new FourthRunnable(i))).start();

}

}

public void run(){

System.out.println("Thread "+id+" started....");

try {

Thread.sleep(2000);

} catch (InterruptedException e) {

e.printStackTrace();

}

while (id!=t[stopid]){

Thread.yield();

}

System.out.println("Thread "+id+" ended.");

stopid++;

}

}

四、调试分析

在调试线程程序的过程中,并干扰到其它应用程序的正常运行,后来经过仔细观察,发现是因为在线程的循环体当中没有调用sleep语句,从而导致线程不断地抢占CPU,从而影响其它程序的正常运行。

五、实验结果

按照指导书的步骤完成了第1题和第2题,同时编写程序完成了第3题,达到了所要求的实验结果。第3题的源代码如下:

//环形队列

package https://www.wendangku.net/doc/706365870.html,b2;

public class DataQuque {

final int MAXLENGTH=10;

byte[] data=new byte[MAXLENGTH];

int length;

int startpos;

int endpos;

public int read(){

int b;

if (length<2)

return -1;

else if(startpos==MAXLENGTH-2){

b=data[MAXLENGTH-2];

b=b<<8;

b|=data[MAXLENGTH-1];

startpos=0;

length-=2;

return b;

}else if(startpos==MAXLENGTH-1){

b=data[MAXLENGTH-1];

b=b<<8;

b|=data[0];

length-=2;

startpos=1;

return b;

}else{

b=data[startpos];

b=b<<8;

b|=data[startpos+1];

length-=2;

startpos+=2;

return b;

}

}

public boolean write(int b){

if (length==MAXLENGTH)

return false;

else if(endpos==MAXLENGTH-1){

data[MAXLENGTH-1]=(byte)b;

endpos=0;

length++;

return true;

}else{

data[endpos++]=(byte)b;

length++;

return true;

}

}

}

//读取线程

package https://www.wendangku.net/doc/706365870.html,b2;

public class DataReader extends Thread {

boolean flag = true;

DataQuque dq;

int id;

public DataReader(DataQuque dq, int id) {

this.dq = dq;

this.id = id;

}

public void run() {

int b;

try {

Thread.sleep(1000*id);

} catch (InterruptedException e) {

e.printStackTrace();

}

while (flag) {

synchronized (dq) {

if ((b = dq.read()) == -1)

try {

dq.wait();

} catch (InterruptedException e1) {

e1.printStackTrace();

}

else {

System.out.println("read:" + b+" dq:"+dq.length);

System.out.flush();

dq.notifyAll();

}

}

}

}

public void stopThread() {

flag = false;

}

}

//写入线程

package https://www.wendangku.net/doc/706365870.html,b2;

public class DataWriter extends Thread{

boolean flag = true;

DataQuque dq;

int id;

public DataWriter(DataQuque dq, int id) {

this.dq = dq;

this.id = id;

}

public void run() {

try {

Thread.sleep(1000*id);

} catch (InterruptedException e) {

e.printStackTrace();

}

while (flag) {

synchronized (dq) {

if (!dq.write(id)){

try {

dq.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}else{

dq.notifyAll();

System.out.println("write:"+id+" dq:"+dq.length);

System.out.flush();

}

}

}

}

public void stopThread() {

flag = false;

}

}

//控制类(程序入口)

package https://www.wendangku.net/doc/706365870.html,b2;

public class DataController {

public static void main(String[] args) {

DataQuque dq=new DataQuque();

DataWriter dw1=new DataWriter(dq,1);

DataWriter dw2=new DataWriter(dq,2);

DataReader dr=new DataReader(dq,3);

dw1.start();

dw2.start();

dr.start();

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

e.printStackTrace();

}

dw1.stopThread();

dw2.stopThread();

dr.stopThread();

}

}

六、实验总结

通过本次实验,熟悉了Java中线程的创建有二个方法,特别是runnable 接口的练习。需要在创建线程时候的参数是runnable 类的对象。

七、课后练习

1.编写一个多线程程序,该程序主要完成以下工作:

(1)生成两个发送线程s1,s2和一个接收线程r;

(2)接收线程r每接收到M个来自于s1的数据和N个s2的数据后将它们分别求平均值后输出;

(3)这样的接收过程总共进行3次。

//接收线程

package thread.control;

import java.util.*;

public class DataReciever extends Thread{

ArrayList datalist=new ArrayList();

final int MAX=10; //最多只能有10个发送线程

int datanum[]=new int[MAX]; //每个发送者每次能够发送的数据数

int datalength[]=new int[MAX]; //每个发送者能够发送的数据总数

int datacount[]=new int[MAX]; //每个发送者目前已纪发送的数据数

int average[]=new int[MAX];

int senderId;

int size;

int total;

volatile int count;

public DataReciever(){

}

public int connect(int datasize,int maxlength){

datanum[senderId]=datasize;

datalength[senderId]=maxlength;

total+=maxlength;

size+=datasize;

int data[]=new int[datasize]; //该发送线程的数据存储数组

datalist.add(data);

return senderId++;

}

public void run(){

int printcount=0;

int tempcount;

while(true){

tempcount=count;//count在运行中有可能会被接收线程改变,所以这里将它赋值给一个临时变量,以防止因它在运行过程中被改变而造成程序产生错误。

if ((tempcount%size==0)&& (tempcount>0)) {

if (printcount!=tempcount){

printcount=tempcount;//注意位置

printResult();

resetSenders();

}

}

if (tempcount>=total) break;

}

}

public boolean setData(int id,int data){ //新增数据

if (datacount[id]==datanum[id])return false;

addData(id,data);

return true;

}

private void addData(int id,int data){

int temp[]=(int[])datalist.get(id);

temp[datacount[id]]=data;

datacount[id]++;

count++;

}

private void printResult(){ //打印结果

for (int i=0;i

int data[]=(int [])datalist.get(i);

System.out.println("\n\n Data form sender "+i+" : ");

for (int j=0;j

{ System.out.print(data[j]+" ");

average[i]+=data[j];

}

average[i]/=datanum[i];

System.out.println("\n Average : "+average[i]);

}

}

private void resetSenders(){ //清空数据存储数组,准备接收下一组数据。

for (int i=0;i

datacount[i]=0;

}

}

}

//发送线程

package thread.control;

import java.util.Random;

public class DataSender extends Thread{

DataReciever dr;

int id;

int datasize; //求平均所需的数据数(M或N)

int maxlength; //总共要发送的数据数(M*TIMES或N*TIMES)

int count;

public DataSender(DataReciever dr,int datasize,int maxlength) {

this.dr=dr;

this.datasize=datasize;

this.maxlength=maxlength;

id=dr.connect(datasize,maxlength);//与接收线程连接,让接收线程为本发送线程建立数据传送通道(标识,数据数组,每次发送的数据长度,所有数据数)}

public void run() {

while (count < maxlength) { //数据超过最大数则结束线程int data = 0xFF&generateData();//随机产生一个数据

while (!dr.setData(id, data)) //发送数据

Thread.yield();

System.out.print(""+id+".<"+data+">.");

count++;

}

}

private int generateData() {

Random r=new java.util.Random();

return r.nextInt();

}

}

//控制类(产生两个发送线程和一个接收线程。)

package thread.control;

public class DataMain {

public static void main(String[] args) {

final int TIMES=4;

final int M=3,N=5;

DataSender s1,s2;

DataReciever r=new DataReciever();

s1=new DataSender(r,M,M*TIMES);

s2=new DataSender(r,N,N*TIMES);

r.start();

s1.start();

s2.start();

}

}

2.编写一个多线程程序,模拟多个售票点联网出售火车票的场景,假设车票有10张,购票人有20人,售票点有3个,要求最终能够输出每张车票的票号、售出地点、乘客姓名。

//乘客类

package https://www.wendangku.net/doc/706365870.html,b2.ex2;

public class Person {

public int personid;

public String name;

public Person(int personid){

this.personid=personid;

}

}

//火车票类

package https://www.wendangku.net/doc/706365870.html,b2.ex2;

public class Ticket {

public int ticketno;

public String description;

public Ticket(int ticketno){

this.ticketno=ticketno;

}

}

//售票点类

package https://www.wendangku.net/doc/706365870.html,b2.ex2;

import java.util.*;

public class Position extends Thread{

int positionid; //售票点标识

ArrayList personlist; //参加排队的乘客列表

ArrayList ticketlist; //所有的火车票列表

static boolean soldoutflag=false; //标记票是否售完

public Position(int positionid,ArrayList ticketlist){

this.positionid=positionid;

this.ticketlist=ticketlist;

personlist=new ArrayList();

}

public void addPerson(Person p){ //增加一个人排队

personlist.add(p);

}

public boolean sellTicket(Person p){ //售票

synchronized(ticketlist){

if (soldoutflag) return false;

Iterator it = ticketlist.iterator();

Ticket t=null;

if (it.hasNext())

t = (Ticket) it.next();

else {

System.out.println("Ticket is sold out.");

soldoutflag=true;

return false;

}

if (t != null) {

System.out.println("Ticket " + t.ticketno +

" is sold to person "+p.personid+

" at position "+positionid+".");

it.remove();

}

return true;

}

}

public void run(){

Iterator it=personlist.iterator();

Person p;

Random rnd = new Random();

while (it.hasNext()){ //按排队顺序售票

p=(Person)it.next();

if(!sellTicket(p))break;

it.remove();

try {

sleep(Math.abs(rnd.nextInt())%4000); //随机产生的每次售票过程所需的时间

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

//控制类

package https://www.wendangku.net/doc/706365870.html,b2.ex2;

import java.util.*;

public class TicketController {

public static void main(String[] args) {

int i;

ArrayList ticketlist=new ArrayList();

ArrayList personlist=new ArrayList();

Ticket t;

Position pos[]=new Position[3];

Person p;

for (i=0;i<10;i++){

t=new Ticket(i);

ticketlist.add(t);

}

for (i=0;i<3;i++){

pos[i]=new Position(i,ticketlist);

}

for (i=0;i<20;i++){ //将20个乘客分散到3个售票点p=new Person(i);

personlist.add(p);

pos[i%3].addPerson(p);

}

for (i=0;i<3;i++){

pos[i].start();

}

}

}

2013管理会计基础第一次-在线作业答案

2013管理会计基础第一次-在线作业答案

您的本次作业分数为:91分32576 32576 1.已知某企业生产甲、乙两种产品,其单位贡献边际率分别为15%和20%,销售比重分别为40%和60%,则用加权平均法计算综合贡献边际率为()。 A 15% B 17.5% C 18% D 20% 正确答案:C 32586单选题32586 2.下列项目中,不属于现金流出项目的是()。 A 折旧费 B 经营成本 C 各项税款 D 建设投资 正确答案:A 32554单选题32554 3.在短期经营决策中,企业不接受特殊价格追加订货的原因是买方出价低于()。 A 正常价格

B 单位产品成本 C 单位变动成本 D 单位固定成本 正确答案:C 32556单选题32556 4.()处于现代管理会计的核心地位。 A 责任会计 B 规划控制会计 C 预测决策会计 D 标准成本制度 正确答案:C 32594单选题32594 5.某企业只生产一种产品,月计划销售600件,单位变动成本6元,月固定成本1000元,欲实现利润1640元,则单价应为()元。 A 16.40 B 14.60 C 10.60 D 10.40 正确答案:D 32580单选题32580 6.某投资方案的年营业收入为100万元,年营业

D 两者相互制约、相互补充 正确答案:B 32563单选题32563 9.从投资对象上看,管理会计中的长期投资决策是指()。 A 项目投资决策 B 证券投资决策 C 其他投资决策 D 单一目标决策 正确答案:A 32610单选题32610 10.普通年金是指()。 A 后付年金 B 先付年金 C 永续年金 D 递延年金 正确答案:A 32603单选题32603 11.()是现代管理会计形成的关键标志之一。 A 责任会计 B 规划控制会计

(完整word版)Java试题

《Java语言程序设计》 一.选择题:本 大题共20小 题;每小题1 分,共20分。 在每小题给出 的四个选择中,只有一项是符合题目要求的,把所 选择项前的字母填在题后的括号内。 1.一个Java源程序编译后生成的文件为 Test.class,则运行该程序应该使用的命令为 ()。 (A)javac Test (B)javac Test.class (C)java Test (D)java Test.class 2. 下面数据类型的定义中错误的是()。 (A)int a = 10; (B)double d = 1.2; (C)float f = 1.2; (D)char c = ‘A’; 3. 类可以保护它的成员变量和成员函数不会被其 他对象随意访问到,这一特性属于类的()。 (A)封装性(B)继承性 (C)多态性(D)重载 4. 以下关于字符串类的说法正确的是()。 (A)String类用于字符串变量,而 StringBuffer类用于字符串常量 (B)String类用于字符串常量,而 StringBuffer类用于字符串变量 (C)String类的对象只能用“new”关键字 生成 (D)StringBuffer字符串的容量是指字符串 中字符的个数 5. 在Java的异常处理语句中对finally的描述正 确的是()。 (A)不管是否发生异常,finally中的程序 都要执行 (B)只有不发生异常时,finally中的程序 才需要执行 (C)只有异常发生时,finally中的程序才 需要执行 (D)不管是否发生异常,finally中的程序 都不会执行 6. 在子类的定义中有一个和父类同名的成员函 数,这一现象称为函数的()。 (A)继承(B)覆盖 (C)错误(D)重载 7. 下面文件操作中哪一个方法是用来一次创建多 个目录的()。 (A)createNewFiles() (B)mkdir() (C)isDirectory() (D)mkdirs() 8. 在基于Swing的图形用户界面设计中,下面哪 一个属于中间级容器()。

2014年4月份考试Java程序设计第一次作业及答案

2014年3月份考试Java程序设计第一次作业及答案 答案:一、单项选择题(50分,共 20 题,每小题 2.5 分) 1. D 2. C 3. B 4. A 5. D 6. A 7. D 8. B 9. B 10. A 11. A 12. A 13. D 14. A 15. C 16. C 17. C 18. D 19. B 20. A 二、判断题(50分,共 20 题,每小题 2.5 分) 1. √ 2. × 3. √ 4. × 5. √ 6. √ 7. √ 8. √ 9. √ 10. × 11.× 12. × 13. √ 14. × 15. × 16. √ 17. √ 18. × 19. √ 20. √ 一、单项选择题(本大题共50分,共 20 小题,每小题 2.5 分) 1. 在某类的子类中,下述方法中必须要实现的方法是() A. Public double methoda(); B. Static void methoda (double d1) {} C. Public native double methoda(); D. Abstract public void methoda(); 2. 给定File f=new File("aa.txt");可以实现向文件尾部读写的是() A. RandomAccessFile f1=new RandomAccessFile(f,"r"); B. RandomAccessFile f1=new RandomAccessFile(f,"a"); C. RandomAccessFile f1=new RandomAccessFile(f,"rw"); D. RandomAccessFile f1=new RandomAccessFile(f,"w"); 3. 以下由do-while语句构成的循环执行的次数是() int k = 0; do { ++k; }while ( k < 1 ); A. 一次也不执行 B. 执行1次 C. 无限次 D. 有语法错,不能执行 4. 给定类Demo定义如下 下列描述中正确的是() A. 新生成Demo对象时coumt的值为0 B. 新生成Demo对象时coumt的值未定义

JAVA程序设计期末考试题(多套含答案)

《JA V A程序设计》期末考试试题(五) 一、单选题 1、当某一线程正处于休眠状态,而另一个线程用Thread 类中的interrupt() 方法中断它时,抛出的异常类型是()。 A) IOException B) RuntimeException C) InterruptedException D) ClassNotFoundException 2、下面的程序段的功能是( )。 File file1=new File("d:\\xxx\\yyy\\zzz"); file1.mkdirs(); A)在当前目录下生成子目录:\xxx\yyy\zzz B)生成目录:e:\xxx\yyy\zzz C)在当前目录下生成文件xxx.yyy.zzz D)以上说法都不对 3、应用程序的main方法中有以下语句,则输出的结果是( )。 String s = "xxxxxxxxxxxxxxx#123#456#zzzzz"; int n = s.indexOf("#"); int k = s.indexOf("#", n+1); String s2 = s.substring(n+1, k); System.out.println(s2); A) 123456 B) 123 C) xxxxxxxxxxxxxxx D) zzzzz 4、关于下面的程序Test.java说法正确的是( )。 public class Test { String x="1"; int y; public static void main(String args[]) { int z=2; System.out.println(x+y+z); } } A)3 B)102 C) 12 D)程序有编译错误 5、应用程序的main方法中有以下语句,则输出的结果是( )。

浙大远程教育生产管理第一次在线作业答案

浙大远程教育生产管理第一次在线作业答案 单选题 1.并行设计的特点不包括: A 产品设计过程和工艺设计过程不是顺序进行,而是并行展开同时进行 B 产品设计的各阶段是一个递阶、渐进的连续过程 C 产品设计和产品生产同时进行 D 产品设计粒度不断减小正确答案:C 2.并行设计的开发小组不包括: A 环保人员 B 顾客 C 开发人员 D 政府人员正确答案:D 3.产品生命周期一般分为投入期、成长期、成熟期和衰退期四个阶段。企业的运作战略是进一步改善产品的性能,提高产品质量,增加产品产量,在占领原有市场的基础上不断开拓新的市场。该战略适应于产品生命周期的哪个阶段。 A 投入期 B 成长期 C 成熟期 D 衰退期正确答案:B 4.“变化减少方案”VRP适用于哪个阶段。 A 设计阶段 B 制造阶段 C 营销阶段 D 适用阶段正确答案:A 5.供应商之间的双赢体现在: A 采购和供应商之间 B 制造和运输商之间 C 供应链的所有成员 D 核心企业之间正确答案:C 6.订货点与: A 安全库存 B 仓库的容积 C 缺货成本 D 生产需求量有关正确答案:A 7.服务设施选择选址决策相对制造企业的特殊性不包括: A 所选地区人口情况 B 劳动力可获性和价格 C 客流量 D 已有同类服务设施情况正确答案:B 8.流水生产的缺点主要表现在哪个方面。 A 质量不稳定 B 缺乏柔性 C 生产率低 D 管理复杂正确答案:B 9.服务业与制造业的比较主要存在四个方面的差异:生产率的衡量;质量标准;销售与公共关系;需求不均衡的处理。在销售与公共关系方面,和制造业相比服务性运作中与顾客接触是一项重要内容。以下哪一项活动对服务企业的运作管理影响不大。 A 缩短响应时间 B 选择便于消费的市场 C 维护和发展与老顾客的关系 D 制订全面质量标准正确答案:D 10.对于需求波动大价值较高的重要物资适用于哪种库存控制系统? A 连续检查库存控制 B 定期检查库存控制 C 最大最小库存控制 D ABC分类法正确答案:A 11.将产品基本尺寸和参数按一定的规律编排,建立产品系列型图谱,以减少产品品种,简化设计属于并行工程哪种技术。 A 零部件标准化 B 零部件通用化 C 产品系列化 D 零部件标准化正确答案:C 12.工业企业大部分属于多品种中小批量生产类型,以下哪项不是它的特征。

JAVA期末考试试卷

天津城市建设学院2007~2008学年第二学期 《 java 语言程序设计A 》 试题A 卷 课程号:073101-0 试卷说明:闭卷考试,时间120分钟。 一、 填空(本题共15空,每空2分,共30分) 1.如果一个java 源程序文件中定义有4个类,使用sun 公司的JDK 编译器javac 编译该源程序文件将产生_____4___个文件名与类名相同扩展名为___.Class_____的字节码文件。 2.Java 中所有类都是类 __Object__的子类。 3.请填出在java .lang 包中与下列基本数据类型相对应的封装类: float :java .lang .Float , char : _ java .Lang.char_______, boolean : ___ java .Lang.boolean_____。 4.被关键字____final______修饰的方法是不能被当前类的子类重新定义的方法 5.线程的四种状态是__新建_____ 、_运行_ 、_中断 、__死亡___。 6.java 语言中__https://www.wendangku.net/doc/706365870.html,ng.Objet ___是所有类的根。 7.Swing 的事件处理机制包括__事件的监听者__、事件和事件处理者。 8.URL_____Uniform Resourse Locator_____是的缩写。 9.java 有两类应用程序java Application 和____java 10.转义字符以___\__开头。 二、选择(本题共20小题,每题2分,共40分) 1.欲构造ArrayList 类的一个实例,此类继承了List 接口,下列哪个方法是正确的 ? ( B ) A 、 ArrayList myList=new Object (); B 、 List myList=new ArrayList (); C 、 ArrayList myList=new List (); D 、 List myList=new List (); 2.paint()方法使用哪种类型的参数? ( A ) A 、 Graphics B 、 Graphics2D C 、 String D 、 Color 3.指出正确的表达式 ( C ) A 、 byte=128; B 、 Boolean=null; C 、 long l=0xfffL; D 、 double=0.9239d; 4.指出下列程序运行的结果 ( B ) public class Example{ String str=new String("good"); char[]ch={'a','b','c'}; public static void main(String args[]){ Example ex=new Example(); ex .change(ex .str,ex .ch); System .out .print(ex .str+" and "); Sytem .out .print(ex .ch); } public void change(String str,char ch[]){ str="test ok"; ch[0]='g'; } } B 、 good and abc B 、 good and gbc C 、test ok and abc D 、 test ok and gbc 5.运行下列程序, 会产生什么结果 ( A )

广工java第一次作业

import java.io.IOException; import java.util.Scanner; /** *16. 写一个Person类,定义人的基本属性:name(姓名)、age(年龄)、gender(性别)、partner (配偶)。 要求至少为Person类写一个marry(Person p)方法,来判断两个人是否可以结婚。如果可以结婚,将其partner属性赋值为其配偶。 结婚必须满足以下3个条件。 必须是异性,同性暂时不允许结婚 有配偶者不能结婚,犯重婚罪。 要达到年龄方可结婚:男方23岁以上,女性21岁以上。 * @author Administrator * */ class MemberOfPerson{ public String name; public int age; public String gender; //性别 public String partner; } public class Person { /** * 判断两个人的性别是否相同 * @param s 对象person的性别 * @param s2 对象person2的性别 * @return 返回一个boolean值 */ private static boolean isSexDifferent(String s,String s2){ if((s.equals("男") && s2.equals("女"))||(s.equals("女") && s2.equals("男"))){ return true; } else if((s.equals("男") &&s2.equals("男"))||(s.equals("女") && s2.equals("女"))){ return false; } else{ System.out.println("你输入的性别数据有误"); return false; } } /**

java期末考试试题及答案

1.谈谈final, finally, finalize的区别。 final关键字: a) 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。 b) 将变量或方法声明为final,可以保证它们在使用中不被改变。 c) 被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。 d) 被声明为final的方法也同样只能使用,不能重载。 finally关键字:在异常处理时提供finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch 子句就会执行,然后控制就会进入finally 块。 finalize:方法名,不是关键字。Java技术允许使用finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 2.GC是什么? 为什么要有GC? GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc() Runtime.getRuntime().gc() 3.Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 写程序Math.round(11.5) = 12 Math.round(-11.5) = -11 4.给我一个你最常见到的runtime exception ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

市场营销学第一次在线作业答案

视窗 × loading... 第一次在线作业 单选题 (共23道题) 展开 收起 1.( 2.5分)下列有关交换的说法哪个是正确的?( ) ?A、人们要想获得所需要的产品,必须通过交换 ?B、交换是一个结果而不是一个过程 ?C、交换也就是交易的另一种说法 ?D、交换是人们获得自己所需要的某种产品的一种方式 我的答案:D 此题得分:2.5分 2.(2.5分)市场营销概念的核心是() ?A、交换 ?B、需求 ?C、需要 ?D、产品 我的答案:A 此题得分:2.5分 3.(2.5分)从市场理论的角度而言,企业市场营销的最终目的是()

?A、满足消费者的需求和欲望 ?B、求得生存和发展 ?C、推销商品 ?D、获取利润 我的答案:A 此题得分:2.5分 4.(2.5分)市场营销学的“革命”的标志是提出了什么观念() ?A、以消费者为中心 ?B、以生产者为中心 ?C、市场细分 ?D、市场营销组合 我的答案:A 此题得分:2.5分 5.(2.5分)市场营销应该以()为中心。 ?A、产品 ?B、服务 ?C、价格 ?D、顾客 我的答案:D 此题得分:2.5分 6.(2.5分)从市场营销的角度看,市场就是()。 ?A、买卖的场所 ?B、商品交换关系的总和

?C、交换过程本身 ?D、具有购买欲望和支付能力的消费者 我的答案:D 此题得分:2.5分 7.(2.5分)消费者未能得到满足的感受状态称为()。 ?A、欲望 ?B、需要 ?C、需求 ?D、愿望 我的答案:B 此题得分:2.5分 8.(2.5分)()是企业最理想的一种需求状况。 ?A、过量需求 ?B、充分需求 ?C、不规则需求 ?D、潜伏需求 我的答案:B 此题得分:2.5分 9.(2.5分)一般来说,市场营销环境包括()。 ?A、直接营销环境和间接营销环境 ?B、微观环境和宏观环境 ?C、微观环境和中观环境 ?D、宏观环境和中观环境

Java期末考试试卷答案A

JAVA程序设计试卷库(第5套) 一、单选题(每小题 2 分,共 20 分) 1、Java Application源程序的主类是指包含有( A )方法的类。 A. main方法 B. toString方法 C. init方法 D. actionPerfromed方法 2、分析下面的程序段,下面的哪个描述是正确的。( B ) char mychar=’c’; switch(mychar){ default: case ‘a’“a”);break; case ‘b’“b”);break; } A.switch语句块是错误的, 因为switch后面的表达式 值的类型不是整数; B.switch语句块是正确的; C.switch语句块是错误的, 因为default没有放在语 句块的最后面; D.代码运行时,没有任何输出 结果。 3、编译并运行下面的Java程序, 将产生( B )结果。 class A{ int var1=1; int var2; public static void main(String[] args){ int var3=3; A a=new A(); } } A. 0 B. 4 C. 3 D. 代码无法编译,因为var2根本 没有被初始化 4、在Java中,下面关于包的陈述 中正确的是( D )。

A. 包的声明必须是源文件的任意位置; B. 包的声明必须紧跟在import 语句的后面; C. 只有公共类才能放在包中; D. 可以将多个源文件中的类放在同一个包中 5、 在Java 语言中,当一个类的某个变量声明为protected 时下列说法正确的是( C )。 A. 只有同一类中的成员才能访问它; B. 不同包中的任何其他类都能够访问它; C. 同包中的任何其他类能够访问它; D. 不同包中的子类不可以访问该变量。 6、在Java 中,执行下面的语句后,c 的值为( D )。 String s= "Jessica "; char c=s.charAt(6); A. "c " B. "a " C. 'c ' D. 'a ' 7、设有下面两个赋值语句: a = Integer.parseInt(“1024”); b = Integer.valueOf(“1024”).int Value(); 下述说法正确的是( D )。 A .a 是整数类型变量,b 是整数类对象。 B .a 是整数类对象,b 是整数类型变量。 C .a 和b 都是整数类对象并且它们的值相等。 D .a 和b 都是整数类型变量并且它们的值相等。 8、事件剪裁类如WindowAdapter (它实现了WindowListener 接

java第一次作业题目2013版

1. 题目:从键盘上输入两个正整数m和n,求其最大公约数和最小公倍数,必须判断输入数的正确性(比如非正整数等必须提示)。[选题人数:3] 2. 题目:给出一个月的总天数 编写程序,提示用户输入月份和年份,然后显示这个月的天数。例如,如果用户输入的月份是2而年份是2000,那么程序应显示“2000年2月有29天”。如果用户输入的月份为3而年份为2005,那么程序就应该显示“2005年3月有31天”。(提示:必须判断是否是闰年)[选题人数:3] 3. 题目:计算一个三角形的周长 编写程序,提示用户从键盘输入三角形的三条边,如果输入值合法就计算这个三角形的周长,否则,显示这些输入值不合法(如果任意两条边的和大于第三条边,那么输入值都是合法的)。[选题人数:3] 4. 题目:奖金发放问题 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?[选题人数:3] 5. 题目:打印金字塔形的数字 编写一个嵌套的for循环,打印下面的输出。 1 2 1 1 2 4 2 1 1 2 4 8 4 2 1 1 2 4 8 16 8 4 2 1 1 2 4 8 16 32 16 8 4 2 1 1 2 4 8 16 32 64 32 16 8 4 2 1 1 2 4 8 16 32 64 128 64 32 16 8 4 2 1 [选题人数:2] 6. 题目:十进制转换成二进制或十六进制 编写程序,从键盘上输入一个十进制整数,然后显示对应的二进制值或十六进制值。在这个程序中不要使用Java的Integer.toBinaryString(Int)或Integer.toHexString(Int)这两个方法。[选题人数:4] (其中2个选十进制转二进制,2个选十进制到十六进制) 7. 题目:回文整数 编写一个程序,提示用户输入一个整数值,然后报告这个数是否是回文数(例如131,逆向结果也是131)。判断回文数的函数如下: //返回一个数是否是回文数 public static Boolean isPalindrome(int number) [选题人数:3] 8.题目:回文素数 回文素数是指一个数同时为素数和回文数。例如:131是一个素数,同时也是一个回文数。数字313和757也是如此。编写程序,显示前100个回文素数,每行显示10个数并且准确对齐,如下所示: 2 3 5 7 11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929 ……. …. …. ………………. [选题人数:3] 9. 题目:打印不同的数

JAVA期末考试复习试题

JAVA期末考试复习试题 JAVA期末考试复习试题 1.使用Java语言编写的源程序保存时的文件扩展名是()。(A).class (B).java (C).cpp (D).txt 2.设int a=-2,则表达式a>>>3的值为()。(A)0 (B)3 (C)8 (D)-1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是()。(A)a[0]; (B)a[a.length-1]; (C)a[3]; (D)int i=1; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数()。(A)封装(B)继承(C)覆盖(D)重载5.在类的定义中构造函数的作用是()。(A)保护成员变量(B)读取类的成员变量(C)描述类的 特征(D)初始化成员变量6.下面关键字中,哪一个不 是用于异常处理语句()。(A)try (B)break (C)catch (D)finally 7.类与对象的关系是()。 (A)类是对象的`抽象(B)对象是类的抽象(C)对象 是类的子类(D)类是对象的具体实例8.下面哪一个是Java中不合法的标识符()。(A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形

式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为( )。(A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接 口,下列哪个方法是正确的()。(A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 11.Java源文件和编译后的文件扩展名分别为 ()(A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java 12.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类 的( )方法来完成一些画图操作。(A) start( ) (B) stop( ) (C) init( ) (D) paint( ) 13.对于一个Java源文件,import, class定义以及package正确的顺序是: (A) package,import,class (B) class,import,package (C) import,package,class (D) package,class,import 14.下面哪个是非法的:(A) int I = 32; (B) float f = 45.0; (C) double d = 45.0; (D) char c = ‘u’; //符号错15.Java语言使用的字符码集是(A) ASCII (B) BCD (C) DCB (D) Unicode 16. 如果一个类的成员变量只能在

第一次作业答案

第一次作业答案

1、一项调查表明,消费者每月在网上购物的平均花费是200元,他们选择在网上购物的主要原因是“价格便宜”。 (1)这一研究的总体是什么? (2)“消费者在网上购物的原因”是分类变量、顺序变量还是数值型变量?研究者所 关心的参数是什么? (3)“消费者每月在网上购物的平均花费是200元”是参数还是统计量? (4)研究者所使用的主要是描述统计方法还是推断统计方法? 答:(1)总体是“所有网上购物的消费者”; (2)分类变量;所有网上购物的消费者的月平均花费和网上购物的主要原因; (3)统计量; (4)推断统计方法。 3、案例:分析运动员发挥的稳定性

(1)用箱线图 Excel: Spss:

(2)Excel: 亚历山大(乌 克兰)拉尔夫(德国) 克里斯蒂安(德 国) 平均10.01 平 均 10.025 平均10.015 标准0.11874 3 标 准 0.12954 9 标准 误差 0.16129

误差误差 中 位数10.15 中 位 数 10.15 中位 数 10.2 众数10.3 众 数 10.3 众数9.9 标准差0.53103 7 标 准 差 0.57936 标准 差 0.721311 方差0.282 方 差 0.33565 8 方差0.520289 峰度3.71162 9 峰 度 1.99695 7 峰度 2.721327 偏度-1.6599 6 偏 度 -1.0139 1 偏度-1.52925 区域2.4 区 域 2.5 区域 2.9 最 小值8.4 最 小 值 8.4 最小 值 7.9 最10.8 最10.9 最大10.8

JAVA期末考试考卷及答案

《J A V A语言程序设计》期末考试模拟试题 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展 名为( B )。 A. .java B. .class C. .html D. .exe 2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方 法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为 前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题(每空格1分,共20分) 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码和解释运行字节码。

MyApplet必须是 Applet 类的子类并且存储该源程序文件的文件名为MyApplet 。 3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译 器编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。 4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占 用 2 字节内存空间。 5、设 x = 2 ,则表达式 ( x + + )/3 的值是 1 。 6、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为 true 和 false 。 7、抽象(abstract)方法方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法方法是不能被当前类的子类重新定义的方法。 8、创建一个名为 MyPackage 的包的语句是 package MyPackag , 该语句应该放在程序的位置为:应该在程序第一句。 9、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 120 。 int s = 0 ; for ( int i = 0 ; i < ; i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] ; 10、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。

java第一次作业

15、在构造函数中使用super引用时有什么限制?() 选择一项: a. 只能用在父类的构造函数中。 b. 只有一个子类可以用。 c. 必须出现在构造函数的第一条语句。 d. 必须出现在构造函数的最后一条语句。 3、 Java 中,能实现多重继承效果的方式是() 选择一项: a. 适配器 b. 同步 c. 接口 d. 内部类 4、在Java 中,所有类的公共基类是() 选择一项: a. https://www.wendangku.net/doc/706365870.html,ng.Class b. java.awt.Frame c. java.applet.Applet d. https://www.wendangku.net/doc/706365870.html,ng.Object 2、作为Java应用程序入口的main方法,其声明格式可以是()选择一项: a. public static void main(String [] args) b. public static void Main(String * args) c. public void main(String [] args) d. public int main(String [] args)

13、若特快订单是一种订单,则特快订单类和订单类的关系对应于面向对象编程(OOP)中的术语() 选择一项: a. 无关系 b. 使用关系 c. 继承关系 d. 包含关系 5、在Java中,用package 语句声明一个包时,该包的层次结构必须是()选择一项: a. 与文件大小相同 b. 与文件结构相同 c. 与文件类型相同 d. 与文件目录的层次相同 7、下列叙述中,错误的是() 选择一项: a. 接口与类的层次无关 b. 通过接口说明类所实现的方法 c. 接口与存储空间有关 d. 通过接口可以了解对象的交互界面 1、下列关于构造方法的叙述中,错误的是() 选择一项: a. Java 语言规定构造方法不可重载 b. Java 语言规定构造方法名与类名必须相同 c. Java 语言规定构造方法只能通过new自动调用 d. Java 语言规定构造方法没有返回值,但不可用void 声明

java期末考试复习题及答案

《Java程序设计》课程试卷 1.使用Java语言编写的源程序保存时的文件扩展名是( B )。 (A).class (B).java (C).cpp (D).txt 2.设int a=-2,则表达式a>>>3的值为( C )。 (A)0 (B)3 (C)8 (D)-1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。 (A)a[0]; (B)a[a.length-1]; (C)a[3]; (D)int i=1; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( D )。 (A)封装(B)继承(C)覆盖(D)重载 5.在类的定义中构造函数的作用是( D )。 (A)保护成员变量(B)读取类的成员变量(C)描述类的特征(D)初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( B )。 (A)try (B)break (C)catch (D)finally 7.类与对象的关系是( A )。 (A)类是对象的抽象(B)对象是类的抽象(C)对象是类的子类(D)类是对象的具体实例 8.下面哪一个是Java中不合法的标识符( D )。 (A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( C )。 (A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 11.Java源文件和编译后的文件扩展名分别为( B ) (A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java

第一次 作业答案

第二章财务管理的基础知识 一、计算题 1.某企业年初投资100万元生产一种新产品,预计每年年末可得净收益10万元,投资年限为10年,年利率为5%。【要求】 (1)计算该投资项目年收益的现值和终值。 (2)计算年初投资额的终值。 解:(1)年收益现值 P= 10×(P/A,5%,10) = 10×7.7217 = 77.217 (万元) 年收益终值 F= 10×(F/A,5%,10) =10×12.578 =125.78(万元) (2)年初投资额终值 F=100×(F/P,5%,10) =100×1.6289 =162.89(万元)

2.某人准备5年后支付一笔10 000元的款项,年利率为5%。【要求】计算此人现在应存入银行多少钱,5年的复利利息为多少元。 解:复利现值 P=10000×(P/F,5%,5) =10000×0.7835 =7835(元) 复利利息 I=F-P =10000-7835 =2165(元) 3.某企业2003年年初投资一个项目,预计从2006年起至2010年每年年末可获得净收益20万元,年利率为5%。 【要求】计算该投资项目年净收益的终值和现值。 解:年净收益的终值 F=20×(F/A,5%,5) =20×5.5256 =110.512(万元)

年收益的现值 P=20×[(P/A,i,m+n)﹣(P/A,i,m) =20×[(P/A,5%,8)﹣(P/A,5%,3) =20×(6.4632﹣2.7232) =74.796(万元) 4.某企业投资一个项目,每年年初投入10万元,连续投资3年,年利率为5%。 【要求】 (1)计算该项目3年后的投资总额 (2)若3年的投资额于年初一次性投入,投资总额是多少? 解:(1)预付年金终值 F=10×(F/A,5%,3)×(1+5%) =10×3.1525×1.05 =33.10(万元) (2)预付年金现值 P=10×(P/A,5%,3)×(1+5%) =10×2.7232×1.05 =28.59(万元)

java 第一次作业 一些小程序编写题目

第1 、2章 【程序1】 判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 【程序2】 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 【程序3】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 【程序4】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 【程序5】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 【程序6】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为'\n'. 【程序7】 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。 【程序8】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 【程序9】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

相关文档
相关文档 最新文档