VBjava 网络编程框架题 红框那里不知道该怎么写了

下载费用: 10.00 元 &
&&&&&&&&&&&&vb考试复习编程题
vb考试复习编程题
还剩页未读,继续阅读
下载文档到电脑,查找使用更方便
下载需:<b style="color: #ff 元
内容要点:
vb考试复习编程题四、编程题Page 1题号 题干 知识点1编写一个程序,程序运行后的初始界面如所示。当用户在文本框输入姓名,例如输入“张三”,单击“确定”按纽,则程序的运行情况如图所示。单击“进入”按纽,则结束程序运行。顺序结构2编写一个程序,在屏幕上显示“你好,Visual Basic系统”,字体大小设为12磅、颜色为红色,如图所示。单击窗体后,在窗体上显示“初次见面,请多关照!”,同时窗体上出现两个命令按纽“继续”和“结束”,如图所示。如果单击“继续” 按纽,则又回到开始运行状态;单击“结束” 按纽,则结束程序运行。顺序结构3 在文本框(text1)输入一个三位数,单击窗体后,在窗体上打印输出该数的个位数、十位数和百位数。 顺序结构4 编写一个程序,单击窗体后,在窗体上随机位置,随机输出一个大写的英文字母 顺序结构5 利用InputBox输入圆的半径,计算并显示圆的面积。公式为:圆的面积=∏*r*r。 顺序结构、InputBox使用6在窗体上放一个标签Label1, 一个命令按纽Command1,当窗体启动时使标签居于窗体的中间,并显示系统的当前时间,命令按纽显示为“放大”,当单击命令按纽时,将标签中显示文字放大1~3倍(随机确定),并重新显示系统的当前时间。顺序结构、RAND函数7 编写一个华氏温度与摄氏温度的转换程序,效果如所示。转换公式为:F=9/5*C+32, C=5/9*(F-32)。 顺序结构8 编写一个模拟袖珍计算器的程序,运行界面图图如所示。 选择结构、字符串连接9 使用 InputBox输入一个数,判断这个数的奇偶性。 选择结构、InputBox使用10 使用 InputBox输入一个字符,判断你输入的字符的种类。 选择结构、InputBox使用11 编写一个程序, 输入a,b,c三个数,要求按由大到小的顺序把它们打印出来。 选择结构12 输入一个数字(0~6),用中英文显示星期几。当输入数字0后,运行后界面设计如图所示。 多分支选择结构13设计一个“健康秤”,运行界面设计如所示。具体要求如下:A.将两个文本框的对齐方式设置为右对齐,最多接受3个字符。B.单击“健康状况”按钮后,根据计算公式将相应的提示信息通过标签显示在按钮的右面。C.计算公式:标准体重=身高 - 105提示信息:高于标准体重1.1倍为偏胖;低高于标准体重0.9倍为偏瘦;其余为正常。选择结构、基本控件使用14编写一个程序计算,若基本工资大于等于600元,增加工资20%;若小于600元大于等于400元,则增加工资15%;若小于400元则增加工资10% 。请根据用户输入的基本工资,计算出增加后的工资。界面设计自定。选择结构、基本控件使用四、编程题Page 2题号 题干 知识点15设计一个字符大小写转换程序,程序运行界面如图所示。当在文本框Text1中输入大写字母,在文本框Text2中同时显示其小写字母;当在文本框Text1中输入小写字母,在文本框Text2中同时显示其大写字母;当输入其它字符,则在文本框Text2中原样输出。基本控件、大小写转换函数的使用16 求自然数N的阶乘 顺序结构,累乘17 计算一个3位数组成水仙花的个数(一个数的各位的立方和等于这个数本身的数)。运行界面设计:使用一个Picture框,如图所示。 选择结构、控件使用18 求sin(x)=x-x^3/3!+x^5/5!-x^7/7!+………,使精度达到10-5。 顺序结构、选择结构、精度控制19我国古代数学家张丘建在“算经”里提出一个世界数学史上有名的百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏二,值钱一,百钱买百鸡,问鸡翁、母、雏各几何?请编写一程序。多重循环20 设计程序,求s=1+(1+2)+(l+2+3)+…+(1+2+3+…+n)的值 循环结构,累加21 在编辑框中输出100~1000之间能被37整除的数。 循环结构,mod 函数22 编写一程序。有一根100米长的线段,每天剪掉一半,一直剪到小于0.1为止,请问几天后可剪完。 循环结构23 编程序打印由数字组成的如图所示的金字塔图案。 循环结构、打印控制24输入整数n,则显示出具有n行的杨辉三角形,运行界面设计如图所示。分析:解决此题所用方法的要点是:定义一个二维数组A,在该数组中,每—行的第一个元素和最后一个元素都为1,其余各元素等于它上面一行的同一列和前—列数据之和。数组+循环结构25 编一个程序,随机产生一个5*5矩阵,打印并输出5*5方阵中的下三角和上三角元素。 数组+循环结构26建立一个输入界面,完成田径比赛报名的录入功能。选择最合适的控件输入班级、姓名、性别、组别、项目信息。使用自定义类型将输入的内容保存在数组中,程序运行界面如图所示。数组+循环结构27随机产生10个任意的二位正整数存放在一维数组中,求数组的最大值、平均值、能实现将数据按升序排列,并且使用InputBox函数插入一个新数据使数组仍然升序排列,结果显示在图片框中,程序运行情况如图所示。数组+循环结构、随机函数28 用随机函数产生50个10~100之间的整数,并按升序且每行10个数打印输出到窗体上。 数组+循环结构、随机函数29利用随机数生成两个3*3矩阵(数据不一定相同,前者元素取值范围30~70、前者元素取值范围101~135)。要求:在Form_Load事件过程中对A、B数组生成随机数;将两个矩阵A、B相加,结果放入矩阵C中。程序运行界面自行设计。 数组+循环结构、随机函数30 利用随机数生成4*3矩阵A(数据不相同,元素取值范围20~70),将矩阵A转置。程序运行界面自行设计。 数组+循环结构、随机函数31 利用随机数生成一个5*5矩阵C、前者输入决定。要求:找出矩阵C最大值和下标。程序运行界面自行设计。 数组+循环结构、随机函数四、编程题Page 3题号 题干 知识点32利用随机数生成两个4*4矩阵(前者元素取值范围30~70、前者元素取值范围101~138)。要求:在Form_Load事件过程中对A、B数组生成随机数;在list1框中以下三角形式显示矩阵A、上三角形式显示矩阵B。程序运行界面自行设计。数组+循环结构、随机函数33利用随机数生成 4*6 矩阵A(数据为两位数整数)。要求:在list1框中矩阵A,将矩阵A的第一行与第三行对应元素交换位置,结果在list2框中显示。程序运行界面自行设计。 数组+循环结构、随机函数34 利用随机数生成 5*5 矩阵A(数据为两位数整数)。要求:在list1框中矩阵A,求矩阵A两条对角线元素之和,结果在exit1框中显示。 数组+循环结构、随机函数35 利用随机数生成5*5矩阵A(数据为两位数整数)。要求:在list1框中矩阵A, 将矩阵A按列转换成一维数组,结果在exit1框中显示。? 数组+循环结构、随机函数36 随机产生10个1~100的正整数方入数组,在Form中显示产生的数,并求出最大值、最小值、平均值。运行界面设计如图所示。 数组+循环结构、随机函数37编一个程序,随机产生100个整数,放入数组a中。将其中的偶数放入数组b中,然后运用选择发将数组b中的数据从大到小的顺序进行排序,并将数组b以每行10个数据在窗体上输出。数组+循环结构、随机函数38 在一维数组中利用元素移位的方法显示如图所示的结果。 数组+循环结构、随机函数39 编制程序,用随机函数产生20个两位数的整数,存于4行5列的二维数组中,将数组按行(矩阵形式)输出到窗体,并求出其中的最大元素及它的行、列坐标。 数组+循环结构、随机函数40规范整理英语文章,即对输入的任意大小写英语文章进行整理。要求:句子开头应为大写字母(句子以符号" ?"、"."和"!"作为结束符的),其它都是小写字母。提示:设置一个变量,存放当前处理字符的前一个字符,来判断前一字符是否为句子结束符。判断、循环结构、len函数41 编一使用子过程的程序,子过程的作用为交换两个整型变量值,如图所示。 子过程、过程调用42分别编写计算下列级数的子过程和函数过程,并在窗体的作用单击事件中调用,如图所示。级数为:s=x/2!+x^3/4!+…+x^(2*n-1)/(2*n)!要求精度为:abs(x^n/(2*n)!<10^(-6)子过程、函数过程、过程调用43 编写函数过程max,求数组中最大值。按command命令按钮,使用随机函数产生10~100 之间的10个随机数给数组赋初值,然后调用max,输出最大值。 函数过程、过程调用四、编程题Page 4题号 题干 知识点44输入一系列字符串,按升序排列输出。程序运行后的窗体界面如图所示。要求:a.按回车键后即把该字符串存放到数组中,并输出在排序前的文本框text2中。B.单击“排序”命令按纽,字符数组“升序” 排序,并在排序后的文本框text3中输出。提示:a.定义窗体级字符型动态数组s和整型变量n(表示输入字符串的个数),即在通用声明段声明如下:dim n as integer,s() as stringb.文在本框text1的KeyPress事件中编写程序处理单词,并存入数组中,同时记录输入次数。Private Sub Text1_KeyPress(KeyAscii As Integer)Dim I As Integer, j As Integer, k As Integer, t As StringIf KeyAscii = 13 Then...End IfEnd Sub数组+循环结构、随机函数45 编写一个子过程用于判断给定的任意正整数是否是素数,并在“调用子过程”按钮中vb考试复习编程题
暂无评论,赶快抢占沙发吧。第 4 章程序设计结构 程序填空题(1 个空)在以下各题的下划线处填写正确的内容,以实现要求的功能。 1. 下面的语句用于实现: 当 C 字符串变量中第三个字符是“C”时, 利用 MsgBox 显示“Yes”, 否则显示“No”。 If_________Then MsgBox(“yas”) Else MsgBox(“No”) 答案:Mid(c,3,1) = “C” 2.输入一个数,判断其为偶数还是奇数,并用消息框显示出结果,如“您输入的数2是 偶数”。 Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click Dim X As Integer Dim Y As String X = InputBox(&请输入X的值:&) _____________________________ MsgBox(&您输入的数& & X & Y) End Sub 答案:3.IF X MOD 2=0 THEN Y=&是偶数& ELSE Y=&是奇数& 3.要求下面代码段中的循环体执行 3 次。 Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click Dim x as integer x=1 Do While _______ x=x+2 Loop End Sub 答案: x&7程序填空题(2 个空)1、 输入一个年份, 判断它是否为闰年, 并显示是否是闰年的有关信息。 判断闰年的条件是: 年份能被 4 整除但不能被 100 整除,或能被 400 整除。同时应用日期型变量的 IsLeepYear 函数来验证。 Sub Button4_Click(....) Handles Button4.Click Dim d As Date d=Now If___(_1_)____ Or d.year Mod 400=0 Then MsgBox(d.Year & “是闰年”) Else MsgBox(d.Year & “是平年”) End If If IsLeepYear(____2____) Then MsgBox(d.Year & “是闰年”) Else MsgBox(d.Year & “是平年”) End If End Sub 答案:(1) d.year mod 4=0 and d.year mod 100&&0 (2) d.year 2.下列程序用于求 S=1+3+32+33+…+310 的值。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Handles Button1.Click Dim s As integer,t As integer,i As integer s=__(1)____ For i=1 to 10 t=__(2)_____ s=s+t Next i Lable1.text= "s="& s End Sub 答案:(1) 1 、(2)3^iSystem.EventArgs)3.以下程序用来输出 25 个开区间(10,87)中的随机整数,并且每行打印 5 个。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim r%,i% Label1.text="" For i=1 to 25 r=___(1)_____________ Label1.text &= r If ___(2)_____ Then Label1.text &= VbCrLf Next i End Sub 答案:(1) int(rnd*76+11) 、(2) i mod 5=04.搬砖问题:36 块砖,36 人搬,成人男的搬 4 块,成人女的搬 3 块,2 个小儿抬 1 块,要 求 1 次全部搬完,问需要成人男、成人女、小儿各多少人? Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click Dim male%,female%,boy% Label1.text="" For male=1 to 9 For female=1 to (1) For boy=2 to 36 step 2 If boy+female+male=36 and (2) then Label1.text &= "male="& male &" ,female="& female &" ,boy="& boy End If Next boy Next female Next male End Sub 答案:(1) 12 、(2) male*4+female*3+boy/2=36 5.计算 s=1+3+5+...+99 Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.ClickDim i As Integer, sum As Integer Dim i%,s% s=0 For i = 1 To 100 Step (1) (2) Next Label1.Text = s End Sub 答案:(1) 2、(2) s=s+i6. 输入任意长度的字符串,要求将字符顺序倒置。例如,将输入的 “ABCDEFG” 变换成 “GFEDCBA”。 Sub Button1_Click(......) Handles Button1.Click Dim a$, I%, c$, d$ a=InputBox$(“输入字符串”) d=”” For I=(1) To1 Step -1 c=Mid(a,I,1) d=d &(2) Next I MsgBox(d) End Sub 答案:(1) len(a)、(2) c 7.找出被 3、5、7 除,余数为 1 的最小的 5 个正整数。 Sub Button1_Click(......) Handles Button1.Click Dim CountN% , n% CountN=0 n=1 Do n=n+1 If__(1)_______ Then MsgBox(n) countN=CountN+1 End If Loop___(2)_____ End Sub 答案:(1) n mod 3=1 and n mod 5=1 and n mod 7=1 、(2) while countn&58.有个长阶梯,如果每步跨 2 阶最后剩 1 阶,如果每步跨 3 阶最后剩 2 阶,如果每步跨 4 阶 最后剩 3 阶,如果每步跨 5 阶最后剩 4 阶,如果每步跨 6 阶最后剩 5 阶,只有当每步跨 7 阶时恰好走完,显示这个阶梯至少要有多少阶。 提示:利用其是 7 的倍数这个条件,然后根据同时满足除 n 余 m(n=2,3,4,5,6;m=1, 2,3,4,5)的逻辑关系即可。 Sub Button1_Click(......) Handles Button1.Click Dim n%, m% For n=7 To 10000 Step 7 If n Mod 2=1 And ____(1)___________________________________________ Then MsgBox(n) ___(2)____________ End If Next End Sub 答案:(1) n mod 3=2 and n mod 4=3 and n mod 5 =4 and n mod 6 =5 、(2) exit for程序填空题(3 个空)1、下面的程序段根据输入的整数X的值,给出相应的提示,要求如下: 当 x &100时显示&X&100& 当 100 &= x &= 500时显示&100≤X≤500& 当 x &500时显示&x&500& Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click Dim x%,Y$ x = InputBox(&请输入x的值:&) Select Case x Case Is & 100 (1) Case (2) Y = &100≤X≤500& Case (3) Y = & x &500 & End Select MsgBox(Y) End Sub 答案:(1) Y = &X&100& 、 (2) 100 To 500 、 (3) Else 2.下面的程序段是检查输入的算术表达式中圆括号是否配对,并显示相应的结果。本程序 在文本框中输入表达式,边输入边统计,以输入回车符作为表达式输入结束,然后显示结 果。 Dim count1%=0 Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If (1)= &(& Then count1 = count1 + 1 ElseIf e.KeyChar = &)& Then count1 = (2) End If Label1.Text = count1 If Asc(e.KeyChar) = 13 Then If (3) Then MsgBox(&左右括号配对&) ElseIf count1 & 0 Then MsgBox(&左括号多于右括号& & count1 & &个&) Else MsgBox(&右括号多于左括号& & count1 & &个&) End If Exit Sub End If End Sub 答案:(1) e.KeyChar 、(2) count1 - 1 、(3) count1 = 0 3.以下程序产生 20 个随机的 10~99 之间的整数,找出其中的奇数,并将其以每行 4 个数显 示在标签中。 Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click Dim i%,x%,k% Label1.text=〃〃 Randomize() For i = 1 To 20 x = Int(Rnd ()*__(1)______) If _____(2)_____Then Label1.text &= x &〃〃 k=k+1 If ___(3)______ Then Label1.text &= x & VbCrLf End If End If Next i End Sub 答案:(1) 90+10 、(2) x mod 2=1 、(3) k mod 4=0程序填空题(4 个空)1.输入若干个英文字母,统计有多少个元音字母,有多少个其他字母,直到按 Enter 键结 束,显示结果,字母大、小写不区分。其中 Count Y 中放元音字母个数,Count C 中放其他 字母个数。 Dim CountY% , CountC% Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim c As Char c=__(1)______ If “A”&=c And c&= “Z”Then Select Case__(2)_______ Case_____(3)____ CountY=CountY+1 Case Else CountC=CountC+1 End Select End If If ____(4)____ Then MsgBox(“元音字母有”& CountY & “个”) MsgBox(“其他字母有” & CountC & “个”) End If End Sub 答案:(1) ucase(e.KeyChar) 、(2) c (3) &A&,&E&,&I&,&O&,&U& 、 (4) Asc(e.KeyChar) = 13 2、用 If 语句,Select Case 语句两种计算方法计算分段函数 y=x2+3x+2 (x&20) y=1/2+|x| (x&10) y=Sqrt(3x)-2 (10&= x &=20) Sub Button1_Click(....) Handles Button1.Click Dim x! , y! x=Val(TextBox1.Text) If__(1)______ Then y=x*x+3*x+2 ElseIf__(2)_______ Then y=1/2+Math.Abs(x) Else y=Math.Sqrt(3*x)-2 End If MsgBox(“y=”& y) End Sub Sub Button2_Click(....) Handles Button2.Click x=Val(TextBox1.Text) Select Case x Case____(3)______ y=x*x+3*x+2 Case____(4)______ y=1/2+Math.Abs(x) Case Else y=Math.Sqrt(3*x)-2 End Select MsgBox(“y=”& y) End Sub 答案:(1) x&20 、(2) x&10 、(3) IS & 20 、(4) IS &103、输入三角形的三边 a、b、c 的值,根据其数值,判断能否构成三角形。若能,还要显示 三角形的性质:等边三角形、等腰三角形、直角三角形、任意三角形。 Sub Button3_Click(....) Handles Button3.Click Dim x%, y%, z% x= Val(InputBox(“input x”)) y= Val(InputBox(“input x”)) z= Val(InputBox(“input x”)) If____(1)______ Then Msg(“能构成三角形”) If____(2)_____ Then Msg(“是等边三角形” ElseIf ___(3)_____ Then Msg(“是等腰三角形”) ElseIf Math.Sqrt(x*x+y*y)=z Or Math.Sqrt(y*y+z*z)=x Or Math.Sqrt(x*x+z*z)=y Then Msg(“是直角三角形”) Else __(4)_______ End If Else MsgBox (“不能构成三角形”) End If End Sub 答案:( 1) x+y&z and math.abs(x-y)&z or x+z&y and math.abs(x-z)&y or y+z&x and math.abs(y-z)&x (2)x=y and x=z (3)x=y and x&&z or x=z and y&&z or y=z and x&&y (4)Msg(“是任意三角形”)4.某班在一周中 6 天内考三门分别为 x、y、z 的课程,规定一天只能考一门,先考 x,后考 y,最后考 z,最后一门最早周五考。用计算机排考试时间,列出满足条件的方案数。 Sub Button1_Click(......) Handles Button1.Click Dim x%, y%, z%, n% n=0 Label1.Text= “” For x=1 To 4 For y=__(1)______To 5 For z=5 To 6 If__(2)_____ And y&z Then Label1.Text &=x &space(9) & y & Space(9) & z & vbCrlf __(3)__________ End If Next Next Next ___(4)_____ “满足条件的方案为;” & n End Sub 答案: (1) 2 、(2)x&y 、(3) n=n+1 、(4) Label1.Text &=程序填空题(5 个空)1.某次大奖赛,有 7 个评委打分,以下程序是针对一名参赛者,输入 7 个评委的打分分数, 去掉一个最高分、一个最低分,求出平均分,为该参赛者的得分。 Sub Button1_Click(......) Handles Button1.Click Dim mark!,aver!,max1!,min1! aver=0 For i=1 To 7 mark=InputBox(“输入第”& i & “位评委的打分”) If i=1 Then max1=mark:___(1)_________ Else If mark&min1 Then _____(2)______ ElseIf mark&max1 Then ____(3)_______ End If End If _____(4)______ Next i aver=_____(5)_____ MsgBox(aver) End Sub 答案: (1) min1=mark、(2)min1=mark 、 (3)max=mark 、(4)aver +=mark 、(5)(aver-min1-max1)/5第 5 章枚举数组结构 程序填空题(2 个空)1.以下程序代码实现 1~10 之间任意数的阶乘。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim s%, x%,n% n=inputbox(〃请输入一个 1~10 之间的任意整数〃) x=1 s =(1) While x &=n s = (2) x=x+1 End While Label1.Text = s End Sub 答案: (1)1 、(2) s*x 2.已知数组 arr 中包含 10 个元素,并已按升序排列,现任意输入一个数插入到该数组中, 插入后数组中的元素仍按升序排列。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim arr() As Integer = {8, 16, 22, 35, 45, 51, 63, 76, 84, 90} Dim n%, i% Label1.Text = && (1) &#39;重新指明数组大小,并保留原来的值 n = Val(InputBox(&请输入一个数&)) For i = 9 To 0 Step -1 If (2) Then arr(i + 1) = n : Exit For arr(i + 1) = arr(i) Next i If n &= arr(0) Then arr(0) = n For i = 0 To 10 Label1.Text &= arr(i) & & & Next i End Sub 答案:(1)ReDim Preserve arr(UBound(arr) + 1) 、(2) n & arr(i)程序填空题(3 个空)1. 下面程序对已知数组 a() ,删除数组中某个元素。 Sub Button1_Click(... ...) Handles Button1.Click Dim a() As Integer={1,6,8,3,5,9,10,2,7,4} ,Key%, i%, j% Key=Val(InputBox(“输入要删除的值”)) For i=0 To UBound(a) If___(1)___________ Then For j=i+1 To UBound(a) ___(2)______________ Next j ReDim ____(3)___________ MsgBox(“删除完成”) Exit Sub End If Next i MsgBox(“找不到要删除的元素”) End Sub 答案: (1)Key = a(i) 、(2) a(j - 1) = a(j) 、(3) Preserve a(UBound(a) - 1) 2.矩阵相乘 两个矩阵能相乘的必要条件是:前一个矩阵的列数等于后一个矩阵的行数。矩阵 A 乘矩阵 B,得矩阵 C。方法是 A 的第一行元素分别对应乘以 B 的第一列元素各元素,相加得 C11, A 的第一行元素对应乘以 B 的第二列各元素,相加得 C12,以此类推,C 的第二行元素为 A 的第二行元素按上面方法与 B 各列相乘所得结果, 以此类推。 例如, 已知 A 为 n× k 的矩阵, B 为 k× m 的矩阵,A× B 的结果 C 矩阵为 n× m,即: Sub Button1_Click(.....) Handles Button1.Click Dim a%(2,3),b%(3,2),c%(2,2),i%, j%, n%, k% Label1.Text=“” n=5 For i=1 To 2 For j=1 To 3 a(i,j)=n _____(1)___________ n=____(2)________ Next j Next i For i=1 To 2 For j=1 To 2 c(i,j)=0 For k=1 To 3 c(i,j)=c(i,j)+__(3)__________ Next k Label1.Text &=c(i,j) & “ ” Next j Label1.Text &=vbCrLf Next i End Sub 答案:(1)b(j, i) = n 、(2) n + 5 、(3) a(j, k) * b(k, i)程序填空题(4 个空)1. 以下程序代码实现单击命令按钮时输出一个主对角线上元素值为 1、 其余元素为 0 的 9× 9方阵。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a(9, 9) As Integer, i%, j% Label1.Text = && For i = 1 To 9 For j = 1 To 9 If i = j Then (1) Else (2) End If Next j Next i For i = 1 To 6 For j = 1 To 6 Label1.Text &= (3)& & & Next j Label1.Text &= (4) Next i End Sub 答案: (1)a(i, j) = 1 、(2) a(i, j) = 0 、(3) a(i, j) 、(4) vbCrLf2. 在一维数组中利用移位的方法显示如图 2-1 所示的结果。 Sub Button1_Click(.....) Handles Button1.Click Dim a(7) As Integer, i%, t%, j% Label1.Text= “” For i=1 To 7 a(i)=i Label1.Text &=a(i) & “ ” Next i Label1.Text &=vbCrLf For i=1 To 7 t=___(1)__________ For j=6 To 1 Step -1 ____(2)______ Next j a(1)=_______(3)____ 图 2-1 数组循环右移 For j=1 To 7 Label1.Text &=a(j) & “ ” Next j Label1.Text &=__(4)_______ Next i End Sub 答案: (1)t = a(7) 、(2) a(j + 1) = a(j) 、(3) t 、(4) vbCrLf3. 改进的冒泡法排序。 在教材中已介绍选择法、冒泡法。本例使用改进的冒泡法排序,冒泡法排序在每一轮排序 时将相邻的两个数比较,当次序不对就交换位置,出了内循环,最大数已沉底,小数上浮; 每一轮仅使沉底的数确定了位置,有个 n 个数,外循环要进行 n-1 轮排序。为了提高效率, 若在某一轮排序时,未发生排序位置交换,说明欲排序的序列已有序,排序就可以结束。 在程序中增加一个逻辑变量来进行判断即可。程序如下: Sub Button1_Click(... ...) Handles Button1.Click Dim Tag As Boolean ,n%, j%, i%, t% Dim a( ) As Integer={1,5,6,7,4,13,23,26,31,51} n=UBound(a) For i=0 To n-1 Tag=False For j=0 To n-1-i If a(j)&a(j+1) Then ___(1)________ _____(2)______ _____(3)______ a(j+1)=t End If Next j If Not Tag Then ___(4)________ Next i For i=0 To UBound(a) Label1.Text &=a(i) & “ ” Next i End Sub` 答案:(1)Tag = False 、(2) t = a(j) 、(3) a(j) = a(j + 1) 、(4) Exit For程序填空题(5 个空)1.随机产生 15 个不重复的 A-Z 之间的字母(包括 A,Z 的大写字母) ,存放在字符数组中。 实现的思想是,每产生一个字母,在数组中查找已产生的字母。若找到,刚产生的字母 作废,重新产生;如果找不到,则产生字母放入数组中。 Sub Button1_Click(.....) Handles Button1.Click Dim s(14) As Char ,c As Char, n%, j% Label1.Text = && s(0) = Chr(Int(Rnd() * 26 + 65)) For n = 1 To 14 c = (1) For j = 0 To (2) &#39;若找到有重复字母,重新产生 If s(j) = c Then (3) Next j If j = 15 Then s(n) = (4) Else n = (5) &#39;没有重复的加入数组中 Next n For j = 0 To 14 Label1.Text &= s(j) & & & Next j End Sub 答案: (1)Chr(Int(Rnd() * 26 + 65)) 、(2) 14 、(3) Exit For (4) c 、(5) n-1 2.输出大小可变的正方形图案,如图 2-3 所示,最外圈是第一层,要求每层上用的数字与 层数相同。 [提示] 从最外层开始往里层填充数, 里面层覆盖外面已填过的数据, 当 I=1 时, 填 9*9 个 1, 当 I=2,填 7*7 个 2, ……。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a( , ) As Integer, N as Integer Dim I As Integer, J As Integer, k% Label1.Text = && N = InputBox(&输入 N:&) &#39;本例 n=9 (1) For I = (2) &#39;每一层图案上要显示的数字 For J = I To N - I + 1 &#39;从外到里将数组中元素存放对应的数字 For k = I To N - I + 1 (3) Next k Next J Next I For I = 1 To N For J = 1 To N Label1.Text &= (4) Next J Label1.Text &= (5) 图 2-3 数字填充的方形图案 Next I End Sub 答案:(1)ReDim a(N, N) 、(2) 1 To N 、(3) a(J, k) = I (4) a(I, J) & & & (5) vbCrLf程序填空题(6 个空)1.随机产生 15 个 A-J 的大写字母,按字母降序排序后,将连续出现的字母用压缩的形式显 示。 例如, 连续 5 个 H 字母显示为 5*H, 如图 2-2 所示。 数组 a () 用于存储随机产生字母。 Sub Button1_Click(.....)Handles.Click Const N = 14 Dim a(N) As Char, c As Char Dim count%, i%, k%, j% Label1.Text = && For i = 0 To N a(i) = (1) Label1.Text &= a(i) & & & Next i Label1.Text &= vbCrLf For i = 0 To N - 1 k=i For j = i + 1 To N If a(j) & a(k) Then (2) Next j c = a(i) : (3) : a(k) = c Next i For i = 0 To N &#39;输出排序的结果 Label1.Text &= a(i) & & & Next i Label1.Text &= vbCrLf i=0 Do While i &= N &#39;压缩显示相同元素 count = 1 If i & N Then j = i + 1 Do While a(i) = a(j) If i && j Then count = (4) If j & N Then j = j + 1 Else Exit Do Loop If count = 1 Then Label1.Text &= a(i) & & & Else Label1.Text &= (5) End If i = i + (6) Loop End Sub图 2-2 字母排序及压缩显示 答案: (1) Chr(Int(Rnd() * 26 + 65)) 、(2) k = j 、(3) a(i) = a(k) (4) count + 1 、(5) count & &*& & a(i) & & & 、(6) count 第 6 章过程 程序填空题(3 个空)1.下面 Function 过程 Power 用来计算 x 的 y 次幂。以下程序实现,运行时,单击窗体,调用 该过程打印 51、52、53、54、55 的值。 Function Power(ByVal x As Single, ByVal y As Integer) As Single Dim r As Long r=1 Do While y & 0 r =(1) y =(2) Loop Power = r End Function Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim i% For i = 1 To 5 Label1.Text &=(3)& &,& Next End Sub 答案:(1)r * x 、(2) y C 1 、(3) Power(5, i) 2.根据输入的 n 和 m,计算并输出排列数的值,计算公式为:P(n,m)=n!/(n-m)!,其中阶乘 运算用函数过程实现。 Public Function jc(x as integer) as long Dim i as integer, t as long t=1 for i=1 to x t=t*i next i ____(1)_____ End Function Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim p as long n=val(Inputbox(“n=”)) m=val(Inputbox(“m=”)) p=_______(2)_________ msgbox(“P(n,m)为” & ___(3)________) End Sub 答案:(1) jc=t 、(2) jc(n)/jc(n-m) 、(3)p 程序填空题(4 个空)1.两个质数的差为 2,称此对质数为质数对,下列程序是找出 100 以内的质数对,并成对显 示结果。其中,函数 IsP 判断参数 m 是否为质数。 Public Function IsP(ByVal m) As Boolean Dim i% (1) For i = 2 To Int(Math.Sqrt(m)) If (2) Then IsP = False : Exit For Next i End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim p1, p2 As Boolean, i% Label1.Text = && p1 = IsP(3) For i = 5 To 100 Step 2 p2 = IsP(i) If (3) Then Label1.Text &= i - 2 & & & & i & vbCrLf p1 = (4) Next i End Sub答案: (1)IsP = True、(2) m Mod i = 0 、(3) p1 And p2 、(4)IsP(i)5.子过程 CountN 用来统计字符串中各数字字符(“0”~“9”)出现的个数;主调程序实现在 TextBox1 框输入的文本,每次单击“统计”按钮,调用该子过程,在 Label1 框中显示结果。 Public Class Form1 Sub CountN((1)) Dim c As Char, i%, m%, j% For i = 0 To 9 num(i) = 0 Next i m = Len(s) For i = 1 To m c = (2) If c &= &0& And c &= &9& Then j = Val(c) num(j) = (3) End If Next i End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim n(9) As Integer, i% Call CountN(n, TextBox1.Text) Label1.Text = && For i = 0 To 9 If (4) Then Label1.Text &= i & & 的个数有 & & n(i) & vbCrLf End If Next i End Sub End Class 答案:(1)ByRef num() As Integer, ByVal s$ (3) num(j) + 1 、(4) n(i) 、(2) Mid(s, i, 1)程序填空题(5 个空)1.以下过程将一个有序数组中重复出现的数进行删除,删得只剩一个。解题思想是从数组最 右边往左边两两比较,若相同,右边的数依次往左移,数组上界元素减 1,实现删除。 Sub p((1)) Dim m%, k% n = UBound(a) m=n Do While (2) &#39;从右往左比较,压缩 If a(m) = a(m - 1) Then For k = (3) a(k - 1) = a(k) Next k n = (4) End If m = (5) Loop ReDim Preserve a(n) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim b( ) As Integer={23,45,45,60,70,70,70,90},i%, n% Label1.Text = && Call p(b, n) For i = 0 To n Label1.Text &= b(i) & & & Next i End Sub 答案:(1)ByRef a() As Integer, ByRef n% 、(2) m & 0 (4) n - 1 、(5) m - 1 、(3) m To n程序填空题(6 个空)1.子过程 MoveStr()是把字符数组移动 m 个位置。当 Tag 为 True,左移,则前 m 个字符移到 字符数组尾,例如,“abcdefghij”左移三个位置后,结果为“defghijabc”;当 Tag 为 False,右 移,则后 m 个字符移到字符数组前,如“abcdefghij”右移三个位置后,结果为“hijabcdefg”。 子过程如下: Public Sub MoveStr(ByRef a$(), ByVal m%, ByVal Tag As Boolean) Dim i%, j%, t$ If (1) Then For i = 1 To m (2) For j = 0 To (3) a(j) = a(j + 1) Next j (4) Next i Else For i = 1 To m (5) For j = UBound(a) To 1 Step -1 a(j) = a(j - 1) Next j (6) Next i End If End Sub 答案:(1)Tag 、(2) t = a(0) 、(3) UBound(a) - 1 、(4)a(j) = t (5)t = a(UBound(a)) 、(6) a(0) = t第 7 章文件 程序填空题(3 个空)1.顺序文件的建立。建立顺序文件 C:\Stud.txt,内容来自文本框,每按一次 Enter 键写入一 条记录,然后清除文本框的内容,直到文本框内输入“END“字符串。 Sub Form1_Load(.....) Handles MyBase.Load __(1)____ TextBox1.Text=”” End Sub Sub TextBox1_KeyDown()Handles TextBox1.KeyDown If __(2)_____ Then If TextBox1.Text=“END”Then FileClose(1) End Else __(3)_____ TextBox1.Text=“” End If End If End Sub 答案: (1)FileOpen(1,”C:\Stud.txt”,OpenMode.OutPut) (2)e.KeyCode=Keys.Enter 、(3)WriteLine(1,TextBox1.Text) 2.文本文件合并。将 c:\t2.txt 文件文件合并到 C:\T1.txt 文件中。 Sub Button1_Click(........)Handles Button1.Click Dim Str As String FileOpen(1,”C:\T1.txt”,__(1)_____) FileOpen(2,”C:\T2.txt”,__(2)_____) Do While Not EOF(2) ___(3)_____ PintLine(1,Str) Loop FileClose() End Sub 答案: (1)OpenMode.Append 、(2) OpenMode.Input 、(3)Str=LineInput(2)3.以下代码求 100~200 之间的所有质数。要求把质数的个数显示在窗体上,并把质数依次写 入顺序文件 d:\data.txt 中。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Long, flag As Long, n% FileOpen(1, &D:\data.txt&, (1) ) For n = 100 To 200 flag = 0 For i = 2 To Int(Math.Sqrt(n)) If n Mod i = 0 Then flag = 1 Exit For End If Next i If flag = 0 Then (2) End If Next n (3) End Sub 答案: (1)OpenMode.Output、(2)Print(1, n) 、(3)FileClose(1)4. 在 D 盘根目录下建立名为 StuData.txt 的顺序文件, 要求用 InputBox 函数输入 5 个学生的 学号、姓名和英语成绩,并写入文件。 Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim i%, stuNo$, stuName$, stuEng! FileOpen( (1) ) For i = 1 To 5 stuNo = InputBox(&输入学号:&) stuName = InputBox(&输入学号:&) stuEng = InputBox(&输入英语成绩:&) (2) Next (3) End Sub 答案: (1)1,&d:\StuData.txt&,OpenMode.Output (2)Write(1, stuNo, stuName, stuEng) 、(3)FileClose(1)5. 以下程序的功能是:把当前目录的顺序文件 test.txt 的内容读入内存,并在文本框中显示 出来。 Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim in $ Text.Text=“” FileOpen(1,”test.txt”, (1) ) Do While (2) Input(1,in) Textbox1.Text &=in Loop CloseFile( (3) ) End Sub 答案:(1) openmode.input 、(2) not eof(1)、(3) 1程序填空题(4 个空) 1.随机文件的修改。对已建立的有若干条记录的随机文件 C:\Stud.dat 的,记录类型为: Module Module1 Structure Stud Dim no As Integer &VBFixedString(4)& Dim name As String Dim mark As Single End Structure End Module 下面程序记录代码是读出 3 号记录,用 MsgBox 显示记录内容,将课程成绩加 10 分,写入 原来的位置,再读出并显示。 Sub Button1_Click(........)Handles Button1.Click Dim s As Stud FileOpen(1, “C:\Stud.dat”,__(1)___,,,Len(s)) __(2)____ MsgBox(s.no & s.name & s.mark) __(3)___ FilePut(1,s,3) __(4)____ MsgBox(s.no & s.name & s.mark) FileClose(1) End Sub 答案:(1).OpenMode.Random 、(2) FileGet(1,s,3) 、 (3) S.mark=s.mark+10 、(4)FileGet(1,s,3)程序填空题(5 个空)1.文本文件复制。将文本文件 C:\old.dat 复制成新文件 C:\New.dat 。 Sub Button1_Click(........)Handles Button1.Click Dim Str As String FileOpen(1,”C:\old.dat”,__(1)___) FileOpen(2,”C:\New.dat”__(2)___) Do While _(3)____ _(4)____ PrintLine(2,Str) Loop __(5)______ End Sub 答案: (1)OpenMode.Input 、(2) OpenMode.Output (4)Str=LineInput(1) 、(5) FileClose() 、(3) Not EOF(1)程序填空题(6 个空) 1.顺序文件的修改。磁盘文本文件 C:\Zg.dat 存放了职工的工资和职称情况,每条记录由工 号、工资、职称组成,之间用逗号分隔。现对有职称的职工加工资,规定教授或副教授加 15%,讲师加 10%,助教加 5%,其他人员不加工资。本程序要求根据加工资的条件修改原 文本文件内各类人员的相应工资。 &分析& 由于文本文件不能直接进行修改,只能增加一个临时文件,依次从老文件读出内容, 判断是否满足要修改的条件,若不修改,则将原内容写到临时文件文件中;若修改,则将 新内容写入临时文件中,直到文件结束。 然后通过临时文件将内容重新依次写回到老文件; 当然也可以通过 VB 提供的文件操作 命令,删除老文件,将临时文件改名为老文件或将临时文件复制为老文件。 由此可见顺序文件修改某一条记录比较麻烦,但适合于批量数据的整体修改或处理。 Sub Button1_Click(........)Handles Button1.Click Dim No As Integer ,Zc As String ,Gz As Single,Str As String FileOpen(1, “C:\Zg.txt”,OpenMode.Input) FileOpen(2, ”c:\lszg.txt”,OpenMode.Output) Do While Not EOF (1) Input(1,No) : Input(1,Zc):Input(1,Gz) Select Case Zc Case_(1)_____ Gz=Gz*1.15 Case “讲师” ___(2)_____ Case “助教” Gz=Gz*1.05 End Select ___(3)____ Loop FileClose() FileOpen(1,“C:\Zg.txt”,__(4)____) FileOpen(2, “c:\lszg.txt”,__(5)___) Do While Not EOF(2) str=LineInput(2) __(5)____ Loop FileClose() End Sub 答案:(1)“教授”,“副教授” 、(2) Gz=Gz*1.0 、(3) WriteLine(2,No,Zc,Gz) (4) OpenMode.Output 、(5) OpenMode.Input 、(6) PrintLine(1,Str) 第8章控件对象程序填空题(2 个空) 1.下面程序段是将列表框 ListBox1 中重复的项目删除,只保留一项。 Dim i,j As Integer For i=0 To ListBox1.Items.Count-1 For j=ListBox1.Items.Count-1 To __(1)_____Step -1 If ListBox1.Items(i)=ListBox1.Items(j) Then ___(2)____ End If Next j Next i 答案: (1)i+1 、(2) ListBox1.Items.RemoveAt(j)程序填空题(3 个空)1.下面是一个定时程序。用户在两个文本框(TextBox1 和 TextBox2)中设置定时时间,然 后单击“定时” (Button1) 按钮开始定时, 当系统时间与定时时间相等时弹出信息框“时间到! ”。 两个文本框的 MaxLength 属性为 2,定时器名称为 Timer1,系统当前时间显示在 label1 标 签中。 Sub Botton1_Click(.....)Handles Button1.Click __(1)_____ End Sub Sub Timer1_Tick(......)Handles Timer1.Tick Dim h , m As Integer label1.text=TimeOfDay h=Hour(TimeOfDay) ___(2)_____ If _(3)____Then Timer1.Enabled=False MsgBox(“时间到!”) End If End Sub 答案: (1)Timer1.Enabled=True 、(2)M=Minute(Now) (3)Val(Textbox1.text)=h and val(textbox2.text) = m 2.用 Timer 控件控制红绿灯的开关,每隔 5 秒钟变换一次颜色,灯光用 Label1 控件的背景 色模拟。 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label1.BackColor = Color.Red Timer1.Interval=____(1)__________ Timer1.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If_________________(2)_________then Label1.BackColor=Color.Green Else ________________(3)_________ End If End Sub 答案:(1)5000 、(2)Label1.BackColor=Color.Red (3)Label1.BackColor=Color.Red3.用 Timer 控件完成倒计时,从 10 起,每隔 0.1 秒计数器减 1,当计数器为 0 时倒计时停 止。 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label1.text = 10 Timer1.Interval=___(1)___________ Timer1.Enabled =_____(2)_________ End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If_________(3)__________then Timer.Enable=False Else Label1.text=val(label1.text)-1 End If End Sub 答案:(1)100 、(2)True (3)Label1.text=1 或 Label1.text=”1”或 val(Label1.text)=1(几个都对)程序填空题(5 个空)1.下面是一个学生成绩录入程序。它具有如下的功能: (1)文本框中能输入 0~9 之间的数字字符。 (2)当焦点离开文本框时,能检查录入的成绩是否有效。若成绩不在 0~100 之间,则清 除原数据,并且要求重新输入。 (3)若文本框左边的复选框未被选定,则文本框不可以输入成绩并且不参加计算总分和平 均成绩。 Sub Form1_Load(.....) Handles MyBase.Load Me.KeyPreview=__(1)___ End Sub Sub Form1_KeyPress(....) Handles MyBase.KeyPress If E.KeyChar & “0” Or e.KeyChar & “9” Then _____(2)_______ End If End Sub ?CheckBox2 和 CheckBox3 的 CheckedChanged 事件过程略 Sub CheckBox1_CheckedChanged(.......)Handles Checkbox1.CheckedChanged TextBox1.Enabled=__(3)_____ End Sub Sub TextBox1_LostFocus(......)Handles TextBox1.LostFocus If(Val(TextBox1.Text)&0 Or Val(TextBox1.Text)&100) Then TextBox1.Text= “” ___(4)_______ End If End Sub Sub Button1_Click( .....) Handles Button1.Click Dim Total As Integer=0,Count As Integer=0 If CheckBox1.Checked Then Total=Total+(Val(TextBox1.Text)) Count=Count+1 End If If CheckBox2.Checked Then Total=Total+(Val(TextBox2.Text)) Count=Count+1 End If If CheckBox3.Checked Then Total=Total+(Val(TextBox3.Text)) Count=Count+1 End If ___(5)______ TextBox5.Text=Total/Count End Sub 答案:(1)True、(2)e.Handled = True、(3)CheckBox1.Checked (4)TextBox3.Focus()、(5)TextBox4.Text=Total编程题第 3 章语法基础 1. 编写一个 VB.NET 程序。输入圆的半径,求圆的面积和周长。 2. 编写一个温度转换的 VB.NET 程序。温度转换公式:C=5/9*(F-32),其中:C 是摄氏 温度,F 是华氏温度。输入摄氏温度,计算华氏温度。 3. 编写程序,实现大小写转换。要求在文本框中输入一行英文字符,单击按钮 1,则全 部转换为大写字符,单击按钮 2,则全部转换为小写字符。 4. “百钱买百鸡”问题。假设小鸡每只 0.5 元,大公鸡每只 2 元,大母鸡每只 4 元。现有 100 元要买 100 只鸡(每种鸡至少买 1 只) ,则小鸡、大公鸡、大母鸡各多少只? 5 编写程序,计算并输出 4 个数的和及平均值。 6 编写程序,要求用户输入下列信息:姓名、年龄、通信地址、邮政编码、电话,然后 将输入的数据用适当的格式在窗口中显示出来。 7 设 a=5,b=2. 5,c=7. 8,编程序计算:y=
+ 8 输入以秒为单位表示的时间,编写程序,将其换算成以日、时、分、秒表示。 9 自由落体位移公式如下: 1 s =
2 其中 v0 为初始速度, g 为重力加速度, t 为经历的时间,编写程序,求位移量 s。 设 V0=4.8m/s .t=0. 5s,g=9. 81m/s2,在程序中把 g 定义为符号常量,输入 V0 和 t 两个变 量的值。 10. 输入三角形三条边的长度 a、b、c,计算并显示三角形的面积。公式为:面积= sqrt(s(s-a) (s-b) (s-c)),其中 s=(a+b+c)/2。第 4 章程序结构1. 在一文本框中输入一个学号,不足 10 位时,在标签中显示“学号输入有误!”。 2. 在文本框中输入三个数,求最大数及最小数,并显示所求的结果。 3. 输入一个整数,判断其奇偶性。 4. 输入一个字符,判断该字符的类型(字符类型包括:大写英文字母、小写英文字母、 数字、其它字符) 5. 输入三条边的长度,判断其是否可以构成一个三角形。如果能构成的话,计算该三 角形的面积。 6. 运输部门的货物运输与里程有关,距离越远,每吨货物的单价越低,假设每吨单价 P 与距离 S 之间的关系如下, 32 S&100 28 100&=S&200 P= 25 200&=S&300 22.5 300&=S&400 20 400&=S&1000 15 S&=1000 输入货物重量和运送距离后,计算相应的运费。 7. 输入一串字符,统计其中每种字符的个数。 (包括英文字母、数字、其它字符) 8. 编写程序。输入 10 个学生的成绩,输出高于平均成绩的分数。 9 求一元二次方程ax 2 +
= 0 ( ≠ 0)的实数根。 10 计算分段函数:y =
+ 1 ln ?5 ? 2 ?8 7 3 ? 0
& 0+ 11 输入的一串英文字母,分别统计其中大写字母和小写字母的个数。 12 某购物超市节日期间举办购物打折扣的促销活动,优惠办法是:每位顾客当天一次 性购物在 100 元以上者,按九五折优惠;在 200 元以上者,按九折优惠;在 300 元以上者, 按八五折优惠;在 500 元以上者,按八折优惠。则可以根据顾客购物款数计算出优惠价。 13 假定有以下每周学习安排: 星期一、三:学习计算机课 星期二、四:学习外语 星期五:进修法律 星期六:进修文学 星期日:休息 试编写一个程序,对上述工作日程进行检索。程序运行后,要求输入一周里的某一天, 程序将输出这一天的工作安排。 在输入时用 0-6 分别代表星期日到星期六,如果输入 0-6 之外的数,则程序结束运行。 14 输入某一天的年、月和日,计算出这一天是该年的第几天。 例 6.10 输入一个十进制正整数,将其转换成二进制、八进制或十六进制数。 14. 编写程序,在文本框中显示 1-100 之间的任一随机整数及该数字表示的 ASCII 码所 对应的字符。 15. 随机产生 1 个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产 生 135,输出是 531。 16. 编程:在窗体上放置 1 个文本框和 1 个按钮。在文本框中输入英文字符,单击按钮 会将文本框中的所有大写字符转换为小写,所有小写字符转换为大写。如输入 I Just MEET Her,则转换为 i jUST meet hER。 17. 利用随机函数产生 100 个 1 到 100 之间的整数,求其中的最大、最小值。 18. 编写程序输出如图 1-14 所示的等腰三角形。图 1-14 练习 4 要输出的图形19. 将输入的字符串按反序显示。如输入 abcde,显示 edcba。 20. 编写程序验证哥德巴赫猜想: 一个大于等于 6 的偶数一定可以表示为两个素数之和。 如 18=5+13,22=3+19,34=3+31。 21 判断一个自然数是否是素数。 22 从键盘上输入字符,对输入的字符进行计数,当输入的字符仅为“?”时,停止计 数,并输出结果。 23 用辗转相除法求两个自然数 m 和 n 的最大公约数和最小公倍数。 24 编写程序,输出 100 以内的素数。代码如下: 25 显示 100~200 之间不能被 3 整除的数。要求一行显示 10 个数。程序运行结果如图 4-20 所示。 26 设计一个程序, 求有趣的三位数, 这个三位数的各位数字的立方和等于该数字本身, 这个数叫水仙花数。例如,153=13+53+33,153 是水仙花数。 27 求 a+aa+aaa+aaaa+?+aa?a(n 个),其中 a 为 1~9 之间的整数。 (0)当 a=1,n=3 时,求 1+11+111 之和; (1)当 a=5,n=6 时,求 5 + 55 + 555 + 5555 + 55555 + 555555 之和。 28 找出 2~10000 之内的所有完全数。所谓完全数,即其各因子之和正好等于该数本身 的数。如 6=1+2+3,28= 1+2+4+7+14,所以 6,28 都是完全数。第 5 章数组1. 编写程序。将输入 10 个整数按逆序输出。 2. 编写程序。定义一个数组,统计随机产生的 100 个 0 到 99 之间的整数中个位数字分 别为 0,1,2,3,4,5,6,7,8,9 的个数。 3. 在已经排好的一组数据中插入一个数字,插入后还是有序的序列。 4. 在窗体中打印输出杨辉三角,按等腰三角形形式输出。 5 编写程序,输出如下形式的“杨辉三角形” 。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ?? 分析上面的形式,可以找出规律:对角线和每行的第一列元素均为 1,其余各项是它的 上一行中同列元素与其前面一个元素的和。可以一般地表示为: a(i, j) = a(i - 1, j - 1) + a(i - 1, j) 编写程序,输出 n=10 的杨辉三角形(共 11 行) 。 6 求数组中所有元素之和、之积,以及数组中最大元素及其下标。 7 设有一个 4×4 的方阵,求其转置矩阵。 8 冒泡法排序。 9 建立并输出一个 10× 10 的矩阵,该矩阵对角线元素为 1,其余元素均为 0。 10 设有一个 4 × 4 的矩阵,各元素的值由键盘输入,编写程序,完成如下操作: (1) 找出其中最大的元素所在的行和列,并输出其值及行号和列号; (2) 分别计算矩阵两个对角线上的元素之和; (3) 交换第二行和第四行的位置; (4) 交换第一列和第三列的位置; 11 找出二维数组 m× n 中的“鞍点” 。所谓鞍点,是指它在本行中值最大,在本列中值 最小。输出鞍点的行、列号,有可能在一个数组中找不到鞍点,如无鞍点则输出“无” 。 12 把两个按升序(即从小到大)排列的数列 A(1),A(2),?,A(m)和 B(1),B(2),?, B(n),合并成一个仍为升序排列的新数列。 13. 已知一个学生成绩表。如表 1-10 所示。 表 1-10 学生成绩表 学号 002 004 100005 姓名 李宇 王平 赵虎 王朝 马汉 成绩 1 87 90 98 85 80 成绩 2 99 87 90 80 88 总分利用结构数组编写程序。 输入表中的数据, 计算每个学生的总分; 按总分从高到低排序。 14 设有如下人员名单: 姓名 性别 年龄 文化程度 籍贯 张志强 男 23 大学本科 河北 李志 男 30 高中毕业 北京 王B 女 25 研究生 山东 ?? 编写一个程序,对该名单进行检索。程序运行后,只要输入一个人的姓名,即可在屏幕 上显示出这个人的情况。例如,输入“王B” ,则显示: 王B 女 25 研究生 山东 要求: (1) 使用动态结构数组,输入的人数可以根据实际情况改变。 (2) 当输入的姓名不存在时,显示该人不在名单中。 (3) 每次检索结束后,询问是否继续检索, “Y”继续, “N”结束程序。第 6 章过程1. 编写程序。求组合数。其中 m、n 用 INPUTBOX 函数输入。要求用用户自定义过程 计算阶乘,组合数计算在窗体单击事件过程中完成。组合数公式: =
? !2. 编写程序。将输入 10 个整数按逆序输出。要求在窗体单击事件中利用随机函数或方 法产生 10 个整数, 在用户定义的过程中实现这 10 个数的逆序排列。 过程间使用数组作为形 式参数。 3 计算 5!+4!+3!+2!+1! 。要求用过程实现求阶乘的算法。 4 编写程序,求 S=A!+B!+C!,阶乘的计算分别用 Sub 过程和 Function 过程两种方法来实 现。 5 编写一个过程,以整形数作为形参。当该参数为奇数时输出 False,而当该参数为偶数 时输出 True。 6. 编写求解一元二次方程 ax2+bx+c=0 的过程,要求 a、b、c 及 x1、x2 都以参数传送的方式与主程序交换数据,输入 a、b、 c 和输出 x1、x2 的操作放在主程序中。 7 编写两个过程,分别求两个正整数的最大公约数和最小公倍数。第 7 章文件1 编写程序。输入 10 个学生三门课(语文、数学、外语)的成绩,计算每个学生的总 成绩,按总成绩从高到低排序后,将每个学生各科成绩、总成绩,按排序顺序写入一个顺序 文件中。 2 求 100~200 之间的所有质数。质数的个数显示在窗体上,质数从小到大依次写入顺序 文件 c : \data .txt 中。 3 已知有 10 名运动员 100 米短跑的成绩,按编号顺序存放在 C 盘根目录下的数据文件 (score . txt)中。1~10 号运动员的成绩依次为 12.12 、 11.53 、11.45 、12.22 、12.12、 13.10、10.98、13.78、11.45、11.89。请从数据文件中读出数据并使用选择法排出名次。结 果输出到文件 sort.txt 中。 4 在 A 盘的根目录中有一文件 test1.txt,文件中只有一个正整数。编写程序读出该数, 并且计算出该数的阶乘,最后将结果写入文件 testout1.txt 中。 5 在文件 c:\sourcetext.txt 中有十多行英文文本,编程统计其中所有单词的个数,把结果 显示到窗体上。假设英文单词间仅以空格或回车分隔。
赞助商链接

我要回帖

更多关于 spring框架高级编程 的文章

 

随机推荐