2008年全国自考Java语言程序设计(一)真题答案

2008年全国自考Java语言程序设计(一)真题答案
2008年全国自考Java语言程序设计(一)真题答案

2008年全国自考Java语言程序设计(一)真题答案

参考答案

一、单项选择题 (本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1:参考答案:D

参考解析:(P8)本题考核知识点是Java语言标识符命名规则。

Java语言标识符可以按以下规则任意命名:

①由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成。

②限定标识符的第一个字符不能是数字字符。

选项D答案第一个字符是数字字符。

试题内容:

下述字符组合不能作为Java程序标识符的是【】

A:Aa12

B:大x

C:y小

D:5x

2:参考答案:A

参考解析:(P14)本题考核知识点是Java算术运算符——“/”。

“/”为除法运算符,当除数和被除数均为整数类型数据时,则结果也是整数类型数据。所

以当x=53时,x/2=26。

试题内容:

以下程序代码的输出的结果是【】

int x=53;

System.out.println(1.0+x/2);

A:27.0

B:27.5

C:1.026

D:1.026.5

3:参考答案:B

参考解析:(P46)本题考核知识点是实例变量、类变量、局部变量。

类的成员变量分为实例变量和类变量。在定义成员变量时,用关键字static修饰的是类

变量,定义时未用static修饰的是实例变量。类变量是类的所有对象共享的成员变量,

一个类变量在类中只有一个,它属于整个类,而不属于类的某个对象。引用类变量的途径

有两条,或通过类,或通过对象。类的方法体中定义的变量称为局部变量,方法参数也属

于局部变量。

试题内容:

A:x、y和s都是成员变量

B:x是实例变量、y是类变量、s是局部变量

C:x和y是实例变量、s是参数

D:x、y和s都是实例变量

4:参考答案:C

参考解析:(P77)本题考核知识点是StringTokenizer类。

java.util包中的类StringTokenizer用于语言符号(单词)的分析,分析出字符串中的单词。另外还有命名的习惯约定(行业习惯,不是规定):一般变量名、方法名用小写英文字母开头,类名首字母用大写字母,若命名由若干个单词组成,后面的每个单词用大写开头;文字和常数全用大写字母命名;包名全部用小写字母。

试题内容:

需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java.util包中的类是【】A:String

B:StringBuffer

C:StringTokenizer

D:stringTokenizer

5:参考答案:D

参考解析:(P91)本题考核知识点是JFrame类和关键字super。

在用Swing编写GUI程序时,通常不直接用JFrame创建窗口对象,而用JFrame派生的子类创建窗口对象,在子类中可以加入窗口的特定要求和特别的内容,这时可以使用超类的构造方法完成窗口的标题设置即super(s)。选项C完整的使用形式可以这样:

JFrame myWin=new JFrame(s)//创建JFrame窗口对象myWin,标题是s

但这样不符合本题题干“为程序的子窗口设定标题”的要求。

试题内容:

要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是【】

A:JFrame(s)

B:window(s)

C:new JFrame(s)

D:super(s)

6:参考答案:A

参考解析:(P118)

试题内容:

以下关于菜单的叙述中,正确的是【】

A:菜单分三级定义,最高一级的是菜单条,菜单条中放菜单,菜单中放菜单项

B:菜单分三级定义,最高一级的是菜单,菜单中放菜单条,菜单条中放菜单项

C:菜单分两级定义,最高一级的是菜单,菜单中放菜单项

D:菜单分两级定义,最高一级的是菜单条,菜单条中放菜单项

7:参考答案:B

参考解析:(P137)本题考核知识点是字型要素。

Java的文字字型有三个要素:字体、风格和字号。常用的字体有Times New Roman、Symbol、

宋体和楷体等。常用的风格有正常、粗体和斜体,分别用三个常量表示:Font.PLAIN、

Font.BOLD和Font.ITALIC,风格可以组合使用。字号是字的大小,单位是磅。

试题内容:

以下所述内容全部是字型要素的是【】

A:字体、字形和大小

B:字体、风格和字号

C:字形、风格和字号

D:字形、颜色和字号

8:参考答案:D

参考解析:(P162)本题考核知识点是多线程。

在Java中实现多线程一般情况下是先声明Thread类的子类,在子类中重载run()方法,

然后创建这个子类的实例,让线程调用start()方法。

试题内容:

用Thread子类实现多线程的步骤顺序是【】

A:声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法

B:声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例

C:创建Thread子类的实例,让线程调用start()方法

D:声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用

start()方法

9:参考答案:C

参考解析:(P175)本题考核知识点是输入输出流。

为Java的8位字节流数据的读和写操作提供支持的类分别是FileInputStream类和

FileOutputStream类,它们分别是InputStream类和OutputStream类的子类;为Java

的16位Unicode字符流数据的读和写操作提供支持的类分别是FileReader类和

FileWriter类,它们分别是Reader类和Writer类的子类。

试题内容:

为16位Unicode字符流提供读和写操作支持的类分别是【】

A:FileInputStream类和FileOutputStream类

B:InputStream类和OutputStream类

C:FileReader类和FileWriter类

D:File_Reader类和File_Writer类

10:参考答案:A

参考解析:(P191)本题考核知识点是Java网络编程。

要接收和发送信息需用URLConnection类,程序获得一个URLConnection对象,相当于

完成对指定URL的一个HTTP连接。程序有了URLConnection对象后,就可使用

URLConnection类提供的方法获得流对象和实现网络连接。

试题内容:

能利用对象提供的方法获得流对象和实现网络连接的是【】

A:URLConnection对象

B:URL对象

C:InetAddress对象

D:TCP/IP对象

二、填空题 (本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。

1:参考答案:(P5)Applet(JApplet)类的子类

[解析]本题考核知识点是小应用程序。

一个小应用程序必须定义成一个Applet类的子类或JApplet类的子类。

试题内容:

一个小应用程序必须定义成一个_____。

2:参考答案:[解析](P16)

试题内容:

用条件运算符构造一个表达式:goal等于10时,表达式的值为"对了!",否则,表达式的值为"错了!"。这个表达式是_____。

3:参考答案:(P40)数据(属性)和方法(函数)

[解析]本题考核知识点是类的概念。

类的每个对象都有自己的标识,但它们具有相同的一组属性和提供相同的一组方法。

试题内容:

类是对一组相同对象的描述,类概括了同类对象的共有性质:_____。

4:参考答案:(P45)回收内存

[解析]本题考核知识点是数组。

Java语言根据相应类型变量采用直接访问还是间接访问,把类型分成基本类型和引用类型,数组类型和类类型是引用类型。数组进行整体赋值,其实是数组首地址的赋值,原来地址空间会自动释放。

试题内容:

设有数组a和b的定义如下:

int []a={1,2,3};int []b={4,5,6}

……

执行以下代码"a=b;",除了完成赋值操作之外,引起系统额外要做的工作是_____。

5:参考答案:(P100)CardLayout

[解析]本题考核知识点是布局设计。

常用的布局类:FlowLayout为依次放置组件;BorderLayout将组件放置在边界上; CardLayout将组件像扑克牌一样叠放,而每次只能显示其中的一个组件;GridLayout将显示区域按行、列划分成一个个大小相等的格子,组件依次放入这些格子中;GridBagLayout能进行更精细的位置控制。

试题内容:

_____布局使容器的多个组件拥有同一个显示空间,某一时刻只能显示一个组件。

6:参考答案:(P127)MouseListener

试题内容:

Java语言为处理鼠标事件提供两个接口:_____接口和MouseMotionListener接口。

7:参考答案:(P140)黄色

[解析]本题考核知识点是绘图模式。

当绘图模式设置为异或模式时,用背景色绘图出现的是异或的颜色,重画一个图形将清除图形。

试题内容:

某个绘图方法设置成"异或模式"绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是_____。

8:参考答案:(P161)run()

[解析]本题考核知识点是多线程。

Java程序实现多线程应用有两种途径:一是继承Thread类声明Thread子类,用Thread子类创建线程对象。二是在类中实现Runnable接口,在类中提供Runnable接口的run()方法。无论用哪种方法,都需要Java基础类库中的Thread类及其方法的支持。程序员能控制的关键性工作只有两个方面,一是编写线程的run()方法;二是建立线程实例。

试题内容:

程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_____方法;二是建立线程实例。

9:参考答案:(P179)FileWriter

[解析]本题考核知识点是缓冲式输出。

实现缓冲式输出,需要将FileWriter对象接到BufferedWriter对象上,对BufferedWriter对象使用write()方法就能实现缓冲式输出。

试题内容:

BufferedWriter类是提供缓冲式输出的类。程序需要先创建_____对象,再利用这个对象创建BufferedWriter对象。

10:参考答案:(P193)Socket

[解析]本题考核知识点是Java网络编程。

Java语言在实现C/S模式中,套接字分为两类,在Server端使用ServerSocker类,在Client端

使用Socket类。

试题内容:

在Java语言中,客户端使用的套接字类是_____。

三、简答题 (本大题共6小题,每小题3分,共18分)

1:参考答案:(P15)(x=2)!=(y=3)或(x=2&&y!=3)||(x!=2&&y!=3)

试题内容:

请写出表示条件"x=2与y=3有且只有一个成立"的Java表达式。

2:参考答案:(P57)Student s1=new Person();

Undergraduate ug1=new Person();

Undergraduate ug2=new Student();

[解析]本题考核知识点是类之间的is-a关系。在两个相关的类之间,可能会有is-a和has-a关系。若类A是继承扩展类B,则子类A和超类B之间是is-a关系,即类A是一个类B。这种情况下,A类对象一定可以是B类类型,因为B类的所有成员A类也有。也就是子类对象可以是超类类型。语句B b=new A()是正确的,A a=new B()是错误的。

试题内容:

如果类Student是类Person的子类,类Undergraduate是类Student的子类,请指出以下代码行中哪些是不合法的。

Person p1=new Student();

Person p2=new Undergraduate();

Student s1=new Person();

Student s2=new Undergraduate();

Undergraduate ug1=new Person();

Undergraduate ug2=new Student();

Object ob=new Student();

3:参考答案:(P102)为对象添加监视器的方法是addActionListener;类必须实现的方法是public void actionPerformed(ActionEvent e)。

[解析]本题考核知识点是文本框输入结束动作事件(回车)。

文本框输入结束动作事件相应的监视器接口为ActionListener,要实现的接口方法是actionPerformed(),添加监视器的方法是addActoinListener()。

试题内容:

请写出程序处理文本框输入结束事件(回车)添加监视器的方法,以及监视器类必须实现的接口方法。

4:参考答案:(P140)g.drawLine(20,30,120,30);或g.drawLine(120,30,20,30);

[解析]本题考核知识点是画线段。

方法中有四个参数分别表示线段的两个端点坐标,当两个端点坐标相同时,将画出一个点,而不再是线段。

试题内容:

请写出一条语句,能够绘制一条从点(20,30)开始,长为100像素的水平线段。设调用的对象是类型为Graphics的g。

5:参考答案:(P175)import java.io.*;

[解析]本题考核知识点是文件输入输出流。

实现输入输出操作的类库在java.io包中。包中有一组支持打开流、向流写数据、从流读取数据和

关闭流等操作的类,要使用这些类,程序必须导入java.io包。

试题内容:

某Java程序要使用文件输入输出流,请写出该程序所需要的import语句。

6:参考答案:(P199)与某个数据库建立连接;向数据库发送SQL语句;处理数据库返回的结果。[解析]本题考核知识点是java数据库编程基础。

Java数据库连接JDBC由一组用Java语言编写的类和接口组成,JDBC是Java程序与数据库连接的API。它可以做三件事情。

试题内容:

JDBC是Java程序与数据库连接的API,请写出JDBC能做的三件事情。

四、程序填空题 (本大题共5小题,每空2分,共20分)

1:参考答案:n%10

return c

[解析]本题考核知识点是%运算符和return语句。

方法中d为循环分离出整数n的每一位数字(每次取n的个位数字,n也在变化:n/=10),在找出最大的数字后存入了变量c中,因方法有返回值类型为int,所以必须有return语句,要返回最大数字。

,

试题内容:

方法int maxDigit(int n)的功能是找出十进制整数n各位中最大的一位数字。例如,n=23765,该方法的返回值是7。

static int maxDingit(int n){

int c=0,d;

while(n>0){

d=_____;

if(d>c)c=d;

n/=10;

}

_____;

}

2:参考答案:getText()

sum+=a[i]或sum=sum+a[i]

[解析]本题考核知识点是图形界面设计中按钮事件方法的编写。

获取文本框中的内容使用的方法是getText(),方法名首字母均小写,后面单词首字母大写。获取整数序列后,使用单词分析器分解出每个整数(有类型转换过程)存入数组a中,然后对所有整数进行求和。

,

试题内容:

某程序的界面包含一个文本区text1、一个文本框text2和一个按钮button。实现在文本区中输入整数序列后,点击按钮,程序响应按钮事件,累计文本区输入的整数序列,并将总和输出在文本框中。这里给出的是其中相应按钮事件的方法。

public void actionPerformed(ActionEvent e){

int sum;

if(e. getSource()=button){

String s=text1._____;//获取text1中的信息

String Tokenizer fenxi=new String Tokenizer(s,",,,\\n");

int n=fenxi.countTokens();

double a[]=new double[n];

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

String temp=fenxi.nextToken();

a[i]=Double.valueOf(temp).doubleValue();

}

sum=0,

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

_____;

}

text2.setText(" "+sum);//刷新显示。

}

}

3:参考答案:JMenuItem

getActionCommand

[解析]本题考核知识点是菜单。

生成菜单条是用类JMenuBar的构造方法JMenuBar(),把菜单条放入JFrame窗口中用setJMenuBar()方法;生成菜单用类JMenu的构造方法JMenu()或JMenu(String s);生成菜单项用类JMenuItem的构造方法JMenuItem()或JMenuItem(String s)。在菜单事件中获得事件源的方法是getSource(),获得事件源文字信息的方法是getActionCommand()。

,

试题内容:

以下是生成菜单项对象,以及菜单项选择事件处理方法的部分代码。要求当菜单项singingItem 被选中时,在文本框text中输出"唱歌菜单项被选中!"的字样。

……

singingItem=new=_____(“唱歌”);//生成菜单对象

……

public void actionPerformed(ActionEvent e){

if(e getSource()=singingItem)

text.set Text(e._____()+“菜单项被选中!”);

}

4:参考答案:Graphics

repaint()或update()

[解析]本题考核知识点是小应用程序中paint()和repaint()方法的使用。

paint()方法需要Graphics类型参数,当单击鼠标时,要在paint()方法中再次显示图片,可以调用repaint()方法,使程序先清除paint()运行的结果,再运行paint();也可以调用update()方法,该方法会使系统自动调用repaint()方法。

,

试题内容:

某小应用程序实现幻灯片放映。小应用程序的init()方法将幻灯片读入数组中存储和注册鼠标监视器。程序运行时,单击鼠标,就顺序变换放映幻灯片的序号。这里给出的是其中的paint()方法和mousePressed()方法。

final int number=30;//假定幻灯片有30张

int count=0;

Image[]pic=new Image[number];

public void paint(_____gc){

if((pic[count])!=null)

gc.drawImage(pic[count],10,10,pic[count].getWidth(this),

pic[count].getHeight(this),this);

}

public void mousePressed(MouseEvent e){

count=(count+1)%number;//循环逐张显示

_____;

}

5:参考答案:synchronized

notify()

[解析]本题考核知识点是线程的互斥和同步。

在Java语言中,使用关键字synchronized定义临界段,能对共享对象的操作上锁,使得某一时刻只允许一个线程使用这个共享对象。但是为了同步,可在临界段中使用wait()、notify()和notifyAll()方法。wait()让线程一直等待,notify()方法通知第一个处于等待的线程结束等待。notifyAll()方法使所有处于等待的线程都结束等待,重新竞争CPU。

,

试题内容:

以下定义的类shareDataManager用于管理多个线程共享数据data。一些线程要减少data,另一些线程要增加data。由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。类提供一个方法modiData()供修改data的线程调用,该方法在data修改结束后,应通知其它等待进入这个方法的线程。

class ShareDataManager{

int data=0;

_____void modiData(int dalta){

if(delta>=0){

data+=delta;

}else{

while(data<delta){

try{System.out println(“发生等待!”);

wait();

}catch(InterruptedExceptione){}

}

data-=delta;

}

_____;

}

ShareDataManager(int it it Data){data=initData;}

}

五、程序分析题 (本大题共5小题,每小题4分,共20分)

1:参考答案:yuan Circle 62.8(2分)

yuan Area 314.0(2分)

试题内容:

阅读下列程序,请写出该程序的输出结果。

import Java applet.*;import java.awt.*;

class Point{

int x,y,

Point(int xx,int yy){x=xx;y=yy;}

Point(Point p){x=p.x;y=p.y;}

void m(int dx,int dy)(x+=dx;y+=dy;)

}

class Circle extends Point{

int r;

Circle(Point p,int rr){super(p);r=rr;}

float c(){return 3.14f*2.0f*r;}

float a(){return 3.14f*r*r;}

}

public class sample extends Applet{

Circle yuan,Pint d;

public void init(){d=new Pint(2,5);yuan=new Circld(d,10);}

public void paint(Graphics g){

g.drawString("yuan Circle"+(int)(yuan.c()*100.0)/100.0,5,20);

g.drawString("yuan Area"+(int)(yuan.a()*100.0)/100.0,5,40);

}

}

2:参考答案:程序获得当前日期,将日期的字符串表示输出;(2分)截取日期字符串中从第11位开始到字母‘C’之前的部分字符串,并输出。(2分)

试题内容:

3:参考答案:在第一个文本框输入数据,输入结束(回车)后,(2分)在第二个文本框输出该

整数的平方。(2分)

试题内容:

阅读下列程序,请写出该程序的功能。

import java applet*;import javax swing*,import java awt event*; public class Class1 extends Applet implements ActionListerer{ JTextField text1,text2;

public void init(){

text1=new JTextField(10);text2=new JTextField(10);

setSize(200,100);add(text1);add(text2);

text1 addActionListerer(this);

}

public void actionPerformed(Action Evente){

long n;

if(e.getSource()=text1){

n=Long.parseLong(text1.get Text());

text2.setText(String valueOf(n*n));

}

}

}

4:参考答案:滑动滚动条的滑块,在文本框显示块位置对应的数值。

试题内容:

阅读以下程序,请写出该程序的功能。

import javax swing.*;import java awt.*;import java.awt.event.*; class MyScrollBar extends JscrollBar{

public MyScrollBar(int init,int len,int low,int high){

super(JScrollBar.HORIZONTAL,init,len,low,high);

}

}

class MyWindow extends JFrame implements AdjustmentListerer{ private JTextField text;

MyWindow(String s){

super(s);

MyScrollBar myBar=new MyScrollBar(10,10,0,255);

Container con=this.gerContentPane();

con.setLayout(new GridLayout(2,1));

this.setSize(200,100);

this.setLocation(100,100);

myBar.addAdjustmentListerer(this);

text=new JTextField(" ",20);

con.add(text);con.add(myBar);

this.setVisible(true);

}

public void adjustment ValueChanged(AdjustmentEvent e){ MyScrollBar myBar=(MyScrollBar)e.getAdjustable();

text.setText(" "+myBar.getValue());

}

}

public class Class1{

public static void main(String[]args){

MyWindow myWindow=new MyWindow("text5_4");

}

}

5:参考答案:随机位置显示一个小圆,程序采用背景色重画的办法,清除前一次显示的小圆。[解析]本题考核知识点是图形绘制和线程综合应用。

在run()方法中随机产生一个坐标点,以此为左上角坐标,红色填充一个小圆形区域,500毫秒后,用背景色填充同一个小圆形区域,使红色小圆形区域消失,马上又随机产生一个坐标点,再红色填充,再消失,循环不止。

试题内容:

小应用程序创建一个线程。例子使用容器类方法getGraphics()获得Graphics对象,给线程作为画笔使用。请写出该程序中这个线程的工作内容。

import java.applet.*;import java awt.*;

public class Class1 extends java.applet.Applet implements Runnable{

Thread redBall;Graphics redPen;

int rx=0,ry=0;

public void init(){

setSize(250,200);

redBall=new Thread(this);

redPen=getGraphicsp();

redPen.setColor(Color.red);

setBackground(Color.gray);

}

public void start(){redBall.start();}

public void run(){

while(true){

if(Thread.current Thread()=redBall){

rx=(int)(80*Math.random());

ry=(int)(80*Math.random());

red Pen.setColor(Color.red);

red Pen.fillOval(100+rx,100+ry,10,10);

try(redBall.sleep(500);}

catch(InterruptedException e){}

redPen.setColor(Color.gray);

reden.fillOval(100+rx,100+ry,10,10);

}

}

}

}

六、程序设计题 (本大题共2小题,每小题6分,共12分)

1:参考答案:int [] halfArray(int [] a){(1分)

int [] b=new int[a.length];(2分)

for(int k=0;k<a.length;k++){(2分)

b[k]=a[k]/2;

}

return b;(1分)

}

[解析]本题考核知识点是面向对象程序设计中的方法设计。

编写方法,需要确定方法名,已给出halfArray;再确定参数个数及类型,要求是一个int型数组参数即halfArray(int []);再就是确定方法返回值类型,要求返回一个新数组,新数组元素类型要确定下来,根据题意,新数组元素是参数数组相应元素的一半,这一半应该可能是小数,所以方法头应该为float[]halfArray(int [])而不应该是int [] halfAray(int []),方法体中的一半也应该是除以2.0。并转换成float类型,方法体定义的数组b也应该是float类型。或者返回值类型和数组b的类型都定义成double类型。

试题内容:

编写一个方法halfArray(),要求该方法有一个元素类型为int的数组参数,方法返回一个新数组,新数组的长度与参数数组的长度相同,而新数组元素的值是参数数组各元素的一半。

2:参考答案:long n1,n2;(1分)

if(e.getSource()=(panel.addButton)){(3分)

n1=Long.parseLong(panel.text1.getText());

n2=Long.parseLong(Panel.text2.getText());

panel.text3.setText(String.valueOf(n1+n2));

}

else if(e.getSource()=(panel.subButton)){(2分)

n1=Long.parseLong(panel.text1.getText());

n2=Long.parseLong(panel.text2.getText());

panel.text3.setText(String.valueOf(n1-n2));

}

注:将panel.text1写成text1,panel.text2写成text2整体扣1分。

[解析]本题考核知识点是图形界面设计、JPanel、JTextField、JButton及其事件的处理。

在方法体中的代码类似于34小题。容器的嵌套不要忽略了。

试题内容:

一个Java小应用程序,界面有三个文本框和两个按钮,前两个文本框用于输入整数,第三个文本框用于输出结果。两个按钮分别表示加和减运算。当前两个文本框输入整数后,点击相应按钮,程序就将计算结果输出在第三个文本框中。以下是程序的大部分,其中监视按钮事件的方法未给出,试编写处理按钮事件的方法。

注:这里是给定部分的程序,你要编写的是actionPerformed(ActionEvent e)方法。

import java.applet.*;import javax.swing.*;

import java.awt.*;import java.awt.event.*;

class Panell extends JPanel{

JTextField text1,text2,text3;JButton addButton,subButton;

Panell(){

text1=newJTextField(10);text2=new JTextField(10);

text3=new JTextField(10);setLayout(new GridLayout(5,1));

addButton=new Jbutton(“加”);subButton=new JButton(“减”);

add(text1);add(text2);

add(text3);add(addButton);add(subButton);

}

}

public class Class1 extends Applet implements ActionListener{ Pane; panel;

public void init(){

setSize(100,200);panel=new Panell();add(panel);

(panel.addButton).addActionListener(this);

(panel.subButton).addActionListener(this);

}

public void actionPerformed(ActionEvent e){

//这里是你要编写的代码

}

}

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

自考Java语言程序设计试题及答案解析

自考J a v a语言程序设计试题及答案解析 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

2015年10月高等教育自学考试全国统一命题考试 Java语言程序设计(一) 试卷 (课程代码04747) 本试卷共13页,满分100分.考试时间150分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸. 2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑. 3.第二部分为非选择题。必须注明大、小题号.使用0.5毫米黑色字迹签字笔作答. 4.合理安排答题空间.超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共10小题.每小题1分.共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的。请将其选出并将“答题卡” 的相应代码涂黑。未涂、错涂或多涂均无分. 1.以下字符组合中,不能作为Java整型常量的是 A.037 B.0x3ADG C.7000 D.0x3abcL 2.以下程序代码的输出结果是 3.设有数组定义,则x.length的值为 A.2 B.3 C.4 D.5 4. 设有字符串String s=〝ABCDEFGABC〞;,则表达式s.indexOf(〝A〞,7)的值是 A.7 B.6 C.3 D.0 5.以下关于Swing与AWT之间关系的叙述中,正确的是 A.Swing是AWT的提高和扩展

B.在写GUl程序时,AWT和Swing不能同时使用 C.AWT和Swing在不同的平台上都有相同的表示 D.AWT中有一些类是从Swing中的一些继承的 6.以下供选择的类中,其子类能用来创建框架窗口的是 A.JWindow B.JFrame C.JDialog D.JAudio 7.某程序定义了一个子类,并要让它实现多线程,以下正确的步骤是 A.继承Thread类,在类内定义run( )方法,声明和创建线程对象,并让该对象调用 start( )方法。 B.继承Thread类,在类内定义run( )方法,声明线程对象,并让该对象调用start( )方法。 c.声明实现Runnable接口,在类内实现run( )方法,声明线程对象,创建线程,并调用start( )方法。 D.声明实现Runnable接口,在类内实现run( )方法,声明和创建线程对象,并让该对象调用start( )方法。 8.大多数采用缓冲式输入数据文件的程序的主要目的是 A.用readLine( )方法按行输入字符 B.提高输入速度 C.更快地读入字符数据 D.用read( )方法输入任意个字符 9.在打开文件对话框时,可用FileFilter类设置筛选条件,在以下供选择的方法中,是 FileFilter类预设的方法之一的是 A.setFileFilter( ) B.addFileFilter( ) C.accept( ) D.setDescription( ) 10.对访问数据库的Java程序来说,DriverManager类的作用是

全国高等教育自学考试高级语言程序设计

全国高等教育自学考试高级语言程序设计 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

2001年10月全国高等教育自学考试高级语言程序设计(一) 试卷 第一部分选择题 一、单项选择题 (本大题共20小题,每小题1分,共20分) 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。 1. C语言程序编译时,程序中的注释部分【】 A. 参加编译,并会出现在目标程序中 B. 参加编译,但不会出现在目标程序中 C. 不参加编译,但会出现在目标程序中 D. 不参加编译,也不会出现在目标程序中 2. 下列表达式的值为0的是【】 A. 3﹪5 B. 3/ C. 3/5 D. 3<5 3. 正确的C语言用户自定义标识符是【】 A. print B. float C. when?

D. random﹪2 4. 设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是【】 A. 0和2 B. 0和3 C. 1和2 D. 1和3 5. 下列叙述中,正确的是【】 A. 引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致 B. 宏名必须用大写字母表示 C. 宏替换不占用运行时间,只占编译时间 D. 在程序的一行上可以出现多个有效的宏定义 6. 下列保留字中用于构成循环结构的是【】 A. if B. while C. switch D. default 7. 与语句if(a>b)if(c>d)x = 1;else x = 2;等价的是【】 A. if(a>b){if(c>d) x = 1;else x = 2;} B. if(a>b){if(c>d) x = 1;} else x = 2;

汇编语言学习知识程序设计实验

目录 目录 (1) 实验一利用DEBUG熟悉常用指令的使用 (2) 一、实验目的 (2) 二、示例 (2) 三、实验题 (2) 实验二汇编程序和连接程序的使用 (6) 一、实验目的。 (6) 二、示例。 (6) 三、实验题。 (8) 实验三顺序结构程序设计 (11) 一、实验目的 (11) 二、示例 (11) 三、实验题 (12) 四、实验报告 (15) 实验四循环结构程序设计 (16) 一、实验目的 (16) 二、示例 (16) 三、实验题 (18) 实验五分支结构程序设计 (21) 一、实验目的 (21) 二、示例 (21) 三、实验题 (22) 实验六子程序设计 (29) 一、实验目的 (29) 二、实验题 (29)

实验一利用DEBUG熟悉常用指令的使用 一、实验目的 熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。 二、示例 请分别用一条汇编语言指令完成如下功能:(过程略)。 1.用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 ADD AL,[BX][SI] 2.用位移量为0520H的直接寻址方式把存储器中的一个字与3412H相加,并把结果送回该存储单元。 ADD WORF PTR [0520H],3412H 三、实验题 1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执行完后AX寄存器的内容。要求输入指令,相应存储单元的内容要事先设置,单步 P执行,观察执行结果。 (设置存储器的值)

自考Java语言程序设计试题及答案解析

2015年10月高等教育自学考试全国统一命题考试 Java语言程序设计(一) 试卷 (课程代码04747) 本试卷共13页,满分100分.考试时间150分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸. 2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑. 3.第二部分为非选择题。必须注明大、小题号.使用0.5毫米黑色字迹签字笔作答. 4.合理安排答题空间.超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共10小题.每小题1分.共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的。请将其选出并将“答题卡” 的相应代码涂黑。未涂、错涂或多涂均无分. 1.以下字符组合中,不能作为Java整型常量的是 A.037 B.0x3ADG C.7000 D.0x3abcL 2.以下程序代码的输出结果是 3.设有数组定义,则x.length的值为 A.2 B.3 C.4 D.5

4. 设有字符串String s=〝ABCDEFGABC〞;,则表达式s.indexOf(〝A〞,7)的值是 A.7 B.6 C.3 D.0 5.以下关于Swing与AWT之间关系的叙述中,正确的是 A.Swing是AWT的提高和扩展 B.在写GUl程序时,AWT和Swing不能同时使用 C.AWT和Swing在不同的平台上都有相同的表示 D.AWT中有一些类是从Swing中的一些继承的 6.以下供选择的类中,其子类能用来创建框架窗口的是 A.JWindow B.JFrame C.JDialog D.JAudio 7.某程序定义了一个子类,并要让它实现多线程,以下正确的步骤是 A.继承Thread类,在类内定义run( )方法,声明和创建线程对象,并让该对象调用 start( )方法。 B.继承Thread类,在类内定义run( )方法,声明线程对象,并让该对象调用start( ) 方法。 c.声明实现Runnable接口,在类内实现run( )方法,声明线程对象,创建线程,并 调用start( )方法。 D.声明实现Runnable接口,在类内实现run( )方法,声明和创建线程对象,

自考高级语言程序设计复习题

2013年海南省衔接课程考试 高级语言程序设计复习题 一、单项选择题(在每小题列出的四个选项中只有一个是符合题目要求的,请将其代码填在题后的括号内。错选或未选均无分。) 1、在以下给出的表达式中,与while E中的E不等价的表达式是()。 A)(!E=0) B)(E>0||E<0) C)(E==0) D)(E!=0) 2、若x和y是代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是()。 A)abs(x-y)<10 B)x-y>-10&&x-y<10 C) @(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100 3、以下能够正确判断char型变量c是否为大写字母的表达式是()。 A) (‘A’<=c)AND (‘Z’>=c) B)(‘A’<=c)& (‘Z’>=c) C)(‘A’<=c) && (‘Z’>=c) D)以上答案都不对 4、下列叙述正确的是()。 A) break语句只能用于switch语句 B)在switch语句中必须使用default C) break语句必须与switch语句中的case配对 D)在switch语句中,不一定使用break语句 5、以下选项中,不能看作一条语句的是()。 A){ ;} B)a=0,b=0,c=0; C) if(a>0); D)if(b==0) m=1;n=2; 6、以下程序段中与语句k=a>b?(b>c?1:0):0)功能等价的是()。 A) if(a>b&&(b>c)) k=1; B) if(((a>b)||(b>c)) k=1; else k=0; else k=0; C)if(a<=b) k=0; D)if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0; 7、若有以下程序: main() { int y=10; while(y--); printf(“y=%d\n”,y); }

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

2016年10月自考Java语言程序设计(一)04747

2016年10月高等教育自学考试全国统一命题考试 Java语言程序设计(一)试卷 (课程代码 04747) 本试卷共9页,满分l00分,考试时间l50分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。 2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。 3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。 4.合理安排答题空间,超出答题区域无效。 第一部分选择题(共l0分) 一、单项选择题(本大题共l0小题,每小题l分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。错涂、多涂或未涂均无分。淘宝店铺自考达人 V信1297755429 1.在下述字符串中,不是Java余言关键字的是 A.int B.static C.java D.try 2.要作下列数据类型转换,需进行强制类型转换才能实现的是 A.从int到char B.从int到 long C.从lloat到 double D.从byte到 int 3.在以下供选择的概念中,属于面向对象语言重要概念或机制的是 A.方法 B.模块 C.线程 D.继承 4.在下述Java程序代码中,能正确创建数组的是 A.int myA[5]={1,2,3,4,5); B.int myA[]=new int(5); C.int myA[];myA[]=new int[5]; D.int[]myA={1,2,3,4,5,6};5.某Java程序的类A需要利用Swin9创建无边框窗口,则A需要继承的类是A.JWindow B.JApplet C.JFrame D.JDialog 6.在以下供选的鼠标事件中,MouseMotionListener接口能处理的是 A.按下鼠标键 B.拖动鼠标 C.鼠标进入 D.鼠标松开7.在以下代码中,能正确创建Font对象的是 A.new Font(″宋体″,斜体,20); B.new Font(″楷体″,20,正常);C.new Font(″楷体″,Font.BOLD,l 8); D.new Font(″楷体″,1 8,Font.BOLD);8.某线程正处于运行状态,则在以下选项中,不可能是它的后继状态的是 A.就绪状态 B.新建状态 C.阻塞状态 D.死亡状态 9.某Java程序用类JFileChooser来实现打开和保存文件对话框。当对话框的返回 值是JFileChooser.APPROVE_OPTION时,程序进一步的工作是 A.用方法getName()取得文件名称 B.用方法getPathO()取得文件路径 C.用方法getFile()取得文件内容 D.用方法getSelectedFile()取得文件对象 10.Java语言实现C/S模式时,需要使用网络套接字,套接字的内容包括 A.IP地址+端口号 B.IP地址+监控线程名 C.监控线程名+端口号 D.IP地址+监控线程名+端口号 第二部分非选择题(共90分) 二、填空题(本大题共l0小题,每空2分,共20分) 11.一个Java小应用程序必须定义成一个子类,它的超类是______。 12.在Java语言中,左移运算符是______。 13.类A的成员变量x的类型是类B的,则类A和类B之间的关系是______。14.以下代码: 的输出结果是_______。 15.在JFrame子类的构造方法中,代码getContentPane0的作用是_______。16.用JScrollBar创建一个垂直滚动条对象时,需要指定的常量是_______。17.在异或模式下绘图时,实际绘制的颜色是由3种颜色作特定的运算确定的:当前正要绘 制的颜色、原先绘制的颜色以及_______。 18.处于运行状态的线程执行yield()方法,该线程将进入_______状态。 19.在Java语言中,客户端使用的套接字类是_______。 20.在Java语言中,DriverManager类的作用是加载驱动程序和_______。

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

2020年10月全国高级语言程序设计(一)自考试题及答案解析.docx

??????????????????????精品自学考料推荐?????????????????? 全国 2018 年 10 月高等教育自学考试 高级语言程序设计(一)试题 课程代码: 00342 一、单项选择题(本大题共20 小题,每小题 1 分,共 20 分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括 号内。错选、多选或未选均无分。 1.下列不正确的转义字符是() . A. ′ ′ B. ′ ″ C. ′ \086′ D. ′ \0′ 2.下列运算符中,优先级最高的是() A. [] B.++ C.% D.&& 是 C 语言保留字的是 () 3.下列标识符中,不. A. char B. while C. min D. default 4.下列数据中,不.是 C 语言常量的是 () A. ′ \n′ B. ″ a″ C. e-2 D. 012 5.若定义了 int a; char b; float c ;,则表达式a*b-c 的类型是 () A. float B. int C. char D. double 6.若定义了 int a, x,y;,则下列语句中不.正确的是 () A. x=3 ,y=5 ; B. ++x ; C. x=y+=x*30 ; D. a=y+x=30 ; 7.调用函数时,若实参是一个数组名,则向函数对应的形参传送的是() A. 数组的长度 B.数组的首地址 C. 数组第一个元素的值 D. 整个数组元素的值 8.在 C 语言中,函数返回值的类型是由() A. 定义的函数类型决定 B.return 语句中表达式的类型决定 C.调用该函数的主调函数类型决定 D. 调用该函数时系统状态决定 9.若定义了 int b [][ 3]={ 1,2, 3,4, 5, 6, 7};,则 b 数组第一维的长度是 () A. 2 B. 3 C. 4 D.无确定值 1

汇编语言程序设计实验篇emu

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.360docs.net/doc/4314860963.html, TEMPLATE程序 本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。 在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。 输入全部指令后,单击按钮,保存相应的程序段。 2.EXE TEMPLATE程序 本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。 在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

高级语言程序设计自考模拟10

[模拟] 高级语言程序设计自考模拟10 单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。 第1题: 下列不属于面向机器语言的是( ) A.符号语言 B.二进制语言 C.汇编语言 D.C语言 参考答案:D 答案解析: 第2题: 设int b=2;表达式(b<<2)/(b>>1)的值是( ) A.2 B.4 C.6 D.8 参考答案:D 答案解析: 左移位运算移一位相当于乘2,右移位运算右移一位相当于除2。 第3题: 设置变量定义为:int a=0x53;int b=6;,求表达式~a|b的值(假定现有计算机字长为16)( ) A.82 B.-82 C.72 D.-72 参考答案:B 答案解析: 因计算机字长为16.故a的二制表示是0000000001010011,b的二进制表示是0000000000000110。运算符"~"自右向左结合,运算符"|"是自左向右结合;且运算符"~"的优先级高于运算符"|"的优先级,则进行计算的顺序是"(~a)|b"。最终计算结果是1111111101010010(十进制值为-82)。 第4题:

为了判定两个字符串是否相等应当使用( ) A.if(s1==s2) B.if(s1=s2) C.if(strcmp(s1,s2)==0) D.if(strcmp(s1,s2)=0) 参考答案:C 答案解析: 第5题: 设char c[5]={'a','b','\0','C','\0');则printf("%s",c);的输出是( ) A.'a''b' B.ab C.abc D."ab\0c" 参考答案:B 答案解析: 第6题: 以下程序的运行结果是( ) #include<stdio.h>main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12};int *p=&a[5],*q=NULL;printf("%d%d\n",*p,*q);} A.运行后报错 B.6 0 C.6 12 D.5 5 参考答案:A 答案解析: #include<stdio.h> main() { int a[]={1,2.3.4,5,6,7,8,9,10,11,12}; int*p=&a[5],*q=NULL; printf("%d%d\n",*P,*q);/*被置空的指针不能参与"*"运算*/ } 第7题: 当执行以下程序段时( ) do{y--;}while(--y) printf("%d\n",y--); A.循环体将执行一次 B.循环体将执行两次 C.循环体将执行无限次 D.系统将提示有语法错误

00342高级语言程序设计自考机考答案

高级语言程序设计(一)(00342) 一、选择题(共75小题,每题2分,共150分) 1-5 BBCDB 6-10 CBAAC 11-15 DACBC 16-20 BACAA 21-25 CCCBB 26-30 DACDD 31-35 CDCDC 36-40 DBADD 41-45 CACCD 46-50 BBCBB 51-55ABCDC 56-60BCBAA 61-65DCDCD 66-70CDBAA 71-75DBADD 二、判断题(共25小题,每题2分,共50分) 1-5 ????6-10 ????11-15 ????16-20 ????21-25 ???? 三、名词解释题(共25小题,每题4分,共100分) 1、答:所谓函数的调用,是指一个函数(调用函数)暂时中断本函数的运行,转而执行另一个函数(被调用函数)的过程。 2、答:计算机能直接识别和接受的二进制代码。 3、答:由.OBJ文件转化而成的.EXE文件,即计算机可以识别、执行的程序。 4、答:即一组计算机能识别和执行的指令。 5、答:在程序中要指定用到哪些数据以及这些数据的类型和数据的组织性形式,就是数据结构。 6、答:用一个符号代表一个常量,称为符号常量。 7、答:在计算机高级语言中,用来对变量、符号变量名、函数、数组、类型等命名的有效字符序列统称为标识符。 8、答:用关系运算符将两个数值或数值表达式连接起来的式子,称关系表达式。 9、答:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 10、答:函数的首行(即函数首部)称为函数原型。 11、答:即要求计算机进行操作的步骤,可以用言语描述,也可以用流程图描述。 12、答:将已设计好的算法用计算机语言来表示,即根据已经细化的算法正确写出计算机程序。 13、答:如果一个变量在某个文件或函数范围内是有效的,就称该范围为该变量的作用域。 14、答:如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(又称入口地址),称为这个函数的指针。 15、答:一个数组,若其元素均为指针类型数据,称为指针数组。 16、答:所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(所占多少字节)

《汇编语言程序设计》考核方式

考核方式与要求 期末总成绩构成:期末开卷考试60% + 平时作业10% + 实验和实验报告30%。 1、试卷考核方式与要求 “汇编语言程序设计”的课程要求是使学生具有一定的程序设计能力。虽然课程是通过80x86微处理机来开展教学的,但学习的重点不仅仅是学会80x86指令的语法和规范,更重要的是通过多读程序、多练习编写程序来掌握程序设计的基本方法和技术,要求学生在工作中遇到其他机型,都应该能利用所掌握的方法和技术顺利解决实际问题。因此,我们在教学过程的各个环节,特别是具有指挥棒作用的考核环节中,着重体现了“能力培养是首位”的指导思想。 为此,汇编课一直实行多元化考核方式,在考核评分上,平时练习和上机实验占40%,期末考试占60%。期末考试实行开卷考试,这样学生平时学习的关注点就会放在分析问题和编程实现的方法上,有利于学生开阔思路,发挥自身创造力。每年设计开卷考试的考题是有一定难度的,教师必须非常熟悉课程的知识点、重点和难点,以及体现这些知识和能力水平的多种题目类型。 2、实验方式与要求 实验的目标为:加强课堂上相关理论和技术学习的有效性;提高学生上机编程和调试的能力;培养学生科学实践的理念和独立分析问题、解决问题的能力。其设计思想是:实验内容兼顾基础性和综合性,实验题目由简单→复杂,程序功能由单一→综合,实验安排有基本要求题+自选题,实验题类型有验证型和自主创新设计型。 √实验课组织形式: 1.系教学实验室按课程要求负责上机环境配置及实验设备管理; 2.以班为单位组织上机实验,并将上机时间安排表发至每位同学; 3.每单元实验课安排一位助教(助博)负责实验指导和答疑; 4.学生每做完一个实验即可提交老师验收,老师将实验运行结果记录下来作为实验成 绩的依据。验收时教师要注意发现比较突出的好的实验例题(完成时间短、程序运行效率高); 5.要求提交实验报告,根据实验报告及实验运行结果的记录,评出实验成绩,实验成 绩一般占总成绩的30%。 √教师指导方法: 1.大课集体指导。每学期实验前教师安排一次实验指导课,讲解实验方法和实验要求; 2.每次实验课都安排助教(助博)进行个别或集体的实验指导和答疑; 3.对具有共性的、问题比较多的实验,主讲教师在课堂上再进行集体指导; 4.每学期对实验中出现的问题,对照实验题目进行分析、总结,以利于以后的教学。 5.对于实验中有创新点的学生,还可以请他上讲台为同学们介绍他的设计思路,引发大家展开讨论。

河北工业大学汇编语言知识程序设计实验

汇编语言程序设计实验 网络*** *** 实验一 顺序与分支程序设计 一 、实验目的 1) 掌握顺序程序设计方法。 2) 掌握分支程序的结构及分支程序的设计,调试方法。 2) 学习数据传送及算术和逻辑运算指令的用法。 3) 熟悉在pc 机上建立、汇编、连接、调试和运行汇编语言程序的过程。 二、实验内容 1.实验六 从键盘上接收一位十进制数x ,计算y 值,并以十六进制形式显示出来,y 按下列公式计算。 ???????===-=+=) 6(2/) 5()4(2) 3(22 2 2X X X X X X X X X X Y 2..实验七 实验内容:从键盘上接收两个一位十六进制数x 和y ,然后再输入一个a-d 之间的一个字符,按下列要求计算。 a) 当输入字符为a ,则计算x+y ,并以十六进 制形式显示出来 b) 当输入字符为b ,则计算|x-y|,并以十六进制形式显示出来 c) 当输入字符为c ,则计算x*y ,并以十六进制形式显示出来 d) 当输入字符为d ,则计算x/y ,并以十六进制形式显示出来 三、实验代码 实验六 DATE SEGMENT X DB ?

DATE ENDS ;数据段 CODE SEGMENT ASSUME CS:CODE,DS:DATE START:MOV AX,DATE ;代码段 MOV DS,AX ;初始化ds寄存器 MOV AH,1 INT 21H ;读文件到缓冲区 CMP AL,33H ;比较指令 JB L0 ;A

全国高等教育自学考试高级语言程序设计试卷考卷

全国高等教育自学考试高级语言程序设计试卷 考卷 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

2001年10月全国高等教育自学考试高级语言程序设计试卷 第一部分选择题 一、单项选择题 (本大题共20小题,每小题1分,共20分) 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。 1. C语言程序编译时,程序中的注释部分【】 A. 参加编译,并会出现在目标程序中 B. 参加编译,但不会出现在目标程序中 C. 不参加编译,但会出现在目标程序中 D. 不参加编译,也不会出现在目标程序中 2. 下列表达式的值为0的是【】 A. 3﹪5 B. 3/ C. 3/5 D. 3<5 3. 正确的C语言用户自定义标识符是【】 A. print

C. when? D. random﹪2 4. 设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是【】 A. 0和2 B. 0和3 C. 1和2 D. 1和3 5. 下列叙述中,正确的是【】 A. 引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致 B. 宏名必须用大写字母表示 C. 宏替换不占用运行时间,只占编译时间 D. 在程序的一行上可以出现多个有效的宏定义 6. 下列保留字中用于构成循环结构的是【】 A. if B. while C. switch

7. 与语句if(a>b)if(c>d)x = 1;else x = 2;等价的是【】 A. if(a>b){if(c>d) x = 1;else x = 2;} B. if(a>b){if(c>d) x = 1;} else x = 2; C. if((a>b) && (c>d)) x = 1;else x = 2; D. if(a< =b) x = 2;else if (c>d) x = 1; 8. 设char x =′a′;则printf(″x = ﹪c, y = ﹪c \ n″,x,97);的输出是【】 A. x = a,y = 97 B. x = 97,y = a C. x = 97,y = 97 D. x = a,y = a 9. 设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是【】 A. 2 B. 3 C. 4 D. 无确定值 10. 执行下列程序

全国高等教育自学考试Java语言程序设计完整版

全国高等教育自学考试 J a v a语言程序设计 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

全国2008年10月高等教育自学考试 Java?语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下述字符组合不能作为Java程序标识符的是()A.Aa12? B.大x C.y小? D.5x 2.以下程序代码的输出的结果是() int?x=53; System.out.println+x/2); A. B.

C. D.参照以下Java代码,以下四个叙述中最确切的是()class A{ int x; static int y; void fac(String s){Syatem. out. println("字符串:"+s);} } A.x、y和s都是成员变量 B.x是实例变量、y是类变量、s是局部变量 C.x和y是实例变量、s是参数 D.x、y和s都是实例变量 4.需要分析字符串,并将字符串分解成可被独立使用的单词,可使 用java. util包中的类是() A.String B.StringBuffer C.StringTokenizer

D.stringTokenizer 5.要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是() A.JFrame(s) B.window(s) C.new JFrame(s) D.super(s) 6.以下关于菜单的叙述中,正确的是() A.菜单分三级定义,最高一级的是菜单条,菜单条中放菜单,菜单中放菜单项 B.菜单分三级定义,最高一级的是菜单,菜单中放菜单条,菜单条中放菜单项 C.菜单分两级定义,最高一级的是菜单,菜单中放菜单项 D.菜单分两级定义,最高一级的是菜单条,菜单条中放菜单项

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法 一、汇编源程序的建立 1. 使用工具 (1)EDIT,记事本等文本编辑软件,编辑源程序,保存为.asm文 件; (2)ASM,MASM汇编程序,对源程序进行汇编,生成.obj文件- 目标文件,以及调试用.LST-列表文件和.CRF-交叉引用表; (3)Link连接程序,对使用的目标文件和库文件进行连接,生 成.exe文件,同时调试用.map-地址映像文件; 如果源程序无语法错误,上述三步将生成可运行的.exe文件, 如果运行结果无误,则完成对汇编程序的编程,如果运行后结果存 在错误,需要进行调试。 (4)Debug调试程序,对.exe文件进行调试,修改,直到程序正 确。 图3 目标程序生成步骤图2. 编程过程 (1)用文本编辑软件,编写扩展名为.asm的源文程序文件。 (2)用汇编程序对编好的源文件进行汇编。 命令行:masm [*.asm] ↙ 如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称的目标文件.obj。 使用MASM50汇编程序进行汇编,输入命令行masm或者masm *.asm后,根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*.obj,*.lst和*.crf。 *.obj-目标文件,用于连接生成可执行文件; *.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于

调试; *.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。 (3)目标文件的连接 命令行:link [*.obj] [*.obj] [*.lib] ↙ 连接程序,将多个目标程序及库文件,连接生成可执行的*.exe文件,同时可选择生成*.map文件。 *.map-地址映像文件,给出内存地址分配的有关信息。 下图所示屏幕,为Link连接两个目标文件,没有错误的情况下,生成*.exe 文件。 (4)执行程序 执行*.exe文件,观察程序运行结果,如果存在错误,需要进行调试。调试工具DEBUG是针对汇编语言程序设计的一种调试工具,熟练使用DEBUG有助于汇编语言程序员对于逻辑错误的调试。 二、汇编程序的调试

相关文档
最新文档