当前位置:文档之家› 第2章 简单程序设计

第2章 简单程序设计

第2章简单程序设计

本章介绍了Visual Basic中程序代码的书写规则以及常用的赋值语句、注释语句和结束语句;详细介绍了窗体和命令按钮的常用属性和事件。通过一个简单的Visual Basic应用程序创建实例,向读者介绍了创建Visual Basic程序设计的步骤。

2.1 语法和注释

2.1.1 语法符号

为了便于解释语句、方法和函数,VB在各语句、方法和函数的语法格式和功能说明中采用了统一的符号约定。

Dim <变量名> [ As <数据类型> ] [ , <变量名> [As <数据类型>…]

语法描述符号及它们的含义如下:

(1)“< >”为必选参数项,尖括号中的中文提示说明必须由使用者根据问题的需要提供具体的参数。如果缺少参数,则发生语法错误。

(2)“[ ]”为可选参数项,方括号中的项目由使用者根据具体需要进行选择。如省略,则为缺省值。

(3)“{ }”和“|”,包含多中取一的各项,竖线分隔了多个选择项 ,必须选择其中一项。

(4)“…”表示同类项目的重复出现。

注意:在书写具体的命令时,不能出现这些语法描述符号!

2.1.2 程序代码书写规则

为了编写高质量的程序,从一开始就要养成一个良好的习惯,注意培养和形成良好的程序设计风格,在设计程序代码的过程中必须要了解VB代码书写规则并严格遵守,否则编写出来的代码就不能被计算机正确识别,产生编译或运算错误。

VB中程序代码书写规则如下:

(1)VB代码不区分字母的大小写。程序代码中关键字的首字母总是被转换成大写字母,其余字母转换成小写字母。

(2)在同一行上可以写多条语句,但语句之间必须要用冒号“:”分隔。

例如,Form1.Width = 800 : Form1.Height = 1000,在同一行中写了两条语句。但是,为了方便阅读,一行最好写一条语句。

(3)一行当中最多允许255个字符。

(4)若一个语句行不能写下全部语句,VB允许将单行语句分成若干行书写,只需要在行后加入续行符(即一个空格后跟一个下划线“_”)将长语句分成多行。

例如,If x = 1 Then y = 1 Else _

y = 2

虽然代码写在了两行上,但是由于续行符的作用,VB还是将它看成是写在了同一行中。

(5)注释语句以Rem开头,也可以使用撇号(?),注释内容可直接出现在语句的后面。VB在编译时会自动跳过注释行。

2.1.3 赋值、注释和结束语句

2.1.

3.1 赋值语句

赋值语句是结构化程序设计中的最基本语句,一般用于对变量赋值或对控件设定属性值,其格式为:

<变量名>=<表达式>

<对象名>.<属性名>=<表达式>

赋值语句的功能是:计算赋值符号“=”右边表达式的值,然后把计算结果转换为相同的数据类型数据后为变量或对象的属性赋值。

例如:

a = 5 ' 把数值常量赋值给变量a

s = "VB程序设计" ' 把字符串常量赋值给变量s

Text1.Text = "VB程序设计" ' 把"VB程序设计"赋值给Text1的Text属性说明:

(1)赋值号“=”两端的数据类型要一致。当“=”左端的数据类型为整型,而右端是数值类型的字符串时,计算机会自动地将数值类型的字符串转换为数值;当“=”左端的数据类型为整型,右端是浮点型表达式的时候,计算机会自动把浮点型表达式四舍五入为整型。当“=”右端的表达式超过数值变量的数值范围时,显示错误信息。

例如:

Dim x!, y%, z%, k%

x = "123.45" ' 数值类型的字符串转换为数值123.45

'y = "123kldslakj" ' 类型不匹配,出错

z = 17 / 3 ' 表达式的值为5.6666667,四舍五入,z=6

k = 32768 ' 出错,溢出

(2)赋值号“=”左端一定只能是变量名或对象的属性,而不能是常量、符号常量或表达式。下面是错误的赋值语句:

x+y=6

6=x

Abs(x)=x+y

(3)赋值号“=”不是数学中的符号。执行“a=a+5”是正确的表达式,它的意思是取变量a的值与5相加后,其结果再赋值给变量a。

(4)任何非字符类型赋值给字符类型,自动转换为字符类型。例如:

若a为字符串类型变量,执行a=4后,字符串a中存放的是字符串“4”。

(5)当逻辑型类赋值给数值类型时,True转换为-1,False转换为0;反之,非0转换为True,0转换为False。

例如,

Private Sub Form_Click()

Dim a%, b%

a = True

b = False

Print "a=" & a

Print "b=" & b

End Sub

分析:本程序是将逻辑类型True或False的值分别赋值给数值类型变量a和b,程序的运行结果如图2-1所示。

图2-1 逻辑类型赋值给数值类型

Private Sub Form_Click()

Dim a As Boolean, b As Boolean, c As Boolean

a = 12

b = -5.6

c = 0

Print "a=" & a

Print "b=" & b

Print "c=" & c

End Sub

分析:本程序是将数值类型的值分别赋值给逻辑类型变量a、b和c,程序的运行结果如图2-2所示。

图2-2 数值类型赋值给逻辑类型

(6)不能在一句赋值语句中,同时给多个变量赋值。例如:x=y=z=1与x,y,z=0是错误的写法。完成上述操作可以在同一行上用三个独立的语句书写,即x=0:y=0:z=0,注意语句之间用“:”分隔。

【例2-1】编写一个两个整型变量a与b交换的程序。

思路:两个数直接进行交换“a=b : b=a”是无法实现的,必须要引入第3个变量c。

程序代码如下:

Private Sub Form_Click()

Dim a As Integer, b As Integer, c As Integer

a = 2:

b = 3

Print a, b ' 显示交换前的值

c = a: a = b: b = c ' 交换过程

Print a, b ' 显示交换后的值

End Sub

2.1.

3.2 注释语句

为了提高程序的可读性和可维护性,通常需要在程序的适当位置上加一些注释,用于说明程序语句或某部分的功能。注释语句是非执行语句,仅对程序的有关内容起注释作用,VB在编译时会自动跳过注释行。

注释语句的格式为:

Rem <注释内容> 或… <注释内容>

一般在添加注释时,应遵守如下规则:

(1)整行注释一般以Rem开头。如果在语句后面使用Rem关键字,则必须用“:”将其与之前的语句分隔开,且Rem和注释内容之间要空一格,注释内容两端不需要用双引号(“”)相括。

(2)用英文单引号(?)引导的注释,既可以是整行的,也可以直接放在语句的后面。

例如:

Rem 接下来是对x进行判断

If x >= 0 Then ' 判断x>=0的情况

y = True

Else :Rem 判断x<0的情况

y = False

End If

注释有利于程序的维护和调试,因此要养成写注释的习惯。在VB中,有专门的添加/取消块注释的功能,使得将若干行语句或文字设置为注释或取消注释十分便捷。选中要添加的块注释的语句行,单击“编辑”工具栏中的“设置注释块”、“解除注释块”命令。

图2-3 “添加/解除块注释”

需要注意的是:在程序中注释并不是越多越好,不必对每条语句都进行注释,用户只需对主要的过程和变量进行必要的说明即可。

2.1.

3.3 结束语句

程序的结束语句用来终止程序的执行,其语句格式为:

End

End可以出现在程序中的任何位置,当程序执行到该语句时,就终止程序的执行,返回Visual Basic集成开发环境或操作系统。

在实际编程过程中,通常将End语句放在事件过程中,例如:

Private Sub Command1_Click()

End …单击命令按钮时,结束程序的运行

End Sub

End语句除用来结束程序外,在不同的环境下还有其他一些用途,例如:

End Sub ' 结束一个Sub过程

End SFunctionub ' 结束一个Function过程

End If ' 结束一个If语句块

End Type ' 结束记录类型的定义

End Select ' 结束情况语句

2.2 窗体

窗体是VB编程中最常见的对象,是VB应用程序的基本构造部件,是应用程序与用户交互操作的可视部分。一个窗体通常由以下基本分组成,如图2-4所示。

图2-4 窗体的结构

2.2.1 窗体的常用属性

窗体的属性决定了窗体的外观和操作。对大部分窗体属性,既可以通过属性窗口设置,也可以通过代码窗口设置,而有少数属性只能通过程序代码或属性窗口设置。通常把只能通过属性窗口设置的属性称为“只读属性”。下面来介绍几种常用的属性。

1.Name属性

VB中任何对象都有Name属性,在程序代码中就是通过该属性来引用、操作具体的对象。窗体的Name属性是用于设置窗体的名称,默认名称为“Form1”。Name属性为只读属性,只能在属性窗口设置,程序运行时,对象的名称不能改变。

图2-5 窗体的Name属性

2.Caption属性

用来设置窗体标题栏中显示的文本,默认值是“Form1”。当窗体为最小化状态时,该文本被显示在窗体标题的下面。该属性既可以通过属性窗口设置,也可以在事件过程中通过程序代码设置。如图2-6所示,窗体的标题为“VB窗体”。

图2-6 窗体的Caption属性

3.Left、Top属性

这两个属性用于设置对象左边界和上边界的坐标值,用于控制对象的位置。坐标值的缺省单位为twip。当对象为窗体时,Left指的是窗体左边界与屏幕左边界的相对距离,Top指的是窗体的上边界与屏幕上边界的相对距离;当对象为控件时,Left和Top分别指的是控件的左边界与上边界距离窗体左边界和上边界的距离。

4.Height、Width属性

这两个属性用于设置或返回对象的高度和宽度。对于窗体,指的是窗体的高度和宽度,包括边框和标题栏。

如图2-7所示,屏幕(Screen)、窗体(Form1)和命令按钮(Ok)的Left、Top、Height、Width、ScaleHeight、ScaleWidth属性。

图2-7 对象的Left 、Top 、Height 、Width 、ScaleHeight 、ScaleWidth 属性

【例2-2】编程,在窗体Form1被加载时,将其宽度和高度分别设置为屏幕宽度和高度的一半,并且将窗体居中显示。通过窗体的Load 事件来实现的程序代码为:

Private Sub Form_Load()

Form1.Width = Screen.Width / 2 ' 设置窗体的宽度 Form1.Height = Screen.Height / 2 ' 设置窗体的高度 Form1.Left = (Screen.Width - Form1.Width) / 2 ' 水平方向上居中 Form1.Top = (Screen.Height - Form1.Height) / 2 ' 垂直方向上居中 End Sub

5. Enabled 属性

用于设置窗体是否允许被操作。True 表示允许,False 表示禁止。如果窗体的Enabled 属性为False ,那么窗体中所有的控件都不能被操作。

6. Visible 属性 用于设置窗体是否可见。True 表示可见,False 表示不可见。此属性只有在运行程序时才起作用。在设计阶段,即使把窗体的Visible 属性设置为False ,窗体依然可见,知识在程序运行后消失。Visible 属性决定对象的可见性,与是否能够被操作没有关系。

7. Font 属性

用于设置窗体或控件上文本的外观。该属性既可以通过属性窗口设置,也可以通过程序代码设置。Font 属性包含6个子属性:

● FontName :用于设置窗体或控件上文本的字体,字符型值,默认字体为“宋体”。 ● FontSize :用于设置窗体或控件上文本的大小,缺省值是9磅。

FontBold :用于设置窗体或控件上的文本是否加粗显示,逻辑型值,值为True 时表示加粗,缺省值为False 。

FontItalic :用于设置窗体或控件上的文本是否倾斜显示,逻辑型值,值为True 时表示倾斜,缺省值为False 。 ●

FontStrikeThru :用于设置窗体或控件上的文本是否加删除线,逻辑型值,值为True 时表示加删除线,缺省值为False 。

Form1.ScaleWidth

FontUnderLine:用于设置窗体或控件上的文本是否加下划线,逻辑型值,值为True 时表示加下划线,缺省值为False。

8.BackColor属性

BackColor属性用于设置或返回窗体或控件的背景颜色。在属性窗口中单击BackColor 设置框右边的下拉按钮,弹出一个下拉列表,用户可以选择调色板或使用系统颜色进行设置。该属性还可以通过在代码窗口中编写代码直接输入颜色值或利用QBColor、RGB函数设置所需颜色。

9.ForeColor属性

ForeColor属性用于设置或返回窗体或控件的前景颜色,即对象中图片和文字的颜色。其设置方法与BackColor属性相同。

10.MaxButton、MinButton属性

用于设置窗体右上角是否有最大化、最小化按钮。值为True,表示有最大化或最小化按钮,False表示无最大化或最小化按钮。这两个属性只能在属性窗口设置。

11.Icon、ControlBox属性

Icon属性是用来返回或设置窗体左上角和最小化时显示的图标。它必须在ControlBox 属性设置为True时才有效。缺省设置的图标是,单击属性窗口中Icon属性值后面的按钮,打开“加载图标”对话框,允许打开一个图标文件(*.ico和*.cur)作为这个属性的值。

ControlBox控制菜单框属性用于设置窗体左上角是否有显示控制菜单框,逻辑型值,值为True时表示显示控制菜单框。

12.Picture属性

设置窗体中要显示的图片。一般可显示大部分类型的图片文件,可用来给窗体界面设置背景图案。

13.BorderStyle属性

用于设置窗体的边框样式,该属性只能在属性窗口中设置,其属性值如表2-1所示。

表2-1 窗体对象BorderStyle属性的取值及意义

14.WindowState属性

用于设置窗体的运行状态,其属性值如表2-2所示。

表2-2 窗体对象BorderStyle属性的取值及意义

15.AutoRedraw属性

该属性决定窗体被隐藏或被另一窗口覆盖之后重新显示时,是否重新还原该窗体被隐藏或覆盖以前的画面,即是否重画如Circle、Line、Pset和Print等方法的输出。当为True 时,重新还原该窗体以前的画面。

注意:在窗体Load事件中如果要使用Print方法在窗体上打印输出,就必须先将窗体的AutoReDraw属性设置为True,否则窗体启动后将没有输出结果。这是因为窗体是在Load 事件执行完后才显示的。

2.2.2 窗体的常用事件

与窗体有关的事件较多,VB中有30多个,但平时编程时并不需要对所有事件编程。下面对几个常用的窗体事件做一介绍,其他的事件在后面的章节中介绍。

1.Click事件

在程序运行时单击窗体的某个位置,便会触发窗体的Click事件。

2.DblClick事件

在程序运行时双击窗体的某个位置,便会触发窗体的DblClick事件。

3.Load事件

在程序运行时,当窗体被装入工作区时,将触发它的Load事件。该事件通常用于启动应用程序时对属性和变量的初始化操作。

4.UnLoad事件

卸载窗体时触发的事件。

5.Resize事件

当窗体大小发生改变时触发的事件。

2.2.3 窗体的常用方法

窗体的常用方法有Print、Cls、Move、Show和Hide等。由于后续章节会对Print方法进行详细讲解,在此不再展开论述。

1.Cls方法

格式:[对象].Cls

功能:清楚运行时在窗体或图片框中显示的文本或图片(不是加载时的图片)。当使用Cls方法后,光标移动到对象的左上角(0,0)。语句中“对象”为窗体或图片框,缺省的对象为窗体。

如:清除当前窗体(Form1)中显示的内容,其代码为:

Form1.Cls 或Cls

2.Move方法

格式:[对象].Move 左边距离[,上边距离[,宽度[,高度]]]

功能:在程序运行时移动窗体或控件,并可改变其大小。缺省的对象为窗体。“左边距离”、“上边距离”、“宽度”、“高度”均为数值表达式。

Move方法至少需要一个左边距离参数,其余均可省略。如果要指定其余参数值,则必须按顺序依次给定前面的参数值,不能只指定宽度,而不指定上边距离和高度,但允许只指定前面部分的参数,而省略后面部分。例如:如果只指定了左边距离和上边距离,而省略了宽度和高度值,则窗体的宽度和高度在移动后保持不变。

【例2-3】使用Move方法移动窗体。单击窗体时将窗体进行移动并定位在屏幕的左上

角,同时窗体的宽度和高度变为原来的1/4,其代码为:

Private Sub Form_Click()

Form1.Move 0, 0, Form1.Width / 4, Form1.Height / 4

End Sub

3.Show方法

格式:[对象].Show

功能:用于在屏幕上显示一个窗体,使指定的窗体在屏幕上可见。使用Show方法与设置窗体的Visible属性为True具有相同的效果。如果要显示的窗体事先为装入,该方法会自动载入该窗体再显示。

4.Hide方法

格式:[对象].Hide

功能:用于隐藏指定的窗体,但不从内存中删除窗体。当一个窗体从屏幕上隐去时,其Visible属性被设置成False,并且该窗体上的控件也变的不可访问,但对运行程序间的数据引用无影响。若要隐藏的窗体未装入,则Hide方法会装入该窗体但不显示。

【例2-4】实现将指定窗体在屏幕上进行显示或隐藏的切换,即单击窗体时窗体隐藏并弹出一个消息对话框。当单击“确定”按钮后,再现窗体。

Private Sub Form_Click()

Form1.Hide

MsgBox "窗体已经被隐藏了,单击“确定”按钮后,显示窗体"

Form1.Show

End Sub

2.3 命令按钮控件

命令按钮(CommandButton)是VB应用程序中最常用的控件,是用户与应用程序交互的最简便方法,常用于开始、中断或者结束一个过程。命令按钮在工具箱中的图标为。

2.3.1 命令按钮的常用属性

命令按钮所具有的Name、Left、Top、Height、Width、Enabled、Visible以及Font 等属性与窗体相类似,此处不再重复。下面将介绍一些命令按钮的特有属性。

1.Caption属性

该属性用于设置命令按钮上显示的标题。它既可以在属性窗口设置,也可以在程序运行时设置。在程序运行时,通过设置Caption属性可动态更改命令按钮的标题。

通过Caption属性可创建命令按钮的快捷访问键,其方法是在作为快捷访问键的字母前面添加一个连接符(&)。例如,为标题为“确定(X)”的命令按钮创建快捷访问键“Alt+X”,则应该将命令按钮的Caption属性设置为“确定(&X)”,如图2-8所示,字母X将带下划线。程序运行时,按下Alt+X键即可触发该命令按钮的相应事件。

图2-8 命令按钮的快捷访问键

2.Default、Cancel属性

在一组命令按钮中,对于“确定”和“取消”命令按钮的操作,Windows应用程序可使用按Enter键和Esc键来选择。

将一个命令按钮的Default属性设置为True,使其成为“默认按钮”,表示若窗体中所有按钮都不具有焦点时,按下Enter键和鼠标单击该命令按钮的作用是相同的。如果焦点在某个命令按钮上,按Enter键就执行该命令按钮的单击事件,不会去执行Default属性设置为True的命令按钮。在一个窗体中,只允许有一个命令按钮的Default属性设置为True。

同样,将一个命令按钮的Cancel属性设置为True,使其成为“取消按钮”,表示若窗体中所有按钮都不具有焦点时,按下Esc键和鼠标单击该命令按钮的作用是相同的。在一个窗体中,只允许有一个命令按钮的Cancel属性设置为True。

3.Style属性

设置命令按钮的显示样式,有两种形式:

●0——Standard:标准命令按钮(默认),表示命令按钮只能显示文字。

●1——Graphical:图形命令按钮,表示命令按钮即可显示图形,也可显示文字。

4.Picture属性

设置命令按钮上显示的图形(.bmp和.ico)。此属性只有当Style属性值为1的时候才有效。

5.ToolTipText属性

设置当鼠标在命令按钮上暂停是所显示的文本,取值为字符串类型。通常是用在Style 属性和Picture属性都设置好的命令上,作为对该命令按钮的文字解释。如图2-9所示,当设置ToolTipText属性为“单击此命令按钮可链接到中国工商银行”的显示效果。

图2-9 命令按钮的提示信息

2.3.2 命令按钮的常用事件

对命令按钮控件来说,Click事件是最重要的触发方式。多数情况下,主要是针对该事件过程来编写程序代码。

2.4 简单VB程序设计

用传统的面向过程的语言进行程序设计时,主要的工作就是编写程序代码,遵循编程-调试-改错-运行的模式,而用VB开发应用程序时,完全打破了这种模式,使得能够快速、高效地开发具有良好用户界面的应用程序。

2.4.1 程序设计

一般来说,创建VB应用程序一般有以下几个步骤。

(1)新建工程。

(2)创建可视化应用程序界面。

(3)设置对象的属性。

(4)对象事件过程的编程。

(5)保存文件。

(6)程序运行与调试。

【例2-5】编程,实现窗体大小的变化和移动。运行效果如图2-10所示:

(1)5个命令按钮标题分别为“变大”、“变小”、“左移”、“上移”和“居中”

(2)单击“变大”按钮时,窗体的宽度和高度变为原来大小的两倍;

(3)单击“变小”按钮时,窗体宽度和高度变为原来大小的一半;

(4)单击“左移”和“上移”按钮时,窗体左移或上移100缇。

(5)不管窗体大小如何变化,“变大”按钮始终位于窗体左上角;“变小”按钮始终位于窗体右上角;“左移”按钮始终位于窗体左下角;“上移”按钮始终位于窗体右下角;“居中”按钮始终位于窗体的正中心。

图2-10 程序运行效果

下面将介绍如何设计这个应用程序。

1.新建工程

启动VB 6.0应用程序,选择“标准EXE”并单击“打开”按钮。

2.创建可视化应用程序界面

使用工具箱在窗体上放置所需的控件。如图2-11所示,在窗体Form1中添加5个命令按钮Command1、Command2、Command3、Command4和Command5。

图2-11 创建应用程序界面

3.设置对象的属性

通过这一步骤来改变对象的外观和行为。

表2-3 各对象的主要属性设置

4.对象事件过程的编写

双击命令按钮进入“代码设计窗口”,分别编写Command1、Command2、Command3、Command4和Command5的单击Click事件。单击“对象列表框”下拉列表框的下拉键,从中选择“Command1”对象,再从“过程列表框”下拉列表框中选择“Click”事件,则在代码设计窗口中出现事件过程的框架,如图2-12所示。

对象列表框

过程列表框

图2-12 代码设计窗口

在命令按钮的单击事件中写入如下代码:

Private Sub Command1_Click() ' 放大

Form1.Width = Form1.Width * 2

Form1.Height = Form1.Height * 2

End Sub

Private Sub Command2_Click() ' 变小

Form1.Width = Form1.Width / 2

Form1.Height = Form1.Height / 2

End Sub

Private Sub Command3_Click() ' 左移

Form1.Left = Form1.Left - 100

End Sub

Private Sub Command4_Click() ' 上移

Form1.Top = Form1.Top - 100

End Sub

Private Sub Form_Resize() ' 窗体大小发生改变时触发Resize事件Command1.Left = 0

Command1.Top = 0

Command2.Left = Form1.ScaleWidth - Command2.Width

Command2.Top = 0

Command3.Left = 0

Command3.Top = Form1.ScaleHeight - Command3.Height

Command4.Left = Form1.ScaleWidth - Command4.Width

Command4.Top = Form1.ScaleHeight - Command4.Height

Command5.Left = (Form1.ScaleWidth - Command5.Width) / 2

Command5.Top = (Form1.ScaleHeight - Command5.Height) / 2 End Sub

2.4.2 代码编辑器

Visual Basic的“代码编辑器”是一个窗口,大多数代码都在此窗口上编写。它像一个

高度专门化的字处理软件,提供了许多便于编写Visual Basic代码的功能,这些功能通过编辑器的选项来设置,操作如下:

执行“工具”→“选项”命令,打开“选项”对话框,在该对话框中选择“编辑器”选项卡,如图2-13所示。

图2-13 “编辑器”选项卡

下面对“编辑器”选项卡中的两个选项进行简单说明:

(1)“自动列出成员”:选择该项后,在输入代码时,编辑器会列出适当的属性、方法等供用户选择。例如,当在代码中输入对象名和点(.)时,将自动列出这个控件的属性表,如图2-14所示,此时输入属性名的前几个字母,就可以从表中选中该属性名字,按空格或Tab键即可完成输入。

图2-14 “自动列出成员”功能

(2)“自动快速信息”:选择该项后,将自动显示语句和函数的语法,如图2-15所示。输入合法的Visual Basic语句或函数名后,将在当前行的下面显示相应的语法,并用加粗字体显示它的当前参数。

图2-15 “自动列出成员”功能

2.5 程序的保存、装入和运行

程序设计结束并初步检查没有错误后,通常应先把程序存入磁盘,然后再运行程序,看是否符合设计要求。当然,也可以先对程序进行调试和运行,再把它存放到磁盘上。

2.5.1 程序的保存

单击工具栏中的“保存工程”按钮或单击“文件”→“保存工程”都可以将程序保存下来。对【例2-5】而言,单击“保存工程”按钮后,系统会弹出如图2-16和图2-17所示的两个对话框,分别保存窗体文件和工程文件。

输入窗体文件

图2-16 保存窗体工程

输入工程文件名

图2-17 保存窗体工程

注意:在运行程序之前,应先保存程序,以避免由于程序代码不正确而造成死机后界面设计和程序代码的丢失,当程序运行正确后还要将修改的有关文件保存到磁盘上。VB系统首先保存窗体文件和其他文件,最后保存的才是工程文件。

2.5.2 程序的装入

保存操作可以把应用程序以文件的形式保存到磁盘上。退出Visual Basic或关机后,磁盘上的文件仍然存在。下次启动Visual Basic后,可以把保存在磁盘上的程序装入内存,以便运行或对其进行修改。

一个应用程序包括4类文件:窗体文件、标准模块文件、类模块文件和工程文件。这4类文件都有自己的文件名,但只要装入工程文件,就可以自动把与该工程有关的其他3类文件装入内存,而不管这个工程中含有多少窗体和标准模块。因此,装入应用程序,实际上就是装入工程文件。

2.5.3 程序的运行

程序设计完成并存入磁盘后,就可以运行程序。运行程序有两个目的,一是输出结果,而是发现错误。

1.运行和调试程序

“放大”按钮和“变小”按钮,窗体的宽度和高度都发生了相应的变化;单击“左移”和“上移”按钮时,窗体位置也发生了相应的变化。当把窗体“拉大”或“缩小”时,五个命令按钮的位置始终都位于相应的指定位置。这说明程序代码编写正确,程序运行结果实现了程序设计的基本要求,用户此时就可以放心的退出程序了。

VB程序通常会先编译,检查是否存在语法错误。若存在语法错误,则显示错误信息,提示用户进行修改。对于初学者,程序运行时出错是很正常的,重要的在于发现错误并改正。编译系统时一个绝对严格的检查师,不会放过任何细小的错误。调试程序要有耐心和毅力,

成功需要经验和教训的积累。

2.生成可执行程序

VB提供了两种运行程序的方式:解释执行方式和编译执行方式。一般调试程序就是解释执行方式,因为解释执行方式是边解释边执行,在运行中如果遇到错误,则自动返回代码窗口并提示错误语句,使用比较方便。当程序调试运行正确后,以后要多次运行或要提供给其他用户使用,就要将程序编译成可执行程序。

在VB集成开发环境下生成可执行程序的操作为:“文件”→“生成工程1.exe”,在打开的“生成工程”对话框中选择保存的文件夹和文件名,单击“确定”即可生成Windows 中的应用程序。

本章小结

本章主要介绍了Visual Basic的语法符号、编码规则以及赋值语句、注释语句和结束语句,这些是Visual Basic编程的基础;详细介绍了窗体和命令按钮的常用属性和事件;最后通过一个简单的实例,介绍了Visual Basic应用程序设计的建立过程。

习题

一、判断题

1. 同一窗体中的各控件可以相互重叠,其显示的上下层次的次序不可以调整。

2. 控件的属性值不可以在程序运行时动态地修改。

3. 许多属性可以直接在属性表上设置、修改,并立即在屏幕上看到效果。

4. 所谓保存工程,是指保存正在编辑的工程的窗体。

5. 决定对象是否可见的属性是Visible属性,决定对象可用性的属性是Enabled属性。

6. 保存Visual Basic文件时,若一个工程包含多个窗体或模块,则系统先保存工程文

件,再分别保存各窗体或模块文件。

7. xxx.vbp文件是用来管理构成应用程序xxx的所有文件和对象的清单。

8. 赋值语句的功能是计算表达式值并转换为相同类型数据后为变量或控件属性赋值。

9. 在同一行上可以写多条语句,但语句之间必须要用冒号“;”分隔

10. 注释既可以使用Rem语句注释,也可以在英文单引号进行注释。

11. 程序的结束语句用来终止程序的执行。

12. 通过Caption属性可创建命令按钮的快捷访问键。

13. 窗体中的控件,是使用工具箱中的工具在窗体上画出的各图形对象。

14. 同一个窗体文件只能用于一个工程中。

15. 由Visual Basic语言编写的应用程序有解释和编译两种执行方式。

16. 在打开一个Visual Basic工程进行修改后,要另存为一个版本,只需单击“工程另

存为…”就行,因为系统将同时保存其他文件。

17. 当用Load命令将窗体装入内存时,一定触发窗体的Load事件和Activate事件

18. 命令按钮不但能响应单击事件,而且还能响应双击事件。

19. 如果命令按钮Default属性为True,那么任何时候按Enter键都相当于单击该命令

按钮。

20. 决定一个控件在窗体中的位置是通过Left、Right、Top和Bottom四个属性决定的。

二、选择题

1. 工程文件的扩展名为。

A、.frx

B、.bas

C、.vbp

D、.frm

2. 以下4个选项中,属性窗口未包含的是。

A、对象列表

B、工具箱

C、属性列表

D、信息栏

3. 在设计模式双击窗体中的对象后,Visual Basic将显示的窗口是。

A、项目(工程)窗口

B、工具箱

C、代码窗口

D、属性窗口

4. Visual Basic中“程序运行”允许使用的快捷键是。

A、F2

B、F5

C、Alt+F3

D、F8

5. 改变控件在窗体中的上下位置应修改该控件的属性。

A、Top

B、Left

C、Width

D、Right

6. 窗体模块的扩展名为。

A、.exe

B、.bas

C、.frx

D、.frm

7. 要设置窗体上各控件的属性,是在__________中运行。

A.“窗体布局”窗口B.“工程资源管理器”窗口

C.“属性”窗口D.“对象”窗口

8. 窗体的FontName属性的缺省值是。

A、宋体

B、仿宋体

C、楷体

D、黑体

9. 将Visual Basic编制的程序保存在磁盘上,至少会产生何种文件。

A、.doc与.txt

B、.com与.exe

C、.bat与.frm

D、.vbp与.frm

10. 窗体Form1的Name属性是MyForm,它的单击事件过程名是。

A、MyForm_Click

B、Form_Click

C、Form1_Click

D、Frm1_Click

11. FontSize属性用以设置字体大小,窗体的FontSize属性缺省值为。

A、5

B、9

C、12

D、16

12. 若要取消窗体的最大化功能,可将其属性设置为False。

A、Enabled

B、ControlBox

C、MinButton

D、MaxButton

13. 确定一个控件在窗体中的位置属性是。

A、Width、Height

B、BackStyle

C、Left、Height

D、Left、Top

14. 若要将命令按钮设置为图形风格,可通过属性来设置。

A、Style

B、Width、Top

C、BorderStyle

D、FillStyle

15. 要使命令按钮在运行时不可见,可通过属性来设置。

A、Enabled

B、Visible

C、Value

D、Default

16. 将命令按钮Command1设置为窗体的取消按钮,可修改该控件的属性。

A、Enabled

B、Value

C、Default

D、Cancel

实验

1. 设计一个“改变背景颜色”的程序,程序运行界面如图2-18所示,具体要求如下:

(1)窗体的标题是“改变背景颜色”,固定边框;

(2)窗体中包含Command1、Command2和Command3三个命令按钮,标题分别为“红”、“绿”、“蓝”。

(3)运行时单击窗体上的“红”、“绿”、“蓝”三个按钮,可变换窗体的背景颜色。

图2-18 “改变背景颜色”程序运行界面

2. 设计一个“字体改变”程序,程序运行界面如图2-19所示,具体要求如下:

(1)窗体的标题是“字体改变”,包含一个标签Label1和6个命令按钮。

(2)6个命令按钮的标题分别为“字体变大”、“字体变小”、“加粗”、“标准”、“楷体”和“黑体”。

(3)标签框(Label1)的标题为“欢迎来到VB世界”。(提示:标签的标题是修改标签的Caption属性)

(4)单击“字体变大”按钮或“字体变小”按钮一次,标签框(Label1)字体变大或变小3个单位。

(5)单击“加粗”按钮时,字体加粗;单击“标准”按钮时,字体又由粗体变回标准(宋体、非粗、9号字大小)。

(6)单击“楷体”按钮时,字体变楷体;单击“黑体”按钮时,字体变黑体。

图2-19 “字体改变”程序运行界面

3. 设计一个“改变位置”程序,程序运行界面如图2-20所示,具体要求如下:

(1)窗体的标题是“改变位置”,包含5个命令按钮Command1~Command5。

(2)Command1命令按钮的标题分别为“可移动按钮”,并且可以显示图形。

第2章 程序设计基础习题

程序设计基础 一、判断题 1.整型变量有Byte、Integer、Long类型3种。 2.Byte类型的数据,其数值范围在-255~255之间。 3.Visual Basic的Double类型数据可以精确表示其数值范围内的所有实数。 4.在逻辑运算符Not、Or、And中,运算优先级由高到低依次为Not、Or、And。 5.关系表达式是用来比较两个数据的大小关系的,结果为逻辑值。 6.一个表达式中若有多种运算,在同一层括号内,计算机按函数运算→逻辑运算→关系运算→算术运算的顺序对表达式求值。 7.赋值语句的功能是计算表达式值并转换为相同类型数据后为变量或控件属性赋值。 8.用DIM定义数值变量时,该数值变量自动赋初值为0。 9.函数InputBox的前3个参数分别是输入对话框的提示信息、标题以及默认值。 10.函数MsgBox的前3个参数分别表示默认按钮、按钮样式以及图标样式。 二、选择题 1.Integer类型数据能够表示的最大整数为________ 。 A、275 B、215-1 C、216 D、216-1 2.货币类型数据小数点后面的有效位数最多只有________ 。 A、1位 B、6位 C、16位 D、4位 3.输入对话框InputBox的返回值的类型是________ 。 A、字符串 B、整数 C、浮点数 D、长整数 4.运算符“\”两边的操作数若类型不同,则先________ 再运算。 A、取整为Byte类型 B、取整为Integer类型 C、四舍五入为整型 D、四舍五入为Byte类型 5.Int( Rnd * 100 ) 表示的是________ 范围内的整数。 A、[0,100] B、[1,99] C、[0,99] D、[1,100] 6.下列程序段的输出结果是________ 。 a=10: b=10000: x=log(b)/log(a): Print "lg(10000)=";x A、lg(10000)=5 B、lg(10000)=4 C、4 D、5 7.返回删除字符串前导和尾随空格符后的字符串,用函数________ 。 A、Trim B、Ltrim C、Rtrim D、mid 8.Print语句的一个输出表达式为________ ,则输出包括日期、时间信息。 A、Date B、Month C、Time D、Now 9. 语句Print "5*5" 的显示结果是________ 。 A、25 B、"5*5" C、5*5 D、出现错误提示 10.语句“Form1.Print Tab(10);"#"”的作用是在窗体当前输出行________ 。 A、第10列输出字符“#” B、第9列输出字符“#” C、第11列输出字符“#” D、输出10个字符“#” 三、填空题 1.语句“Dim C As________”定义的变量C,可用于存放控件的Caption的值。 2.长整型变量(Long类型)占用________ 个字节。 3.表达式Right(String(65, Asc("abc")), 3)的值是________。 1

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

第二章 程序设计基础

1.结构化程序包括的基本控制结构只有三种,即顺序结构、选择结构与循环结构。 对象之间进行通信的构造叫做消息,A正确。多态性是指同一个操作可以是不同对象的行为,D 错误。对象不一定必须有继承性,C错误。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作,B错误。 2.对象之间进行通信的构造叫做消息。多态性是指同一个操作可以是不同对象的行为。对象不一定必须有继承性。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作。 继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。 3.整数类实例包括: 十进制常量用0~9表示,不能以0开头; 八进制常量用0~7表示,必须用0开头; 十六进制常量用0~9和A~F(a~f)表示,必须以0x或0X开头。0x518。 0.518是浮点数实例,518E-2为科学计数法表示的浮点数实例。 "-518"是字符串实例, 字符实例的一般形式是用一对单引号括起来的一个字符。另外ASCII码中还有一些控制字符,C 语言中用转义字符的形式来书写这些常,转义字符一反斜杠(\)开始,后面跟1个字符或字符序列。'518'单引号中有三个字符,错误。"5"双引号为字符串,错误。'nm'单引号中有两个字符,错误。'\n'为换行符,属于字符类实例,正确。 4.数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)等。

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

第二章 简单的VB程序设计习题

第二章简单的VB程序设计习题 一、选择题 1. 假定已在窗体上画了多个控件,并有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先执行的操作是 ()。 (A)单击窗体上没有控件的地方(B)单击任一个控件 (C)不执行任何操作(D)双击窗体的标题栏 2. 在VB中最基本的对象是(),它是应用程序的基石,是其它控件的容器。 (A)文本框(B)命令按钮 (C)窗体(D)标签 3. 有程序代码如下:text1.text=“visual basic”则:text1、text和“visual basic”分别代表()。 (A)对象,值,属性(B) 对象,方法,属性 (C)对象,属性,值(D) 属性,对象,值 4. VB是一种面向对象的程序设计语言,()不是面向对象系统所包含的三要素。 (A)变量(B)事件(C)属性(D)方法 5. VB的一个应用程序至少包括一个()文件,该文件存储窗体上使用的所有控件对象和有关的()、 对象相应的()过程和()代码。 (A)模块、方法、事件、程序(B)窗体、属性、事件、程序 (C)窗体、程序、属性、事件(D)窗体、属性、事件、方法 6. 在VB6.0环境已有应用程序的情况下,要重新建立一个工程的操作是()。 (A)单击工具栏上的“添加工程”按钮 (B)在工程资源管理器窗口上单击右键,在弹出的快捷菜单中选择“新建工程”选项 (C)选择“文件”菜单中的“新建工程” (D)选择“视图”菜单中的“新建工程” 7. 为了把窗体上的某个控件变为活动,应执行的操作是()。 (A)单击窗体的边框(B)单击该控件的内部 (C)双击该控件(D)双击窗体 8. 确定一个控件在窗体上的位置的属性是()。 (A)Width和Height (B)Width或Height (C)Top和Left (D)Top或Left 9. 确定一个窗体或控件的大小的属性是()。 (A)Width和Height (B)Width或Height (C)Top和Left (D)Top或Left 10. 对于窗体,下面()属性可以在程序运行时进行设置。 (A)MaxButton (B)BorderStyle (C)Name (D)Left 11. 要使Print方法在Form_Load事件中起作用,要对窗体的()属性进行设置。 (A)BackColor (B)BorderStyle (C)AutoRedraw (D)Caption 12. 要使标签控件显示时不覆盖其背景内容,要对()属性进行设置。 (A)BackColor (B)BorderStyle (C)ForeColor (D)BackStyle 13. 要使对象看得见而不可操作,要对()属性设置。 (A)Enabled (B)Visible (C)BackColor (D)Caption 14. 文本框没有()属性。

C语言程序设计学习指导(第2版) 1-6

第一章概述 一、选择 1.C 2.B 3.C 4.D 5.D 6.A 7.B 8.C 9.A 10.B 11.C 12.D 13.B 14.B 第二章数据类型 一、选择 1.D 2.A 3.C 4.D 5.A 6.B 7.A 8.B 9.A 10.D 11.B 12.C 13.C 14.D 15.C 16.B 17.D 18.A 19.C 20.B 21.B 22.D 23.A 24.B 25.B 26.B 27.C 第三章运算符和表达式 一、选择 1.A 2.D 3.D 4.D 5.D 6.A 7.C 8.C 9.B 10.B 11.C 12.C 13.A 14.A 15.A 16.A 17.B 18.C 19.C 20.D 21.A 22.A 23.C 24.C 25.A 26.B 27.D 28.A 29.B 30.C 31.D 32.D 33.D 34.B 35.A 36.A 37.B 38.C 39.D 40.B 41.B 42.C 43.B 第四章输入和输出 一、选择 1.C 2.D 3.C 4.C 5.C 6.B 7.B 8.C 9.D 10.D 11.D 12.D 13.B 14.A 15.B 16.B 二、编程 1.double fun(double m) { float n; n=(5.0/9.0)*(m-32); return n; } 2. char fun(char c) {c=c+32; return c;} 3.double fun(int m) { double y=0; y=sin(m)*10; return(y); } 4.float fun ( float h ) {return (long)( h * 100 + 0.5 )/ 100.0;}

第2章 简单的C#程序设计 习题

第2章简单的C#程序设计 一.选择题 1.C#中程序的入口方法是【】方法。 A) main B) Main C) begin D) Program 2.假设变量x的值为25,要输出x的值,下列正确的语句是【】。 A) System.Console.writeline(“x”);B) System.Console.WriteLine(“x”); C) System.Console.WriteLine(“x={0}”,x);D) System.Console.WriteLine(“x={x}”); 3.要退出应用程序的执行,应执行下列的【】语句。 A) Application.Exit(); B) Application.Exit; C) Application.Close(); D) Application.Close; 4.关于C#程序的书写,下列不正确的说法是【】。 A) 区分大小写 B) 一行可以写多条语句 C) 一条语句可以写成多行 D) 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法。 5.公共语言运行库即【】。 A) CRL B) CLR C) CRR D) CLS 6..NET平台是一个新的开发框架,【】是.NET的核心部分。 A) C# B) .NET Framework C) https://www.doczj.com/doc/338811315.html, D) 公共语言运行库 7.C#应用程序项目文件的扩展名是【】。 A) csproj B) cs C) sln D) suo 8.C#应用程序解决方案文件的扩展名是【】。 A) csproj B) cs C) sln D) suo 9.运行C#程序可以通过按【】键实现。 A) F5B) Alt+F5 C) Ctrl+F5 D) Alt+Ctrl+F5 10.C#语言中类模块代码文件的扩展名是【】。 A) csproj B) cs C) sln D) suo 11.构建桌面应用程序需要.NET提供的类库是【】。 A) https://www.doczj.com/doc/338811315.html, B) Windows Form C) XML D) https://www.doczj.com/doc/338811315.html, 12.C#中导入某一命名空间的关键字是【】。 A) use B) using C) import D) include 13..NET Framework将【】定义为一组规则,所有.NET语言都应遵守这个规则,才能创建可以与其他语言互操作的应用程序。 A) JIT B) CLR C) MSIL D) https://www.doczj.com/doc/338811315.html, 14.在https://www.doczj.com/doc/338811315.html,中,在【】中可以查看当前项目的类和类的层次信息。 A) 解决方案资源管理器B) 类视图窗口 C) 对象浏览器窗口D) 属性窗口 15.在.NET Framewor中,MSIL是指【】 A) 接口限制B)中间语言C) 核心代码D) 类库16.【】是独立于CPU的指令集,它可以被高效地转换为本机机器语言。

C程序设计谭浩强第二章习题与答案

习题 2.1什么是算法?是从日常生活中找三个例子,描述他们的算法? 答:对操作的描述,即操作步骤,就是算法。 ????????广义的说;为解决一个问题而采取的方法和步骤,就称为“算法”。 例:(略) 2.2什么叫结构化的算法?为什么要提倡结构化的算法? 答:由基本节构所构成的算法属于“结构化”的算法。 ????? 结构化的算法便于编写、阅读、便于修改和维护。这就减少了程序出错的机会、提高了程序的可靠性,保证了程序的质量。 2.3试述三种基本结构的特点,你能否自己另外设计两种基本结构(要符合基本结构的特点)。 2.4

答:基本结构有以下共同点: ?????? 1:只有一个入口。图2-14-------2-17中的a点为入口。 ??????? 2:只有一个出口。图2-14-------2-17中的b点为出口。注意,一个判断框有两个出口,但一个选择结构只有一个出口。不能混淆。 ??????? 3:结构内的每一部分都有被执行到的机会。也就是说,对每一个框来说,都应当有一条到出口的路径通过它。图2-20中就没有一条从入口到出口的路径通过A框。 ???????? 4:结构内不存在死循环(无终止的循环)。图2-21就是一个死循环。 ????? 需要说明的是基本结构并不一定只限于以上3中,只要有以上四种特点就可以。人们可以自己定义之。例:如下两图 2.5用传统流程图表示求解一下问题的算法。 (1)有两个瓶子A和B,分别放醋和酱油,要求将他们互换。 #include void main() { int a; int b; int c; a=10;b=5; printf("%d,%d\n",a,b); c=a;a=b;b=c; printf("%d,%d\n",a,b); } (2)一次将10个数输入,要求将将其中最大的数输出。 #include void main() { int a[10]; int i; int max; printf("input 10 numbers.\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); max=a[0];

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C程序设计(第四版)_谭浩强_第二章_课后习题答案

算法——程序的灵魂 #include int main() { int i,s=1; //在执行数值操作前一定要先有个初值. for(i=1;i<6;i++) //这里是到6. { s=s*i; //相乘 } printf("The sum is %d .\n",s); return 0; } #include //作出要求:换成1到11间奇数相乘. int main() { int i,s=1; //在执行数值操作前一定要先有个初值. for(i=1;i<12;i++) //这里是到,但题目要求的是取单数.也可以是i=i+2 { if(i%2!=0) //i对取模,值为非为奇数;为则为偶数. s=s*i; else continue; //跳过这个for循环的这一次,执行下一次. } printf("The sum is %d .\n",s); return 0; } P019 2.2 按要求输出80分以上的学生信息. 暂时没法做. P019 2.3 判断2000-2500年中的闰年,并输出.

年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)。所以,如果每年定义为365天的话,1年就会多出0.2423天,4年就会多出0.9692天,非常接近1天,这样闰年就出现了,也就是每4年要有1年设置为366天,来抵消这多出的1天。规则为:·1)如果年份能被4整除,则该年计为闰年;可是,假如不做调整的话,当400年的时候,累计才多出96.92天,接近于多出97天,闰年的设置却多出来100天,所以要在400年内,再撤销3个闰年。怎么撤销呢?就有了下面这个规则:·2)如果年份能被100整除,则不计为闰年;问题又来了,400年里有4个100年吧,去掉后四个100年后,又少了一个,所以再加一个规则就是:·3)如果年份能被400整除,则计为闰年。简单说来每400年里设置了97个闰年,也就是400里的前3个100年不设置闰年,误差被调整到400年仅有0.08天。 #include int main() { int i; for(i=2000;i<=2200;i++) { if((i%4==0 && i%100!=0)||i%400==0) //闰年的经典判断条件. printf("%d is a leap year !\n",i); else printf("%d is not a leap year !\n",i); } } P020 2.4 求(1)-(1/2)+(1/3)……+(1/99)-(1/100)的值. #include int main() { float sign=1 , sum=0 , deno , term ; //关于有小数的计算应该用float. for (deno=1;deno<=100;deno++) { term=sign*(1/deno); //term临时值,sing符号,deno为分母. sum=sum+term; //第一次总全存储. sign=(-1)*sign; //换号. } printf("The sum of deno(指定值) is %f .\n",sum); return 0; //若是到100的话,结果为0.68172 } P021 2.5 得到一个大于3的数,并判断是否为素数.

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main()

{ printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 8.i=10,j=20 9.(1) 65 (2) 65,A (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432

C语言程序设计第二章答案

何钦铭,颜晖主编版第二章答案课本38页 第一题 #include"stdafx.h" #include"stdio.h" #include"iostream" int _tmain(int argc, _TCHAR* argv[]) { int num1,num2; int a1,a2,a3,a4,a5; printf("num1=\n"); scanf("%d",&num1); printf("num2=\n"); scanf("%d",&num2); a1=num1+num2; a2=num1-num2; a3=num1*num2; a4=num1/num2; a5=num1%num2;

printf("a1=%d\na2=%d\na3=%d\na4=%d\na5=%d\n",a1,a2,a 3,a4,a5); system("pause"); return 0; } 第二题 // 38.2.cpp : 定¨义?控?制?台 ?应畖用?程ì序?的?入?口ú点?。£ // #include"stdafx.h" #include"stdio.h" #include"iostream" int _tmain(int argc, _TCHAR* argv[]) { float a,b; printf("使?用?的?电?量?是?:\n"); scanf("%f",&a); if (a<=50){

b=a*0.53; } else{ b=50*0.53+(a-50)*(0.53+0.05); } printf("支§付?的?电?费?是?:阰%2f\n",b); system("pause"); return 0; } 第三题 // 38.3.cpp : 定¨义?控?制?台 ?应畖用?程ì序?的?入?口ú点?。£ // #include"stdafx.h" #include"stdio.h" #include"iostream"

C语言程序设计的试题及答案

C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自

动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。

C语言程序设计课后答案

第二章C++简单程序设计 2-10 执行完下列语句后,a、b、c三个变量的值为多少? a = 30; b = a++; c = ++a; a:32 ;b:30 ;c:32; 2-13 写一条for语句,计数条件为n从100到200,步长为2;然后用while和do…while语句完成同样的循环。 解: for循环: for (int n = 100; n <= 200; n += 2); while循环: int x = 100; while (n <= 200) n += 2; do…while循环: int n = 100; do { n += 2; } while(n <= 200); 2-17 修改下面这个程序中的错误,改正后它的运行结果是什么? #include <> void main() int i int j; i = 10; /* 给i赋值 j = 20; /* 给j赋值*/ cout << "i + j = << i + j; /* 输出结果*/ return 0; } 解: 改正: #include <> int main() { int i; int j; i = 10; 09:;<>?@ABCDEFGHIJKLMNOP_QRSTUV WXYZ[\]^'abcdefghijklmnopqrstuvwxyz<| >~s 2-21 运行下面的程序,观察其输出,与你的设想是否相同? #include <> int main() { unsigned int x; unsigned int y = 100; unsigned int z = 50; x= y - z; cout << "Difference is: " << x; x = z - y; cout << "\nNow difference is: " << x < int main() { int myAge = 39; n"; cout << "You are: " << yourAge << " years old\n"; myAge++; .\n"; cout << "I am: " << myAge << " years old.\n"; cout << "You are: " << yourAge << " years old\n"; cout << "Another year passes\n"; cout << "I am: " << myAge++ << " years old.\n"; cout << "You are: " << ++yourAge << " years old\n"; cout << "Let's print it again.\n"; cout << "I am: " << myAge << " years old.\n"; cout << "You are: " << yourAge << " years old\n"; return 0; } 解: 程序运行输出: I am 39 years old You are 39 years old One year passes I am 40 years old You are 40 years old Another year passes I am 40 years old You are 41 years old Let's print it again I am 41 years old You are 41 years old 2-28 编写一个完整的程序,实现功能: 向用户提问"现在正在下雨吗?",提示 用户输入Y或N。若输入为Y,显示"现 在正在下雨。";若输入为N,显示"现 在没有下雨。";否则继续提问"现在正 在下雨吗?" 源程序: #include <> #include <> void main() { char flag; while(1) { cout << "现在正在下雨吗?(Yes or No):"; cin >> flag; if ( toupper(flag) == 'Y') { cout << "现在正在下雨。"; break; } if ( toupper(flag) == 'N') { cout << "现在没有下雨。"; break; } } } 程序运行输出: 现在正在下雨吗?(Yes or No):x 现在正在下雨吗?(Yes or No):l 现在正在下雨吗?(Yes or No):q 现在正在下雨吗?(Yes or No):n 现在没有下雨。 或: 现在正在下雨吗?(Yes or No):y 现在正在下雨。 2-29 编写一个完整的程序,运行时向用 户提问"你考试考了多少分?(0~100)", 接收输入后判断其等级,显示出来。规 则如下: 解: #include <> void main() { int i,score; cout << "你考试考了多少分?(0~100):";

第2章 程序设计基础

第二章程序设计基础 程序设计方法与风格 1.源程序文档化 源程序文档化应考虑如下几点: (1)符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解。 (2)程序注释:正确的注释能够帮助读者理解程序。 (3)视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次 2.数据说明的方法 一般应注意: (1)说明次序规范化 (2) 变量说明有序化:语句说明多个变量时,变量按照字母顺序排序为好。 (3)使用注释来说明复杂数据的结构。 3.语句的结构 程序应该简单易懂,语句构造应该简单直接 不应该为提高效率而把语句复杂化。一般应注意如下 (1)在一行内只写一条语句: (2)程序编写应优先考虑清晰性; (3)除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。 (4)首先要保证程序正确,然后才要求提高速度: (5)避免使用临时变量而使程序的可读性下降; (6)避免不必要的转移; 7)尽可能使用库函数; (8)避免采用复杂的条件语句: (9)尽量减少使用“否定”条件的条件语句; (10)数据结构要有利于程序的简化; (11)要模块化,使模块功能尽可能单一化; (12)利用信息隐蔽,确保每一个模块的独立性 (13)从数据出发去构造程序: (14)不要修补不好的程序,要重新编写: 4.输入和输出 在设计和编程时都应该考虑如下原则: (1)对所有的输入数据都要检验数据的合法性; (2)检查输入项的各种重要组合的合理性; (3)输入格式要简单,以使得输入的步骤和操作尽可能简单; (4)输入数据时,应允许使用自由格式: (5)应允许缺省值; (6)输入一批数据时,最好使用输入结束标志: (7)在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息; (8)当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输 出加注释,并设计输出报表格式。

相关主题
文本预览
相关文档 最新文档