




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章1选择题 (1)b(2)c(3)c(4)a(5)a(6)d or ab(7)d(8)a(9)c(10)d(11)a第2章1选择题 (1)a b以数字开头;c是vb关键字;d中包含了“-”(减)号 (2)b a是一个字符串变量名;c什么也不是;d是一个变量名 (3)a b是整型;c是字符型;d是双精度型 (4)b(5)d(6)a (7)c 这是一个典型的四舍五入算法,根据这个可以自己写出一个四舍五入函数。 (8)b(9)c(10)c(11)d(12)b(13)a、b(14)d(15)c(16)a(17)b(18)c(19)c(20)c(21)b(22)c (23)a c尽管也是3456,但
2、它是一个数值,而不是字符串,所以c是错误的 (24)d这里要注意的是表达式分为两个部分,后一部分的最小值为-1,前一部分的最大值为5,所以整个表达式的最小值就为-5,而后一部分的最大值为3,所以整个表达式的最大值为15 (25)b(26)c(27)c(28)a(29)a(30)c(31)c(32)a(33)a2判断题 (1)错;(2)错;(3)错;(4)对;(5)错;(6)错;(7)错;(8)对;(9)对;(10)(错, str函数转换正数时前面会有一个符号位表现为空格,正确的应该是7。)(11)错。3按要求写表达式 (1)转换表达式a、(3*a*a+4*b*b*b)/(a-b) (这里的乘方
3、也可以用乘方号)b、6*sin(x+y*y)/(140/(3+a)(这里的3+a可以写成分子的一部分)c、exp(x)+log(10)/sqr(x+y+1)(2)写布尔表达式a、xy and f2b、x=z or y=z 也可写成 (x-z)*(y-z)=0 and xyc、a*b0d、a*b=0 and ab(3)利用函数写表达式a、chr(int(rnd * (asc(l) - asc(c) + 1) + asc(c)也可以写成chr(int(rnd*10+67)b、int(rnd*(200-100+1)+100)c、(x mod 5) *(x mod 7)=0 d、right(x,1)
4、& left(x,1) 也可以写成 (x mod 10)*10+x10 e、round(x,2) or format(x,”#.00”) f、mid(s,5,6) 这道题很多人容易写成mid(“s”,5,6),这就严重错误了。第03章1选择题 (1)c(2)c(3)d(4)a(5)d(6)b(7)d(8)b(9)b(10)a(11)b(12)d(13)a(14)d(15)b(16)d(17)a(18)d(19)b、a(20)b(21)c(22)d(23)a(24)c(25)c(26)a(27)c(28)c(29)d(30)b(31)c(32)b(33)c(34)a(35)c(36)b(37)c
5、 (38)c (39)d2编程题(1) 鸡兔同笼private sub command1_click() dim h as integer, f as integer dim x as integer, y as integer h = val(text1.text) f = val(text2.text) x = (4 * h - f) / 2 y = (f - 2 * h) / 2 label3.caption = 计算结果:鸡有 & x & 只,兔有 & y & 只end sub(2)计算纸币张数private sub command1_click() dim x%, y%, z%, a
6、100%, a50%, a20%, a10%, a5%, a1% x = val(inputbox(请输入支付金额) y = x a100 = x 100 x = x mod 100 a50 = x 50 x = x mod 50 a20 = x 20 x = x mod 20 a10 = x 10 x = x mod 10 a5 = x 5 a1 = x mod 5 z = a100 + a50 + a20 + a10 + a5 + a1 print y & 元需要支付的钱币总张数为: & a100 & + & a50 & + & a20 & + _& a10 & + & a5 & + &
7、a1 & = & z & 张end sub另解,利用数组:option base 1private sub command1_click() dim x%, z%, a(), b%(5), result$ a = array(100, 50, 20, 10, 5) x = val(inputbox(请输入支付金额) result = x & 元需要支付的钱币总张数为: for i = 1 to 5 b(i) = x a(i) x = x mod a(i) z = z + b(i) result = result & b(i) & + next i result = result & x & =
8、 & z & 张 print resultend sub(3)电话号码升位。private sub command1_click() dim x$ x = inputbox(请输入一个带区号的原电话号码,格式为:*-*) msgbox left(x, 4) & 8 & right(x, 7)end sub第04章1选择题 (1)c(2)a(3)c(4)b(5)a(6)a(7)d(8)c(9)c(10)b(11)c(12)元答案 (13)c(14)c (15)c(16)a(17)c(18)a (19)c (20)b(21)b (22)a(23)d(24)c(25)d (26)b(27)d(28)
9、a(29)d2判断题(1)对;(2)对;(3)对;(4)对;(5)错(应该是整型);(6)错;(7)对3根据程序写运行结果(略)4编程题(1) private sub command1_click()dim x%x = inputbox(请输入数值)print tab(2); format$(x * x, #.000); tab(12); format$(sqr(x), #.000); tab(22); format$(x * x * x, #.000); tab(32); format$(x 1 / 3, #.000)如果format函数中小数位用#的时候当不够三位时不足的位不补0。如果用r
10、ound()函数,如果计算结果为整数时,则没有小数位。end sub(2)输入3个数,输出最大最小数private sub command1_click() dim a%, b%, c% form1.fontsize = 20 a = inputbox(请输入第一个数) b = inputbox(请输入第二个数) c = inputbox(请输入第三个数) print a, b, c 先按照升序或降序排序然后再进行取最大最小数 if a b then t = a a = b b = t end if if a c then t = a a = c c = t end if if b c the
11、n t = b b = c c = t end if print 最小数是; a, 最大数是; cend subprivate sub command2_click() 定义变量max用于保存最大数,min保存最小数 dim max as single, min as single dim a as single, b as single, c as single a = val(text1.text) b = val(text2.text) c = val(text2.text) 假设a是最大数,因此将a的值赋给max max = a 用max与b进行比较,若b大于max,则将b赋给max,
12、让max保存前两个数的最大数 if max b then max = b end if 用max与c比较,若c大于max则将c赋给max,让max保存三个数中的最大数 if max b then min = b end if 用min与c比较,若c小于min则将c赋给min,让min保存三个数中的最小数 if min c then min = c end if 显示结果 label2.caption = 最大数为: & max & ,最小数为: & minend sub(3)判断闰年private sub command1_click() dim x%, y% x = val(inputbox
13、(请输入年份) if (x / 4 = x 4 and x / 100 x 100) or x / 400 = x 400 then print x & 是闰年 else print x & 非闰年 end ifend sub(4)判断能否被5整除private sub command1_click() dim a%, b%, c% form1.fontsize = 20 picture1.cls x = text1.text if x mod 5 = 0 then picture1.print 您输入的数能被5整除! else picture1.print 您输入的数不能被5整除! end
14、ifend sub(5)部门征税private sub command1_click() dim tax as single, income as single income = val(text1.text) if income = 0 then 若输入的值小于0则提示错误,并退出该过程,不进行税额的计算 label2.caption = 输入有误. exit sub end if select case income case is = 300 tax = 0 case is = 500 tax = (income - 300) * 0.02 case is x then label1.c
15、aption = 大了点,你还有 & i & 次机会 elseif y x then label1.caption = 小了点,你还有 & i & 次机会 else label1.caption = 恭喜你猜对了! exit for end if next if i = 0 then label1.caption = 很遗憾,你用了8次机会也没猜正确! & vbcrlf & 正确值为: & x end ifend sub(9)100到999之间回文数private sub command1_click() dim n as integer 记录第几个回文数 for x = 100 to 999
16、 g = x mod 10 获取x的各位数 b = x 100 获取x的百位数 若个位数和百位数相等则x就是回文数 if g = b then picture1.print tab(6 * (n mod 8) + 2); x; n = n + 1 end if nextend sub(10)e的近似值方法一private sub command1_click() dim e as single, f as long, n as integer e = 1 f = 1 n = 1 do while f 10 4 f = f * n n = n + 1 e = e + 1 / f loop lab
17、el2.caption = e的近似值为: & eend sub方法二private sub command2_click() dim e as single, f as long, n as integer e = 1 n = 1 do while f 10 4 f = 1 for i = 1 to n f = f * i next n = n + 1 e = e + 1 / f loop label2.caption = e的近似值为: & eend sub(11)1+23+33+n3m的最大nprivate sub command1_click() m = val(text1.text)
18、 if m 200 then label1.caption = m的值小于等于200,重新输入 text1.text = text1.setfocus else s = 0 n = 0 do while s m n = n + 1 s = s + n 3 loop label1.caption = 满足不等式的最大n值是: & n - 1 end ifend sub方法二n的取值范围1m(1/3),按要求我们从m(1/3)(最大的数)开始找符合条件的第一个数就是了private sub command1_click() m = val(text1.text) for n = int(m (1
19、/ 3) to 1 step -1 s = 0 for i = 1 to n s = s + i 3 next if s m then label2.caption = 最大的n为: & n exit for end if nextend sub(12)方法一private sub command1_click() picture1.cls 清除以前输出的内容 for i = 1 to 6 picture1.print spc(15 - i); 在左侧打印n个空格来填充或将spc换为tab for j = 1 to 2 * i picture1.print 0; next picture1.p
20、rint nextend sub方法二private sub command2_click() picture1.cls 清除以前输出的内容 for i = 1 to 6 picture1.print tab(15 - i); string(2 * i, 0) 用string函数产生n个0 nextend sub(13)十进制转二进制 转十六进制private sub command1_click() n = val(inputbox(输入要转换的十进制整数) m = n x = do while n 0 a = n mod 2 n = n 2 x = a & x loop msgbox m
21、& 转换二进制数是: & xend subprivate sub command2_click() n = val(inputbox(输入要转换的十进制整数) m = n x = do while n 0 a = n mod 16 select case a case 10 b = a case 11 b = b case 12 b = c case 13 b = d case 14 b = e case 15 b = f case else b = a end select n = n 16 x = b & x loop msgbox m & 转换十六进制数是: & xend sub(14)
22、解灯谜private sub command1_click() dim a%, b%, c%, d% dim x%, y%, z% for a = 0 to 9 for b = 0 to 9 for c = 0 to 9 for d = 0 to 9 x = a * 1000 + b * 100 + c * 10 + d y = c * 100 + d * 10 + c z = a * 100 + b * 10 + c if x - y = z then print a=; a; b=; b; c=; c; d=; d end if next d, c, b, aend sub方法二priva
23、te sub command2_click() 由题意可知abcd的取值范围是10009999之间,因此通过循环来找出符合条件的abcd for abcd = 1000 to 9999 abc = abcd 10 获取abc的值 c = abc mod 10 d = abcd mod 10 分别获取abcd的十位数c和个位数d cdc = c * 100 + d * 10 + c 计算cdc的值如果符合abcd-cdc=abc则输出 if abcd - cdc = abc then label1.caption = abcd的值为: & abcd exit for end if nextend
24、 sub(15)猴子吃桃private sub command1_click() 验证 m = 1534 s = m for i = 1 to 10 print s s = s - (s / 2) - 1 next i if i = 11 and s = 1 then print send subprivate sub command2_click() 穷举发 for m = 1000000 to 1 step -1 s = m for i = 1 to 9 s = s - (s / 2) - 1 next i if i = 10 and s = 1 then print m next men
25、d subprivate sub command3_click() 思路:假设第n天的桃子为x,前一天(第n-1天)的桃子为y 则x=y-(y/2+1)=x=y/2-1;y=2*(x+1) 现在第十天的桃子是已知的,我们反推到第一天即可 x = 1 for i = 9 to 1 step -1 y = 2 * (x + 1) x = y next print y dim x as integer, i as integer x = 1 for i = 10 to 2 step -1 x = (x + 1) * 2 next i print xend sub第05章1选择题 (1)b(2)a(3
26、)b(4)c(5)b(6)d(7)a(8)b(9)b(10)b(11)a(12)c(13)c(14)d(15)b (16)c (17)b (18)c2编程题(1)private sub command1_click() dim c(0 to 7) a = array(1, 3, 5, 2, 4, 18, 50, 25) b = array(5, 27, 30, 35, 60, 41, 87, 33) for i = 0 to 7 c(i) = a(i) + b(i) next print a(), b(), c() for i = 0 to 7 print a(i), b(i), c(i) n
27、extend sub(2)矩阵找最大元素的行列private sub command1_click() 先声明一个动态数组a,因为其大小不能确定 dim a() as integer n = val(text1.text) m = val(text2.text) 指定数组的大小 redim a(1 to n, 1 to m) as integer picture1.cls 用随机数给数组赋值,并打印到窗体 for i = 1 to n for j = 1 to m a(i, j) = int(rnd * 901) picture1.print tab(5 * (j - 1) + 2); a(i
28、, j); next next 假设第一个元素的值最大,用r和c分别存放最大数所在的行和列 r = 1: c = 1 for i = 1 to n for j = 1 to m if a(r, c) a(i, j) then r = i c = j end if next next label3.caption = 矩阵中的最大值为: & a(r, c) & vbcrlf label3.caption = label3.caption & 位置: & r & 行, & c & 列end sub(3)交换数组元素值private sub command1_click() dim a$(), x,
29、 i%, n% a = split(inputbox(请输入n个数据,数据之间用逗号分隔!), ,) 注意这里的inpubox函数的用法,输出数据时,数据之间应该用英文状态的逗号分隔 print 对换前数据序列为:; for each x in a print x; ; next x print n = ubound(a) for i = 0 to n 2 x = a(i): a(i) = a(n - i): a(n - i) = x next i print 对换后数据序列为:; for each x in a print x; ; next xend sub(4)private sub c
30、ommand1_click() dim x$(), a%(4 to 9), b(), i%, n%, y, k% b = array(无效数据, 小于60分, 6069, 7079, 8089, 90100) x = split(text1, ,) n = ubound(x) for each y in x if y 100 then y = 40 elseif y = 1 and k a(j).cj then k = j next j t = a(k): a(k) = a(i): a(i) = t next i print = for i = 0 to 9 print a(i).bh, a(
31、i).cj next iend sub补充一:打印魔方阵option base 1private sub command1_click() dim a%(), i%, j%, k%, n%, x%, y%, p%, q% do n = inputbox(n=) loop while n 2 = n / 2 redim a(n, n) x = 1: y = n 2 + 1 a(x, y) = 1 先放1 for i = 2 to n * n 再放其它数 p = x: q = y 保留前一个数的位置 x = x - 1 找下一个数的行位置 if x n then y = 1 如果行大于n,让行为1
32、 if a(x, y) 0 then 如果找到的位置已经有数占用 x = p + 1 让下一个数放在上一个数的下一行相同行的位置 y = q end if a(x, y) = i next i for i = 1 to n for j = 1 to n print tab(j * 5); a(i, j); next j next iend sub补充二:杨辉三角option base 1private sub command1_click() dim a%(), i%, j% n = inputbox(n=) redim a(n, n) for i = 1 to n for j = 1 to i if j = 1 or i = j then a(i, j) = 1 else a(i, j) = a(i - 1, j - 1) + a(i - 1, j) end if next j next i 输出直角三角形 for i = 1 to n for j = 1 to i print tab(j * 6); a(i, j); next j next i print 输出等腰三角形 for i = 1 to n for j = 1 to i print tab(40 - i * 3 + j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公司长期发展战略与风险管理的结合试题及答案
- 2025届河南省郑州市中学牟县八年级数学第二学期期末学业水平测试模拟试题含解析
- 用户数据分析与商业决策的关系的试题及答案
- 信息技术对社会的影响分析试题及答案
- 名师引领与教学示范计划
- 贵州省黔西南兴仁市黔龙学校2025届七下数学期末学业水平测试模拟试题含解析
- 通讯行业月度个人工作计划
- 时间管理在工作中的重要性计划
- 物流行业提升效率策略计划
- 城市交通绿地规划重点基础知识点
- 十二木卡姆课件
- 全面轮机英语专业词汇
- 安徽工贸职业技术学院辅导员考试题库
- 光伏系统调试方案
- 广东省珠海市电工等级低压电工作业
- 【国开】2023年春《互换性与技术测量》形考任务一二三四参考答案
- 徕卡v lux4中文说明书大约工作时间和可拍摄图像数量
- 英语演讲知到章节答案智慧树2023年哈尔滨工程大学
- 危险化学品(柴油)储运安全管理考试试题及答案
- 2023年下半年软件设计师上午真题及参考答案
- 中华优秀传统文化智慧树知到答案章节测试2023年青岛黄海学院
评论
0/150
提交评论