vbvb int 函数 教案int(3,5)的输出值是4嘛

扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
vb 中 int 函数用法 例如 int(5.6) 就是5 int(-5.6) 就是 6而为什么 print int(*100+0.5)/100
的值为 12345.68
不是取比自变量小的最大整数吗? 这是为什么? 请高手解答
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
优先级问题...print int((*100+0.5)/100)这样就ok了
这个算法是用来四舍五入到小数点后你位的。其中100=10^2, 表示保留2位,如果3位则1000*100 =
小数点向右移2位+0.5=
用来四舍五入int( ) =1234568 = 12345.68
小数点向左移2位
为您推荐:
扫描下载二维码> 问题详情
下列程序的输出结果是______。main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++
悬赏:0&答案豆
提问人:匿名网友
发布时间:
下列程序的输出结果是______。main(){ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;i<=i;j++)s+=a[i][j]; printf("%d\n",s);}A.18B.19C.20D.21请帮忙给出正确答案和分析,谢谢!
为您推荐的考试题库
您可能感兴趣的试题
1以下对C语言函数的有关描述中,正确的是______。A.调用函数时,只能将实参的值传递给形参,形参值不能传递给实参B.C函数既可以嵌套调用又可以递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个源程序文件中2下列程序运行后,输出结果是______。func&(int a,int b){&static int m=0,i=2;&&i+=m+1;&&m=i+a+b;&&return(m);}&&main(){&int k=4,m=1,p;&&p=func(k,m);printf("%d,",p);&&p=func(k,m);printf("%d\n",p);}A.8,15B.8,16C.8,17D.8,83若有以下说明和定义:fun(int*c){&}main(){&&int(*a)()=fun,*b(),w[10],c;&&……}在做必要的赋值之后,对fun函数的正确调用语句是______。A.a=a(w);B.(*a)(&c);C.b=*b(w);D.fun(b);4能正确表示逻辑关系""a≥10或a≤0""的C语言表达式是______。A.a>=100 or a<=0B.a>=0|a<=10C.a>10 && a<=0D.a>=10||a<=10
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
找答案会员
享三项特权
找答案会员
享三项特权
找答案会员
享三项特权
选择支付方式:
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
常用邮箱:
用于找回密码
确认密码:当前位置: >>
VB 第三部分习题与解答()
第三部分 习题与解答第1章 程序设计语言与程序设计1.1 填空题 1.VB 是以( 事件驱动 )作为运行机制的新一代可视化程序设计语言。 2.程序设计语言是( 人 )与( 计算机 )交流的工具。 3. 若从机器执行的角度来对程序设计语言进行分类,则可以分为( 低级语言 )和 ( 高级语言 )两种。 4.计算机系统中,对高级语言的翻译工具称为( 编译 )程序或( 解释 )程序。 5.源程序中的错误一般分为( 编译 )错误、 运行 )错误和( 逻辑 )错误等三 ( 种。 6.VB 把一个应用程序称为一个( 工程 ) ,它包含各种文件。 1.2 选择题 1.把 a 和 b 的乘积写成 ab 的错误属于( c )错误。a) 编译 a) Held a) .vbp a) 对象 a) 双击窗体 b) 运行 b) F1 b) .bas b) 事件 c) 逻辑 c) ESC c) .exe c) 属性 d) 编译和运行 d) F10 d) .frm d) 方法2.用户在什么时候都可以按( b )键来查看与当前进行的工作相关的帮助。 3. 窗体文件的扩展名为( d ) 。 4.指示一个窗体位置的值是窗体的( c ) 。 5.下面选项中不能运行 VB 程序的操作是( a ) 。b) 单击“启动”按钮图标 d) 按 F5 键 c) 从菜单栏运行菜单中选“全编译执行”菜单命令1.3 问答题 1.低级语言和高级语言的各自特点是什么? 答:参见教材 1.1。 2.什么是数据描述和数据处理? 答:参见教材 1.2。 3.源程序的翻译方式有哪两种,简述它们的工作过程。 答:参见教材 1.1。 4.一个好程序的基本要求是什么? 答:参见教材 1.2。 5.Visual BASIC 集成开发环境的主窗口由哪些部分构成?各自的主要功能是什么? 答:参见教材 1.3。 6.简述在 VB 的环境下,对象、属性、方法、事件和事件驱动程序的概念,并用例子 1 进行说明。 答:在 VB 的环境下,对象是系统中的基本运行实体,它封装了数据和操作。工具箱中 的命令按钮、标签、文本框等是对象摸板。控件是由 VB 工具箱创建的对象。 属性是对象的性质或状态特征。例如, 窗体的 Caption(标题) 、BackColor(背景颜 色) 、Height(高度)和 Width(宽度)等都是窗体的属性。 事件是对象之间传递的消息。VB 控件的事件由系统预先定义。例如,Click(单击) 事件、DblClick(双击)事件。 方法是对象在某些事件驱动下执行的特定操作。它可以执行系统预定义的操作,例如 窗体的 Print(打印)方法、Show(显示窗体)方法; 当事件由用户或 VB 系统触发时, 对象会感受到该事件并对该事件作出响应, 响应某个 事件后所执行的程序就是事件驱动程序。事件驱动程序有时也称为事件过程。 例如,以下 是命令按钮 Command1 在接受单击事件时驱动的程序: Private Sub Command1_Click()Print &Hello world !&End Sub 7.总结使用 Visual BASIC 开发一个应用程序的过程。 答:参见教材 1.5。 8.下面程序是什么事件驱动程序?如何执行该事件驱动程序?执行的结果如何?Private Sub Command1_Click() Print &欢迎你使用VB!& End Sub答:略。 1.4 编程题 编写一个程序。要求设置窗体的标题是“这是我的第一个练习” ,且在程序执行后,单 击窗体显示如下一行文字: 我可以用 Visual BASIC 编写程序了! 解答: (1)用户界面设计:设计用户界面由一个窗体构成。 (2)对用户界面上的控件对象的属性进行设置:把窗体的Caption属性值设置为“这是 我的第一个练习” 。 (3)编写控件对象的事件驱动程序:Private Sub Form_Click() Print &我可以用Visual BASIC编写程序了!& End Sub2 第2章基本数据类型与表达式2.1 填空题 1.在程序设计语言系统中具有固定语法含义的符号串称为( 关键字 ) ,它们通常用 来表示系统提供的标准过程、函数、运算符、常量等。 2. 标识符 )用于标记用户自定义的常量、类型、变量、控件、过程、函数等名字。 ( 3.整型数据占( 2 )字节的内存空间。长整型数据占( 4 )个字节的内存空间。 单精度浮点型数据占( 4 )个字节的内存空间。双精度浮点型数据占( 8 )个字节 的内存空间。日期型数据占( 8 )个字节的内存空间。 4.100% 表示 100 为( 整 )型数据;100!表示 100 为( 单精度浮点 )型数据; 100@表示 100 为( 货币 )型数据。 5. 符号常量在某一过程中说明,则该符号常量只能在( 该过程内 )内有效。 6.若一个整型变量说明了之后没有给它赋值,则它的值为( 0 ) 。 7.在 VB 中可以把类型说明符放在变量名的( 末尾 )来说明变量的类型。 8. 为使 VB 的编译程序自动检查变量声明, 遇到未经说明的标识符发出错误警告信息, 在程序中要加上( Option Explicit )语句。 9.对含有多种运算的表达式,各种运算之间的顺序为( 函数运算 )→( 算术运 算 )→ ( 关系运算 )→( 逻辑运算 ) 。 10.
的小数部分四舍五入转换为整数, 把 可使用函数 Cint() ) ( 。 11.将 x 四舍五入到百位(例如,若 x=23874.52 应舍入成 23900) ,可使用表达式 ( Int(x / 100 + 0.5) * 100 ) 。 12. 将 x 从十位截断 (例如, x=23874.52 应截成 23800) 可使用表达式 ( Fix(x / 100) * 100 或者 Int(x/100)*100 或者 Cint(x\100)*100 ) 。 13.设 X 为数值变量,求 X 的常用对数可使用的表达式是( Log(X)/Log(10) ) 。 14 . 要 从 字 符 串 “ Visual BASIC 6.0 ” 中 截 取 子 字 符 串 “ BASIC ” 可 使 用 函 数 ( Mid(“Visual BASIC 6.0”,8,5) ) 15.设 S 是字符串变量,并且串长度为 7,写出生成由 S 的偶数序号字符组成的字符 串的表达式(例如,把字符串”ABCDEFG”变成“BDF”) 。 答案:Mid(s, 2, 1) + Mid(s, 4, 1) + Mid(s, 6, 1) 16.设 S 是字符串变量,并且串长度为 7,写出用第 2iC1 个字符代替第 2i 个字符所 得到字符串的表达式(例如,把字符串”ABCDEFG”变成“AACCEEG”) 。 答案:String(2, Mid(s, 1, 1)) + String(2, Mid(s, 3, 1)) + String(2, Mid(s, 5,1)) + Mid(s,7, 1) 或:String(2, Mid(s, 1, 1)) + String(2, Mid(s, 3, 1)) + String(2, Mid(s, 5, 1)) + Right(s, 1) 17.产生从整数 a 到整数 b 之间的随机整数可使用表达式 Int((b-a+1)*Rnd+a) ) ( 。 18.产生从 100.01 到 200.99 之间的随机数(包括两端点)可使用的表达式是 ( Int((+1)*Rnd+1 ) 。 3 2.2 选择题 1.下面选项中( c )是算术运算符。a) % a) Go_To a) r% a) 2^a/5 a) 2^a+5 a) 1 a) / a) True b) 2 b) \ b) C1 b) & b) Tab1 b) r! b) C2^1/5a+5c)Mod c) 姓名 c) r#d) And d) Int d) r$ d) (-2) ^(1/5) d) 2^a2^52. 下面不合法的标识符是( d ) 。 3.下列选项中,把 r 定义为双精度型变量的是( c ) 。 4.下列表达式中( d )是错误的。c) 2^(1/5)5.在下列选项中,正确表达 2b) 2^a+2^5 c) 4的表达式是( c ) 。c) 2^(a+5) d) 106. 10 Mod 4 的值为( b )。 7. 下列运算符中( a )优先级最高。c) Mod c) 1 b) a&=1 ,a&=5 d) a&=1 And a&=5 d) + d) T8. 在 VB 中不能表示逻辑真的是( d )。 9. 能正确表达 a≤1 或 a≥5 的逻辑表达式是( c )。a) a&=1 或 a&=5 c) a&=1 or a&=5 a) 1& X &5 c) 1&X And X &5 a) Cos 35 a) 010. 设 X 为整型变量,不能正确表达 1& X & 5 的逻辑表达式是( a )。b) X=2 or X=3 or X=4 d) Not (X&=1) And Not (X&=5) b) Cos(35) b) 4 c) 8 c) Cos(35?) d) Cos(35*3.)11.求 COS35°可以使用的函数是( d ) 。 12.Len(“中国人民”)的值是( b ) 。d) 不能确定13.设 X 是一个正实数,对 X 的第二位小数四舍五入可使用的函数是( c ) 。a) Int(X+0.05)/10 c) Int(10*(X+0.05))/10 a) [1,99) b) [1, 99] b) Int((X+0.05)/10) d) Int(10*(X+0.05)/10) c) [1,100) d) [1,100]14. 函数 Int(Rad*99+1)产生随机数的范围是( b )。 2.3 下列符号哪些是正确的变量名 1) n 2) 3x 3) Abs 4) 85 5) print_56 7) π 8) a%b 9) ab# 10)My Name 11)“年龄” 答案: 除了以下符号外,其它符号都是正确的变量名。 错误的变量名 原因 3x 变量名必须以字母为开始 46) 名称 12)学校$ Abs 不能和关键字同名 85 变量名必须以字母开始 π 不是英文字母 a%b 变量名中不能用字符% My Name 变量名内不能有空格字符 2.4 把下列数学表达式写成 VB 表达式 1)1 1 ? 1 ? 1 1 x ? y2) x{x[x(ax+b)+c]+d}+e3) ln(1+|a ? b 10 | ) a ? b4)1 ??2cos 48?5) ctg(1 ? x2 ) 1 ? x26) log10(a +2ab+b )22答案: 1) 1/(1+(1/(1+1/(x+y)))) 2) x*(x*(x*(a*x+b)+c)+d)+e 3) Log(1+Abs((a+b)/(a-b)) ^10) 4) Sqr(1+3.14159/2*Cos(48*3.)) 5) 1/Tan((1-x*x)/(1+x*x))或者 Cos((1-x*x)/(1+x*x))/Sin((1-x*x)/(1+x*x)) 6) Log(a*a+2*a*b+b*b)/Log(10) 2.5 写出下列函数的值 1) Int(-) 2) Fix() 3) val(“12.34”) 4) Cint() 5) Abs(-100) 6) Sgn(-100) 7) Sqr(sqr(16)) 8) Left(“Visual BASIC 6.0”,6) 9) Mid(“Visual BASIC 6.0”,8,5) 10) InStr(1, “Visual BASIC 6.0”, “BASIC”) 11) String(3, “$”) 12) Int((100*Rnd)+1) 答案: 1) -34 3) 12.34 4) 0 6) -1 7) 2 8) Visual 9) BASIC 10) 0 11) $$$ 12) 产生从整数 1 到整数 100 之间的随机整数5 2.6 写出下列表达式的值 1) ( 3 + 6)` \ 2 3) 25 \ 3 Mod 3.2 * Int( 2.5 ) 5) “abc”& “123” &“abc” 7) “china”&=“canada” 9) 3 & 4 And 5 = 5 答案: 1) 4 2) 0 3) 2 6) True 7) True 8) True2) 18 \ 4 * 4.0^2 / 1.6 4)“xyz” + “438” 6) 349.25 + “0.75” = 350 8) “abc”&=“abc”&“123” 10) True Or Not 7C3 &= 4 4) xyz438 9) False 5) abc123abc 10) True2.7 设 a1,a2,a3 是布尔变量,其值依次为:True,True,False,写出下列布尔 表达式的值 1) Not a1 And Not a2 2) Not a1 Eqv Not a2 3) a1 Or a2 And a3 4) a1 Xor a2 Or a3 5)( Not a1 Or a2 ) And ( a2 Or a3 ) 6) Not a1 And a2 Imp a3 答案: 1) False 2) True 3) True 4) False 5) True 6) True 2.8 用关系表达式或逻辑表达式表示下列条件 1) i 整除 j 2) n 是小于正整数 k 的偶数 3) 1&=x&10 4) x,y 其中有一个小于 z 5) y ? [C100,C10],并且 y ? [10,100] 6) 坐标点(x, y)落在以(10, 20)为圆心,以 35 为半径的圆内 7) 三条边 a,b 和 c 构成三角形 8) 年份 Year 能被 4 整除,但不能被 100 整除或者能被 400 整除 答案: 1) i Mod j=0 2) n&k And n Mod 2=0 3) 1&=x And x&10 4) x&z Or y&z 5) Not(y&=-100 And y&=-10 ) And Not(y&=10 And y&=100) 6) Sqr((x-10) ^2+(y-15) ^2)&35 7) a+b&c And b+c&a And c+a&b 8) Year Mod 4=0 And year Mod 400&&0 Or Year Mod 400=0 2.9 问答题 1. 标识符的选取必须遵循什么规则? 答:参见教材 2.1.2。 2. 各种基本数据类型的取值范围如何? 答:参见教材 2.2 表 2-1。 3. 空串与空格有什么不同?6 答:参见教材 2.1.1。 4. 什么是符号常量?使用符号常量有什么好处? 答:参见教材 2.3.1。 5. 自动变量与静态变量如何定义?它们之间有什么不同? 答:参见教材 2.3.2。 6. 两个字符串如何进行比较(关系)运算,如何确定运算结果?试举例说明。 答:参见教材 2.4.3。第3章程序流程控制3.1 填空题 1.设变量 r 表示圆的半径,则计算圆的面积并赋给变量 s 使用的赋值语句为 ( s=3.14159*r*r ) 。 2. 给命令按钮 Command2 的 Caption 属性赋予字符串“退出”使用的赋值语句为 ( Command2.Caption="退出" ) 。 3.为了求 n 的阶乘,要求用户输入 n 的值。程序使用 InputBox 函数输入,要求对话 框提示信息为“请输入一个求阶乘的数:,标题为“求数的阶乘” ” ,并且正确地把输入的信 息转换为数值存放到变量 n 中,则使用的赋值语句为( n=val(InputBox("请输入一个 求阶乘的数:","求数的阶乘") ) 。 4.如果使用 MsgBox 对话框显示提示信息“退出本系统?” ,并显示“是(Yes) ”和 “否(No) ”两个按钮,显示图标“?”号,指定第一个按钮为默认值以及标题为“提示信 息” ,则调用 MsgBox 函数的形式为( MsgBox("退出本系统? ",4+32+0,"提示信 息") ) 。 5.如果使用 MsgBox 对话框显示提示信息“文件未找到!,并显示“确定”按钮、图 ” 标 ” “!号和标题 “文件查找”则使用的 MsgBox 语句为 MsgBox"文件未找到", , ( 0+48+0, " 文件查找" ) 。 6.要在当前窗体 Form 和立即窗口输出字符串“Visual BASIC 6.0”使用的 Print 方法分别是( Print “Visual BASIC 6.0” )和( Debug.Print “Visual BASIC 6.0” )。 7.使用 Print 方法时,若用逗号分隔, 则按( 标准 )格式输出各表达式的值,若用 分号分隔,则按( 紧凑 )格式输出各表达式的值。 8.注释语句是一个( 非执行 )语句,VB 不对它们进行编译,对程序的执行结果 没有任何影响。 9. 判别变量 i 是否为偶数, 若为偶数就把它显示出来。 使用单行结构条件语句为 If ( i Mod 2=0 Then print x ) 。 10.判别变量 x 是否大于 0,若大于 0,则累加到变量 s1 中,否则,累加到变量 s2 中,使用的单行结构条件语句为( If x&0 Then s1=s1+x Else s2=s2+x ) 。7 ?2x ? 1 x ? 0 ? x ? 0 ,求 y 的值,使用的单行结构条件语句 11.给定分段函数 y ? ? 0 ?2x ? 1 x ? 0 ?为( If x&0 Then y=2*x+1 Else If x=0 Then y=0 Else y=2*x-1 ) 。 12.判别 a 是否等于 b,若 a=b,则输出字符串 “a is equal to b”的块结构条件语 句为( ) 。 答案:If a=b Then Print “a is equal to b” End13.判别 ch 是否为小写字母,若是,输出“yes”;否则,输出“No”的块结构条件 语句为( ) 。 答案:If Asc(ch)&=97 And Asc(ch)&=122 Then Print “Yes” Else Print “No” End If14.若一个 case 子句中的表达式表由逗号分隔的若干个常数组成,则它的含义是:当 测试表达式的值等于( 这些常数中的某一个 )时,执行该 case 子句相应的程序块。 15.若 case 子句中的表达式表列具有形式:&表达式 1& To &表达式 2&,则它的含义 是:当测试表达式的值等于( 这个范围内的值 )时,执行该 case 子句相应的程序块。 16.若 case 子句中的表达式表列具有形式:Is &关系运算符& &表达式&,则它的含义 是:当测试表达式的值满足( Is 后的关系 )时,执行该 case 子句相应的程序块。 17. 在循环语句中, 反复执行的程序段称为 循环体 )进入循环体的条件称为 循 ( ; ( 环条件 ) ;中止循环体执行的条件称为( 结束循环条件 ) 。 3.2 选择题 1.下列赋值语句中,( d )是正确的。a)x!="abc" a) t=b : b=a : a=t c) t=a : a=b : b=t b)a%="10e" c)x+1=5 d)s$=1002.下列选项中,( d )不能交换变量 a 和 b 的值。b) a=a+b : b=a-b : a=a-b d) a=b : b=a3.若在消息框 MsgBox 中显示“确定(Ok)”和“取消(Cancel)”两个按钮,则 buttons 参数的设置值是( b )。a) 0 a)0 b) 1 b)256 c) 2 c)512 d)34. 若在消息框 MsgBox 中选择第二个按钮为默认值, buttons 参数的设置值是( b 则d)768)。8 5.若单击了“终止(Abort) ”按钮,则 MsgBox 函数的返回值是( c ) 。a)1 a) c) b)2 If x&y Then Print “x&y” If x Mod 3=2 Then ? x c)3 b) d) d)4 If x Then t = t * x If x&0 Then y = 2*x-1 : Print x End If6.以下不正确的单行结构条件语句是( d ) 。7.给定程序段Dim a As Integer, b As Integer, c As Integer a=1:b=2:c=3 If a=c-b Then Print &#####& Else Print &*****& b) 有语法错 d) 输出***** Then max=a Then max=b Then d) If Else max=b End If a&b max=a Then max=a Else max=b End If以上程序( c ) 。a) 没有输出 c) 输出##### a) b) If If a&b a&b8.把 a, b 之中的最大值存放于 max,下面语句书写正确的是( d ) 。Else End If c) If Else max=b a&b max=a9. 下列 Case 语句中正确的是( c ) 。a) Select Case x Case 1 Or 3 Or 5 y=x*x-1 Case Is &10 y=x+1 End Select c) Select Case x Case Is &=0 y=x-1 Case Is &0 y=Sqr(x)+1 End Select b) Select Case x Case 1, 3, 5 y=2*x-1 Case Is x &=1 Y=2*x+1 End Select d) Select Case x Case x&=1 And x&= 5 y=x-1 Case Is &10 y=x*x+1 End Select10.执行下列程序段后屏幕上( c ) 。 i% = 10 : Sum = 0 While i & 1 Sum = Sum + i 9 i = i - 1 Wend Print Suma) 无显示 b) 显示 10 c) 显示 54 d) 显示 5511.执行下列程序段输出结果是( c ) 。 x%=2 Do while x&8 Print “*”; x=x+2 Loopa) * b) ** c) *** d) ****12.设有程序段 Dim k% k=5 Do until k=0 k=k-1 Loop 则下面对循环语句描述正确的是( c ) 。 a) 循环体 1 次也不执行 b) 循环体执行 1 次 c) 循环体执行 5 次 d) 循环体执行无限次 13.下面描述中错误的是( a, c ) 。 a) 执行 Do until &条件&?loop 语句中,当循环&条件&为 false 时,结束循环体的 执行。 b) 执行 While &条件&?Wend 语句时,循环体可能一次也不执行。 c) Do ?loop While &条件&语句的循环体可能一次也不执行。 d) 执行 Do ?loop Until &条件&语句中,当循环条件为 true 时,结束循环体的执 行。 14.下面程序段中循环语句的循环次数是( b ) 。 For x=10 To 1 Step -3 Print x Next xa) 0 a) 3 b) 4 b) 4 c) 5 c) 5 d) 10 d) 615.执行语句 For i=1 to 3: i=i+1 :Next i 后变量 i 的值是( c ) 。 16.下面程序段执行后输出结果是( b ) 。 For i=1 To 2 s=1 For j=0 To i-1 s=s+s*j 15 Next j Print s, Next ia) 1 1 b) 1 2 c) 2 1 d) 2 23.3 阅读下列程序,写出执行结果1. Private Sub Form_Click Print C2*3/2 , “Visual ” & “BASIC”, Not 5&3, 0.75 Print C2*3/2 ; “Visual ” & “BASIC”; Not 5&3; 0.75 x=12.34 Print “x=”; Print x End Sub答案:-3 -3 x=12.34Visual BASIC Visual BASICFalse .75False.752.Private Sub Form_Click Print Tab(10); -100;Tab(20); 200;Tab(30); -300 Print Spc(10); -100;Spc(10); 200;Spc(10); -300 End Sub答案:-100-100 3. x=12.35200 200-300 -300Private Sub Form_Click Print Format ( x,”###.##” ) Print Format ( x,”##.##” ) Print Format ( x,”000.00” ) Print Format ( x,”00.0”) Print Format ( x,”0.00%” ) Print Format ( x,”$##.##” ) Print Format ( x,”+##.##” ) Print Format ( x,”00.00E+00” ) End Sub答案:12.3512.35 012.35 12.4 1235.00% $12.3516 +12.35 12.35e+00 4. Private Sub Command1_Click() Dim a%, b%, c%, s%, w%, t% a = -1: b = 3: c = 3 s = 0: w = 0: t = 0 If c & 0 Then s = a + b If a &= 0 Then If c &= 0 Then w = a - b End If Else If c & 0 Then w = a - b Else t = c End If c = a + b Print a, b, c Print s, w, t End Sub答案:5.-1 23 02 0Private Sub Command1_Click() Dim x%, y% x = InputBox(&请输入x的值:&) Select Case x Case 1, 3, 5 y = x - 1 Case 6 To 10 y = x + 1 Case 2, 4 y = 2 * x Case Is & 10 y = x * x + 1 End Select Print &x=&; x, &y=&; y End Sub(x 的输入值为 2.5、8、4 和 15)答案:x=2 x=8 x=4y=4 y=9 y=817 x=15 6. Dim i%, t! t = 1: i = 1 While i & 10 t = t * i i = i + 2 Wend Print &t=&; t End Suby=226Private Sub Command1_Click()答案:t=9457. Private Sub Command1_Click() Dim i%, x%, y% x = 1: y = 1:i = 1 Do Until i & 8 If i Mod 2 = 1 Then x = x * i Else y = y * i End If i = i + 1 Loop Print &x=&; x, &y=&; y End Sub答案:x=105Dim p%, s% p = 1: s = 1 Do p=p+2:s=s+p Loop While p&10 Print &s=&; s End Suby=3848. Private Sub Command1_Click()答案:s=369. Private Sub Command1_Click() Dim m%, n% For m=1 to 3 n=0 While n&=m-118 Print m,n n=n+1 Wend Next m End Sub答案:1 2 23 3 30 0 10 1 23.4 编程题 1. 输入一个学生成绩,若成绩在 85 分以上,则输出“very good” ;若成绩在 60 分到 80 分之间,则输出“good” ;若成绩低于 60 分,则输出“no good” 。 解答: (1) 界面设计和属性设置 在窗体上建立两个标签、两个文本框和两个命令按钮。窗体和窗体上控件的主要属性 设置如表 3-3-1 所示。表 3-3-1控件名称 Form1 Label1 Label2 Text1 Text2 Command1 Command2第 1 题的属性设置属性名 Caption Caption Caption Text Text Caption Caption 属性值 根据分数给定评语 分数 评语 空串 空串 开始 结束(2) 程序代码Private Sub Command1_Click() Dim score! score = Val(Text1.Text) If score &= 85 Then Text2.Text = &Very good!& ElseIf score &= 60 Then Text2.Text = &Good!& Else Text2.Text = &No good!&19 End If End Sub Private Sub Command2_Click() End End Sub(3) 运行情况 运行程序后,屏幕出现用户界面。把鼠标移到 Text1 文本框并单击,输入分数。然后, 单击“开始”命令按钮,系统执行 Command1_Click 事件过程。执行结果如图 3.3.1 所示。 单击标题为“结束”的命令按钮,执行 Command2_Click 事件过程,结束程序的执行。图 3.3.12第 1 题的执行结果2. 求一元二次方程 ax +bx+c=0 的根。 解答: (1) 界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-2 所示。表 3-3-2控件名称 Form1 Command1 Command2第 2 题的属性设置属性名 Caption Caption Caption 属性值 求一元二次方程的根 开始 结束(2) 程序代码 由中学数学知识知道,求一元二次方程的根的公式为: x1, 2 ? 编程时要考虑如下各种情况: ① 当 a=0 时,方程不是二次方程; ② 当 b -4ac=0 时,有两个相同的实根:2? b ? b 2 ? 4ac , 2ax1, 2 ? ?b ; 2a20 ③ 当 b -4ac&0 时,有两个不同的实根: ④ 当 b -4ac&0 时,有两个共轭复根:Private Sub Command1_Click() Cls22x1, 2 ?? b ? b 2 ? 4ac ; 2ax1, 2 ? ?b ? 2a4ac ? b 2 。 i 2aDim a!, b!, c!, disc!, x1!, x2!, realpart!, imagpart! a = InputBox(&请输入方程的系数a:&) b = InputBox(&请输入方程的系数b:&) c = InputBox(&请输入方程的系数c:&) Print: Print Print Tab(10); &输入方程的系数为:&; &a=&; &b=&; &c=&; c Print If Abs(a) &= 0.000001 Then Print Tab(15); &方程不是一个二次方程!& Else disc = b ^ 2 - 4 * a * c If Abs(disc) &= 0.000001 Then Print Tab(10); &方程有两个相同的实根:&; &x1=x2=&; -b / (2 * a) ElseIf disc & 0.000001 Then x1 = (-b + Sqr(disc)) / (2 * a) x2 = (-b - Sqr(disc)) / (2 * a) Print Tab(5); &方程有两个实根:& Print Tab(18); &x1=&; x1 Print Tab(18); &x2=&; x2 ElseIf disc & 0.000001 Then realpart = -b / (2 * a): imagpart = Sqr(-disc) / (2 * a) Print Tab(5); &方程有两个虚根:&; Print Tab(18); &x1=&; &+&; &i& Print Tab(18); &x2=&; &-&; &i& End If End If End Sub Private Sub Command2_Click() End End Sub注意,程序中的条件“fabs(a)&=0.000001”和“fabs(disc)&=0.000001”分别用来判 断 a 和 disc 的值是否为 0。因为实数在计算机计算和存储时会有微小的误差,若用“a=0” 和“disc=0”来判断 a 和 disc 是否为 0,则会由于误差导致条件不成立,无法得到正确的 21 运行结果。 (3)运行情况 运行程序后,单击“开始”命令按钮,执行 Command1_Click 事件过程。执行时,在 InputBox 框中输入 a、b 和 c 三个系数。图 3.3.2~图 3.3.5 显示了不同系数输入的执行 结果。图 3.3.2执行结果(a)图 3.3.3执行结果(b)图 3.3.4执行结果(c)图 3.3.5执行结果(d)? 3x ? 5 ? 3. 给定函数 y = ? 2 cos x ? 1 ? 1? x2 ? ?x 2 ? 4x ? 5 ? 的值。(要求使用 Case 语句)1 ?? x ? 2 2 ?? x ? 4 4 ?? x ?? 5 其它,从键盘上输入 x 的值,求 y解答: (1) 界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-3 所示。表 3-3-3控件名称 Form1 Command1 Command2第 3 题的属性设置属性名 Caption Caption Caption 属性值 求给定分段函数的值 开始 结束(2) 程序代码Private Sub Command1_Click()22 Cls Dim x!, y! x = InputBox(&请输入x的值:&) If x &= 1 And x &= 5 Then Select Case x Case Is & 2 y = 3 * x - 5 Case Is & 4 y = 2 * Cos(x) + 1 Case Is &= 5 y = Sqr(1 + x * x) End Select Else y = x * x - 4 * x + 5 End If Print Tab(10); &x=&; x, &y=&; y End Sub Private Sub Command2_Click() End End Sub(3) 运行情况 运行程序后,单击“开始”命令按钮,执行事件过程 Command1_Click。执行时,按 InputBox 对话框提示,输入 x 的值。计算结果在窗体上显示。 4. 输入圆的半径 R 和运算标志,按照运算标志进行指定运算。给定的运算标志及其表 示的运算如下: C(Circle) 表示计算周长 A(Area) 表示计算面积 B(Both) 表示周长和面积都计算 (要求使用 Case 语句) 解答: (1)界面设计和属性设置 在窗体上放置两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-4 所示。表 3-3-4控件名称 Form1第 4 题的属性设置属性名 Caption 属性值 计算圆周长或圆面积或两 者都计算 开始 结束Command1 Command2Caption Caption23 (2)程序代码Private Sub Command1_Click() Cls Dim r!, f As String * 1 Const pi! = 3. r = InputBox(&请输入圆的半径 r :&) If r &= 0 Then f = UCase(InputBox(&输入运算标志:& + Chr(13) & _ &C___(计算周长)& + Chr(13) & _ &A___(计算面积)& + Chr(13) & _ &B___(两者都计算)&)) Select Case f Case &C& Print Tab(10); &半径 r=&; &圆周长=&; r * 2 * pi Case &A& Print Tab(10); &半径 r=&; &圆面积=&; r ^ 2 * pi Case &B& Print Tab(10); &半径 r=&; &圆周长=&; r * 2 * pi Print Tab(10); &半径 r=&; &圆面积=&; r ^ 2 * pi Case Else Print Tab(18); &输入的运算标志错!& End Select Else Print Tab(18); &半径不能是负数!& End If End Sub Private Sub Command2_Click() End End Sub '提示信息分多行显示(3)运行情况 运行程序后,单击标题为“开始”的命令按钮,执行 Command1_Click 事件过程。按 InputBox 对话框的提示输入半径 r 和运算标志。计算结果在窗体上显示。 2 2 2 5. 求满足 1 +2 +?+n &1000 的最小 n 值。(要求使用 While?WEnd 语句) 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-5 所示。表 3-3-5控件名称第 5 题的属性设置属性值属性名24 Form1Caption求 满 足 1^2+2^2+ ? +n^2&1000 的最小 n 值 开始 结束Command1 Command2Caption Caption(2)程序代码Private Sub Command1_Click() Dim n%, s& n = 0: s = 0 While s &= 1000 n = n + 1 s = s + n ^ 2 Wend Print: Print: Print Print Tab(8); &满足1^2+2^2+?+n^2&1000的最小n值为:&; n End Sub Private Sub Command2_Click() End End Sub6.输入若干个正实数,个数预先不能确定,求这些正实数之和。(要求分别使用 Do While?Loop 语句和 Do Until ?Loop 语句) 解答: (1)界面设计和属性设置 在窗体上建立三个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-6 所示。表 3-3-6控件名称 Form1 Command1 Command2 Command3第 6 题的属性设置属性值 求正实数之和 Do While?Loop Do Until?Loop 结束属性名 Caption Caption Caption Caption(2)程序代码Private Sub Command1_Click() Cls Dim a!, s! a = InputBox(&输入一个实数:&) Do While a &= 0 s = s + a a = InputBox(&输入一个实数:&) Loop25 Print: Print Print Tab(15); &输入的正实数之和为:&; s End Sub Private Sub Command2_Click() Cls Dim a!, s! a = InputBox(&输入一个实数:&) Do Until a & 0 s = s + a a = InputBox(&输入一个实数:&) Loop Print: Print: Print Print Tab(15); &输入的正实数之和为:&; s End Sub Private Sub Command3_Click() End End Sub(3) 运行情况 运行程序后,屏幕出现用户界面如图 3.3.6 所示。单击标题为“Do While?Loop”或 标题为“Do While?Loop”的命令按钮,系统执行相应的 Click 事件过程。用户可以输入 一系列数据,以输入-1 作结束。窗体显示运算结果。单击“结束”按钮,结束程序执行。图 3.3.6第 6 题的执行结果-87. 使用公式 ?26?1 1 ? 2 ?? 12 2来求π 的近似值, 直到最后一项的值小于 10 为止。(要求使用 Do?Loop While 语句) 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-7 所示。表 3-3-7控件名称第 7 题的属性设置属性名 属性值26 Form1 Command1 Command2Caption Caption Caption求圆周率的近似值 开始 结束(2)程序代码Private Sub Command1_Click() Dim i&, s#, term# i = 1 s = 0 Do term = 1 / (i * i) s = s + term i = i + 1 Loop While term &= 0. Print: Print: Print Print Tab(8); &圆周率的近似值为:&; Sqr(6 * s) End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后,单击标题为“开始”的命令按钮,执行 Command1_Click 事件过程。计 算结果在窗体上显示。 8. 由数值计算方法可知,用牛顿迭代法解方程 f(x)=0 的迭代公式为:x n ?1 ? x n ? f (x n ) / f ?(x n )5 2( n ? 0, 1, 2, ? )试用牛顿迭代法求解方程 x -3x +2x+1=0 在 x0=0 附近的根。(要求使用 Do?Loop Until 语句) 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-8 所示。表 3-3-8控件名称 Form1 Command1 Command2第 8 题的属性设置属性名 Caption Caption Caption 属性值 用牛顿法求方程的根 开始 结束(2)程序代码 根据迭代公式,牛顿迭代法的计算过程为: 27 ①令 n=0 ,由迭代公式得 x1 ? x0 ? f ( x0 ) / f ?( x0 ),然后判别Ox1-x0O是否小于ε (给定精度)。若是,则迭代结束,x1 作为方程的近似根;否则,进行下一步。 ②令 n=1 ,由迭代公式得 x2 ? x1 ? f ( x1 ) / f ?( x1 ) , 然后判别 Ox2-x1O是否小ε 。若是,则迭代结束,x2 作为方程的近似根;否则,由 x2 求 x3 的值,判断Ox3-x2O。 ┇ 按这样迭代下去,一直到Oxi+1-xiO& ε (i=0,1,2,?)为止。 根据上述计算过程可以编写程序为:Private Sub Command1_Click() Dim x0!, x1! x1 = 0 Do x0 = x1 x1 = x0 - (x0 ^ 5 - 3 * x0 ^ 2 + 2 * x0 + 1) / (5 * x0 ^ 4 - 6 * x0 + 2) Loop Until Abs(x1 - x0) & 0.00001 Print Tab(10); &方程的根为:&; x1 End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后,单击标题为“开始”的命令按钮,执行 Command1_Click 事件过程。在窗 体上显示计算结果。 9.求 S = 1 ? 1 ? 1 ? 1 ? ? ?2 3 4 1 99 ? 1 的值。 100解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-9 所示。表 3-3-9控件名称 Form1 Command1 Command2 属性名 Caption Caption Caption第 9 题的属性设置属性值 求 s=1-1/2+1/3-1/4+?+1/99-1/100 的值 开始 结束(2)程序代码Private Sub Command1_Click() Dim i%, s!, sign% sign = 1: s = 028 For i = 1 To 100 s = s + sign * 1 / i sign = -sign Next i Print: Print: Print Print Tab(18); &s的值为:&; s End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后,单击标题为“开始”的命令按钮,执行 Command1_Click 事件过程。窗体 显示计算结果。 10.求 100 到 999 中的水仙花数。所谓水仙花数是指一个三位数,它的各位数字的立 3 3 3 方之和等于该数。例如,因为 153 = 1 + 5 + 3 ,所以 153 是水仙花数。 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-10 所示。表 3-3-10 第 10 题的属性设置控件名称 Form1 Command1 Command2 属性名 Caption Caption Caption 属性值 求水仙花数 开始 结束(2)程序代码Private Sub Command1_Click() Dim i%, a%, b%, c% Print Print Tab(5); &100--999之间的水仙花数为:& For i = 100 To 999 a = i \ 100 b = (i - a * 100) \ 10 c = i - a * 100 - b * 10 If i = a ^ 3 + b ^ 3 + c ^ 3 Then Print Tab(10); i End If Next i End Sub Private Sub Command2_Click()29 End End Sub(3)运行情况 执行结果如图 3.3.7 所示。图 3.3.7第 10 题的执行结果11. 求 1000 之内的所有完数。 所谓完数是指一个数恰好等于它的所有因子之和。 例如, 因为 6=1+2+3,所以 6 为完数。 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-11 所示。表 3-3-11控件名称 Form1 Command1 Command2第 11 题的属性设置属性名 Caption Caption Caption 属性值 求完数 开始 结束(2)程序代码Private Sub Command1_Click() Dim i%, j%, s% Print Print Tab(5); &1--1000 之内的完数为:& For i = 1 To 1000 s = 0 For j = 1 To i - 1 If i Mod j = 0 Then s = s + j Next j If i = s Then Print Tab(5); i Next i End Sub Private Sub Command2_Click() End30 End Sub(3) 运行情况 程序执行结果如图 3.3.8 所示。图 3.3.8第 11 题的执行结果12. 在窗体上输出形如以下图形,其中第一行的起始字母和终止字母由用户从键盘上 输入。 A B C D E B C D E A C D E A B D E A B C E A B C D 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-12 所示。表 3-3-12 第 12 题的属性设置控件名称 Form1 Command1 Command2 属性名 Caption Caption Caption 属性值 输出由字母构成的图形 开始 结束(2)程序代码Private Sub Command1_Click() Cls Dim starg As String * 1, endg As String * 1, stargc%, endgc%, i%, j%, k% starg = UCase(InputBox(&请输入起始字母:&)) endg = UCase(InputBox(&请输入终止字母:&)) stargc = Asc(starg)endgc = Asc(endg)Print If stargc &= endgc Then For i = 0 To endgc - stargc Print Tab(24);31 For j = stargc + i To endgc Print Chr(j); Next j For k = stargc To stargc + i - 1 Print Chr(k); Next k Print Next i Else Print Tab(15); &起始字母必须先于终止字母!& End If End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后, 需在 InputBox 对话框输入起始字母和终止字母。 执行结果在窗体上显示。 13. 已知 XYZ + YZZ = 532,其中 X,Y 和 Z 为 0~9 的数字,编程求出 X、Y 和 Z,并 在窗体上把算式显示出来。 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-3-13 所示。表 3-3-13 第 13 题的属性设置控件名称 Form1 Command1 Command2 属性名 Caption Caption Caption 属性值 求算式中的数字 开始 结束(2)程序代码Private Sub Command1_Click() Dim x%, y%, z%, i% Print Print Tab(23); & x&; & y&; & z& z&; & z& Print Tab(22); &+&; & y&; & Print Tab(23); 5; 3; 2 For x = 1 To 9 For y = 1 To 9 For z = 0 To 9Print Tab(21); &------------&32 i = 100 * x + 10 * y + z + 100 * y + 10 * z + z If i = 532 Then Print: Print Tab(10); &算式中的数字为:&; _ &x=&; &y=&; &z=&; &即&: GoTo l Next z Next y Next x l: Print Print Tab(23); z Print Tab(22); &+&; z Print Tab(21); &------------& Print Tab(23); 5; 3; 2 End Sub Private Sub Command2_Click() End End Sub(3)运行情况 执行结果如图 3.3.9 所示。图 3.3.9第 13 题的执行结果第4章常用控件4.1 填空题 1. 在图片框上放置的控件称为图片框的 ( 子 ) 对象, 而窗体是图片框的 ( 父 ) 对象。 2.窗体的“名称” (Name)属性只能在( 属性窗口中 )设置。 3.在程序中设置窗体 Forml 的 Caption 属性为“主窗体” ,使用的赋值语句是 ( Forml.Caption = ”主窗体” ) 。 33 4.当窗体的 Enabled 属性为( True )时,指定窗体响应事件。 5.窗体的 Unload 事件是在 QueryUnload 事件发生之( 后 )发生。 6.程序中,把当前窗体移动到屏幕左上角使用的方法为( Move 0,0 ) 。 7. 在窗体 Form1 中坐标为 ( 1600, 800 ) 的位置上输出字符串 “Visual BASIC 6.0” 使用的语句为( Form1.Currrentx=1600 ) ( 、 Form1.Currenty=800 ) 和 、 ( Form1.Print “Visual BASIC 6.0” ) 。 8.若使文本框有边框,需设置 BorderStyle 属性的值为( 1 ) 。 9.在程序运行期间,用户可以用文本框显示信息。文本框接受输入的内容的属性是 ( Text ) 。 10.若使文本框内能够接受多行文本,则要设置 Multiline 属性的值为( True ) 。 11.要把图形文件“c:\sample\diannt.jpg”装载到图片框 Picture1 上,使用的语句 为( Picture1. Picture=LoadPicture(“c:\sample\diannt.jpg”) ) 。 12.若使图片框自动调整大小以适应装入的图形,则要设置 Autosize 属性的值为 ( True ) 。 13.除了在程序使用 LoadPicture 函数装载图形外,还可以在设计阶段通过修改 ( Picture )属性装载图形。 14.若程序中要把一些文本内容输出到图片框 PictureBox,应使用( Print )方 法。 15.当单选按钮 OptionButton 的 Value 属性为( False )时,表示该单选按钮处 于未选中状态。 16 . 若 使 命 令 按 钮 Command1 重 新 生 效 , 则 使 用 的 赋 值 语 句 为 ( Command1.Enabled=True ) 。 17 . 若 使命令按 钮不能接 收和响应 任何事件 ,可 以设置 Visible 属性的 值为 ( False ) 。 18.只有控件对象的 Enabled 和 Visible 属性值都为( True )时,该控件对象才 能接受焦点。 19.Tab 顺序是由建立控件时的( 先后顺序 )来确定。 20.设置框架 Frame 上的文本内容需要使用( Caption )属性。 21.在框架上可以设置一组相关控件,这些控件作为框架的( 子 )控件,它们具 有总体的激活/屏蔽特性。 22.若屏蔽框架上的控件对象,则需设置( Enabled )属性的值为 False。 23.列表框 ListBox 中项目的序号从( 0 )开始到( Listcount-1 )结束。 24.要显示列表框 List1 中序号为 3 项目内容,语句为( Print List1.List(3) ) 。 25.向组合框 Combo2 添加序号为 5,内容为“计算机学院”的项目,使用的语句为 ( Combo2.AddItem “计算机学院”,5 ) 。 26. 要删除组合框 Combo1 序号为 3 的项目, 使用的语句为 Combo1.ReMoveItem 3 ) ( 。 27.使用滚动条 ScrollBar 时,若要设置当用鼠标单击两个滚动箭头之间区域的滚动 幅度,需使用( LargeChange )属性。 28.若要设置水平或垂直滚动条的最小值,需使用( Min )属性。 34 29.计时器 Timer 每经过一个由 InterVal 属性指定的时间间隔就会触发一次 ( Timer )事件。 30.若要使计时器每 0.5 钞钟触发一次 Timer 事件,则要把 InterVal 属性值设置为 ( 500 ) 。 4.2 选择题 1.窗体标题栏的显示内容由窗体的( b )属性决定。a) Name a) Load a) Name a) 0 b)Caption b)Activate b) Caption b) 1 c)BackColor c)Unload c) Text c) 2 d)Enabled d)QueryUnload d) ForeColor2.当窗体被装入内存时,系统将自动执行( a, b )事件过程。 3.在标签框上显示的内容由( b )属性来实现。 4.要使标题在标签框内居中显示,Alignment 属性的取值应为( 2d) 3) 。5.若使标签框根据所显示内容自动调整其大小,则可以通过设置( a )属性值为 True 来实现。a) AutoSize b) Alignment c) Enabled c) Visible c) Max c) 2 d) 3 d) Visible d) Caption d) MaxLength6.文本框没有(a) BackColor a) Length a) 0 a) Change a) 标签 a) Picture1.Deld )属性。b) Enabled b) Multiline b) 1 b) SetFocus b) 文本框7.若设置文本框最多可以接受的字符数,则可以使用( d )属性。 8.在文本框中设置垂直滚动条,要使 ScrollBars 的值为( c ) 。 9.在运行程序时,要使文本框获得焦点,则需使用(c) GotFocus c) 图片框b )方法。d) Move d) 图像框10.下列控件中,没有 AutoSize 属性的是( b, d ) 。 11.若把图片框 Picture1 中的图形清除,可以使用的语句是( b, c, db) Picture1. Picture=LoadPicture(&&) c) Picture1. Picture= LoadPicture( ) d) Picture1. Picture=Nothing) 。12.命令按钮上的文本内容由( b )属性来设置。a) Text a) Value a) Value b) Caption b) Cancel b) Enabled c) Name c) Default c) Visible d) Show d) Enabled d) Cancel13.若将命令按钮设置为默认选择命令按钮,可以通过( c )属性来实现。 14.要使命令按钮失效,则可以设置( b )属性的值为 False 来实现。 15.若使命令按钮在屏幕不可见,则可以通过修改( 35 c )属性实现。 a) Value a) 0 a) Visible a) 命令按钮 a) 0 a) List a) Columns a) AddItem a) Clear a) List a) Value a) Move a) Value a) Visibleb) Enabled b) 1 b) Enabled b) 组合框 b) 1 b) ListIndex b) MultiSelect b) ReMove b) ReMove b) ListIndex b) Max b) Change b) Text b) Enabledc) Visible c) 2 c) TabStop c) 复选按钮 c) 2 c) ListCount c) Style c) Clear c) Move c) ListCount c) Min c) Scroll c) Max d) Printd) Cancel d) 3 d) TabIndex d) 计时器16.当复选框 Value 属性值为( b )表示该复选框被选中。 17.改变控件的 Tab 顺序可以修改( d )属性值。 18.下列控件中( d )不能接受 GotFocus 和 LostFocus 事件。 19.要使列表框中的项目垂直滚动,应设置 Columns 属性值为( ad) 3 d) Text d) List) 。20.若要得到列表框中项目的数目,可以访问( c )属性。 21.设置列表框的选择方式,应使用( b )属性。 22.若要清除列表框的所有项目内容,可以使用( c )方法。23.删除列表框中的某一个项目,需要使用( d )方法。d) ReMoveItem d) Text24.在组合框中选择某一项目内容,可以通过( d )属性获得。 25.若要获得滚动条的当前位置,可以通过访问( a 26.当用鼠标拖动滚动块时触发( b, c )事件。d) GotFocus d) InterVal d) Cancel)属性来实现。d) LargeChange27.设置计时器的时间间隔可以通过( d )属性来实现。 28.暂时关闭计时器,需设置( b )属性。c) Lock4.3 问答题 1. 在 VB 集成环境中,用属性窗口设置字体(Font)属性时,系统将弹出一个对话框 (见图 4-10) ,指出该对话框中包含些什么控件? 答:在该对话框中包含列表框、命令按钮、框架、复选框和文本框等控件。 2.设 Text1 为某一文本框名,下列程序段的输出结果是什么? Text1.Text = &abcdefghijk & Text1.selstart = 3 Text1.sellength = 5 Print Text1.SelText 答:输出结果是:defgh 3.标签和文本框有什么区别? 36 答:参见教材 4.3。 4. 比较用 Print 方法输出和用标签输出的优缺点。答:窗体、图片框和打印机等具有 Print 方法,用于直接输出文本。输出格式、字体 风格通过语句中的格式控制和对象的字体属性共同完成。Print 方法只有在程序运行后, 执行代码才能显示结果。标签控件利用 Caption 属性输出文本,可以通过字体属性设置显 示风格。其属性可以在设计阶段给定,也可以在程序运行时改变。标签控件是窗体的子对 象,主要用于界面设计,不能输出复杂格式的数据,特别地,不能直接把输出送到外部设 备,如打印机。 5.图片框和图象框的作用是什么?它们之间有什么区别?在什么情况下可以相互代 替?在什么情况下必须使用图片框? 答:参见教材 4.4。 6.框架的作用是什么?如何在框架中建立控件? 答:参见教材 4.6。 4.4 编程题 1. 编一程序能够实现: 每次单击命令按钮 Command1 能使标签 Label1 上的文字在窗体 Form1 上往右移动 100 缇,当标签在窗体 Form1 上往右移出窗体的右边界时,再次单击命 令按钮 Command1 能使标签回到窗体的左边界。 解答: (1) 界面设计和属性设置 在窗体上建立一个标签和两个命令按钮。窗体和窗体上控件的主要属性设置如表 3-4-1 所示。表 3-4-1控件名称 Form1 Label1第 1 题的属性设置属性名 Caption Caption 属性值 使标签往右移 欢迎使用 VB! 隶书 三号字 移动 结束FontName FontSize Command1 Command2 Caption Caption(2)程序代码Private Sub Command1_Click() If Label1.Left & Form1.ScaleWidth Then Label1.Left = 0 Else Label1.Left = Label1.Left + 100 End If End Sub37 Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后,屏幕出现用户界面。每单击一次标题为“移动”的命令按钮,执行 Command1_Click 事件过程,使标签往右移 100 缇。右移出窗体的右边界时,再次单击“移 动”命令按钮,标签回到窗体的左边界。执行情况如图 3.4.1 所示。图 3.4.1第 1 题的执行情况2.编写一个把某些英文单词翻译为中文单词的简单程序。要求用户界面为一个窗体, 窗体左侧是一个文本框,用户在这里输入想要翻译的英文单词(注意输入一个新的单词之 前应清除原有内容) ;窗体中间是一个命令按钮,在该命令按钮上面显示“翻译”两字;窗 体右侧也是一个文本框;当程序运行时,用户按下命令按钮后,窗体右侧的文本框显示单 词的中文意思。如果找不到想要翻译的英文单词,则给出相应的信息。 解答: (1) 界面设计和属性设置 在窗体上建立两个标签、两个文本框和一个命令按钮。窗体和窗体上控件的主要属性 设置如表 3-4-2 所示。表 3-4-2控件名称 Form1 Label1 Label2 Text1 Text2 Command1第 2 题的属性设置属性名 属性值 英文单词翻译为中文单词 英文 中文 空串 空串 翻译Caption Caption Caption Text Text Caption(2) 程序代码Private Sub Form_Load() Text1.Text = &&: Text2.Text = && End Sub Private Sub Command1_Click()38 Select Case LCase(Trim(Text1.Text)) Case &china& Text2.Text = &中国& Case &france& Text2.Text = &法国& Case &england& Text2.Text = &英国& Case &america& Text2.Text = &美国& Case &india& Text2.Text = &印度& Case Else Text2.Text = &找不到该单词!& End Select End Sub Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.Text = &&: Text2.Text = && End Sub(3) 运行情况 上机运行程序后,屏幕出现用户界面。此时,把鼠标移到 Text1 文本框并单击,然后 输入英文国家名,例如,China。英文国家名输入后,单击标题为“翻译”的命令按钮,系 统执行相应的 Click 事件过程。执行结果如图 3.4.2 所示。单击工具栏上的“结束”按钮, 系统结束程序的执行。图 3.4.2第 2 题的执行结果3.在文本框中输入算术表达式,并以回车符作为输入结束标志。对表达式中的圆括号 是否配对进行检查,且给出配对或不配对信息。若配对,则给出“左右圆括号配对”的信 息;否则,给出“左圆括号多于右圆括号”或“右圆括号多于左圆括号”的信息。 解答: (1) 界面设计和属性设置 在窗体上建立一个文本框。窗体和文本框的主要属性设置如表 3-4-3 所示。39 表 3-4-3控件名称 Form1第 3 题的属性设置属性名 属性值 判别算术表达式中的圆 括号是否配对 空串CaptionText1Text(2) 程序代码Dim n As Integer Private Sub Text1_KeyPress(KeyAscii As Integer) Cls If Chr(KeyAscii) = &(& Then n = n + 1 ElseIf Chr(KeyAscii) = &)& Then n = n - 1 End If Print If KeyAscii = 13 Then If n = 0 Then Print Tab(18); &左右圆括号配对!& ElseIf n & 0 Then Print Tab(15); &左圆括号多于右圆括号!& Else Print Tab(15); &右圆括号多于左圆括号!& End If End If End Sub Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Cls Text1.Text = && n = 0 End Sub(3) 运行情况 运行程序后,焦点在 Text1 文本框上。输入算术表达式,然后按回车键,执行 Text1_KeyPress 事件过程。执行结果如图 3.4.3 所示。若输入另一个算术表达式,可以单击 Text1 文本框,再次输入算术表达式和按回车键,执行 Text1_MouseDown 事件过程。40 图 3.4.3第 3 题的执行结果4.编写一个程序,把某一图形装入到一个图片框中,且能实现该图形的放大、缩小和 全屏显示。 解答: (1) 界面设计和属性设置 在窗体上建立一个图片框和三个命令按钮。窗体和窗体上控件的主要属性设置如表 3-4-4 所示。表 3-4-4控件名称 Form1 Picture1 Command1 Command2 Command3第 4 题的属性设置属性名 属性值 图片缩放 一幅图片(在程序中装入) 图片放大 图片缩小 全屏显示Caption Picture Caption Caption Caption(2) 程序代码Private Sub Command1_Click() If Picture1.Height & 2200 Then If Form1.ScaleHeight - Picture1.Height & 50 Then Picture1.Height = Picture1.Height + 50 End If End If If Form1.ScaleWidth - Picture1.Width & 70 Then Picture1.Width = Picture1.Width + 70 End If End Sub Private Sub Command2_Click() Select Case Picture1.Height Case Is & 50 Picture1.Height = Picture1.Height - 50 Case Is & 30 Picture1.Height = Picture1.Height - 3041 Case Is & 10 Picture1.Height = Picture1.Height - 10 End Select Select Case Picture1.Width Case Is & 100 Picture1.Width = Picture1.Width - 100 Case Is & 50 Picture1.Width = Picture1.Width - 50 Case Is & 30 Picture1.Width = Picture1.Width - 30 Case Is & 10 Picture1.Width = Picture1.Width - 10 End Select End Sub Private Sub Command3_Click() Picture1.Height = Form1.ScaleHeight - 1000 Picture1.Width = Form1.ScaleWidth End Sub Private Sub Form_Load() Picture1.Picture=LoadPicture _ (&c:\Program Files\Microsoft Office\Office\Bitmaps\styles\Globe.wmf&) End Sub(3) 运行情况 运行程序后,单击不同的命令按钮,系统执行相应的 Click 事件过程。执行结果如图 3.4.4 所示。图 3.4.4第 4 题的执行结果5. 编写一个求三角函数值的程序。在程序中,用户可以选择输入角度或弧度值,也可 42 以选择计算一种三角函数(例如,正弦、余弦、正切等)的值,且能把计算的结果显示出来。 要求分别使用两组单选按钮进行输入选择和计算选择,每组单选按钮存放在一个框架中; 用文本框输入角度或弧度值,用标签输出计算结果。 解答: (1) 界面设计和属性设置 在窗体上建立两个标签、两个文本框和两个框架。一个框架包含两个单选按钮,另一 个框架包含三个单选按钮。窗体和窗体上控件的主要属性设置如表 3-4-5 所示。表 3-4-5控件名称 Form1 Label1 Label2 Text1 Text2 Frame1 Option1 Option2 Frame2 Option3 Option4 Option5第 5 题的属性设置属性名 属性值 计算三角函数的值 输入 输出 空串 空串 输入选择 角度 弧度 函数选择 正弦 余弦 正切Caption Caption Caption Text Text Caption Caption Caption Caption Caption Caption Caption(2) 程序代码Const Pi = 3. Private Sub Form_Load() Option1.Value = True Option3.Value = True Text1.Text = &&: Text2.Text = && End Sub Private Sub Text1_Change() Dim X As Single If (Option1.Value) Then X = Val(Text1.Text) * Pi / 180 Else X = Val(Text1.Text) End If If (Option3.Value) Then43 Text2.Text = Sin(X) ElseIf (Option4.Value) Then Text2.Text = Cos(X) ElseIf (Option5.Value) Then Text2.Text = Tan(X) End If End Sub Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.Text = &&: Text2.Text = && End Sub(3) 运行情况 运行程序后,在文本框 Text1 输入角度,系统执行 Text1_Change 事件过程。执行结果 如图 3.4.5 所示。单击标题为“弧度”的单选按钮和标题为“余弦”的单选按钮,鼠标单 击文本框 Text1,输入弧度,系统执行 Text1_Change 事件过程,执行结果如图 3.4.6 所示。图 3.4.5 第 5 题的执行结果(a)图 3.4.6第 5 题的执行结果(b)6.编写一个程序,产生一个字体浏览器。要求用一个列表框显示系统当前可供选择的 字体,另一个列表框显示系统当前可供选择的字体大小,并且使用标签显示所选字体及其 大小样例。 解答: (1)界面设计和属性设置 在窗体上建立四个标签、两个列表框。窗体和窗体上控件的主要属性设置如表 3-4-6 所示。表 3-4-6控件名称 Form1 Label1 Label2 Label3第 6 题的属性设置属性名 Caption Caption Caption Caption 属性值 字体浏览器 字体选择 字体大小选择 样例44 Label4Caption BorderStyle中文字体演示 1 1 1List1 List2Style Style(2) 程序代码Private Sub Form_Load() Dim i As Integer For i = 0 To Screen.FontCount - 1 List1.AddItem Screen.Fonts(i) Next i For i = 8 To 12 List2.AddItem Trim(Str(i)) Next i For i = 14 To 72 Step 2 List2.AddItem Trim(Str(i)) Next i End Sub Private Sub List1_Click() Label4.FontName = List1.Text End Sub Private Sub List2_Click() Label4.FontSize = List2.Text End Sub(3) 运行情况 运行程序后,执行事件过程 Form_Load,屏幕上显示用户界面。单击左边列表框 List1 上某一复选框,选择字体。然后单击右边列表框 List2 上的某一复选框,选择字号,系统 执行相应的事件过程。执行结果如图 3.4.7 所示。45 图 3.4.7第 6 题的执行结果7. 编写一个用于演示颜色合成情况的程序。要求使用滚动条作为红、绿和蓝三种基色 值的输入控件。 (提示:使用 RGB 函数对输入的三种基色进行合成得到复合颜色) 解答: (1) 界面设计和属性设置 在窗体上建立四个标签和三个滚动条。窗体和窗体上控件的主要属性设置如表 3-4-7 所示。表 3-4-7控件名称 Form1 Label1 Label2 Label3 Label4第 7 题的属性设置属性名 属性值 颜色合成演示 红色份量值: 绿色份量值: 蓝色份量值: 空串 1 255 5 255 5 255 5Caption Caption Caption Caption Caption BorderStyleHscroll1Max LargeChangeHscroll2Max LargeChangeHscroll3Max LargeChange(2) 程序代码Private Sub HScroll1_Scroll() Label1.Caption = &红色份量值:& & HScroll1.Value Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub Private Sub HScroll2_Scroll() Label2.Caption = &绿色份量值:& & HScroll2.Value Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub Private Sub HScroll3_Scroll() Label3.Caption = &蓝色份量值:& & HScroll3.Value Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub(3)运行情况 运行程序后, 把鼠标移到各个滚动条的滚动块, 然后单击并拉着滚动块移动一段距离, 系统执行相应的事件过程。执行结果如图 3.4.8 所示。 46 图 3.4.8第 7 题的执行结果8.编写程序,把某一图形装入一个图像框中,并使它能在窗体上从左至右往返不断移 动。 (提示:使用窗体的 Left 属性和计时器控件) 解答: (1) 界面设计和属性设置 在窗体上建立一个图像框、一个计时器和一个命令按钮。窗体和窗体上控件的主要属 性设置如表 3-4-8 所示。表 3-4-8控件名称 Form1 Image1 Timer1 Command1第 8 题的属性设置属性名 属性值 使图片往返移动 一幅图片(在程序中装入) 10(在程序中给定) 停止移动Caption Pictrue Interval Caption(2) 程序代码Dim x, f As Integer Private Sub Form_Load() Image1.Picture=LoadPicture _ (&c:\Program Files\Microsoft Office \Office\Bitmaps\Dbwiz\Evtmgmt.gif&) Timer1.Interval = 10 End Sub Private Sub Timer1_Timer() Select Case f Case 0 If x & 5000 Then x = x + 100 Else f = 1 Case 1 If x & -3000 Then x = x - 100 Else f = 0 End Select Image1.Left = x End Sub ' 把图像框的左上角水平移到x的位置 '使图片向左移动 '使图片向右移动 ' f =0则向左移动 ,f =1则向右移动 ' 设定Timer事件每隔10毫秒发生一次47 Private Sub Command1_Click() End End Sub(3) 运行情况 运行程序后,屏幕出现一幅往返移动的图片。单击标题为“停止移动”的命令按钮, 结束程序的执行。第5章数组与记录5.1 填空题 1.若要定义一个包含 10 个字符串元素,且下界为 1 的一维数组 s,则数组说明语句 为( Dim s(1 To 10) As String ) 。 2.若要定义一个元素为整型数据的二维数组 a,且第一维的下标从 0 到 5,第二维下 标从-3 到 6,则数组说明语句为( Dim a(0 To 5,-3 To 6) As Integer ) 。 3.如果数组元素的下标值为实数,则 VB 系统会按( 四舍五入原则 )进行处理。 4.数组元素个数可以改变的数组称为( 可调数组 ) ;数组元素可以存放不同类型 数据的数组称为( 可变类型数组 ) 。 5.数组刷新语句用于( 清除指定数组内容 ) 。若被刷新的数组是数值数组,则把 所有元素置( 0 ) ;若被刷新的数组为字符串数组,则把所有元素置( 空字符串 ) 。 6.设有表格控件 grd1,若设置 grd1 的第 2 行第 5 列的单元格为当前活动单元格,使 用的语句为( grd1. Row =2 )和( grd1.Col=5 ) 。 7.要使表格控件 grd1 的当前活动单元格显示字符串“姓名” ,使用的语句是 ( grd1.Text=“姓名” ) 。 8.建立一个具有 10 行 10 列的表格控件 grd2,需使用的语句为( grd2. Row =10 ) 和( grd2.Col=10 ) 。 9.在程序的运行中,对表格控件 grd1 的某些列的数据按降序并且区分大小写排序, 使用的语句是( grd1.Sort=8 ) 。 10.控件数组是由一组类型和( 名字 )相同的控件组成,共享( 同一个事件过 程 ) 。 11.控件数组中的每一个控件都有惟一的下标,下标值由( Index )属性指定。 12.建立控件数组有两种方法: ( 在设计阶段通过相同 Name 属性值来建立 )和 ( 在程序代码中使用 Load 方法 ) 。 5.2 选择题 1.下列一维数组说明语句错误的是( d ) 。a) c) a) 5 Dim b(100) AS Double Dim b(-10 To C20) AS Integer b) 8 c) 11 b) d) Dim b(-5 To 0) AS Byte Dim b(5 To 5) AS String2.若有数组说明语句为:Dim a(-3 To 8), 则数组 a 包含元素的个数是( dd) 12) 。48 3.设有数组说明语句:Dim 是错误的。a) c(i-1) b) c(5+0.5)c(1 To 10),则下面表示数组 c 的元素选项中( c )c) c(0) d) c(10)4.下列数组说明语句中正确的是( aa) Dim a(-1 To 5,8)AS String c) Dim a(0 To 8,5 To C1)AS Single a) 12 b) 15 c) 16) 。b) Dim a(n,n)AS Integer d) Dim a(10,-10)AS Double5. 设有数组说明语句: Dim b -1To2, ( -2To2) 则数组 b 中元素的个数是 , ( dd) 20) 。6.设有数组说明语句:Dim c(-1To 2,1To5) ,则下列表示数组 c 的元素选项中 ( c )是正确的。a) c(i+j) a)定长数组 a)数值数组 b) c(i)(j) b)可调数组 b)可调数组 c) c(i+1,i-1) c)静态数组 c)字符串数组 d) c(1,0)7.若有数组说明语句:Dim a()AS Integer,则 a 被定义为( b) 。d)可变类型数组 d)可变类型数组8.若有数组说明语句:Dim t(1 To 10)AS Variant,则 t 被定义为( d ) 。 9.下面选项中,错误的是(b) Dim b :b=Array(1,2,3) c) Dim b As Integer :b=Array(1,2,3)c ) 。a) Dim s As variant :s = Array(&one &, & two &, & Three &)d) Dim b As variant :b=Array(1,2,3) 10.若有以下说明语句 Type employee num As Integer salary As Single End Type Dim programmer As employee 则下面表示记录变量 programmer 的 成员 Salary 正确的是( da) programmer→salary c) salary.programmer b) .salary d) programmer.salary) 。11.已知有说明语句 Type dat year As Integer month As Integer day As Integer End Type Type emp no As Integer name As String~10 sex As String*1 49 birthday As dat salary As single End Type Dim programmer As emp 并假设变量 programmer 所表示职工的出生日期是“1978 年 10 月 1 日” ,则下列正确的赋 值语句是( d ) 。a) year=1978:month=10:day=1 b) birthday.Year=1978:birthday.month=10: birthday.day=1 c) programmer.year=1978:programmer.month=10 :programmer.day=1 d) programmer.birthday.year=1978:programmer.birthday.month=10: programmer.birthday.day=112.假设有上题的说明语句,则下列 With 语句正确的是( c ) 。a) with progammer no=1000:name= &张勇& : sex= &男& with birthday year=1978 :month=10 :day=1 End with salary=2800 End with b) with programmer .no=1000:.name= &张勇& :.sex=&男& with .birthday .year=1978 :.month=10 :.day=1 End with .salary=2800 End with c) with programmer .no=1000 :.name=&张勇& :.sex=&男& .birthday.year=1978 :.birthday.month=10 :.birthday.day=1 .salary=2800 End with d) with programmer,birthday .no=1000:.name=&张勇& :.sex=&男& .year=1978 :month.=10 :day.=1 .salary=2800 End with5.3 问答题 1. 使用关键字 Dim, ReDim 和 Static 定义的数组分别称为什么数组?它们各有什么特 50 点? 答:参见教材 5.3。 2.若有表格控件 grd1,则选定表格控件 grd1 从第 4 行到第 8 行和从第 4 列到第 8 列的表格单元块需使用那些语句? 答:grd1. Row =4:grd1.Col=4 grd1.ColSel=8:grd1.RowSel=8 5.4 阅读下列程序,写出执行结果 1. Private Sub Command1_Click()Dim f(10) As Integer f(0) = 1: f(1) = 1 For i = 2 To 10 f(i) = f(i - 2) + f(i - 1) Next i For i = 0 To 10 If i Mod 4 = 0 Then Print Print f(i), Next i End Sub答案:1 5 34 2. Private Sub1 2 8 13 55 89 Command1_Click()3 21Dim s(1 To 6) As Integer For i = 1 To 6 s(i) = i Next i For i = 1 To 3 For j = 4 To 6 t = s(i) :s(i) = s(j) :s(j) = t Next j Next i For i = 1 To 6 Print s(i); Next i End Sub答案:63.54321Private Sub Command1_Click() Dim a(1 To 9) As Integer51 Dim b(1 To 3, 1 To 3) As Integer Dim i%, j% For i = 1 To 9 a(i) = i Next i For i = 1 To 3 For j = 1 To 3 b(i, j) = a(i * j) If j &= i Then Print b(i, j), Next j Print Next i End Sub答案:1 2 34.4 69Private Sub Command1_Click() Dim a(1 To 5, 1 To 5) As Integer, i%, j% For i = 1 To 5 For j = 1 To 5 If i &= j Then a(i, j) = 1 Else a(i, j) = i - j + 1 Next j Next i For i = 1 To 5 For j = 1 To 5 Print a(i, j); Next j Print Next i End Sub答案: 1 2 3 4 51 1 2 3 41 1 1 2 31 1 1 1 21 1 1 1 152 5.5 编程题1. 已知求成绩的平均值和均方差公式为: ave ??si ?1nin, dev ?? (si ?1ni? ave) 2,其n中 n 为学生人数,s i 为第 i 个学生成绩。求某班的平均成绩和均方差。 解答: (1) 界面设计和属性设置 在窗体上建立四个标签和两个命令按钮。窗体和窗体上控件的主要属性设置如表 3-5-1 所示。表 3-5-1控件名称 Form1 Label1 Label2 Label3第 1 题的属性设置属性名 Caption Caption Caption Caption BorderStyle 属性值 求平均值和均方差 平均值 均方差 空串 1 空串 1 计算 结束Label4Caption BorderStyleCommand1 Command2Caption Caption(2) 程序代码Private Sub Command1_Click() Dim sum1!, sum2!, ave!, dev!, n%, i% Dim s() As Integer n = InputBox(&请输入学生人数:&) ReDim s(1 To n) For i = 1 To n s(i) = InputBox(&请输入第& & Str(i) & &个学生成绩:&) Next i sum1 = 0: sum2 = 0 For i = 1 To n sum1 = sum1 + s(i) Next i ave = sum1 / n For i = 1 To n53 sum2 = sum2 + (s(i) - ave) ^ 2 Next i dev = Sqr(sum2 / n) Label3.Caption = ave Label4.Caption = dev End Sub Private Sub Command2_Click() End End Sub(3) 运行情况 运行程序后,单击标题为“计算”的命令按钮,输入学生人数和每个学生成绩。例如, 输入 3、70、80 和 90,执行结果如图 3.5.1 所示。图 3.5.1第 1 题的执行结果2.编一程序,使用随机函数产生 10 个互不相同的两位整数存放到一维数组中,并输 出该数组,然后求这组数中的最大值及最大值在数组中的位置。 解答: (1)界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-5-2 所示。表 3-5-2控件名称 Form1第 2 题的属性设置属性名 Caption 属性值 求两两不相同随机数最 大值及其位置 开始 结束Command1 Command2Caption Caption(2) 程序代码Private Sub Command1_Click() Cls Dim a(1 To 10), i%, j%, max%, p% Randomize For i = 1 To 1054 l:a(i) = Int((90 * Rnd + 10)) For j = 1 To i - 1 If a(i) = a(j) Then GoTo l Next j Next i Print Print Tab(2); &产生的随机数为:& Print For i = 1 To 10 Print & a(&; &)=&; a(i), If i Mod 4 = 0 Then Print Next i max = a(1): p = 1 For i = 2 To 10 If a(i) & max Then max = a(i): p = i Next i Print: Print Print Tab(2); &最大值为:&; max Print Tab(2); &最大值所在数组元素的下标为:&; pEnd Sub Private Sub Command2_Click() End End Sub(3)运行情况 程序执行结果如图 3.5.2 所示。图 3.5.2第 2 题的执行结果3.把 20 个整型数据存放到一维数组 a 中,找出 a 中出现频率最高的元素值及出现的 次数。例如,若把 1,5,4,3,5,8,5 和 3 存放到数组 a 中,则出现频率最高的元素值 是 5,出现的次数是 3。 55 解答: (1) 界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮主要属性设置如表 3-5-3 所示。表 3-5-3控件名称 Form1第 3 题的属性设置属性名 Caption 属性值 找出出现频率最高元素和 出现次数 开始 结束Command1 Command2Caption Caption(2) 程序代码Private Sub Command1_Click() Cls Dim i%, j%, fmax% Dim a(1 To 20) As Integer, b(1 To 20) As Integer Print Print Tab(2); &用随机函数产生的数值是:& Randomize For i = 1 To 20 a(i) = Int(10 * Rnd + 1) Print a(i), If i Mod 4 = 0 Then Print Next i fmax = 0 For i = 1 To 20 b(i) = 0 For j = 1 To i If a(i) = a(j) Then b(i) = b(i) + 1 End If Next j Next i Print Print Tab(2); &出现频率最高的数值是:&; For i = 1 To 20 If b(i) = fmax Then Print a(i); End If 'b(i)用来对a(i)出现的次数进行计数 If b(i) & fmax Then fmax = b(i) ' 产生1~10之间的随机整数,并存放到a(i)中56 Next i Print Print Tab(2); &出现的次数是:&; fmax End Sub Private Sub Command2_Click() End End Sub(3)运行情况 程序执行结果如图 3.5.3 所示。图 3.5.3第 3 题的执行结果4. 给定两组已按升序排列好的整型数据, 编写一个程序把它们合并为一组仍按升序排 列的数据。 解答: (1) 界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-5-4 所示。表 3-5-4控件名称 Form1第 4 题的属性设置属性名 Caption 属性值 把两个升序数组合并为一 个升序数组 合并 结束Command1 Command2Caption Caption(2) 程序代码Dim a As Variant, b As Variant, c%(0 To 11) Private Sub Form_Activate() Dim i% a = Array(1, 2, 7, 8) Print Print Tab(5); &第一个升序数组:&;57 For i = 0 To 3 Print a(i); Next i Print: Print b = Array(3, 4, 8, 8, 9, 10, 12, 12) Print Tab(5); &第二个升序数组:&; For i = 0 To 7 Print b(i); Next i End Sub Private Sub Command1_Click() Dim i%, j%, k% i = 0: j = 0: k = 0 While i & 4 And j & 8 If a(i) & b(j) Then c(k) = b(j): k = k + 1: j = j + 1 Else c(k) = a(i): k = k + 1: i = i + 1 End If Wend While i & 4 c(k) = a(i): i = i + 1: k = k + 1 Wend While j & 8 c(k) = b(j): j = j + 1: k = k + 1 Wend Print: Print Print Tab(5); &合并后的升序数组:& Print Tab(8); For i = 0 To 11 Print c(i); Next i End Sub Private Sub Command2_Click() End End Sub '把b中剩余的元素搬到c中 '把a中剩余的元素搬到c中 '比较a和b中的元素,把较大的元素移到 'c中,直到其中一个数组搬空为止(3) 运行情况 运行程序后,系统执行 Form_Activate 事件过程,屏幕出现用户界面,并显示两个升序 数组。此时,单击标题为“合并”的命令按钮,系统执行相应的 Click 事件过程。执行结 58 果如图 3.5.4 所示。单击标题为“结束”的命令按钮,结束程序的执行。图 3.5.4第 4 题的执行结果5.从键盘上输入一个正整数,判别它是否为回文数。所谓回文数是指正读和反读都一 样的数。例如,123321 是回文数。 解答: (1) 界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-5-5 所示。表 3-5-5控件名称 Form1第 5 题的属性设置属性名 Caption 属性值 判别一个整数是否为回 文数 开始 结束Command1 Command2Caption Caption(2) 程序代码Private Sub Command1_Click() Cls Dim num As Long, n As Long, i%, k%, f%, b%(10) num = InputBox(&请输入一个整数:&) k = 0: n = num Do b(k) = n Mod 10 k = k + 1 n = n \ 10 Loop While n && 0 f = 1 For i = 0 To (k - 1) / 2 If b(i) && b(k - 1 - i) Then f = 0 'num的第i位与第k-1-i位数字不相同时f置0 Next i Print '说明num不是回文数 '把num的各位数字存入数组b中59 If f Then Print Tab(2); &是回文数!& Else Print Tab(2); &不是回文数!& End If End Sub Private Sub Command2_Click() End End Sub(3) 运行情况 运行程序后,在调用 InputBox 函数出现对话框时,输入一个整数,例如,。 执行结果如图 3.5.5 所示。图 3.5.5第 5 题的执行结果6. 编一程序,把一个 m 行 n 列矩阵中的元素存放到一个二维数组中,并求出该数组的平 均值、最大值和最小值。 解答: (1) 界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-5-6 所示。表 3-5-6控件名称 Form1第 6 题的属性设置属性名 Caption 属性值 求矩阵的平均值、最小值 和最大值 开始 结束Command1 Command2Caption Caption(2) 程序代码Private Sub Command1_Click() Dim i%, j%, m%, n%, sum!, ave!, max!, min! Dim a() As Single m = InputBox(&请输入矩阵的行数:&) n = InputBox(&请输入矩阵的列数:&) ReDim a(1 To m, 1 To n)60 Print Print Tab(2); &输入的矩阵为:& For i = 1 To m Print Tab(15); For j = 1 To n a(i, j) = InputBox(&输入第& & Str(i) & &行& & &第& & Str(j) & &列元素:&) Print a(i, j); Next j Print Next i sum = 0 For i = 1 To m For j = 1 To n sum = sum + a(i, j) '求和 Next j Next i ave = sum / (m * n) max = a(1, 1) For i = 1 To m For j = 1 To n If a(i, j) & max Then max = a(i, j) Next j Next i min = a(1, 1) For i = 1 To m For j = 1 To n If a(i, j) & min Then min = a(i, j) '求最小值 Next j Next i Print Print Tab(2); &平均值为:&; ave Print Tab(2); &最大值为:&; max Print Tab(2); &最小值为:&; min End Sub Private Sub Command2_Click() End End Sub '求最大值 '求平均值(3)运行情况 运行程序后,需多次调用 InputBox 函数。在调用 InputBox 函数出现对话框时,输入 61 矩阵的行数、矩阵的列数和数组元素的值。例如,输入矩阵的行数 3、矩阵的列数 3 和数 组元素的值 1、2、3、4、5、6、7、8、9。执行结果如图 3.5.6 所示。图 3.5.6第 6 题的执行结果7. 某城市三个百货公司某个季度销售电视机的情况和价格由如下表格表示,求各个 百货公司的电视机营业额。牌子 公司 康 佳 TCL 长 虹第一百货商店 第二百货商店 第三百货商店300 200 280250 240 210150 200 180牌 子 康 佳 TCL 长 虹价 格 00解答: (1) 界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-5-7 所示。表 3-5-7控件名称 Form1 Command1 Command2第 7 题的属性设置属性名 Caption Caption Caption 属性值 计算电视机销售额 开始 结束(2) 程序代码Private Sub Command1_Click() Cls Dim i%, j%, sum!62 Dim a%(1 To 3, 1 To 3), p!(3) Print Print Tab(2); &各百货公司的销售量& Print Tab(20); &康佳&; Tab(30); &TCL&; Tab(40); &长虹& For i = 1 To 3 Print Tab(5); &第& & Str(i) & & 百货公司&; For j = 1 To 3 a(i,j)=InputBox(&输入第& & Str(i) & &百货公司& & &第& & Str(j) & &种牌子销售量:&) Print Tab(j * 10 + 10); a(i, j); Next j Print Next i Print Print Tab(2); &各种牌子价格&; Print Tab(20); &康佳&; Tab(30); &TCL&; Tab(40); &长虹& For i = 1 To 3 p(i) = InputBox(&输入第& & Str(i) & &种牌号价格:&) Print Tab(i * 10 + 10); p(i); Next i Print: Print For i = 1 To 3 sum = 0 For j = 1 To 3 sum = sum + a(i, j) * p(j) Next j Print Tab(2); &第& & Str(i) & &百货公司的销售额为:&; &元& Next i End Sub Private Sub Command2_Click() End End Sub(3)运行情况 运行程序后,需多次调用 InputBox 函数。在调用 InputBox 函数出现对话框时,按表 格中的数据输入每个百货公司销售电视机的数量和各种牌子的价格。执行结果如图 3.5.7 所示。63 图 3.5.7第 7 题的执行结果8.编写一个程序,把一个班学生的姓名和成绩存放到一个记录数组中,然后寻找和输 出最高分者。 解答: (1) 界面设计和属性设置 在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表 3-5-8 所示。表 3-5-8控件名称 Form1 Command1 Command2第 8 题的属性设置属性名 Caption Caption Caption 属性值 查询最高分者 开始 结束(2) 程序代码Private Type stu name As String * 10 score As Integer End Type Private Sub Command1_Click() Dim i%, max%, n% Dim s() As stu n = InputBox(&请输入学生人数:&) ReDim s(1 To n) For i = 1 To n With s(i) .name = InputBox(&请输入第& & Str(i) & &个学生姓名:&) .score = InputBox(&请输入第& & Str(i) & &个学生分数:&)64 End With Next i max = s(1).score For i = 2 To n If s(i).score & max Then max = s(i).score Next i Print Print Tab(4); &最高分数: Print Tab(4); &分数最高者: For i = 1 To n If s(i).score = max Then Print s(i).name End If Next i End Sub Private Sub Command2_Click() End End Sub &; max &;(3)运行情况 运行程序后,需多次调用 InputBox 函数。在调用 InputBox 函数出现对话框时,输入 学生人数、每个学生的姓名和分数,例如,输入 3;李小萍;78;张志明;92;何伟;80。 执行结果如图 3.5.8 所示。图 3.5.8第 8 题的执行结果第6章绘图6.1 填空题 1. 在 VB 中,自定义坐标系除了可以用 ( ScaleLeft ) ( ScaleTop ) 、 、 ( ScaleWidth )和( ScaleHight )等 4 个属性来定义外,还可以用( Scale ) 方法来定义。65 2.若要调整对象的位置和大小,可以使用( Move )方法。 3.若要把窗体移到屏幕中间,使用的语句为( ) 。 答案:Left = (Screen.Width - Width) / 2 Top = (Screen.Height - Height) / 2 4.可以通过设置 Shape 控件的( Shape )属性来绘制各种几何图形。 5. Cls )方法可以清除窗体或图形框中在程序运行时产生的图形和文字。 ( 6. Pset )方法用于单个像素的控制,可以用来设置指定坐标点处像素的色彩。 ( 若要“擦除”坐标为(100,100)的点的颜色,需使用的语句为( Pset (100,100) BackColor ) 。 7. 在程序中的语句 “Line (100,100)-step(50,100)” 执行之后, Currentx 和 Currenty 的值分别为( 150 )和( 200 ) 。 8. 在窗体、 图片框或打印机上绘制经裁剪后的图形文件, 需使用 ( PaintPicture ) 方法。 6.2 选择题 1.VB 中坐标系的默认刻度的单位是缇,我们可以根据需要,用( b 默认刻度的单位。a) Scale b) ScaleMode c) ScaleWidth d)ScaleHeight)属性来改变2.执行下列程序段后,窗体 Form1 右下角的坐标是( d ) 。 Form1.ScaleTop=1 Form1.ScaleLeft=1 Form1.ScaleHeight=-2 Form1.ScaleWidth=2a) (1,1) b) (1,2) c) (-2,2) d) (3,-1) 3.可以通过设置 Line 控件的( d )属性来绘制虚线、点线、点划线等各种样式的 图形。 a) Line b)Style c)Fillstyle d) BorderStyle4.若用水平直线来填充由 Shape 控件,或由 Circle, Line 方法生成图形的内部, 则需设置 FillStyle 的值为( c ) 。a) 0 b) 1 c) 2 d) 35.Point(x,y)方法的功能是( ca) 在坐标(x,y)处画出一点 c) 得到(x,y)处的颜色代码 a) 圆弧 b) 圆) 。b)从点(0,0)到点(x,y)画出一条线 d) 以点(x,y)为圆心画一个圆 c) 椭圆 d) 扇形6.语句“Circle(),500, ,-3.14/2, 3.14”的功能是画出( a ) 。 6.3 问答题 1.窗体的Width,Height属性与ScaleWidth,ScaleHeight属性有什么区别? 答:参见教材6.1。 2.如何使用窗体的4个属性:ScaleLeft,ScaleTop,ScaleWidth和ScaleHeight属性, 66 以及Scale方法建立数学中的笛卡儿坐标系?试举例说明一下。 答:参见教材6.1之自定义规格坐标系。 3.比较使用图形控件和绘图方法绘图的特点。 答:参见教材 6.3,6.4。 4. 把一个具有 Picture 属性的对象中的图形绘制到另一个对象上, 可以用赋值语句修 改对象的 Picture 属性或使用 PaintPicture 方法实现。请比较这两种操作的特点。 答:参见教材 6.4.5。 6.4 阅读下列程序,写出运行结果。 1. Private Sub Form_Click()Scale (0, 0)-() For i = 0 To 7 FillStyle = i Line (80 + i * 300, 200)-Step(200, 200) , , B Next i End Sub答案:2. Private Sub Form_Click() Dim i%, radius% For i = 1 To 100 xpos = ScaleWidth / 2 ypos = ScaleHeight / 2 r = 255 * Rnd g = 255 * Rnd b = 255 * Rnd radius = ypos * Rnd Circle (xpos, ypos), radius, RGB(r, g, b) Next i End Sub答案:画出 100 个圆心在窗体中间的圆,由随机数指定圆的半径和线条颜色。 3.Private Sub Form_Click()Scale (0, 1)-(360, -1) DrawWidth = 3 For x = 0 To 360 y = Cos(x * 3. / 180) PSet (x, y), vbRed y = Sin(x * 3. / 180)67 PSet (x, y), vbBlue Next x End Sub答案:画出一条红色余弦曲线和一条蓝色正弦曲线。 6.5 编程题 1.编写程序,使用绘图方法在窗体上画出一个五角星。 解答: (1)界面设计和属性设置 窗体作为用户界面。窗体的属性 Caption 的值设置为“绘制五角星”,其它属性采用 默认值。 (2)程序代码Private Sub Form_click() Const p = 3. / 180, b = 1200 Line (600, 600)-Step(b, 0) Line -Step(-b * Cos(36 * p), b * Sin(36 * p)) Line -Step(b * S

我要回帖

更多关于 vb int 函数 教案 的文章

 

随机推荐