第一篇:Java6程序設(shè)計(jì)實(shí)踐教程實(shí)驗(yàn)指導(dǎo)+課后答案
第1章:
1.6習(xí)題集:
一、填空題
1.多態(tài)2.java.exe 3.jdb.exe 4.標(biāo)準(zhǔn)字節(jié)碼5.Java 6.獨(dú)立于平臺(tái)
二、選擇題
1.B 2.A 3.B 4.A 5.A 6.C 7.C 8.D 9.C
第2章:
實(shí)驗(yàn)指導(dǎo):
2.5.1. 第一處需要的代碼:yourGuess>realNumber
第二處需要的代碼:yourGuess=input.nextInt();第三處需要的代碼:yourGuess iArray[i] = iArray[j];iArray[j] = iTemp;2.5.2. 第一處需要的代碼:iArray[i] < iArray[j] 2.5.3. 第一處需要的代碼:continue lable;第二處需要的代碼:System.out.print(“ ”+(i+j));第二處需要的代碼:System.out.print(j + “*” + i + “=” +(i*j)+ “t”);2.5.4. 第一處需要的代碼:System.out.print(“t”);2.6習(xí)題集: 一、填空題 1.i=i+1 sum=sum+1 i<100 2.while do while for 3.9 4. The symbol is an a.The symbol is a b.The symbol is c.The symbol is not a,b,or c.Switch is completed 5.sum=0 pos++ 二、選擇題 1.D 2.A 3.D 4.A 5.D 6.A 7.B 三、簡(jiǎn)答題 2、there is no this value 3.Message four i is 1,2,3 i is 1,2,3 i is 1,2,3 i is 4 8.B 9.C 第3章 實(shí)驗(yàn)指導(dǎo): 3.10.1. 第一處需要的代碼:balance+=saveAccount;第二處需要的代碼:balance+=calculateInterst(Days); 第三處需要的代碼:ba.setMoney(save_value); ba.setInterstRate(interst_rate);第四處需要的代碼:ba.accountInterst(365); second=this.m_Second;第二處需要的代碼:s=d.getMinutes()+“:”+d.getSeconds()+“:”+d.getTime(); balance=bal;第二處需要的代碼:connect this.make=make;this.model=model;第二處需要的代碼:am.run();3.11習(xí)題集: 一、填空題 1.類2.代碼和數(shù)據(jù)3.點(diǎn)4.實(shí)例變量5.Test te=new Test();6.對(duì)象實(shí)例化7.值、引用 8.the original is data is:-1 now the data is:10 9.I am parent I am child I am child 二、選擇題 1.B 2.A 3.C 4.C 三、簡(jiǎn)答題 6. A abstract和final修飾符不能同時(shí)使用 B 未給出類型定義,final int MAX_NUMBER=10;C 常量不能修改 D 靜態(tài)方法值能訪問靜態(tài)變量,static int data。或者把方法標(biāo)志為非靜態(tài)方法,int getData()E 構(gòu)造方法無返回值,把void去掉 F 抽象類不能進(jìn)行實(shí)例化,把a(bǔ)bstract去掉 G 子類不能繼承父類的私有成員,應(yīng)把Parent類中的mine屬性的private修飾符去掉。H 父類對(duì)象不能與之類形式參數(shù)結(jié)合,可以顛倒過來。如下代碼所示: class Parent { } class Child extends Parent{ } class UseChild{ } static int getMine(Parent p){ } return(p.mine);int mine;int mine; 5.A 6.A 7.C 8.A 9.D 10.C 11.A 12.C 13.C 3.10.4. 第一處需要的代碼:super(pass, motor);3.10.3. 第一處需要的代碼:super(number,pass);3.10.2. 第一處需要的代碼:minute=this.m_Minute; public static void main(String[] args){ } Child c=new Child();System.out.println(UseChild.getMine(c));第4章 實(shí)驗(yàn)指導(dǎo) 4.5.1. 第一處需要的代碼:public void print(){System.out.println(“hello”);}yourGuess>realNumber 第二處需要的代碼:Hello h = new Hello();h.print();第二處需要的代碼:public void start(){ System.out.println(“Du du...”);} 第三處需要的代碼:SoundCard sc=new SoundCard();mb.usePCICard(sc);4.5.3. 第一處需要的代碼:this.userAccount = acc;this.userPassword = pass;第二處需要的代碼:public void show(){ System.out.println(resultMessage);} 第三處需要的代碼:user.connect();user.show();4.6習(xí)題集: 一、填空題 1.javac –d.Test.java 2.package 3.public 4. package com.my.test;public void inPut(){System.out.println(“n hi,keybroad has be input into then mainbroad!n”);} public void inPut(){System.out.println(“n hi,netCardBroad has be input into then mainbroad!n”);} publicvoid getMainMessage(Extendbroadable ext){ext.inPut();} 5.Constants.MAX_COUNT 6.interface B extends A{ public void printB();} 二、選擇題 1.C 2.D 3.B 4.C 5.B 6.C 7.C 8.B 9.D 10.D 11.D 12.A 三、簡(jiǎn)答 (1) 1、接口是類似于類的結(jié)構(gòu),它只包含常量和抽象方法。在某些情況下,接口類似于抽象類,但是抽象類能夠包含常量和抽象方法,還能夠包含變量和具體方法。(2) 1、在接口中,數(shù)據(jù)可以是常量;而抽象類可以有數(shù)據(jù)字段。 2、在接口中方法只有無實(shí)現(xiàn)的簽名,而抽象類可以有具體的方法。 3、因?yàn)槎x在接口中的所有方法都是抽象方法,Java不要求將抽象修飾符放在4、接口中的方法簽名中,但是在抽象類中要將抽象修飾符放在抽象方法之前。(3) 1、可以更好的組織類。 2、減少類名的沖突問題,同一包中的類名不能重復(fù),不同包中的類名可以重復(fù); 3、對(duì)包中的類起了一定的保護(hù)作用; (4) 1、直接引用指定的類,如import java.util.Vector; 2、引用一個(gè)包中的多個(gè)類,如import java.awt.*。更確切的說,它并不是引用java.awt中的所有類,4.5.2. 第一處需要的代碼:public void stop(){ System.out.println(“Network stop!”);} 而只引用定義為public的類,并且只引用被代碼引用的類,所以這種引用方法并不會(huì)降低程序的性能; 3、*號(hào)代替類名,在不能代替包名,如import java.awt.*,只引用java.awt下的類,而不引用java.awt下的包; 4、import java.awt.F*,這種使用方法是錯(cuò)誤的; 5、import語(yǔ)句在所有類定義之前,在package定義之后; 6、import只告訴編譯器及解釋器哪里可以找到類、變量、方法的定義,而并沒有將這些定義引入代碼中; 第5章 實(shí)驗(yàn)指導(dǎo): 5.6.1. 第一處需要填寫的代碼:i 一、填空題 1.equalsIgnoreCase 2.Hello I like Java!3.char值4.java.util.Date 5.HELLO!6.False 7.a(chǎn)#a#a## 8.xyz345 9.int len=str.length(); c>='A'&&c<='Z' i++;10.i=0;i int temp=str.charAt(i); sum++; 二、選擇題 1.B 2.A 3.A 4.B 5.D 6.A 7.B 8.D 三、簡(jiǎn)答題 1. 字符串的容量是:28 用過setLength(200)后 字符串的長(zhǎng)度是:200 使用了charAt(2):w 2. 中國(guó): The Money is: ¥30,215.00 The Number is: 121.66667 3.good and gbc 4.strawberry plum persimmon pear peach peach orange grape fig banana apple 第6章 實(shí)驗(yàn)指導(dǎo) 6.4.1. 第一處需要的代碼:number1 = Integer.parseInt(firstNumber);number2= Integer.parseInt(secondNumber);yourGuess>realNumber 第二處需要的代碼:NumberFormatException ex 6.4.2. 第一處需要的代碼:catch(IOException e){System.out.println(“catch ”+e.toString());} 第二處需要的代碼:catch(NumberFormatException e){System.out.println(“catch ”+e.toString());} 6.5習(xí)題集: 一、填空題: 1.Welcome to java The finally clause is executed 2.Welcome to java The finally clause is executed 3.catch(NumberFormatException e){} 4.仍然執(zhí)行 5.ArithmeticException 6.IOException 7.?dāng)?shù)據(jù)轉(zhuǎn)換錯(cuò)誤異常 8.statement1,statement2 二、選擇題 1.C 2.B 3.C 4.D 5.C 6.B 7.C 第7章 實(shí)驗(yàn)指導(dǎo): 7.6.1. 第一處需要填寫的代碼:panel.setVisible(true);第二處需要填寫的代碼:group.add(radioButton1); group.add(radioButton2);第三處需要填寫的代碼:mainPanel.add(panel);7.6.2. 第一處需要填寫的代碼:commentTabPane = new JTabbedPane();第二處需要填寫的代碼:tabAddComponent.add(nameLabel);第三處需要填寫的代碼:queryCom();7.6.3. 第一處需要填寫的代碼:System.exit(0);第二處需要填寫的代碼:new Counter();7.6.4. 第一處需要填寫的代碼:setVisible(true);第二處需要填寫的代碼:frame.getContentPane().add(new JTextArea());7.7習(xí)題集: 一、填空題 1.btn[i]=new JButton(strname[i]);BorderLayout.EAST、BorderLayout.WEST、BorderLayout.SOUTH、BorderLayout.NORTH、BorderLayout.CENTER 2.frame.setContentPane(new CalculatorPanel().createPane());int y = 0;y < 4;y++、button = new JButton(lables[y][x]);3.frame.getContentPane().add(new TreePanel().createComponent());node01.add(node0102);int i = 0;i < names.length;i++、panel.add(new JLabel(names[i]));4.jframe.setVisible(true);Container contentpane=jframe.getContentPane();text.append(s);5.Container contentPanel = frame.getContentPane();frame.setVisible(true);add(part2());panel.setVisible(true);6.Panel pan=new Panel(); 二、選擇題 1.D 2.A 3.B 4.B 5.A 6.D 7.C 第8章 實(shí)驗(yàn)指導(dǎo): 8.6.1. 第一處需要的代碼:contentPane.addMouseListener(this);contentPane.addMouseMotionListener(this); 第二處需要的代碼:g.drawLine(startx,starty,endx,endy);第二處需要的代碼:(e.getActionCommand()).equals(“按我有聲音喔”)第二處需要的代碼:e.getSource()==tree 第二處需要的代碼:x=Double.parseDouble(tf1.getText().trim());8.6.2. 第一處需要的代碼:Container contentPane = f.getContentPane();8.6.3. 第一處需要的代碼:treeModel.insertNodeInto(leafnode,node1,node1.getChildCount());8.6.4. 第一處需要的代碼:b0.addActionListener(new Bt());8.7習(xí)題集: 一、填空題 1.程序符號(hào) 2.授權(quán)事件模型 3.a(chǎn)ctionPerformed(ActionEvent e),itemStateChanged(ItemEvent e)4.事件適配器 5.new WindowAdapter(),System.exit(0); 二、選擇題 1.D 2.C 3.D 4.B 5.A 第9章 參考答案: 實(shí)驗(yàn)指導(dǎo): 9.4.1. 第一處需要填寫的代碼:g_2d.setStroke(bs);g_2d.setColor(Color.yellow);g_2d.draw(hourLine);第二處需要填寫的代碼:secondLine.setLine(120,120,(int)pointSX[a],(int)pointSY[a]);9.4.2. 第一處需要填寫的代碼:signal.setRed(0);signal.setYellow(1);第二處需要填寫的代碼:g.setColor(Color.green);習(xí)題集: 填空題: 1.Drawstring 2.a(chǎn)dd(p1)3.toString(i)4.public void paint(Graphics g){ 5.int count=1;count 1.A 2.B 3.B 4.B 第10章 實(shí)驗(yàn)指導(dǎo): 10.6.1. 第一處需要填寫的代碼:tempStr=bufReader.readLine();第二處需要填寫的代碼:s*=i;10.6.2. 第一處需要填寫的代碼:filePrex == null 第二處需要填寫的代碼:int j = 0;j < children.length;j++ 10.6.3. 第一處需要填寫的代碼:inStream,outStream 第二處需要填寫的代碼:copyBut,0,copyLen 10.6.4. 第一處需要填寫的代碼:tempStr=inObj.readLine();習(xí)題集: 一、填空題: 1.Hello!I like Java!2.110 110 110 110 110 3.InputStreamReader 4.HelloWorld!5.year%4==0&&year%100!=0||year%400==0 6.String s=“information to Appendn mon!n”; 二、選擇題: 1.D 2.A 3.A 4.B 5.D 6.B 7.B 8.D 第11章 參考答案: 實(shí)驗(yàn)指導(dǎo): 11.6.1.第一處需要填寫的代碼:Class.forName(DBDRIVER);conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);第二處需要填寫的代碼:conn = getConnection();stmt = conn.createStatement();第三處需要填寫的代碼:stmt.executeUpdate(“insert into t_test values('ew','dgf','dfg');”); stmt.executeUpdate(“insert stmt.executeUpdate(”insert into into t_test t_test values('dg','df','fdg');“); values('dfg','dfg','dfg');”);stmt.executeUpdate(“insert into t_test values('gdf','df','df');”);第四處需要填寫的代碼:stmt.executeUpdate(“delete from t_test;”);11.6.2.第一處需要填寫的代碼:pstmt=conn.prepareStatement(“insert into t_grade values(?,?,?);”);pstmt.setString(1,name);pstmt.setString(2,course);pstmt.setString(3,grade);pstmt.execute();第二處需要填寫的代碼:rs = stmt.executeQuery(“select * from t_grade”); while(rs.next()){System.out.print(“姓名:”+rs.getString(“name”)); System.out.print(“ 課程:”+rs.getString(“course”));System.out.println(“ 成績(jī):”+rs.getString(“grade”));} conn.close();stmt.close();rs.close();} } BufferedReader readLine()第三處需要填寫的代碼:try{ catch(SQLException e){ e.printStackTrace();11.6.3.第一處需要填寫的代碼:conn = getConnection();stmt = conn.createStatement();stmt.executeUpdate(“delete from t_grade where name = '”+name+“'”); 第二處需要填寫的代碼:pstmt = conn.prepareStatement(“update t_grade set course = ?,grade=? where name = '”+name+“'”);pstmt.setString(1,course);pstmt.setString(2,grade);pstmt.execute();11.7習(xí)題集: 一、填空題: 1.建立與數(shù)據(jù)庫(kù)的連接、處理結(jié)果集 2.executeUpdate 3.CallableStatement 4.conn.createStatement();、rs.next();5.conn.createStatement(ResultSet.Type_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE):rs.updateRow(); 二、選擇題: 1.B 2.A 3.B 4.B 5.C 6.A 7.A 8.C、 第1章:習(xí)題集: 填空題 1.多態(tài)2.java.exe 3.jdb.exe 4.標(biāo)準(zhǔn)字節(jié)碼5.Java 6.獨(dú)立于平臺(tái) 二、選擇題 1.B 2.A 3.B 4.A 5.A 6.C 7.C 8.D 9.C 第2章: 參考答案: 實(shí)驗(yàn)指導(dǎo): 2.5.1. 第一處需要的代碼:yourGuess>realNumber 第二處需要的代碼:yourGuess=input.nextInt();第三處需要的代碼:yourGuess iArray[i] = iArray[j];iArray[j] = iTemp;2.5.2. 第一處需要的代碼:iArray[i] < iArray[j] 2.5.3. 第一處需要的代碼:continue lable;第二處需要的代碼:System.out.print(“ ”+(i+j));第二處需要的代碼:System.out.print(j + “*” + i + “=” +(i*j)+ “t”);2.5.4. 第一處需要的代碼:System.out.print(“t”);習(xí)題集: 一、填空題 1.i=i+1 sum=sum+1 i<100 2.while do while for 3.9 4. The symbol is an a.The symbol is a b.The symbol is c.The symbol is not a,b,or c.Switch is completed 5.sum=0 pos++ 二、選擇題 1.D 2.A 3.D 4.A 5.D 6.A 7.B 三、簡(jiǎn)答題 2、there is no this value 3.Message four i is 1,2,3 i is 1,2,3 i is 1,2,3 i is 4 第3章 參考答案: 實(shí)驗(yàn)指導(dǎo): 3.10.1. 第一處需要的代碼:balance+=saveAccount; 第二處需要的代碼:balance+=calculateInterst(Days);第三處需要的代碼:ba.setMoney(save_value);第四處需要的代碼:ba.accountInterst(365); 8.B 9.C ba.setInterstRate(interst_rate);3.10.2. 第一處需要的代碼:minute=this.m_Minute;second=this.m_Second;第二處需要的代碼:s=d.getMinutes()+“:”+d.getSeconds()+“:”+d.getTime();3.10.3. 第一處需要的代碼:super(number,pass);balance=bal;第二處需要的代碼:connect 3.10.4. 第一處需要的代碼:super(pass, motor);this.make=make;this.model=model;第二處需要的代碼:am.run();習(xí)題集: 一、填空題 1.類2.代碼和數(shù)據(jù)3.點(diǎn)4.實(shí)例變量5.Test te=new Test();6.對(duì)象實(shí)例化7.值、引用 8.the original is data is:-1 now the data is:10 9.I am parent I am child I am child 二、選擇題 1.B 2.A 3.C 4.C 三、簡(jiǎn)答題 6. A abstract和final修飾符不能同時(shí)使用 B 未給出類型定義,final int MAX_NUMBER=10;C 常量不能修改 D 靜態(tài)方法值能訪問靜態(tài)變量,static int data。或者把方法標(biāo)志為非靜態(tài)方法,int getData()E 構(gòu)造方法無返回值,把void去掉 F 抽象類不能進(jìn)行實(shí)例化,把a(bǔ)bstract去掉 G 子類不能繼承父類的私有成員,應(yīng)把Parent類中的mine屬性的private修飾符去掉。H 父類對(duì)象不能與之類形式參數(shù)結(jié)合,可以顛倒過來。如下代碼所示: class Parent { } class Child extends Parent{ } class UseChild{ } public static void main(String[] args){ Child c=new Child();System.out.println(UseChild.getMine(c));static int getMine(Parent p){ } return(p.mine);int mine;int mine; 5.A 6.A 7.C 8.A 9.D 10.C 11.A 12.C 13.C } 第4章 實(shí)驗(yàn)指導(dǎo) 4.5.1. 第一處需要的代碼:public void print(){System.out.println(“hello”);}yourGuess>realNumber 第二處需要的代碼:Hello h = new Hello();h.print();第二處需要的代碼:public void start(){ System.out.println(“Du du...”);} 4.5.2. 第一處需要的代碼:public void stop(){ System.out.println(“Network stop!”);} 第三處需要的代碼:SoundCard sc=new SoundCard();mb.usePCICard(sc);4.5.3. 第一處需要的代碼:this.userAccount = acc;this.userPassword = pass;第二處需要的代碼:public void show(){ System.out.println(resultMessage);} 第三處需要的代碼:user.connect();user.show();填空題 1.javac –d.Test.java 2.package 3.public 4. package com.my.test;public void inPut(){System.out.println(“n hi,keybroad has be input into then mainbroad!n”);} public void inPut(){System.out.println(“n hi,netCardBroad has be input into then mainbroad!n”);} publicvoid getMainMessage(Extendbroadable ext){ext.inPut();} 5.Constants.MAX_COUNT 6.interface B extends A{ public void printB();} 11.D 12.A 選擇題 1.C 2.D 3.B 4.C 5.B 6.C 7.C 8.B 9.D 10.D 簡(jiǎn)答 (1) 1、接口是類似于類的結(jié)構(gòu),它只包含常量和抽象方法。在某些情況下,接口類似于抽象類,但是抽象類能夠包含常量和抽象方法,還能夠包含變量和具體方法。(2) 1、在接口中,數(shù)據(jù)可以是常量;而抽象類可以有數(shù)據(jù)字段。 2、在接口中方法只有無實(shí)現(xiàn)的簽名,而抽象類可以有具體的方法。 3、因?yàn)槎x在接口中的所有方法都是抽象方法,Java不要求將抽象修飾符放在4、接口中的方法簽名中,但是在抽象類中要將抽象修飾符放在抽象方法之前。(3) 1、可以更好的組織類。 2、減少類名的沖突問題,同一包中的類名不能重復(fù),不同包中的類名可以重復(fù); 3、對(duì)包中的類起了一定的保護(hù)作用; (4) 1、直接引用指定的類,如import java.util.Vector; 2、引用一個(gè)包中的多個(gè)類,如import java.awt.*。更確切的說,它并不是引用java.awt中的所有類,而只引用定義為public的類,并且只引用被代碼引用的類,所以這種引用方法并不會(huì)降低程序的性能; 3、*號(hào)代替類名,在不能代替包名,如import java.awt.*,只引用java.awt下的類,而不引用java.awt下的包; 4、import java.awt.F*,這種使用方法是錯(cuò)誤的; 5、import語(yǔ)句在所有類定義之前,在package定義之后; 6、import只告訴編譯器及解釋器哪里可以找到類、變量、方法的定義,而并沒有將這些定義引入代碼中; 第5章 參考答案: 實(shí)驗(yàn)指導(dǎo): 5.6.1. 第一處需要填寫的代碼:i 1.equalsIgnoreCase 2.Hello I like Java!3.char值4.java.util.Date 5.HELLO!6.False 7.a(chǎn)#a#a## 8.xyz345 9.int len=str.length(); 二、選擇題 1.B 2.A 3.A 4.B 5.D 6.A 7.B 8.D 三、簡(jiǎn)答題 1. 字符串的容量是:28 用過setLength(200)后 字符串的長(zhǎng)度是:200 使用了charAt(2):w 2. 中國(guó): The Money is: ¥30,215.00 The Number is: 121.66667 3.good and gbc 4.strawberry plum persimmon pear peach peach orange grape fig banana apple 第6章 實(shí)驗(yàn)指導(dǎo) 6.4.1. 第一處需要的代碼:number1 = Integer.parseInt(firstNumber);number2= Integer.parseInt(secondNumber);yourGuess>realNumber 第二處需要的代碼:NumberFormatException ex 6.4.2. 第一處需要的代碼:catch(IOException e){System.out.println(“catch ”+e.toString());} 第二處需要的代碼:catch(NumberFormatException e){System.out.println(“catch ”+e.toString());} 填空題: 1.Welcome to java The finally clause is executed 2.Welcome to java The finally clause is executed 3.catch(NumberFormatException e){} 4.仍然執(zhí)行 c>='A'&&c<='Z' i++; sum++;10.i=0;i int temp=str.charAt(i);5.ArithmeticException 6.IOException 7.?dāng)?shù)據(jù)轉(zhuǎn)換錯(cuò)誤異常 8.statement1,statement2 二、選擇題 1.C 2.B 3.C 4.D 5.C 6.B 7.C 第7章 實(shí)驗(yàn)指導(dǎo): 7.7.1. 第一處需要填寫的代碼:panel.setVisible(true);第二處需要填寫的代碼:group.add(radioButton1); group.add(radioButton2);第三處需要填寫的代碼:mainPanel.add(panel);7.7.2. 第一處需要填寫的代碼:commentTabPane = new JTabbedPane();第二處需要填寫的代碼:tabAddComponent.add(nameLabel);第三處需要填寫的代碼:queryCom();7.7.3. 第一處需要填寫的代碼:System.exit(0);第二處需要填寫的代碼:new Counter();7.7.4. 第一處需要填寫的代碼:setVisible(true);第二處需要填寫的代碼:frame.getContentPane().add(new JTextArea());習(xí)題集: 填空題 1.btn[i]=new JButton(strname[i]);BorderLayout.EAST、BorderLayout.WEST、BorderLayout.SOUTH、BorderLayout.NORTH、BorderLayout.CENTER 2.frame.setContentPane(new CalculatorPanel().createPane());int y = 0;y < 4;y++、button = new JButton(lables[y][x]);3.frame.getContentPane().add(new TreePanel().createComponent());node01.add(node0102);int i = 0;i < names.length;i++、panel.add(new JLabel(names[i]));4.jframe.setVisible(true);Container contentpane=jframe.getContentPane();text.append(s);5.Container contentPanel = frame.getContentPane();frame.setVisible(true);add(part2());panel.setVisible(true);6.Panel pan=new Panel(); 二、選擇題 1.D 2.A 3.B 4.B 5.A 6.D 7.C 第8章 實(shí)驗(yàn)指導(dǎo): 8.6.1. 第一處需要的代碼:contentPane.addMouseListener(this);contentPane.addMouseMotionListener(this); 第二處需要的代碼:g.drawLine(startx,starty,endx,endy);第二處需要的代碼:(e.getActionCommand()).equals(“按我有聲音喔”)第二處需要的代碼:e.getSource()==tree 第二處需要的代碼:x=Double.parseDouble(tf1.getText().trim());8.6.2. 第一處需要的代碼:Container contentPane = f.getContentPane();8.6.3. 第一處需要的代碼:treeModel.insertNodeInto(leafnode,node1,node1.getChildCount());8.6.4. 第一處需要的代碼:b0.addActionListener(new Bt());習(xí)題集: 一、填空題 1.程序符號(hào) 2.授權(quán)事件模型 3.a(chǎn)ctionPerformed(ActionEvent e),itemStateChanged(ItemEvent e)4.事件適配器 5.new WindowAdapter(),System.exit(0); 二、選擇題 1.D 2.C 3.D 4.B 5.A 第9章 參考答案: 實(shí)驗(yàn)指導(dǎo): 9.4.1. 第一處需要填寫的代碼:g_2d.setStroke(bs);g_2d.setColor(Color.yellow);g_2d.draw(hourLine);第二處需要填寫的代碼:secondLine.setLine(120,120,(int)pointSX[a],(int)pointSY[a]);9.4.2. 第一處需要填寫的代碼:signal.setRed(0);signal.setYellow(1);第二處需要填寫的代碼:g.setColor(Color.green);習(xí)題集: 填空題: 1.Drawstring 2.a(chǎn)dd(p1)3.toString(i)4.public void paint(Graphics g){ 5.int count=1;count 1.A 2.B 3.B 4.B 第10章 實(shí)驗(yàn)指導(dǎo): 10.6.1. 第一處需要填寫的代碼:tempStr=bufReader.readLine();第二處需要填寫的代碼:s*=i;10.6.2. 第一處需要填寫的代碼:filePrex == null 第二處需要填寫的代碼:int j = 0;j < children.length;j++ 10.6.3. 第一處需要填寫的代碼:inStream,outStream 第二處需要填寫的代碼:copyBut,0,copyLen 10.6.4. 第一處需要填寫的代碼:tempStr=inObj.readLine();習(xí)題集: 一、填空題: 1.Hello!I like Java!2.110 110 110 110 110 3.InputStreamReader 4.HelloWorld!5.year%4==0&&year%100!=0||year%400==0 6.String s=“information to Appendn mon!n”; 二、選擇題: 1.D 2.A 3.A 4.B 5.D 6.B 7.B 8.D BufferedReader readLine()第11章 參考答案: 實(shí)驗(yàn)指導(dǎo): 11.6.1.第一處需要填寫的代碼:Class.forName(DBDRIVER);conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);第二處需要填寫的代碼:conn = getConnection();stmt = conn.createStatement();第三處需要填寫的代碼:stmt.executeUpdate(“insert into t_test values('ew','dgf','dfg');”); stmt.executeUpdate(“insert stmt.executeUpdate(”insert into into t_test t_test values('dg','df','fdg');“); values('dfg','dfg','dfg');”);stmt.executeUpdate(“insert into t_test values('gdf','df','df');”);第四處需要填寫的代碼:stmt.executeUpdate(“delete from t_test;”);11.6.2.第一處需要填寫的代碼:pstmt=conn.prepareStatement(“insert into t_grade values(?,?,?);”);pstmt.setString(1,name);pstmt.setString(2,course);pstmt.setString(3,grade);pstmt.execute();第二處需要填寫的代碼:rs = stmt.executeQuery(“select * from t_grade”); while(rs.next()){System.out.print(“姓名:”+rs.getString(“name”)); System.out.print(“ 課程:”+rs.getString(“course”));System.out.println(“ 成績(jī):”+rs.getString(“grade”));} conn.close();stmt.close();rs.close();} } 第三處需要填寫的代碼:try{ catch(SQLException e){ e.printStackTrace();11.6.3.第一處需要填寫的代碼:conn = getConnection();stmt = conn.createStatement();stmt.executeUpdate(“delete from t_grade where name = '”+name+“'”);第二處需要填寫的代碼:pstmt = conn.prepareStatement(“update t_grade set course = ?,grade=? where name = '”+name+“'”);pstmt.setString(1,course);pstmt.setString(2,grade);pstmt.execute();習(xí)題集: 一、填空題: 1.建立與數(shù)據(jù)庫(kù)的連接、處理結(jié)果集 2.executeUpdate 3.CallableStatement 4.conn.createStatement();、rs.next();5.conn.createStatement(ResultSet.Type_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE):、rs.updateRow(); 二、選擇題: 1.B 2.A 3.B 4.B 5.C 6.A 7.A 8.C C語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案 第一章 C語(yǔ)言程序設(shè)計(jì)概述 -習(xí)題答案 算法的描述有哪些基本方法? 答 1、自然語(yǔ)言 2、專用工具C語(yǔ)言程序的基本結(jié)構(gòu)是怎樣的?舉一個(gè)例子說明。 答 1、C語(yǔ)言程序由函數(shù)構(gòu)成; 2、“/*”與“*/”之間的內(nèi)容構(gòu)成C語(yǔ)言程序的注釋部分; 3、用預(yù)處理命令#include、#define可以包含有關(guān)文件或預(yù)定義信息; 4、大小寫字母在C語(yǔ)言中是有區(qū)別的; 5、除main()函數(shù)和標(biāo)準(zhǔn)庫(kù)函數(shù)外,用戶也可以自己編寫函數(shù),應(yīng)用程序一般由多個(gè)函數(shù)組成,這些函數(shù)指定實(shí)際所需要做的工作。C語(yǔ)言有什么特點(diǎn)? 答 1、具有結(jié)構(gòu)語(yǔ)言的特點(diǎn),程序之間很容易實(shí)現(xiàn)段的共享; 2、主要結(jié)構(gòu)成分為函數(shù),函數(shù)可以在程序中被定義完成獨(dú)立的任務(wù),獨(dú)立地編譯代碼,以實(shí)現(xiàn)程序的模塊化; 3、運(yùn)算符豐富,包含的范圍很廣; 4、數(shù)據(jù)類型豐富; 5、允許直接訪問物理地址,即可直接對(duì)硬件進(jìn)行損傷,實(shí)現(xiàn)匯編語(yǔ)言的大部分功能; 6、限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,這樣使C語(yǔ)言能夠減少對(duì)程序員的束縛; 7、生成的目標(biāo)代碼質(zhì)量,程序執(zhí)行效率高,同時(shí)C語(yǔ)言編寫的程序的可移植性好。★指出合法與不合法的標(biāo)識(shí)符命名。 答 AB12--√ leed_3--a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×說明下列Turbo C熱鍵的功能。 答 F2:源文件存盤 F10:調(diào)用主菜單 F4:程序運(yùn)行到光標(biāo)所在行(用于調(diào)試程序)Ctrl+F9:編譯并鏈接成可執(zhí)行文件 Alt+F5:將窗口切換到 DOS 下,查看程序運(yùn)行結(jié)果。說明下列Turbo C方式下輸入并運(yùn)行下列程序,記錄下運(yùn)行結(jié)果。 ①main() {printf(“********************n”);printf(“ welcome you n”);printf(“ very good n);printf(”********************n“);} ②main() { int a,b,c,t;printf(”please input three numbers;“);scanf(”%d,%d,%d“,&a,&b,&c);/*教材S是錯(cuò)誤的*/ t=max(max(a,b),c);printf(”max number is:%dn“,t);} int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);} 答 運(yùn)行結(jié)果: ******************** welcome you very good ******************** 運(yùn)行結(jié)果: please input three numbers;3,1,4 /*左側(cè)下劃線內(nèi)容為鍵盤輸入*/ max number is:4 7 一個(gè)C程序是由若干個(gè)函數(shù)構(gòu)成的,其中有且只能有一個(gè)___函數(shù)。 答 main()8 在Turbo C環(huán)境下進(jìn)行程序調(diào)試時(shí),可以使用Run下拉菜單的___命令或按___鍵轉(zhuǎn)到用戶屏幕查看程序運(yùn)行結(jié)果。 答 1、User screen 2、Alt+F5 9 ★C語(yǔ)言對(duì)標(biāo)識(shí)符與關(guān)鍵字有些什么規(guī)定? 答 1、標(biāo)識(shí)符用來表示函數(shù)、類型及變量的名稱,它是由字母、下劃線和數(shù)字組成,但必須用字母或下劃線開頭。 2、關(guān)鍵字是一種語(yǔ)言中規(guī)定具有特定含義的標(biāo)識(shí)符,其不能作為變量或函數(shù)名來使用,用戶只能根據(jù)系統(tǒng)的規(guī)定使用它們。C源程序輸入后是如何進(jìn)行保存的? 答 是以C為擴(kuò)展名保存的純文本文件。 第二章 C語(yǔ)言程序的基本數(shù)據(jù)類型與表達(dá)式 -習(xí)題答案 ★指出下列常數(shù)中哪些是符合C語(yǔ)法規(guī)定的。 答 ''--× '101'--× ”“--× e3--× 019--√ 0x1e--√ ”abn“--√ 1.e5--×(2+3)e(4-2)--× 5.2e2.5--×請(qǐng)找出下列程序中的錯(cuò)誤,改正后寫出程序運(yùn)行結(jié)果。 ①void main(){int x,y=z=5,aver;x=7 AVER=(x+y+z)/3 printf(”AVER=%dn“,aver);} ②void main() { char c1='a';c2='b';c3='c';int a=3.5,b='A' printf(”a=%db='“endn”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);} 答 main(){int x,y=5,z=5,aver;x=7;aver=(x+y+z)/3;printf(“AVER=%dn”,aver);} 運(yùn)行結(jié)果:AVER=5 ②main() { char c1='a', c2='b', c3='c';int a=3,b='A';printf(“a=%d,b='%c'”end“n”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);} 運(yùn)行結(jié)果:a=3,b='A'“end” aabcc abc 3 寫出下列賦值的結(jié)果,表格中寫了數(shù)值的是要將它賦給其他類型的變量,將所有的空格填上賦值后的數(shù)據(jù)(實(shí)數(shù)保留到小數(shù)點(diǎn)后兩位)。int 99 -1 char 'h' unsigned int float 55.78 long int 答 int 99 104 66 55 68-1 char 'c' 'h' 'B' '7' 'D' unsigned int 99 104 66 55 68 65535 float 99.00 104.00 66.00 55.78 68.00-1.00 long int 99 104 66 55 68-1 ★寫出程序運(yùn)行結(jié)果。 ①void main(){int i,j;i=8,j=10;printf(“%d,%d,%d,%dn”,i,j,++i,j++);} ②main() { int a=1,b=2,c=30;;printf(“%d,%d,%d,%dn”,a=b=c,a=b==c,a==(b=c),a==(b==c));} 注意:a=b=c,a=b==c之間應(yīng)為逗號(hào),教材有誤 答 運(yùn)行結(jié)果: 9,11,9,10 運(yùn)行結(jié)果: 30,1,0,0 ③void main() {int a=10,b=20,c=30,d;d=++a<=10||b-->=20||c++;printf(“%d,%d,%d,%dn”,a,b,c,d);} 答 運(yùn)行結(jié)果: 11,19,30,1 ★寫出下面表達(dá)式的值(設(shè)a=10,b=4,c=5,d=1,x=2.5,y=3.5)。⑴a%=(b%=3) ⑵n++,a+=a-=a*=a ⑶(float)(a+c)/2+(int)x%(int)y ⑷a*=b+c ⑸++a-c+b++ ⑹++a-c+++b ⑺a ⑼a+b,18+(b=4)*3,(a/b,a%b) ⑽x+a%3*(int)(x+y)%2/4+sizeof(int)⑾a 答 ⑴0 ⑵0 ⑶9.500000 ⑷90 ⑸10 ⑹10 ⑺'A' ⑻2 ⑼4.5 ⑽1 ⑾0 ⑿20 ⒀0 下列每組表達(dá)式中,被執(zhí)行后結(jié)果完全等價(jià)的是哪些(設(shè)a、b、m是已被賦值的整型變量)? ①m=(a=4,4*5)與m=a=4,4*5 ②(float)(a/b)與(float)a/b ③(int)a+b與(int)(a+b)④m%=2+a*3與m=m%2+a*3 ⑤m=1+(a=2)+(b=3)與a=2,b=3,m=1+a+b 答 ①前面是賦值表達(dá)式,而后面的是一個(gè)逗號(hào)表達(dá)式,所以一定不同; ②前面的表達(dá)式中a/b結(jié)果為一整數(shù),結(jié)果已經(jīng)取整,精度可能受到影響,之后強(qiáng)制float后才為浮點(diǎn)型,后面的是先將a轉(zhuǎn)換為float后再與b相除,其值保證了精度,所以不同。 ③因?yàn)閍、b均為整數(shù),其前后兩個(gè)表達(dá)式的計(jì)算結(jié)果是一致的。 ④前一表達(dá)式是一算術(shù)表達(dá)式,而后者為一賦值表達(dá)式,此為一點(diǎn)不同;另外,前一表達(dá)式的m只被賦過一次值,后一表達(dá)式中的m曾兩次被賦值,第一次賦值時(shí)與第一表達(dá)式中的值一致,第二次賦值后即不再相同。⑤前后表達(dá)式的計(jì)算結(jié)果應(yīng)該是一致的:a=2, b=3, m=6 7 條件表達(dá)式x>0?x:-x的功能是什么? 答 如果x的值是一正數(shù),則表達(dá)式的值為x值;如果x的值是一非正數(shù),則表達(dá)式的值為-x。其實(shí)該表達(dá)式的值即為x的絕對(duì)值,C語(yǔ)言中提供了一個(gè)函數(shù)fabs(x)即可完成此功能,該函數(shù)包含在math.h頭文件中。用一個(gè)條件表達(dá)式描述從a、b、c中找出最大都賦給max.答 max=a>(b>c?b:c)?a:(b>c?b:c);9 ★若x為int型變量,則執(zhí)行以下語(yǔ)句后x的值為()。x=6;x+=x-=x*x;A.36 B.-60 C.60 D.-24 答 B.10 ★若有以下類型說明語(yǔ)句: char w;int x;float y;double z;則表達(dá)式w*x+z-y的結(jié)果為()類型。A.float B.char C.int D.double 答 D.第三章 順序結(jié)構(gòu)程序設(shè)計(jì) -習(xí)題答案 變量k為float類型,調(diào)用函數(shù)scanf(“%d”,&k),不能使變量k得到正確數(shù)值的原因是___。 答 格式修飾符與變量類型不一致。因?yàn)?d輸入的數(shù)據(jù)類型應(yīng)該為十進(jìn)制整數(shù),而&k為占用4個(gè)字節(jié)的float類型變量的地址。★a=1234,b=12,c=34,則執(zhí)行“printf(“|%3d%3d%-3d|n”,a,b,c);”后的輸出是___。 答 |1234 1234 | 分析如下: ①%3d為右對(duì)齊輸出變量,且指定輸出變量的值寬度為3個(gè)字符位,如果變量實(shí)際位數(shù)小于3,則左端補(bǔ)空格,如果變量實(shí)際位數(shù)大于3,則按實(shí)際長(zhǎng)度輸出,不受限制。 ②%-3d為左對(duì)齊輸出變量,在輸出變量時(shí),如是變量實(shí)際位數(shù)小于3,則在右端補(bǔ)空格,否則按實(shí)際輸出。★設(shè)有“int a=255,b=8;”,則“printf(“%x,%on”,a,b);”輸出是___。答 ff,10 ①如果“printf(“%X,%on”,a,b);”則輸出為FF,10。說明在輸出十六進(jìn)制字母時(shí),其大小寫受格式修飾符的限制,如果是“%x”則輸出小寫,如果是“%X”則輸出大寫。 ②如果希望在輸出十六進(jìn)制時(shí)輸出前導(dǎo)符0x或0X,則以上輸出語(yǔ)句應(yīng)改“printf(“%#x,%on”,a,b);”為或“printf(“%#X,%on”,a,b);”。本條解釋不必須掌握。★以下程序輸出的結(jié)果是___。main(){ int a1=1,a2=0,a3=2;printf(“%d,%d,%dn”,a1,a1+a2+a3,a3-a1);} 答 1,3,1 5 printf函數(shù)中用到格式符%5s,其中5表示輸出字符占用5列。如果字符串長(zhǎng)度大于5,則按___輸出;如果字符串長(zhǎng)度小于5,則按___輸出。 答 ①實(shí)際 ②左端補(bǔ)空格 6 ★已定義變量如下: int a1,a2;char c1,c2;若要求輸入a1、a2、c1和c2的值,正確的輸入函數(shù)調(diào)用語(yǔ)句是___。 答 scanf(“%d,%d,%c,%c”,&a1,&a2,&c1,&c2);7 輸入兩個(gè)整型變量a、b的值,輸出下列算式以及運(yùn)算結(jié)果___。a+b、a-b、a*b、a/b、(float)a/b、a%b 每個(gè)算式占一行。如a=10,b=5,a+b輸出為:10+5=15 答 設(shè)int a=10,b=5;以下為輸出語(yǔ)句及結(jié)果: ①printf(“%d+%d=%dn”,a,b,a+b);10+5=15 ②printf(“%d-%d=%dn”,a,b,a-b);10-5=5 ③printf(“%d*%d=%dn”,a,b,a*b);10*5=50 ④printf(“%d/%d=%dn”,a,b,a/b);10/5=2 ⑤printf(“%(float)d/%d=%fn”,a,b,(float)a/b);(float)10/5=2.000000 ⑥printf(“%d%%%d=%dn”,a,b,a%b);10%5=0 8 ★輸入一個(gè)非負(fù)數(shù),計(jì)算以這個(gè)數(shù)為半徑的圓周長(zhǎng)和面積。答 #define PI 3.1415926 main(){ float r,l,area;printf(“Input a positive:”);scanf(“%f”,&r);l=2*PI*r;area=PI*r*r;printf(“l(fā)=%ftarea=%fn”,l,area);} 9 輸入任意一個(gè)3位數(shù),將其各位數(shù)字反序輸出(例如輸入123,輸出321)。 答 main(){ int x,y;printf(“Input a number(100-999):”);scanf(“%d”,&x);y=100*(x%10)+10*(x/10%10)+x/100;/*注意分析此處算法*/ 1.239頁(yè)1題小時(shí)鐘 procedure TForm1.Timer1Timer(Sender: TObject);var xt,yt:integer;h,m,s,ms:word;begin decodetime(time,h,m,s,ms);xt:=paintbox1.clientwidth div 2;yt:=paintbox1.clientheight div 2;paintbox1.refresh;paintbox1.canvas.moveto(xt,yt);paintbox1.canvas.pen.width:=3;paintbox1.canvas.lineto(xt+round(sin((60*h+m)/(12*60)*2*pi)*100), yt-round(cos((60*h+m)/(12*60)*2*pi)*100));paintbox1.canvas.moveto(xt,yt);paintbox1.canvas.pen.width:=2;paintbox1.canvas.lineto(xt+round(sin(m/60*2*pi)*140), yt-round(cos(m/60*2*pi)*140));paintbox1.canvas.moveto(xt,yt);paintbox1.canvas.pen.width:=1;paintbox1.canvas.lineto(xt+round(sin(s/60*2*pi)*180), yt-round(cos(s/60*2*pi)*180));end;end.2.239頁(yè)3題求兩點(diǎn)間的距離 procedure TForm1.Button1Click(Sender: TObject);begin paintbox1.Refresh;formpaint(sender);end;procedure TForm1.FormPaint(Sender: TObject);var xt,yt:integer;ax,ay,bx,by:integer;begin xt:=paintbox1.ClientWidth div 2;yt:=paintbox1.Clientheight div 2;paintbox1.canvas.MoveTo(xt,0);paintbox1.canvas.lineTo(xt,2*yt);paintbox1.canvas.MoveTo(0,yt);paintbox1.canvas.lineTo(2*xt,yt);ax:=strtoint(edit1.text);ay:=strtoint(edit2.text);bx:=strtoint(edit3.text);by:=strtoint(edit4.text); edit5.Text:=floattostr(sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by))); paintbox1.canvas.MoveTo(xt+ax*10,yt-ay*10); paintbox1.canvas.lineTo(xt+bx*10,yt-by*10);end;end.3.226頁(yè)5題輸入學(xué)生成績(jī) var Form1: TForm1;type studentrecord=record xh,xm:string[6];xb:boolean;yy,sx,dz:integer;end; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var t:studentrecord; f,f1:file of studentrecord;p1,p2:boolean;begin assignfile(f,'c:my documentsstu.dat');reset(f); assignfile(f1,'c:my documentsstu1.dat');rewrite(f1); while not eof(f)do begin read(f,t); p1:=(t.sx>=85)and(t.yy>=85)and(t.dz>=85); p2:=t.sx+t.yy+t.dz>=270;if p1 or p2 then write(f1,t);end; closefile(f);closefile(f1);end; procedure TForm1.FormCreate(Sender: TObject); var t:studentrecord;f:file of studentrecord;xingbie:string;begin assignfile(f,'c:my documentsstu.dat');reset(f); while not eof(f)do begin read(f,t);if t.xb then xingbie:='男' else xingbie:='女'; listbox1.Items.Add(t.xh+' '+t.xm+' '+xingbie+' '+inttostr(t.sx)+ ' '+inttostr(t.yy)+' '+inttostr(t.dz));end; closefile(f);end; procedure TForm1.Button2Click(Sender: TObject);begin close;end;end.4.226頁(yè)8題保存獲得獎(jiǎng)學(xué)金者 var Form1: TForm1;type studentrecord=record xh,xm:string[6];xb:boolean;yy,sx,dz:integer;end; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);var t:studentrecord;f,f1:file of studentrecord;p1,p2:boolean;begin assignfile(f,'c:my documentsstu.dat');reset(f);assignfile(f1,'c:my documentsstu1.dat');rewrite(f1);while not eof(f)do begin read(f,t);p1:=(t.sx>=85)and(t.yy>=85)and(t.dz>=85);p2:=t.sx+t.yy+t.dz>=270;if p1 or p2 then write(f1,t);end;closefile(f);closefile(f1);end;procedure TForm1.FormCreate(Sender: TObject);var t:studentrecord;f:file of studentrecord;xingbie:string;begin assignfile(f,'c:my documentsstu1.dat');reset(f);while not eof(f)do begin read(f,t);if t.xb then xingbie:='男' else xingbie:='女';listbox1.Items.Add(t.xh+' '+t.xm+' '+xingbie+' '+inttostr(t.sx)+ ' '+inttostr(t.yy)+' '+inttostr(t.dz));end;closefile(f);end;procedure TForm1.Button2Click(Sender: TObject);begin close;end;end.5.166頁(yè)22題素?cái)?shù) procedure TForm1.Button1Click(Sender: TObject);type sushuset=set of byte;var sushu:sushuset;i,j,n,m,k:longword;s,s0:string;begin n:=strtoint(edit1.text);m:=strtoint(edit2.text);if n mod 2=0 then n:=n+1;k:=m-n; if k>255 then showmessage('范圍太大,請(qǐng)重新輸入?yún)^(qū)間端點(diǎn)!')else begin sushu:=[0..k];for i:=2 to n-1 do for j:=n to m do if j mod i =0 then sushu:=sushu-[j-n];for i:=n to m div 2 do for j:= i+1 to m do if j mod i =0 then sushu:=sushu-[j-n];s:='';s0:=''; for i:=n to m do if i-n in sushu then begin if length(s0+' '+inttostr(i))>60 then begin s:=s+s0+chr(13);s0:='' end; s0:=s0+' '+inttostr(i);end;s:=s+s0;label1.caption:=s; groupbox1.Top:=(panel1.Top-groupbox1.height)div 2;end;end; procedure TForm1.FormCreate(Sender: TObject);begin groupbox1.Top:=(panel1.Top-groupbox1.height)div 2;end; procedure TForm1.Edit1KeyPress(Sender: TObject;var Key: Char);var j:set of char;begin j:=['0'..'9',#8]; if not(key in j)then key:=#0;end;end.6.148頁(yè)12題整除的數(shù) implementation {$R *.dfm} function d7(x:integer):boolean;begin if x mod 7=0 then d7:=true else d7:=false;end; function d17(x:integer):boolean;begin if x mod 17=0 then d17:=true else d17:=false;end; procedure TForm1.FormActivate(Sender: TObject);var n:integer;begin for n:=1000 to 4000 do if d7(n)and d17(n)then memo1.Lines.Add(inttostr(n));end;end.7.148頁(yè)17題求斐波那契數(shù)列問題 implementation {$R *.dfm} function fib(n:integer):int64;begin case n of 1,2:fib:=1;else fib:=fib(n-1)+fib(n-2);end;end;procedure TForm1.Button1Click(Sender: TObject);var k:integer;begin memo1.lines.clear;for k:=1 to strtoint(edit1.text)do memo1.lines.add(format('%2d %3d',[k,fib(k)]));end;end.8.120頁(yè)10題,判斷是否是閏年 procedure TForm1.Button1Click(Sender: TObject);var y,m:integer;begin y:=strtoint(edit1.text);m:=strtoint(edit2.text);label3.Caption:='';if((y mod 4 = 0)and(y mod 100 <> 0))or(y mod 400=0)then label3.Caption:=edit1.text+'年是閏年,' else label3.Caption:=edit1.text+'年不是閏年,';case m of 3,4,5:Label3.Caption:=Label3.Caption+edit2.Text+'月份是春天,';6,7,8:Label3.Caption:=Label3.Caption+edit2.Text+'月份是夏天,';9,10,11:Label3.Caption:=Label3.Caption+edit2.Text+'月份是秋天,';else Label3.Caption:=Label3.Caption+edit2.Text+'月份是冬天,';end; case m of 1,3,5,7,8,10,12:Label3.Caption:=Label3.Caption+'共有31天,'; 4,6,9,11:Label3.Caption:=Label3.Caption+'共有30天,';else if((y mod 4 = 0)and(y mod 100 <> 0)or(y mod 400=0))then Label3.Caption:=Label3.Caption+'共有29天,' else Label3.Caption:=Label3.Caption+'共有28天,';end;end;end.9.120頁(yè)11題求和的 procedure TForm1.Button1Click(Sender: TObject);var n,k,j:integer;s:int64;begin n:=strtoint(edit1.text);j:=0;s:=0; for k:=1 to n do begin j:=j+k;s:=s+j;end; panel2.Caption:=format('s = %d',[s]);edit1.setfocus;end; procedure TForm1.Edit1KeyPress(Sender: TObject;var Key: Char);var b:boolean;begin b:=(key<>#8)and(key<#48)or(key>#57); if b then key:=#0;end;end.10.120頁(yè)12題男人,女人,小孩各有多少人 procedure TForm1.Button1Click(Sender: TObject);var x,y,z:integer;p:string;begin memo1.clear;for x:=0 to 16 do for y:=0 to 24 do begin z:=30-x-y; if 3*x+2*y+z/1=50 then begin p:=format('%3d %3d %3d',[x,y,z]); memo1.lines.add(p);end;end;end;end.11.98頁(yè)2題求長(zhǎng)方體的表面積 procedure TForm1.Button1Click(Sender: TObject);var s,l,k,h:double;begin l:=strtofloat(edit1.text);k:=strtofloat(edit2.text);h:=strtofloat(edit3.text);s:=2*l*k+2*k*h+2*l*h;label1.Caption:=floattostr(s);end;end.12.98頁(yè)5題計(jì)算圓的面積和周長(zhǎng) procedure TForm1.Edit1KeyPress(Sender: TObject;var Key: Char);var r:real;b:boolean;begin b:=(key<>#8)and(key<>'.')and(key<>#13)and(key<#48)or(key>#57);if b then key:=#0;if key =#13 then begin if edit1.text='' then edit1.text:='0';r:=strtofloat(edit1.text);if radiobutton1.Checked then label1.Caption:=format('圓的面積為: %f',[pi*r*r]);if radiobutton2.Checked then label1.Caption:=format('圓的周長(zhǎng)為: %f',[2*pi*r]);if radiobutton3.Checked then label1.Caption:=format('圓的面積為: %f'+chr(13)+ '周長(zhǎng)為: %f',[pi*r*r,2*pi*r]);edit1.SelectAll;end;end;procedure TForm1.RadioButton1Click(Sender: TObject);var sender0:tobject;key:char;begin sender0:=edit1;key:=#13;form1.edit1keypress(sender0,key);end;procedure TForm1.RadioButton2Click(Sender: TObject);var sender0:tobject;key:char;begin sender0:=edit1;key:=#13;form1.edit1keypress(sender0,key);end;procedure TForm1.RadioButton3Click(Sender: TObject);var sender0:tobject;key:char;begin sender0:=edit1;key:=#13; form1.edit1keypress(sender0,key);end;end.13.98頁(yè)6題統(tǒng)計(jì)奇數(shù)和偶數(shù)的個(gè)數(shù) procedure TForm1.Button1Click(Sender: TObject);var k,j,n:word;begin k:=0; n:=combobox1.items.count;for j:=1to n do if strtoint(combobox1.items[j-1])mod 2 = 0 then k:=k+1; label1.caption:=format('共有: '+#13+'%d個(gè)偶數(shù),'+#13+'%d個(gè)奇數(shù)。',[k,n-k]);end; procedure TForm1.Button2Click(Sender: TObject);begin combobox1.items.clear;end; procedure TForm1.ComboBox1KeyPress(Sender: TObject;var Key: Char);begin if(key =#13)and(combobox1.text<>'')then //按 combobox1.items.insert(0,combobox1.text); //按 combobox1.selstart:=0;combobox1.text:='';end; if key = #27 then if combobox1.itemindex<>-1 then combobox1.items.Delete(combobox1.itemindex);end;end.14.98頁(yè)8題設(shè)置倒計(jì)時(shí)的時(shí)間,并進(jìn)行倒計(jì)時(shí) procedure TForm1.Timer1Timer(Sender: TObject);var m,n,s,h:integer;begin timer1.Tag:=timer1.Tag-1;m:=timer1.Tag;if m<0 then begin timer1.enabled:=false; showmessage('預(yù)定的時(shí)間到了!');edit1.Text:='0';end else begin s:=m; n:=s div 60;s:=s mod 60;h:=n div 60;n:=n mod 60; maskedit1.text:=format('%d:%d:%d',[h,n,s]); if n <> strtoint(edit1.text)then edit1.Text:=inttostr(n);end;end; procedure TForm1.Button1Click(Sender: TObject);begin timer1.enabled:=True; timer1.Tag:=strtoint(edit1.Text)*60;end;end. 《C語(yǔ)言程序設(shè)計(jì)教程》課后題答案 第一章 一選擇題 1.A 2.B 3.C 4.D 5.B 6.C 二.填空題 1.程序 2.算法 3.main或主 4.編譯 5.編譯 6..obj 7.庫(kù)函數(shù) 8.文本或ASCII碼 三、編程題 1.參考代碼如下: #include printf(“金n木n水n火n土n”);} 2.參考代碼如下: #include scanf(“%d%d”,&a,&b); printf(“%d+%d=%dn”,a,b,a+b); printf(“%d-%d=%dn”,a,b,a-b); printf(“%d*%d=%dn”,a,b,a*b); printf(“%d/%d=%dn”,a,b,a/b);} 3.參考代碼如下: #include float a,b,h,s; scanf(“%f%f%f”,&a,&b,&h); s=(a+b)*h/2; printf(“s=%fn”,s);} 第二章 一選擇題 答案及分析: 1.B,略 2.A,-8在內(nèi)存中是以補(bǔ)碼(設(shè)兩個(gè)字節(jié))形式存儲(chǔ)的 3.A,C語(yǔ)言有32個(gè)關(guān)鍵字(參見課本第18頁(yè)),且C語(yǔ)言標(biāo)識(shí)符是區(qū)分大小寫字母的 4.A,略 5.D,八進(jìn)制數(shù)據(jù)中不能出現(xiàn)數(shù)碼8 6.B,字符常量應(yīng)該用單引號(hào)括起來,答案D超出了ASCII取值范圍(ASCII的取值范圍為[0,255]) 7.C,該字符串中轉(zhuǎn)義字符有三個(gè):、22和 n,普通字符有三個(gè):a、,和0,所以字符串長(zhǎng)度為6 8.C,略 9.D,C語(yǔ)言沒有read函數(shù)和%D格式符號(hào),且scanf函數(shù)第二個(gè)形參為地址列表 10.B,根據(jù)題意,scanf函數(shù)輸入數(shù)據(jù)時(shí)分隔符號(hào)不應(yīng)該是逗號(hào),應(yīng)該是空格或回車符,且輸入數(shù)據(jù)時(shí)分一行或幾行均可 11.A,scanf函數(shù)中不允許出現(xiàn)%8.4,%6.2和%8這樣的格式符號(hào) 12.C,既要保證5位小數(shù)位,還得保證整數(shù)位不變,這樣數(shù)據(jù)12345.67800用10列不能完全顯示出來,按C語(yǔ)言規(guī)定,12345.67800原樣輸出 13.B,printf函數(shù)中格式符號(hào)%d,%o,%x表示對(duì)應(yīng)的整型數(shù)據(jù)分別按十進(jìn)制,八進(jìn)制和十六進(jìn)制輸出 14.C,按C語(yǔ)言規(guī)定,scanf函數(shù)形參雙引號(hào)中,如果包含非格式符號(hào),在輸入數(shù)據(jù)時(shí)要求原樣輸入 二.填空題 答案及分析: 1.int float double(略) 2.65,89,printf函數(shù)中如果格式符號(hào)是%d,則輸出相應(yīng)字符的ASCII十進(jìn)制數(shù)值 3.a=98,b=765.000000,c=4321.000000,scanf函數(shù)中的格式符號(hào)%2d%3f%4f,表示將鍵盤輸入的數(shù)據(jù)9876543210按2,3,4位分割,然后再分別賦給變量a,b,c 4.scanf(“%lf%lf%lf”,&a,&b,&c);double類型的變量對(duì)應(yīng)的格式符號(hào)是%lf 三、編程題 1.參考代碼如下: #include int a=97; printf(“%cn”,a); printf(“%dn”,a); printf(“%on”,a); printf(“%xn”,a);} 程序分析:通過printf函數(shù)中不同的格式符號(hào),即%c(字符),%d(十進(jìn)制),%o(八進(jìn)制),%x(十六進(jìn)制)輸出相應(yīng)的值。2.參考代碼如下: #include int h,m,minute; scanf(“%d:%d”,&h,&m); minute=h*60+m; printf(“minute=%dn”,minute);} 程序分析:輸入形式為10:27,故scanf函數(shù)雙引號(hào)中兩個(gè)格式符號(hào)%d之間必須加入“:”。3.參考代碼如下: #include float r=6371000,s,v; s=4*3.1415926*r*r; v=3.1415926*4/3*r*r*r; printf(“s=%fnv=%f”,s,v);} 程序分析:C語(yǔ)言中的π不代表3.1415926,可以用各種常量的形式體現(xiàn)出來。4.參考代碼如下: #include int m100,m50,m20,m10,m5,m1,m; scanf(“%d”,&m); m100=m/100; m50=(m-m100*100)/50; m20=(m-m100*100-m50*50)/20; m10=(m-m100*100-m50*50-m20*20)/10; m5=(m-m100*100-m50*50-m20*20-m10*10)/5; m1=m-m100*100-m50*50-m20*20-m10*10-m5*5; printf(“%d元發(fā)工資,人名幣各票面的張數(shù)為:n”,m); printf(“100元的張數(shù):%dn”,m100); printf(“50元的張數(shù):%dn”,m50); printf(“20元的張數(shù):%dn”,m20); printf(“10元的張數(shù):%dn”,m10); printf(“5元的張數(shù):%dn”,m5); printf(“1元的張數(shù):%dn”,m1);} 程序分析:人民幣的面值分別為100元,50元,20元,10元,5元和1元,工資4367元除以100后得到的商就為100元張數(shù),余數(shù)再除以50,得到的商為50元的張數(shù),余數(shù)再除20,??,以此類推就會(huì)得出人民幣各面值相應(yīng)的張數(shù)。5.參考代碼如下: #include float r1,r2,r3,r; scanf(“%f%f%f”,&r1,&r2,&r3); r=r1*r2*r3/(r1*r2+r2*r3+r1*r3); printf(“三個(gè)電阻并聯(lián)后的總電阻為%fn”,r);} 程序分析:首先將計(jì)算并聯(lián)電阻值的公式變換一下;再就是考慮要保留小數(shù)位,故變量類型設(shè)置為實(shí)型,注意格式符號(hào)為%f。6.參考代碼如下: #include int x,a,b,c,d,y; scanf(“%d”,&x); a=x%10; b=x/10%10; c=x/100%10; d=x/1000; y=a*1000+b*100+c*10+d; printf(“%d逆置各位數(shù)后的值為%dn”,x,y);} 程序分析:1234除以10的余數(shù)就是4,商再除以10的余數(shù)就是3,1234除以100再除以10取余就是2,1234除以1000就是1。也可以用其他的表達(dá)式求出各位數(shù)值,例如輸入數(shù)據(jù)1234中的4,可以用公式a=x-d*1000-c*100-b*10來計(jì)算。7.參考代碼如下: #include float F,C; printf(“請(qǐng)輸入華氏溫度:”); scanf(“%f”,&F); C=5.0/9*(F-32); printf(“華氏溫度%f對(duì)應(yīng)的攝氏溫度為%fn”,F,C);} 程序分析:5/9的值為0,所以要寫成5.0/9,5/9.0或5.0/9.0,還要注意變量類型為實(shí)型,且對(duì)應(yīng)的格式符號(hào)為%f。8.參考代碼如下: #include char ch1,ch2,ch3; printf(“請(qǐng)輸入三個(gè)數(shù)字字符:”); scanf(“%c%c%c”,&ch1,&ch2,&ch3); printf(“將數(shù)字字符轉(zhuǎn)換為數(shù)字%d,%d,%dn”,ch1-'0',ch2-48,ch3-'0');} 程序分析:通過鍵盤輸入三個(gè)數(shù)字字符時(shí)要連續(xù)輸入,不要加任何分隔符號(hào),例如121等,另外,數(shù)字字符輸出時(shí)遇到格式符號(hào)%d將輸出相應(yīng)數(shù)字字符的ASCII值,但任何一個(gè)數(shù)字字符的ASCII值減去字符0的ASCII值,再對(duì)應(yīng)%d格式符號(hào)輸出時(shí),就是數(shù)字字符對(duì)應(yīng)的數(shù)字,例如'2'-'0'=2。 9.不能得到指定的輸出結(jié)果,參考代碼如下: void main(){ int a, b, c,x, y; scanf(“%d%d%d”,&a,&b,&c); x=a*b; y=x*c; printf(“a=%d,b=%d,c=%dn”,a,b,c); printf(“x=%d,y=%dn”,x,y);} 程序分析:scanf(“%d,%d,%d”,a,b,c);scanf函數(shù)第二類形參是地址列表,所以語(yǔ)句改為scanf(“%d,%d,%d”,&a,&b,&c);而這個(gè)語(yǔ)句對(duì)應(yīng)的鍵盤輸入形式為2,3,4。為了滿足題目要求,scanf語(yǔ)句改為scanf(“%d%d%d”,&a,&b,&c)。另外,printf函數(shù)雙引號(hào)只能出現(xiàn)一對(duì),且雙引號(hào)中需要在相應(yīng)的位置上添加a=等這樣的字符串才能原樣輸出;還有整型變量對(duì)應(yīng)格式符號(hào)是%d等。 第三章 一選擇題 1.A 2.C 3.C 4.D 5.C 6.B 7.C 8.B 9.A 10.A 11.A 12.B 13.D 14.A 15.B 16.C 17.C 18.C 19.C 20.C 21.C 22.B 23.C 24.C 25.A 26.B 27.A 28.A 29.C 30.A 31.C 32.C 二.填空題 1.非零 零 2.passwarm 3.525252 4.fabs(x)>5 5.x%y==0 6.if((1<=x&&x<=10||200<=x&&x<=210)&&x%2==1)printf(“%d”,x);7.k=1 8.Right!1 Right!1 9.$$$ a=0 10.a=2,b=1 11.0 “%f%f” a=b;13.“%c”,&ch 'A'<=ch&&ch<='Z' ch 14.死循環(huán) 15.345 16.7 3-1 17.x>=0 x j%3!=0 24.b=i+1 25.8 5 2 26.d=1.0 k++ k<=n 三、編程題 1.參考代碼如下: #include y=x;else if(x==0) y=x-1;else if(x>0&&x<10) y=x+1;printf(“y=%f”,y);} 2.參考代碼如下: #include float a,b,c; printf(“請(qǐng)輸入三角形三邊的長(zhǎng)度:n”); scanf(“%f%f%f”,&a,&b,&c); if(a+b>c&&b+c>a&&a+c>b) if(a==b&&a==c) printf(“該三角形是等邊三角形n”); else if(a==b&&a!=c) printf(“該三角形是等腰三角形n”); else printf(“該三角形是一般三角形n”); else printf(“不能構(gòu)成三角形n”);} 3.參考代碼如下: #include float M,N,menoy; printf(“請(qǐng)輸入購(gòu)買金額:”); scanf(“%f”,&M); if(M<100) N=0; else if(M>=100&&M<200) N=1.5; else if(M>=200&&M<300) N=2.5; else if(M>=300&&M<400) N=3.5; else if(M>=400&&M<500) N=4.5; else if(M>=500&&M<600) N=5.5; else N=6; menoy=M*(1-N/100); printf(“實(shí)際支付金額:%f,返還的金額:%fn”,menoy,M-menoy);} 4.參考代碼如下: #include float M,N,menoy; int in; printf(“請(qǐng)輸入購(gòu)買金額:”); scanf(“%f”,&M); in=M/100; switch(in) { case 0:N=0;break; case 1:N=1.5;break; case 2:N=2.5;break; case 3:N=3.5;break; case 4:N=4.5;break; case 5:N=5.5;break; default :N=6;break; } menoy=M*(1-N/100); printf(“實(shí)際支付金額:%f,返還的金額:%fn”,menoy,M-menoy);} 5.參考代碼如下: #include float x,max; printf(“Enter a number:”); scanf(“%f”,&x); max=x; while(x>0) { printf(“Enter a number:”); scanf(“%f”,&x); if(x>max) max=x; } if(max>0) printf(“The largest number entered was %fn”,max);} 6.參考代碼如下: #include float M,N,menoy; printf(“請(qǐng)輸入購(gòu)買金額:”); scanf(“%f”,&M); while(M>0) { if(M<100) N=0; else if(M>=100&&M<200) N=1.5; else if(M>=200&&M<300) N=2.5; else if(M>=300&&M<400) N=3.5; else if(M>=400&&M<500) N=4.5; else if(M>=500&&M<600) N=5.5; else N=6; menoy=M*(1-N/100); printf(“實(shí)際支付金額:%f,返還的金額:%fn”,menoy,M-menoy); printf(“請(qǐng)輸入購(gòu)買金額:”); scanf(“%f”,&M); } } 7.參考代碼如下: #include float number,positivesum=0,negativesum=0,total=0; int i; for(i=1;i<=10;i++) { scanf(“%f”,&number); if(number>=0)positivesum+=number; else negativesum+=number; total+=number; } printf(“positive sum %f,negative sum %f,total %fn”,positivesum,negativesum,total);} 8.參考代碼如下: #include int i,sum=0,k=1; for(i=1;i<=101;i+=2) { sum=sum+k*i; k=-k; } printf(“1-3+5-7+...-99+101=%dn”,sum);} 9.參考代碼如下: #include float i,sum=0,k=1; for(i=1;k>=1e-4;i++) { sum=sum+k; k=k/i; } printf(“e=%fn”,sum);} 10.參考代碼如下: #include float i,sum=0,n=2,d=1,temp; for(i=1;i<=20;i++) { sum=sum+n/d; temp=n; n=n+d; d=temp; } printf(“sum=%fn”,sum);} 11.參考代碼如下: #include float apple,watermelon,pear; for(apple=1;apple<100;apple++) for(watermelon=1;watermelon<10;watermelon++) { pear=100-apple-watermelon; if(fabs(apple*0.4+watermelon*4+pear*0.2-40.0)<1e-6) printf(“apple:%.0f,watermelon:%.0f,pear:%.0fn”,apple,watermelon,pear); } } 12.參考代碼如下: #include int i,j,k; for(i=1;i<10;i++) for(j=0;j<10;j++) for(k=0;k<10;k++) if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf(“%dn”,i*100+j*10+k);} 或: #include int a,b,c,i; for(i=100;i<1000;i++) { a=i/100; b=i/10%10; c=i%10; if(i==(a*a*a+b*b*b+c*c*c)) printf(“%dn”,i); } } 13.參考代碼如下: #include int a,b,c,d; for(a=1;a<10;a++) for(b=0;b<10;b++) for(c=0;c<10;c++) for(d=0;d<10;d++) if(a*1000+b*100+c*10+d==(a*10+b+c*10+d)*(a*10+b+c*10+d)) printf(“%dn”,a*1000+b*100+c*10+d);} 或: #include int a,b,c,d,i; for(i=1000;i<10000;i++) { a=i/1000; b=i/100%10; c=i/10%10; d=i%10; if(i==(a*10+b+c*10+d)*(a*10+b+c*10+d)) printf(“%dn”,i); } } 14.參考代碼如下: #include int i,j; for(i=1;i<=4;i++)//先控制打印前4行 { for(j=1;j<=4-i;j++) printf(“ ”); for(j=1;j<=2*i-1;j++) printf(“*”); printf(“n”); } for(i=1;i<=3;i++)//再控制打印后3行 { for(j=1;j<=i;j++) printf(“ ”); for(j=1;j<=2*(4-i)-1;j++) printf(“*”); printf(“n”); } } 第四章 一選擇題 1.A,如果沒有給s[1]賦值,按C語(yǔ)言規(guī)定,s[1]下標(biāo)變量中的數(shù)據(jù)是一個(gè)隨機(jī)數(shù) 2.C,“China”字符串末尾還有一個(gè)
主站蜘蛛池模板:
国产精品久久久久影院亚瑟|
国产伦理一区二区|
免费a级毛片18禁网站免费|
亚洲国产人在线播放首页|
亚洲偷偷自拍高清|
亚洲国产精品成人久久久|
成人亚洲欧美成αⅴ人在线观看|
日本人成网站18禁止久久影院|
亚洲男人av香蕉爽爽爽爽|
麻豆md0077饥渴少妇|
久久久久人妻一区精品色|
国产亚洲精品合集久久久久|
精品少妇牲交视频大全|
97人妻熟女成人免费视频色戒|
国产精品成人影院在线观看|
免费精品国自产拍在线不卡|
99精品国产一区二区|
久久亚洲av成人无码国产最大|
国产成人无码精品久久久露脸|
男人添女人下部高潮全视频|
好男人社区神马在线观看www|
国产无遮挡又黄又爽高潮|
成人看片黄a免费看那个网址|
欧美黑人激情性久久|
伊人久久大香线蕉综合色狠狠|
亚洲av激情无码专区在线播放|
亚洲 日韩 另类 制服 无码|
日韩乱码人妻无码系列中文字幕|
午夜片无码区在线观看爱情网|
国产欧美一区二区精品久久久|
欧美交a欧美精品喷水|
97在线视频人妻无码|
久久永久免费人妻精品|
亚洲aⅴ无码专区在线观看q|
国产99在线 | 亚洲|
大帝av在线一区二区三区|
欧美精品一国产成人综合久久|
国产午夜免费高清久久影院|
真人与拘做受免费视频|
日日碰狠狠添天天爽|
亚洲成av人片在线观看无码不卡|
第二篇:《Java6程序設(shè)計(jì)實(shí)踐》教程課后答案_清華大學(xué)出版社
第三篇:C語(yǔ)言程序設(shè)計(jì)教程課后習(xí)題答案
第四篇:完整的delphi程序設(shè)計(jì)教程課后習(xí)題答案
第五篇:《C語(yǔ)言程序設(shè)計(jì)教程》課后題答案