




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual 程序设计教程复习题一 判断题1、 在多窗体应用程序中,若不设置启动窗体,则默认将第一个窗体作为启动窗体。()2、 Visible属性用来设置对象的可见性。()3、事件驱动编程是非常适用于图形用户界面的编程形式。()4、文本框获得焦点的方法是GotFocus。()5、VB 程序中所有用到的控件都可以在标准工具箱中找到。()6、标签和文本框都用于显示文本,它们的区别是文本框中是只读文本,标签中的文本是可编辑文本。()7、VB中的ActiveX控件,使用时必须从“部件”中添加到”工具箱”后才能使用。()8、文本框控件中显示文本内容用Caption属性。()9、设置标签的BorderSt
2、yle属性可以改变标签的外观。()10、控件的Top属性和Left属性共同决定了控件在窗体上的位置。()11、中规定,字符串常量必须用一对西文单引号将字符序列括起来。()12、过程级变量可以在多个过程中使用。()13、表达式8 mod 9的值是0 。()14、VB表达式中的乘号不能省略,用符号代替。()15、InputBox函数的返回值是一个整数类型。()16、在多窗体应用程序中,Hide方法和Unload语句的功能是相同的,都是卸载窗体。()17、命令按钮只能显示文字不能加载图片。()18、文本框所显示的内容用Caption属性设置,在程序设计和运行期间,可以对它的内容进行编辑。()15、选
3、择结构的程序内部可以嵌套另一选择结构。()16、3x10 是VB中合法的关系表达式。()17、用Dim a(1 to 5 )定义一个一维数组,该数组中元素个数是6。()18、循环语句的嵌套可以是同一种类的循环语句的嵌套,也可以是不同种类的循环语句嵌套循环。()19、列表框中项目的序号是从1开始的。()20、Borderstyle属性用来设置标签的边框样式。()21、VB代码中的所有符号,都必须是英文半角字符表示,不能使用汉字或全角字符。()22、表示条件0y10或x0 And y10 Or x=5 and 12/3 = 4 的值为false。()89、逻辑型数据只有True和False两个值。
4、() 90、组合框是列表框和文本框的集成,具有列表框和文本框的功能。()91、给变量起名时,可以以数字字符开头。()92、列表框中删除所有项目使用的方法是Remove。()93、将文本框的Selstart属性设为0,表示当前选择的文本的起始位置在第一个字符之前。()94、控件的Top属性和Left属性共同决定了控件在窗体上的位置。()95、中规定,字符串常量必须用一对西文单引号将字符序列括起来。()96、过程级变量可以在多个过程中使用。()97、表达式8 mod 9的值是0 。()98、VB表达式中的乘号不能省略,用符号代替。()99、InputBox函数的返回值是一个整数类型。()100、选
5、择结构的程序内部可以嵌套另一选择结构。()二、选择题1、在VB中,所有的窗体和控件都必定具有的一个属性是:(A ) A、Name B、Font C、Caption D、FillColor 2、命令按钮上要显示的内容用下列哪个属性设置:( A ) A、Caption B、Text C 、Font D、Picture3、下面哪个语句用于关闭退出应用程序:( A ) A、End B、End Sub C、Endif D、End Else 4、确定控件在窗体的位置的属性是: (B)A、Width和Height B、Top和Left C、Width或Height D、Top或Left5、下面有关于控件的V
6、isible属性,说法正确的是: (A )A、默认情况下Visible属性值是TrueB、如果设置控件的Visible属性值为False,则该控件消失C、Visible的值可设为0或1D、设Visible属性同设置Enabled属性的功能是相同的,都使控件处于失效状态6、要使标签中显示的文本靠右显示, 应设置Alignment 的值为:(B ) A、 0 B、 1 C、2 D、37、以下说法错误的是:(C ) A、事件是由VB预先设置好的、能够被对象识别的动作B、响应某个事件后所执行的操作通过一段程序代码来实现, 这段程序代码称为事件过程C、一个对象对应一个事件,一个事件对应一个事件过程D、事
7、件过程的一般格式为: Private Sub 对象名称_事件名称() 事件响应程序代码 End Sub8、在VB中,以下方式不能进入运行模式的是( D ) A、F5 B、运行菜单下的启动命令C、工具栏的启动按钮 D、调试菜单下的启动命令9、设置标签上文字的颜色的属性是( C ) A、Backstyle B、Backcolor C、Forecolor D、Borderstyle10、在Visual Basic中,要将一个窗体装载到内存进行变量初始化等预处理,应使用的方法是 (C ) A、Show B、UnLoad C、Load D、Hide11、下列变量名中,合法的变量名是(A )AC24 B、
8、A B C、A:B D、1+212、比较图片框(PictureBox)和图像框(Image)的使用,正确的描述是(D )A 两类控件都可以设置AutoSize属性,以保证装入的图形可以自动改变大小B 两类控件都可以设置Stretch属性,使得图形根据物件的实际大小进行拉伸调整,保证显示图形的所有部分C 当图片框(PictureBox)的AutoSize自属性为Jlase时,只在装入图元文件(*.wmf)时,图形才能自动调整大小以适应图片框的尺寸D 当图像框(Image)的Stretch属性为True时,图像框会自动改变大小以适应图形的大小,使图形充满图像框13、在窗体上添加一个命令按钮和一个文
9、本框,并在命令按钮中编写如下代码:Private Sub Command1_Click( )A=C=Len(Str$(A)+Space(10)=CEnd Sub程序运行后,单击命令按钮,在文本框中显示( C)A3 B8 C14 D1014、在窗体中添加两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(其Name属性为Command1),然后编写如下程序: Private Sub Command1_Click()X = 0Do While X 10X = (X + 1) * (X + 2)n = n + 1Loop = Str(n) = Str(X)End Sub14、程序
10、运行后,单击命令按钮,在两个文本框Text1和Text2中分别显示的值是(B )A1和0 B2和12 C2和72 D3和1215、以下哪类控件能用来显示图形(B )ALabel BPictureBox CTextBox DOptionButton16、在窗体中添加一个名称为Command1命令按钮和一个名称为text1的文本框,然后编写如下程序:Private Sub Command1_Click()Dim x, y, z As Integerx = 5: y = 7: z = 0 = Call p1(x, y, z) = Str(z)End SubSub p1(ByVal a As Inte
11、ger, ByVal b As Integer, c As Integer)c = a + bEnd Sub程序运行后,如果单击命令按钮,文本框中显示的是( B)A0 B12 CStr(z) D没有显示17、在窗体中添加名称为Command1和名称为Command2的命令按钮测验文本框Text1,然后编写如下代码:Private Sub Command1_Click() = ABEnd SubPrivate Sub Command2_Click() = CDEnd Sub首先单击Command2按钮,然后再单击Command1按钮,在文本框中显示(A )AAB BCD CABCD DCDAB
12、18、可获得当前系统日期的函数是(A) 、Date( )、Time( )、IsDate( )、Year( ) 19、X是小于100的非负数,用VB表达式表达正确的是(C ) A、0X100 B、0=X100 C、0=X and X100 D、0X100 20、以下能够触发文本框Change事件的操作是 DA、文本框失去焦点 B、文本框获得焦点 C、设置文本框的焦点 D、改变文本框的内容21、要使标签中显示的文本居中显示, 应设置Alignment 的值为:(C ) A、 0 B、 1 C、2 D、322、下面四项中不属于面向对象系统的三要素的是:(A) A、变量 B、事件 C、属性 D、方法2
13、3、对象的性质,来描述和反映对象特征的参数是对象的( A) A、属性 B、方法 C、事件 D、过程24、文本框没有(D )属性 A、Enabled B、Backcolor C、Visible D、Caption25、下述选项中,属于VB的程序设计方法是 (B) A、面向对象、顺序驱动 B、面向对象、事件驱动 C、面向过程、事件驱动 D、面向过程、顺序驱动26、用于获得字符串S从第2个字符开始的3个字符的函数是(A )AMid$(S,2,3) B、Middle(S,2,3) C、Right$(S,2,3) D、Left$(S,2,3)27、确定一个窗体或控件大小属性是(B )AWidth或Hei
14、ght BWidth和Height CTop或Left DTop和Left28、要使窗体的标题为“演示实例”,应修改窗体的(A )属性。ACaption BTip CItem DText29、下面语句中错误的是(B )A Redim Preserve Matrix(10,Ubound(Matrix,2)+1)B Redim Preserve Matrix(Ubound(Matrix,1)+1,10)C Redim Preserve DynArray(Ubound(DynArray)+1)D Redim DynArray(Ubound(DynArray)+1)30、在MsgBox函数中哪一个参数
15、是必须的(A )Aprompt Bbuttons Ctitle Dcontext31、在窗体中添加两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(Name属性为Command1),然后编写如下两个事件过程:Private Sub Command1_Click()a = UCase$ + Left$,2)Print aEnd SubPrivate Sub Form_Load() = aB = 123456End Sub程序运行后,单击命令按钮,输出结果为(B )Aab12 BAB12 CAB56 Dab5632、下列关于属性设置的叙述正确的是( D)A 所有的对象都有同样
16、的属性B 控件的属性只能在设计时修改,运行时无法改变C 控件的属性都有同样的默认值D 引用对象属性的格式为:对象名称 . 属性33、在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序:Function fun(x As Integer)Static zy = y + 1: z = z + 1fun = x + y + zEnd FunctionPrivate Sub Command1_Click()Dim x As Integerx = 1For i = 1 To 2Print fun(x)Next iEnd Sub程序运行后,如果单击命令按钮,窗体中显示的内容是(D )A3
17、3 B3 4 C3 D 3 34、下列叙述中不正确的是( B)A VB中的函数功能类似于Sub过程B Sub过程不可以递归C 子过程不返回与其特定子过程名相关联的值D 过程是没有返回值的函数,又常被称为Sub过程,在事件过程或其他子过程中可以按名称调用过程35、退出For循环可使用的语句为(A) 、Exit For 、Exit Do、End For、End Do 36、当一个命令按钮的Default属性设置为True时,按哪个键和单击该命令按钮作用相同。(D ) 37、当我们输入代码时,VB可以自动检测下面那个错误:(A ) A、语法错误 B、编译错误 C、运行错误 D、逻辑错误38、下列哪个
18、属性决定命令按钮是否能够接受用户的输入,即命令按钮是否可用:(C ) A、Caption B、Style C、Enabled D、Name39、以下叙述中正确的是(A ) A、窗体的Name属性指定窗体的名称,用来标识一个窗体 B、窗体的Name属性的值是显示在窗体标题栏中的文本 C、可以在运行期间改变对象的Name属性的值 D、对象的Name属性值可以为空 40、以下选项中,不属于文本框的属性是( D )。AEnabled B Caption D Min41、假定窗体的名称为(Name属性)为form1,则把窗体的标题设置为“VBTEST”的语句正确的是(B )Aform1=“VBTEST”
19、 BCaption=“VBTEST”C=“VBTEST” D=“VBTEST”42、清除列表框中的所有项目,应调用(C)方法。A. Cls B. RemoveAt C. Clear D. Remove43、VB项目文件即工程文件的扩展名是:(A ) A、VBP B、FRM C、VBW D、FRX44、若窗体上有一个文本框txt_Show,如果想要在程序运行后,在文本框中便会出现“Hello!”字样,应在 ( A)事件过程中写如下代码:=”hello! A 、Form_Load B、Command1_Click C 、Form_Click D、Form_Dbclick45、下面哪个窗口用来浏览和
20、设置窗体和控件的属性:(D ) A、窗体窗口 B、工程资源管理器 C、工具箱 D、属性窗口46、下面说法正确的是:(B ) A、窗体文件的扩展名.vbp B、一个窗体对应一个窗体文件 C、VB中一个工程只包含一个窗体 D、VB中一个工程最多可以包含256个窗体47、以下说法错误的是: ( D ) A、方法是对象的一部分B、方法是一种特殊的过程和函数C、方法的调用方式是 对象名称方法名称D、在调用方法时,对象名时不可缺少的48、在代码编辑器中,若一条语句过长,可以用什么续行符来换行书写语句:(B ) A、一个下划线“_” B、一个空格加一个下划线“_”C、一个连字符“-” D、一个空格加一个连字
21、符“-”49、下列选项中,更改哪个属性,可以对窗体的标题内容进行修改:(D ) A、Text B、Name C、Font D、Caption50、在VB集成环境中创建应用程序时,除了工具箱、窗体窗口、属性窗口外,必不可少的窗口是:(C ) A、窗体布局窗口 B、立即窗口 C、代码窗口 D、监视窗口51、VB预先设置好的,能够被对象识别的动作是 (C ) A、属性 B、方法 C、事件 D、过程52、为了使标签框的大小根据里面显示的内容的长度进行扩展或缩小,应对(C )属性进行设置 A、Alignment B、Backstyle C、Autosize D、Backcolor53、当一个命令按钮的C
22、ancel属性设置为True时,按哪个键和单击该命令按钮作用相同。(C ) A、Ctrl B、Tab C、Esc D、回车 54、要改变新建对象的名称,应使用属性: ( C ) A、Font B、ForeColor C、Name D、Height55、VB的工程资源管理器可管理多种类型的文件,下面叙述不正确的是(C )A 窗体文件的扩展名为.frm,每个窗体对应一个窗体文件B 标准模块是一个纯代码性质的文件,它不属于任何一个窗体C 用户通过类模块来定义自已的类,每个类都用一个文件来保存,其扩展名为.basD 资源文件是一种纯文本文件,可以用简单的文字编辑器来编辑56、在窗体中添加一个命令按钮,
23、名称为Command1,两个文本框名称分别为Text1、Text2,然后编写如下程序:Private Sub Command1_Click( )a=b=C=Lcase(a)D=Ucase(b)PrintC;DEnd Sub程序运行后,在文本框Text1、Text2中分别输入AbC和Efg,结果是(A)AabcEFG Babcefg CABCefg DABCEFG57、以下关于窗体描述正确的是(B )A 只有用于启动的窗体可以有菜单B 窗体事件和其中所有控件事件的代码都放在窗体文件中C 窗体的名字和存盘的窗体文件名必须相同D 开始运行时窗体的位置只能是设计阶段时显示的位置58、有关列表框的属性和
24、方法的正确描述是( D)A 列表框的内容由属性Item Data来确定B 当多选属性(MultiSelect)为True时,可通过Text属性获得所有内容C 选中的内容应通过List属性来访问D 选中的内容应通过Text属性来访问,并且每次只能获得一条内容59、如果变量a、b、c均为整型,下列程序段的输出结果为(C )a=2b=3c=a*bPrint a & “*” & b & “=”& cAc=6 Ba*b=c C2*3=6 Da*b=660、在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序:Private Sub Command1_Click()Print Tab(1);
25、 第一,Print Tab(6); 第二;End Sub程序运行后,如果单击命令按钮,在窗体上显示的内容是(表示空格)(C )A第一第二 B第一第二C第一第二D第一第二61、如果希望一个窗体在显示的时候没有边框,应该设置的属性是(C )A 将窗体的标题(Caption)设成空字符B 将窗体的Enabled属性置成FalseC 将窗体的BorderStyle属性置成NoneD 将窗体的ContalBox置成False62、设有如下程序:Option Base 1Private Sub Form_Click()Dim a(10), P(3) As Integerk = 5For i = 1 To
26、10a(i) = iNext iFor i = 1 To 3P(i) = a(i * i)Next iFor i = 1 To 3k = k + P(i) * 2Next iPrint kEnd Sub程序运行后,单击窗体,则在窗体上显示的是(A )A33 B35 C37 D3863、以下不属于键盘事件的是(C) 、KeyDown、KeyUp、Unload、KeyPress 64、当用户在窗体上单击鼠标时,不会触发的事件是(D) 、Click、MouseDown、MouseUp、DblClick 65、下列逻辑表达式中,能正确表示条件“x,y都是奇数”的是(C )Ax Mod 2 =1 Or
27、y Mod 2 =1 Bx Mod 2 =0 Or y Mod 2=0Cx Mod 2 =1 And y Mod 2 =1 Dx Mod 2 =0 And y Mod 2=066、在窗体中添加两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(其Name属性为Command1),然后编写如下事件过程:Private Sub Command1_Click()x = 0Do While x Z And X+ZY And Y+ZX B、X+YZ Or X+ZY Or Y+ZXC、Not (X+YZ Or X+ZY Or Y+Z=Z Or X+Z=X89、如果要在文本框中设置密码,
28、 应设置的属性是:( D) A、Caption B、Text C、Name D、Password 90、下列说法不正确的是:(B) A、变量名的长度不能超过255个字符B、变量名可以包含小数点或者内嵌的类型声明字符C、变量名不能使用关键字D、变量马的第一个字符必须是字母或汉字。91、下面哪个属性决定文本框控件是否能够接受多行显示文本:(C ) A、Caption B、Text C 、Multiline D、Alignment92、确定控件尺寸的属性是: ( A ) A、Width和Height B、Top和Left C、Width或Height D、Top或Left93、针对下列程序代码,说法
29、正确的是: (A ) 2000=800A 、Text1对象左边界距离窗体左边界800twip,上边界距离窗体上边界2000twip B、 Text1对象左边界距离屏幕左边界800twip,上边界距离屏幕上边界2000twipC、Text1对象的高度是800twip,宽度是2000twipD 、Text1对象的高度是800点,宽度是2000点94、要使标签中显示的文本靠左显示, 应设置Alignment 的值为:(A ) A、 0 B、 1 C、2 D、37、为了使标签能个显示所指定的文本, 应设置哪个属性:(A) 、Caption 、Text C、Seltext D、Name95、打开代码窗口
30、的快捷键是(B ) A、F4 B、F7 C、F2 D、ShiftF796、设置标签边框样式的属性是 ( B ) A、Backstyle B、Borderstyle C、Autosize D、Alignment97、如果窗体上有命令按钮“确定”,在代码编辑窗口有与之相对应的OK_Click()事件过程,则命令按钮控件的名称属性和Caption属性分别为: (A ) A、“OK”和“确定 ” B、“确定”和“OK” C、“Command1”和“确定” D、“Command1”和“OK” 98、表达式Y+1 X是一个:(B ) A、字符串表达式 B、关系表达式 C、算术表达式 D、不合法的表达式99
31、、在设计应用程序时,哪个窗口可以查看到工程中包含的所有文件:( D ) A、代码窗口 B、窗体设计窗口 C、属性窗口 D、工程资源管理器窗口100、文本框中所显示的内容用下列哪个属性设置:( B ) A、Caption B、Text C 、Font D、Picture11、4、下面对哪一种变量的类型说明符的使用是正确的(D )A、Dim a:a=2000 B、Dim a:a%=50000C、Dim a:a&=True D、Dim a:a$=”OK”101、某个菜单的名称是Menucase,在程序中要使菜单不可见,使用的语句是:(B ) A、False B、=FalseC、=True D、Tru
32、e103、在VB的基本数据类型中,通用类型(Variant)可以表示任何类型的变量,如果有定义Dim a,则以下变量赋值中正确的是(D )Aa=”OK” BA$=OK Ca=04/01/2001 Da$=”OK” 104、在VB中,按下鼠标键触发事件,正确的程序段是(A )APrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)End SubBPrivate Sub Form_MouseUP(Button As Integer, Shift As Integer, X A
33、s Single, Y As Single)End SubCPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)End SubDPrivate Sub Form_Load()End Sub105、要使Esc键可以代替命令按钮的单击事件,可以通过将命令按钮的哪个属性设为True实现:(C) A、Default 、Enabled 、Cancel 、 Caption106、当一个工程含有多个窗体时,其中的启动窗体是( D ) A、启动 Visual 时建立的窗体 B、第一个添
34、加的窗体C、最后一个添加的窗体 D、在“工程/工程属性”对话框中指定的启动窗体107、能显示窗体的方法是(B )。 A、Visible B、Show C、New D、Open 108、下列关于do while loop 和doloop until循环执行循环体次数的描述正确的是( D)A do while loop循环和doloop until循环至少都执行一次B do while loop循环和doloop until循环可能都不执行C do while loop循环至少执行一次,doloop until循环可能不执行D do while loop循环可能不执行,doloop until循环
35、至少执行一次109、设有如下程序:Private Sub Form_Click()a = 1For i = 1 To 3Select Case iCase 1, 3a = a + 1Case 2, 4a = a + 2End SelectNext iPrint aEnd Sub程序运行后,单击窗体,则在窗体上显示的内容是(A )A6 B5 C4 D3110、在过程定义中,Private表示(D )A 此过程要以被其他过程调用B 此过程不可以被任何其他过程调用C 此过程只可以被本工程中的其他过程调用D 此过程只可以被本窗体模块中的其他过程调用111、用于从字符串左边截取字符的函数是(C) 、Lt
36、rim( )、Trim( )、Left( )、Instr( ) 112、下列符号中哪个是VB程序中合法的变量名(A ) A、ab7 B、7ab C、If D、a*bc 113、要改变控件的宽度,应改变控件的哪个属性: (A ) A、Width B、Height C、Top D、Left114、用于显示窗体的方法是:(B) A、Hide B、Show C、Unload C、Load115、.当把框架的哪个属性设为False时,其标题变灰,框架内所有的控件都不可用:(C ) 116、产生10,37之间的随机整数的Visual Basic表达式是 (B ) A、Int(Rnd()*27)+10 B、
37、Int(Rnd()*28)+10C、Int(Rnd()*27)+11 D、Int(Rnd()*28)+11117、下列可以将变量A和B互换的语句是:( A) A、C=B B=A A、A=B B=AC、A=(A+B)/2 B=(A-B)/2 D、A=A+B B=A-B118、在VB中,认为下面哪两个变量名是相同的:(B ) A、English 和Engl_ish B、English和ENGLISH C、English 和 Engl D、English 和England119、以下关于运算符的说法,错误的是:(A ) A、表达式中的乘号*不能省略,但可以用符号代替B、通常不允许两个运算符相连,两个运算符应当用括号隔开C、括号可以改变运算符的运算顺序D、在表达式中只能用圆括号,不能使用方括号。120、设a=“Visual Basic”,下面使b=“Visual”的语句是 D、b=Left(a,8,12)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力本质安全课件
- 2024模具设计师考试反思与改进策略及试题答案
- 提升体育经纪人考试能力的关键因素 试题及答案
- 2024模具设计师考试资料及试题答案
- 2024年模具设计师资格认证考试全书试题及答案
- 模具设计的质量管理体系试题及答案
- 2024年体育经纪人考试的思维导图及试题及答案
- 2024年体育经纪人考试亮点试题及答案
- 模具设计师资格考试数据分析试题及答案
- 2024年裁判员考试方法指导试题及答案
- 第47届世界技能大赛江苏省选拔赛平面设计技术项目技术工作文件
- 2024年网络与信息安全考试题库
- 安桥功放机TX-NR3010说明书
- 《畜禽粪肥还田利用技术规范(征求意见稿)》编制说明
- GB/T 44309-2024陶瓷岩板
- 小学五年级下学期科学《我们面临的环境问题》教学课件
- 血透病人低血压护理查房
- 2024年工程承包合同书范文
- 有限空间作业风险辨识管控台帐
- JGJT397-2016 公墓和骨灰寄存建筑设计规范
- 拖拉机湿式离合器
评论
0/150
提交评论