第一章程序与编程环境一、填空题1. 工程,Form_Load2. 事件(触发)3. 窗体,Name4. CurrentX, CurrentY5. maxButton, BorderStyle = 1 or 3 or 4 or 56. Alignment, 空缺,AutoSize7. Style, LoadPicture8. Line, Shape9. 重画10. FillStyle ll. MultiLine, maxLength, Locked 12. Font13. sub, 对象名,事件名14. 方法,Object.Method, text1.setfocus()15. Name, minButtom, CurrentX(Y), Caption16. Interval, Enable 17. timer, Interval, ms(毫秒)18. Mouse Down, Click, LoastFocus19. .Frm, .Frx, .bas. cls. Vbp 20. 注释, “Rem 语句”或者“’语句”第二章数据的类型、表示以及运算一、请指出下列哪些是VB的合法常量,并说明原因(1)√(2)X 常量不能加类型说明符号改成123.4 (3)X与上题类似,如果是常量,则类型说明符放在后面(4)√等价于2E3 (5) √(6)√等于十进制的4113(7)X 如果是16进制要写&符号(8)X 指数不能为小数(9)X 月份超过12,日超过31 (10)√(11)√(12)√等价于上一题(13)X 8进制数每一位不能超过8 (14)√(15)X 变量,常量要为基本数据类型的值(16)√二、找出合法变量(1)√(2)√如果与控件Label1同在一个应用程序里面,该变量会屏蔽掉控件Label1(3) X 保留字(4)√(5)X 变量不能以数字开头(6)变量不能有小数点(7)√(8)√数组变量(9)X保留字(10)√可以,但rnd()不可以,rnd()是函数 (11) √(12)√(13)√(14)X ’符号表示注释(15)X 这是表达式,不是变量(16)X 同上,是表达式三、指出下列数据x,y,z的声明是否正确,如果正确请指明其类型(1)√ x--long, y—variant, z—integer(2) √ x—long, y—long, z—integer(3) √ x—double, y—double, z—integer(4) X 变量x &中间不能有空格(5)√自动转换成字符串(6)X 变量声明不能直接赋值(7)√(8)√自动转换成字符串(9)X 常量不能把函数写上去(10)√四、写出下列表达式的结果(1)1 (2) 1 (3)false (4) ab12 (5)123 (6)出错,加法表达式中如果有一个是数值类型,则“+”表示加号,而不是字符的链接符号(7)False (8)true (9) true (10) false 默认转换成相同类型(数值),建议这里把2改成D试试(P.S. 布尔类型TRUE = -1, FALSE = 0;优先顺序:^(乘方)→-(求负)→*、/→\(整除)→MOD→+、-)五、写出下列函数的结果(1)3 (2)2 (3)-2 (4)0 (5)2 (6)23 (7)23 (8)1 (9)1 (10)21 日期差分函数,参数“m”为两年月份之差六、写出满足以下条件的表达式(1)fix(rnd()*90)+10 (2)chr(fix(rnd()*26)+65) (3) (A mod 100)\10(4) A mod B<>0 (5)A>“A”and A<“Z”(6) A<B OR A<C (7)A>C AND B>C(8) (A>C AND B<C) OR (A<C AND B>C) (9) A+B>C AND B+C>A AND C+A>B(10)A=“及格”XOR B=“及格”(11)Round(A/B,2) (12) Len(A)<>0 或 Len(A)>0(13) “A10?”(14) Len(A)>=3七、填空题1. “”, # #2. x>=10 and x<203. (y mod 3=0) or (y mod 7 =0)4. sin(x)^2 + (1/2)*sqr(x^2-y^2)5. 166. T, F7. SIN(ATN(1))8. Randomize9. (c>chr(97) and c<chr(122)) or (c<chr(48) and c>chr(57))10. vbCrLf 11. CInt(), 012. 从第12个月开始,循环一年12个月13. ab, cd0 14. Variant, String, Integer15. Now() 16. DateDif(#2011-5-1#,now(), “m”)八、请指明下列程序运行后,各个变量的值(1) 3 5(2) 120(3) False(4) -3九、分析下面程序中的错误并修改,使其能够完成指定的功能(1)Print 20000+0&+20000或 Print 20000&+20000&(2) 改1:A=xA= a+aB=xB=2*b改2:A=a+x+xB=2*(x+b)第三章程序界面与基本输入输出一、填空题1.Textbox, Inputbox, Label, Textbox, Msgbox, Print2. “,” , “;” , CurrentX, CurrentY3. Print4. AutoSize, Stretch5. Textbox, Label, Textbox, True6. Text1=””, Picture1.cls7. Integer, String8. Textbox, Check , Option, Combo, List9. .setFocus, 失去焦点10. Min, Max, Scroll, Change11. TabIndex12. Enabled, Visible第4章控制结构一、判断题1.X2. X3. √4. X 循环体中改变其值5.√二、填空题1. 顺序,选择,循环2. “A”,”E”, chr(97), “A” to “Z”, Is>0, Else3. 死循环4. 设置计数器5. True/False, 0/16. 0, ListCount-1三、读程序填空1. 88 及格2. Print x; “是偶数”Print x; “是奇数”3.i= Instr(st, “”)right(st, len(st)-i)I = Instr(st, “The”)Left(st, i-1) & right(st, len(st)-i-3)不用填任何东西(这里是旧版书的过程返回)4.is < 0 “无定义”0 to 1 (log(x)/log(2))^2Is >1 sqr(log(x)/log(2))5.40 ,176.*fAbs(x2-x1)<0.000017. while m<>nPrint m (或n)第5章数组和自定义类型一、简答题1.Option Base 1, 只能取0或12.很多情况3.动态数组可重定义,静态数组不可以;动态数组可以用变量,静态数组不可以用变量4.不能,Preserve关键字保留数组原有的内容,但是只能够改变数组的最后一维5.将用引号分隔的字符串塞进数组;UBound(), LBound()在不确定数组上下界情况下可使用或写出的程序更通用6.8字节7.6个元素;[0,2] [3,4]8.这里较为特殊的是List框的Text属性,就是List框所选的内容9.组合框=文本框+列表框;组合框可以输入,列表框不可以;组合框无多选,列表框可以10.自定义类型还没有在内存中分配变量,而自定义变量则是在内存中分配了变量。
(P84)5.6二、指出下列有关数组语句的错误1.Dim a%(10) 或Dim a(10) as Integer2.下界溢出,边界顺序颠倒3.多维数组立面的每一维上界不能为负数4.Option Base 15.静态数组,下标不能是常量6.动态数组重定义只能与声明时的类型相同7.动态数组没有重定义就直接使用8.静态数组不可以重定义9.动态数组用Preserve关键字重定义,只能改变数组的最后一维的大小10.用Array赋值,只能是动态数组11.数组a的类型为字符串,应改为:a$()12.数组重1开始,越界三、写出下面程序的输出结果(1)输出: 14916253649 (2)输出:1 2 32 3 13 2 3 (3)输出:6 12 (4)输出:25 (5)输出:1 2 34 69 (6)输出:21四、程序填空(1)①Rnd()*90+10 ②i+1 to 30 ③a(i)=a(j) ④I mod 2<>0 (2)①Rnd()*90+10 ②arr(i)>50 ③sum+arr(i)(3)①39 to 1 step -1 ② 1 to 40 ③mod(4)①Preserve a(n+1) ②a(i+1)=a(i) ③a(i+1)=m(5)①10 ②10 ③a((i-1)*10+j)(6)①A(i,j) ②A(5-i+1, 5-j+1) ③A(5-i+1,5-j+1) = temp 第6章过程一、简答题1.函数有返回值,过程没有2.形参为定义函数(过程)时的参数;实参为运行函数(过程)时的实际参数3.ByVal创建副本,ByRef不创建副本4.数组只能传地址5.局部、模块级、全局6.静态:生命周期是全局的局部变量,生命周期比普通局部变量要长二、指出下列有关过程声明语句的错误1.X 将保留字Sub作为函数名。
改正:Function sub1%()2.X 生命重复,参数名与函数名一样,编译器分不清哪个是参数,哪个是函数返回值。
改正:Function f%(para%)3.X 过程不应该有返回值。
改正:Sub f()4.X 数组必须为按地址传递,过程不应该有返回值。
改正:Sub f(a%())5.数组参数必须传首地址。
改正:Sub f(a%())三、写出单击命令按钮后下面程序运行结果1.输出:2 342.输出:2533.输出:A=4 b=6 c=6A=8 b=6 c=6 4.输出:357455.输出:3 12 3 6.输出:2 4 6 8四、程序填空1.①flag = -1 ②y + flag * t ③t <= 0.0000001 ④n as Integer ⑤n, x-12. ①n \ 2 ②b(n-i+1) ③a(), 103. ①IsP = True②m mod i = 0 ③P1 and P2 ④IsP(i)(P.S. 这里漏了一段程序IsP()函数)Public Function IsP(m%) as BooleanDim i%IsP = TrueFor I =2 to Int(sqr(m))If m mod I = 0 Then IsP = FalseNext iEnd Function4.①Tag ②t = a(0) ③UBound(A)-1 ④a(j) = t⑤t = A(UBound(A)) ⑥LBound(A)+1 step -1 ⑦a(j) = t第7章外存数据的访问一、填空题(1)Output(2)打开text.txt读入内存(3)Open “c:\test.doc” for Input as #1Open “c:\test.doc” for Append as #1(4)Open fr & “\” & “test.txt” for Input as #1(5)FreeFile()(6)Close, Kill, FileCopy(7)Kill “c:\*.bat”(8)FileCopy “C:\Form1.frm”, “C:\复件Form1.frm”(9)“””, “#”, (无), “,”二、读程序填空(1)①Text = “End”②Write #1, Text (带格式) 或Print #1, Text (不带格式)(2)①k<5 ②s=s+input(1,#1) ③s(3)①for Input as #1 ②Input(Lof(1),#1) ③Close #1④for Output as #1 ⑤Print #1, “Begin”⑥Print #1, s三、简答题(1)顺序读写、随机读写(2)对应文件(外存)的一个缓冲区(内存)句柄,读写文件入口,不可省略(3)Wirte 有格式,Print 无格式(4)可以(5)用Close关闭文件,将缓冲区数据写入文件第8章对话框与菜单的设计一、填空题1. 预定义对话框,通用对话框,自定义对话框2. CommonDialog3. ShowOpen, ShowSave, ShowColor, ShowFont, ShowPrint, ShowHelp4. “-”5. 56. Hide, Unload7. ShowModel 8. ShowColor二、判断题1. √2. X3.X4.X5. √三、读程序填空1. ①showSave ②CommonDialog1.Filename③now(), CommonDialog1.Filename2. ①“窗体文件|*.frm|VB工程文件|*.vbp”②13. ①Form2.Text1 ②Unload Form2第9章绘图一、填空题1. ScaleHeight, ScaleWidth2. DrawWidth3. B, F4. 300, 520二、判断题1. √2. √3. X4. √5. √6. √7. √。