习题第一章程序与编程环境一、填空题1. 工程,Form_Load2. 事件(触发)3. 空缺,空缺4. CurrentX, CurrentY5. maxButton, BorderStyle = 1 or 3 or 4 or 56. Alignment, 空缺,空缺7. Style, LoadPicture8. Line, Shape9. 重画10. FillStyle, maxLength, Locked 12. 空缺13. 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, 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二、简答题(略)三、编程题(略)第四章控制结构一、判断题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)四、编程题(略)第五章数组和自定义类型一、简答题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五、编程题(略)第六章过程一、简答题1.函数有返回值,过程没有2.形参为定义函数(过程)时的参数;实参为运行函数(过程)时的实际参数3.ByV al创建副本,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=64.输出:357455.输出:3 12 36.输出: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五.编程题(略)第七章外存数据的访问一、填空题(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关闭文件,将缓冲区数据写入文件第八章对话框与菜单的设计一、填空题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四、简答题(略)第九章绘图一、填空题1. ScaleHeight, ScaleWidth2. DrawWidth3. B, F4. 300, 520二、判断题1. √2. √3. X4. √5. √6. √7. √三、简答题(略)四、编程题(略)。