文档库 最新最全的文档下载
当前位置:文档库 › VB程序改错题

VB程序改错题

VB程序改错题
VB程序改错题

程序改错

1.题目:已知C的公式表示如下:

' n!

' C=------------------

' (n-m)!*m!

'函数过程fac( )求k!函数,在Fomr_Click事件中完成运算,'请修正程序中错误。

'------------------------------------------------ Option Explicit

Private Function fac(k As Integer) As Single

Dim x As Single, j As Integer

x = 0

For j = 1 To k

x = x ^ j

Next j

fac = x

End Function

Private Sub Form_Click()

Dim C As Single

Dim m As Integer, n As Integer

m = Val(InputBox("请输入一个整数(m):"))

n = Val(InputBox("请输入一个整数(n):"))

C = fac(n) / fac(n - m) * fac(m)

Print "C="; C

End Sub

2.题目:程序功能为打印下列图形:

' *

' **

' ***

' ****

' *****

'------------------------------------------------ Option Explicit

Private Sub Form_Click()

Cls

Dim i As Integer

Dim j As Integer

For i = 1 To 7

For j = 1 To 5

Print "*";

Loop

Print

Next i

End Sub

3.题目:

本程序的功能是随机产生的10个两位正整数,并进行递减排序。'------------------------------------------------

Option Explicit

Private Sub CreateRND()

Dim Temp As Integer

Dim I As Integer

Dim N As Integer

Dim X(10) As Integer

Dim J As Integer

N = 10

Print "数据:"

For I = 1 To N

X(I) = Int(Rnd() * 90)

Print X(I);

Next I

Print

Print "排序:"

For I = 0 To N - 1

For J = I + 1 To N

If X(I) > X(J) Then

Temp = X(I)

X(J) = X(I)

X(I) = Temp

End If

Next J

Print X(I);

Next I

Print

End Sub

Private Sub Command1_Click()

CreateRND

End Sub

4.题目:

随机产生并输出100以内大于50的20个整数,输

出时每5个数一行。

'-----------------------------------------------

Option Explicit

Private Sub Form_Click()

Randomize Timer

Dim i As Integer, ma As Integer

i = 1

Do Until i < 20

ma = Rnd() * 100 \ 1

If ma > 50 Then

Print ma;

i = i + 1

If i \ 5 = 0 Then

Print

End If

End If

Loop

End Sub

5题目:以下程序段用于计算5的N次方。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim n As Integer, k As Integer, s As Long

n = InputBox(" Input n ")

k = 0

s = 0

Do While k <= n

s = s * 5

k = k + 1

Next

Print "5的"; "n次方是"; s

End Sub

6.题目:下面程序可输出如下图形:

' *

' ***

' *****

' *******

' *********

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim m As Integer, n As Integer, s As String, i As Integer, j As Integer

n = 4

m = 1

s = "*"

For i = 5 To 1 Step -1

Print Spc(n)

For j = 1 To 2 * m - 1

Print s;

Next j

Print

n = n + 1

m = m - 1

Next i

End Sub

7.题目:

用自定义函数的方法求sum(x),求当-1≤x≤1时,

' sum(x)=x/2!+x^2/3!+x^3/4!+……+x^n/(n+1)!,

' 当x〉1或x〈-1时,函数值为0。当n〈=0时,输入数

' 据错误。X、N都是由用户输入。

'------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim s As Single

Dim n As Integer, x As Single, k As Integer

n = Val(InputBox("Please input a integer value:"))

x = Val(InputBox("Please input a single value:"))

If n <= 0 Then

k = MsgBox("数据输入错误!", vbRetryCancel + vbExclamation, "数据输入

")

Exit Sub

End If

s = Sum(x, n)

Print s

End Sub

Function Sum(x As Single, n As Integer)

Dim i As Integer, ss As Long

ss = 1

Sum = 0

If x > 1 Or x < -1 Then

Exit Do

Else

For i = 2 To n

ss = ss * i

Sum = x ^ (i - 1) / ss

Next i

End If

End Function

8.题目:以下程序功能是输入三个数,由大到小排序。

------------------------------------------------

Option Explicit

Dim A As Integer

Dim B As Integer

Dim C As Integer

Private Sub Form_Click()

Dim nTemp As Integer

A = Val(InputBox("Please input first integer", "输入正整数"))

B = Val(InputBox("Please input second integer", "输入正整数"))

C = Val(InputBox("Please input third integer", "输入正整数"))

If A <= C Then

nTemp = A

A = B

B = nTemp

End If

If B <= C Then

nTemp = A

A = C

C = nTemp

End If

If A <= B Then

nTemp = B

B = C

C = nTemp

End If

Print "The integers in order is"; A; B; C

End Sub

9.题目:

用辗转相除法求两个整数的最大公约数。

'------------------------------------------------

Option Explicit

Function gcd(ByVal m As Integer, ByVal n As Integer) As Integer

Dim r As Integer

r = m Mod n

Do While r <> 0

n = m

n = r

r = m Mod n

Loop

gcd = r

End Function

Private Sub Form_Click()

Dim a As Integer, b As Integer, c As Integer

a = InputBox("输入一个整数")

b = InputBox("输入一个整数")

a = Val(a)

b = Val(b)

Call gcd(a, b)

Print a, b, c

End Sub

10.题目:下面的程序用“冒泡”法完成数组a中的10个整数

按升序排列,请修正程序中错误。

'------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim a

Dim i As Integer, j As Integer, a1 As Integer

a = Array(-2, 5, 24, 58, 43, -10, 87, 75, 27, 83)

For i = 1 To 9

For j = i+1 To 9

If a(j) >= a(i) Then

a1 = a(i

a(i) = a(j)

a(j) = a(i)

End If

Next j

Next i

For i = 0 To 9

Print a(i)

Next i

End Sub

11.题目:

程序功能为求解一元二次方程的实根,请修正程序中错误。

'------------------------------------------------

Option Explicit

Private Sub Form_Load()

Dim a!, b!, c!, root1#, root2#, work As Double

a = Val(InputBox(" 请输入系数a的值"))

b = Val(InputBox(" 请输入系数b的值"))

c = Val(InputBox(" 请输入系数c的值"))

work = b * 2 - 4 * a * c

If work >= 0 And a <> 0 Then

root1 = (Sqr(work)) / (2 * a)

root2 = (Sqr(work)) / (2 * a)

Debug.Print "有二个实根" + Str$(root1) + "," + Str$(root2) Else

Debug.Print "无实根!"

End If

End Sub

12.题目:

下面程序的作用是产生100以内的全部素数,并

按每行5个数据输出。

'------------------------------------------------

Option Explicit

Private Function prime(ByVal n As Integer)

Dim i As Integer

prime = 1

If n <= 1 Then prime = 0

If n Mod i = 0 Then prime = 0

Next i

End Function

Private Sub Form_Click()

Dim i As Integer, k As Integer

k = 0

For i = 1 To 100

If prime(i) = 1 Then

Print Tab((k Mod 5) * 8); i

k = k + 1

If k Mod 4 = 0 Then Print ;

End If

Next i

End Sub

13.题目:

输出40以内能够被3整除的数,要求输出结果为5

个数一行。

'------------------------------------------------ Option Explicit

Private Sub Form_Click()

Cls

Dim x As Integer

Dim i As Integer

i = 1

For x = 1 To 40

If (x / 3) = (x \ 3) Then

Print x

i = i + 1

End If

If i Mod 3 = 0 Then

Print

End If

Next x

End Sub

14.题目:

程序功能:求1+2+3……,直到其和超出3000为

止,并输入结果。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Cls

Dim i As Integer

Dim s As Single

i = 1

s = 1

Do

i = i + 2 1

s = s + i

Loop s > 3000

Print "从1 到:"; i; "的和是"; s

End Sub

15.题目:

以下程序段用于输出100-300的所有素数

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim n As Integer, k As Integer, i As Integer, swit As Integer For n = 101 To 300 Step 2

k = Int(Sqr(n))

i = 2

swit = 1

While swit = 0

If n Mod i = 0 Then

swit = 1

Else

i = i - 1

End If

Wend

If swit = 0 Then

Print n;

End If

Next n

End Sub

16.题目:

本程序的功能是随机产生的10个两位正整数,并进行递减排序。

'------------------------------------------------

Option Explicit

Private Sub CreateRND()

Dim Temp As Integer

Dim I As Integer

Dim N As Integer

Dim X(10) As Integer

Dim J As Integer

N = 10

Print "数据:"

For I = 1 To N

X(I) = Int(Rnd() * 90)

Print X(I);

Next I

Print

Print "排序:"

For I = 0 To N - 1

For J = I + 1 To N

If X(I) > X(J) Then

Temp = X(I)

X(J) = X(I)

X(I) = Temp

End If

Next J

Print X(I);

Next I

Print

End Sub

Private Sub Command1_Click()

CreateRND

End Sub

17.题目:输入两个正整数m和n,求其最大公约数。

'------------------------------------------------

Option Explicit

Private Sub Form_Click()

Dim m As Integer, n As Integer, r As Integer m = InputBox("输入m的值:")

n = InputBox("输入n的值:")

Do While n <> 0

r = m / n

m = n

n = m r

Loop

Print "两数的最大公因子为:"; n

End Sub

18.题目:

下面程序将10个整数从大到小排序

'------------------------------------------------ Option Explicit

Private Sub Form_Click()

Dim t%, m%, n%, w%

Dim a(10) As Integer

For m = 1 To 10

a(m) = Int(10 + Rnd() * 90)

Print a(m); " ";

Next m

Print

For m = 1 To 9

t = m

For n = 2 n+1To 10

If a(t) > a(n) Then n = t

Next n

If t = m Then

w = a(m)

a(m) = a(t)

a(t) = w

End If

Next m

For m = 1 To 10

Print a(m)

Next m

End Sub

19.题目:

求s=72+102+132+……+832的值。

'------------------------------------------------ Option Explicit

Private Sub Form_Click()

Cls

Dim s As Long

Dim i As Integer

s = 1

For i = 7 To 832

s = s + i

loop 30

Print s

End Sub

20.题目:

下面程序用于将十个数字从小到大排序

'------------------------------------------------ Option Explicit

Option Base 1

Private Sub Form_Click()

Cls

Dim a(10) As Integer

Dim i As Integer, j As Integer, temp As Integer

For i = 0 To 10

If i Mod 2 = 0 Then a(i) = i Else a(i) = -i

Print a(i);

Next

Print

For i = 1 To 10

For j = 1 To 10 - i

If a(j) < a(j + 1) Then

temp = a(j): a(j) = a(j + 1): a(j + 1) = temp End If

Next i, j

For i = 1 To 10

Print a(i);

Next

End Sub

《VB程序设计》习题答案-林卓然编著

《VB语言程序设计》教材 林卓然编著 《VB程序设计》习题参考答案 第1章习题 一、单选题 1.D 2.B 3.C 4.A 5.C 6. A 7.A 8.B 9.C 10.(1)A (2)B 二、多选题 1.ACDE 2.BCDE 3.CD 4. CE 三、填空题 1.事件驱动 2.解释,编译 3.设计,运行,中断 4. 属性,方法,事件 5. Command2_Click 6. 中央,代码 7.MyForm.frm 8. (1)Cmd1_Click() (2)Print "VB语言程序设计" 编程及上机调试 1. 按要求设置窗体属性 2.在窗体上建立一个标签Label1。程序代码如下: Private Sub Form_Click() Label1.Caption = "你单击了窗体" End Sub Private Sub Form_DblClick() Label1.Caption = "你双击了窗体" End Sub 3.在窗体上建立两个文本框Text1(输入数)、Text2(输出数)和一个命令按钮Command1。两个文本框的Text属性均为空。 Private Sub Command1_Click() Dim x As Single x = Val(Text1.Text) Text2.Text = 15 * x End Sub 第2章习题 一、单选题 1.①D,②D 2.①A,②C 3.A 4.B 5.B 6.B 7.C 8.D 9.B 10.B 11.A 12.A 13.B 14.A 15.B 16.A 17.B 二、多选题 1.BD 2.CD 3.AC 4. AD 三、填空题 1.(1) Sin(50*3.14159/180) (2) (2+x*y)/(2–y*y)

VB程序设计例题-程序改错程序填空程序设计

'以下程序段用于输出杨辉三角:结果样式如图1 ' Private Sub Form_Click() Const n = 10 Dim arr(n, n) As Integer For I = 1 To n arr(I, I) = 1 '**********SPACE********** 【arr(I, 1) = 1】 Next I For I = 3 To n For j = 2 To I - 1 '**********SPACE********** arr(i, j) =arr(i-1,j-1)+arr(i-1,j) Next j Next I For I = 1 To n For j = 1 To I '**********SPACE********** 【print arr(I,j)】 Next j Print Next I End Sub Option Explicit '------------------------------------------------ '【程序改错】 '------------------------------------------------ '题目:用自定义函数的方法求sum(x),求当-1≤x≤1时,' sum(x)=x/2!+x^2/3!+x^3/4!+……+x^n/(n+1)!, ' 当x〉1或x〈-1时,函数值为0。当n〈=0时,输入数' 据错误。X、N都是由用户输入。 '------------------------------------------------ '注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim s As Single Dim n As Integer, x As Single, k As Integer n = Val(InputBox("Please input a integer value:"))

程序改错基本题

程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1?2?3?4? ?n main() { long int sum; int n,i=1; scanf("%d",n); printf(“\n”); while(ia[j]) { max=a[j]; m=j; } printf(“下标:%d\n最大值:%d”, j, max) } *3. 求3+4 int a=3,b=4; main() { int a,c; c=a+b; printf(“c=%d”); } 4.用一个函数求两个数之和。 sum(x,y) { float z; z=x+y; return; }

main() { float a,b; int c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); } 5.用指针作函数参数,对输入的两个整数按大小顺序输出。 swap(int *p1,*p2) { int *p; *p=*p1;*p1=*p2;*p2=*p; } main() { int a,b; int *q1,*q2; scanf("%d,%d",&a,&b); &q1=a,&q2=b; if(a

vb程序设计试题(含答案)

第一套试题 一、选择题(每题2分,共30分) 1.在VB环境中,工程文件的扩展名是( C ) (A).frm (B).bas (C).vbp (D).frx 2.下面4项中不属于面向对象系统三要素的是( A ) (A)变量(B)事件(C)属性(D)方法 3. \、/、Mod、*这4个算述运算符中,优先级别最低的是( C ) (A)\ (B)/ (C)Mod (D)* 4.要使Print方法在Form_Load事件中起作用,要对窗体的( C )属性进行设置(A)BackColor (B)ForeColor (C)AutoRedraw (D)Caption 5.不论何控件,共同具有的属性是( B ) (A)Text (B)Name (C)ForeColor (D)Caption 6.要使Form1窗体的标题栏显示“欢迎使用VB”,以下语句正确的是( D ) (A)Form1.Caption=“欢迎使用VB”(B)Form1.Caption=ˊ欢迎使用VBˊ(C)Form1.Caption=欢迎使用VB (D)Form1.Caption=〞欢迎使用VB〞 7.VB提供了结构化程序设计的3种基本结构,这3种基本结构是( D ) (A)递归结构,选择结构,循环结构(B)选择结构,过程结构,顺序结构 (C)过程结构,输入、输出结构,转向结构(D)选择结构,循环结构,顺序结构 8.给变量赋值a=123+MID(“123456”,3,2),a变量中的值是( D ) (A)“12334”(B)123 (C)12334 (D)157 9.下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是( D ) (A)If sex=“男”And age<40 And InStr(duty,“教授”)>0 Then n=n+1 (B)If sex=“男”And age<40 And (duty=“教授”Or duty=“副教授”) Then n=n+1 (C)If sex=“男”And age<40 And Right(duty,2)= “教授” Then n=n+1 (D)If sex=“男”And age<40 And duty=“教授”And duty=“副教授” Then n=n+1 10.若要清除列表框的所有内容,可用来实现的方法是( C )

VB改错题(答案)

1.程序的功能是:单击命令按钮“输出”,在图片框Picture1中输出费波那契数列的前20项项值,要求按区输出,每行输出4个项值。程序中有两处错误,请修改程序并运行,直到得出正确结果。 注意:程序中的修改行就在注释行: '**********found*************' '请不要删除该行' 的下面,请不要修改程序中的其他部分。最后把修改后的文件按原来文件名存盘。 第1个出错位置:For i=3 to 20 第2个出错位置:If i Mod 4=0 then Picture1.Print Private Sub Command1_Click() Dim f(40) As Long Dim i As Integer Picture1.Cls f(1) = 0 f(2) = 1 Picture1.Print f(1), f(2), '**********found*************' '请不要删除该行' For i = 1 To 40 For i=3 to 20 f(i) = f(i - 1) + f(i - 2) Picture1.Print f(i), '**********found*************' '请不要删除该行' If i Mod 4 = 0 Then Picture.Print If i mod 4=0 then picture1.print Next i End Sub 2. 程序的功能是:程序运行时,单击“输出”按钮,产生10个[0,99]之间的随机整数存入数组A中,并按照相反的顺序输出在窗体上。程序中有两处错误,请修改程序并运行,直到得出正确结果。 第1个出错位置:A(i)=Int(Rnd*100+0) p50 第2个出错位置:Print A(11-i); Private Sub Command1_Click() Randomize Dim A(10), I As Integer Form1.Cls For I = 1 To 10 '*********found******** '请不要删除该行 A(I) = Int(Rnd * 99) A(i)=Int(Rnd*100+0) Print A(I); Next I Print For I = 1 To 10 '*********found******** '请不要删除该行 Print A(I); Print A(11-i) (注意答案中间无;) Next I End Sub

计算机程序改错题,及答案

11 *程序名:TEST.prg *检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的 *学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中. *以下程序有三处错误,请改正 OPEN DA TABASE SDB SELECT STUDENT.学号,姓名,性别,A VG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数; FROM STUDENT,SC; WHere STUDENT.学号= SC.学号AND 成绩>= 70 ; &&**********Error********** GROUP BY STUDENT.学号HA VING count(课程号) >= 3; &&**********Error********** inTO table NEW_TEST &&**********Error********** CLOSE ALL 9 *程序名:dbtest3.prg *定义一个视图VS1, *检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号, *并按平均成绩降序排序. *以下程序有三处错误,请改正 SET TALK OFF SET SAFETY OFF open DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行 CREATE VIEW VS1 SELECT STUDENT2.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号; FROM STUDENT2, sc; &&*************Error************* WHERE STUDENT2.学号= SC.学号; GROUP BY SC.学号HA VING COUNT(课程号) > 3; ORDER BY 平均成绩desc &&*************Error************* CLOSE DATABASE RETURN i=2 create table four(结果I) do while i<=1000 if i%3=0 insert into four values(i) &&错误语句请修改 endif

VB程序设计编程考试~题及答案~

VB程序设计编程考试题及答案 1.输入3个数,输出最大的数 Private Sub command1_click() Dim max For i = 1 To 3 n = Val(InputBox("输入第" & i & "个数")) If n > max Then max = n End If Next Print "三个数中最大的数是" ; max End Sub 2.有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根 Private Sub Command1_Click() Dim a, b, c, n a = Text1 b = Text2 c = Text3 n = b * b - 4 * a * c If n >= 0 Then Label4 = "方程有根" Else Label4 = "方程无根" End If End Sub 3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!成绩通过!”, 若小于60,则弹出消息框,显示“抱歉!成绩没有通过! Private Sub Form_Load() Text1 = "" End Sub Private Sub Command1_Click() Dim n n = Text1 If n > =60 Then Val (MsgBox("恭喜!成绩通过!")) Else Val (MsgBox("抱歉!成绩没有通过!")) End If End Sub 4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整 除但不能被100整除,或者能被400整除) Private Sub Command1_Click() Dim y%

[整理]VB程序设计复习题及答案.

中南大学现代远程教育课程(专科)考试复习题及答案 《VB程序设计与应用》 一、选择题:在每小题给出的四个选项中,只有一项是符合题目要求的,请把所选项前的字母填在 题后的括号内。 1. Visual Basic程序中分隔一行中各语句的字符是()。[ ] A)‘ B): C)\ D)_ 2. 下列可作为Visual Basic的变量名的是()。[ ] A: Filename B: A(A+B)C: A%D D : Print 3. 要让菜单项无效,应将()属性值设置为False。 [ ] A. Visible B. Enabled C. Moveable D. Checked 4. 以下过程是()事件。 Prviate Sub Form_Load( ) …… End Sub [ ] A: 命令按钮的单击B: 命令按钮的装载 C; 窗体的装载D: 窗体的单击 5. Vb中描述文件扩展名的是()属性。[ ] A: Drive B: Pattern C: FileName D: Path 6. 关于Visual Basic中事件的说法中,不正确的为()。[ ] A)事件是由Visual Basic预先定义好的,能够被对象识别的动作 B)DblClick(双击)是Visual Basic中的一种事件 C)一个对象可以识别一个或多个事件 D)对于一个系统提供的对象可以识别哪些事件,需要程序员自己定义 7. 下列控件中可设置滚动条是()。 [ ] A. 检查框(复选框) B. 框架 C. 文本框 D. 标签框 8. 在Visual Basic中建立一个空窗体,( )不会是其默认名。 [ ] A. Form1 B. Form2 C. Formx D. Form10 9. Const One&=1,则One为()类型的常数。[ ] A)整型 B)字节型

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

有目录-程序改错部分试题及答案(2015-2016-1)

目录 功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 (1) 功能:求如下表达式: (2) 功能:判断m是否为素数,若是返回1,否则返回0。 (4) 功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。 (5) 功能:求1到20的阶乘的和。 (6) 功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出 整数部分,输出项数不得多于或少于20。 (7) 功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的 元素之和sum。 (8) 功能:找出大于m的最小素数,并将其作为函数值返回。 (9) 功能:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前 面的元素即第一个数对换位置. (10) 功能:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将 它插入数组中. (11) 第1题/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 ------------------------------------------------------*/ #include #define N 11 main() { int i,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf("please enter an integer to insert in the array:\n"); /**********FOUND**********/ scanf("%d",&number) printf("The original array:\n"); for(i=0;i

VB程序改错40题

第2题(1、0分)题号:1 2 9 '【程序改错】 '题目:该程序实现将输入得0 —255 之间得正整数转 换成二进制数 O p t i on Explici t P riv a t e Sub Fo r m _Cl i ck () Con st n = 8 Dim a(n) A s I n tege r, s As Stri ng, m A s I n te g er, x A s Integer x = Va l (In p utB ox (”请输入一个0 — 2 55之间得正整数: ")) Prin t x ** ** ******FOUND** Fo r m = 1 T o n (m ) = x Mod 2 *** * *F^) D********* * Nex t m For m =n To 0 S t e p —1 * *********FOU N D * **** * * ** * s = Str(a( m )) Nex t m Pri n t s E n d Sub 答案:

(答案1)For m = 0 To n======= 答案2)x= x \ 2 或x= int(x/2)=======(答案3)s = s + St r (a (m)) 第3题(l、0分) 题号:463 '题目:以下程序功能就是输入三个数,由大到小排序。 Op t io n Explicit Di m A A s I n teger Dim B As I n te g er D im C As I nt e ger P r ivat e Sub F o r m_Click() Dim nTemp A s Integer A = V a l(ln put B o x (H P lease in put fi r st i nt e ger","输入正整数”)) B = Val( I n putBo x (” Pl e a s e in put s eco nd int e ge r”,"输入正整数”)) C = Va i (In pu tB o x(” P 1 e a se in put third int e ger ” ,"输入正整数”)) F OU ND * * ***** If A v= C T h en n Te m p = A A = B B = n Te mp E nd I f > ***** *FOUND**** * * * *** I f B <= C T hen nTe mp = A A = C C = nTem p

程序改错--答案版

12592 '题目:编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。'------------------------------------------------ Option Explicit Private Sub Form_Click() Dim N As Integer, Sum As Integer, S1 As String, S2 As String Dim i As Integer, Ch As String Sum = 0 N = InputBox("输入整数n") S1 = Str(N) S1 = Trim(S1) For i = 1 To Len(S1) '**********ERROR********** Ch = Mid(N, i, 1) '**********ERROR********** Sum = Val(Ch) Next i Print "该整数的各位数之和是:"; Sum End Sub 12610'题目:程序功能根据输入的学习成绩,分别显示优秀(90分以上), 良好(75分以上),及格(60分以上)不及格四个等级. '------------------------------------------------ Option Explicit Private Sub Form_Click() Cls Dim i As Integer i = InputBox("请输入学习成绩") Select Case i '**********ERROR********** Case 0 < i < 100 MsgBox "成绩应该在0--100之间""" '**********ERROR********** Case 90 Print "优秀" Case 75 To 89 Print "良好" Case 60 To 74 Print "及格" '**********ERROR********** Case MsgBox "不及格", vbCritical End Select End Sub 12616.题目:求s=1!+3!+5!+7!,阶乘的计算用Function过程fact实现. '------------------------------------------------ Option Explicit Private Sub Form_Click() Dim i As Integer, s As Integer '**********ERROR********** For i = 1 To 7 s = s + fact(i) Next i Print s End Sub '**********ERROR********** Public Function fact() Dim t As Integer, i As Integer t = 1 For i = 1 To n t = t * i Next i '**********ERROR********** fact = i End Function 12620题目:编程实现从左到右的滚动字幕,滚动的速度由滚动条控件来控制。 '------------------------------------------------ Option Explicit Private Sub HScroll1_Scroll() '**********ERROR********** Timer1.Interval = HScroll1.Min - HScroll1.Value End Sub Private Sub Timer1_Timer() '**********ERROR********** If Label1.Left <= Form1.Width Then '**********ERROR**********

VB程序的设计课后复习题答案

VB课后习题解答 第一、二章: 1、简述VB6.0的主要特点 答:方便、直观的可视化设计工具;面向对象程序设计方法;事件驱动的编程机制;易学易用的应用程序集成开发环境;结构化程序设计语言;完备的联机帮助功能;强大的多媒体、数据库和网络功能。2、当正常安装VB6.0后,误把Windows子目录删除。当重新安装Windows后,是否需要再次安装VB6.0? 答:要重新安装的。因为安装VB6.0时,有些VB程序被系统自动安装在Windows目录下,所以一旦删除Windows子目录,就必须重新安装VB6.0。 3、Visual Basic 6.0分为学习版、专业版和企业版,如何知道所安装的是哪个版本? 答:在VB6.0的启动界面上,能显示对应的版本。 4、叙述建立一个完整应用程序的过程 答:首先建立用户界面的控件对象(简称控件);然后对控件属性进行设置;再对控件事件过程及编程; 保存应用程序;程序调试和运行。 5、Visual Basic 6.0有多种类型窗口,若要在设计时看到代码窗口,应怎样操作? 答:选择“视图”—>“代码窗口”命令或单击“工程资源管理器”窗口中的“查看代码”按钮。 6、当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块。试问该工程涉及多少个要保存的文件? 若要保存该工程的所有文件,应先保存什么文件?再保存什么文件?若不这样做,系统会出现什么信息? 答:涉及两个文件要保存。先保存窗体文件(.frm),再保存工程文件(.vbp)。若先保存工程文件,系统也会先弹出“文件另存为”对话框,要求先保存窗体文件。 7、保存文件时,若不改变目录名,则系统默认的目录是什么? 答:系统默认的目录是VB98 8、安装Visual Basic 6.0后,帮助系统是否也已安装? 答:没有。VB6.0的帮助系统在两光盘上,即MSDN Library,其中还包含了VC、VFP等其他语言的帮助系统。 9、如何使用Visual Basic 6.0的帮助系统? 答:最方便的方法是选定要帮助的容,然后按F1功能键,这时系统打开MSDN Library查阅器,直接显示与选定容有关的帮助信息。 10、什么是类?什么是对象?什么是事件过程? 答:类是同类对象集合的抽象,它规定了这些对象的公共属性和方法; 对象是类的一个实例,对象包含三个要素:属性、方法和事件。 当在对象上发生了事件后,应用程序就要处理这个事件,而处理的步骤就是事件过程。 11、属性和方法的区别是什么? 答:属性是对象的特征,方法是对象的行为。前者有值,可以被赋值或引用;后者没有值,表示能够执行的操作。 12、当标签边框的大小由Caption属性的值进行扩展或缩小时,应对该控件的什么属性进行何种设置? 答:将该控件的Autosize属性值设置为true。 13、在VB6.0中,命令按钮的显示形式可以有标准的和图形的两种选择,它们通过什么属性来设置?若选 择图形的,则通过什么属性来装入图形?若已在规定的属性里装入了某个图形文件,但该命令按钮还是不能显示该图形,而显示的是Caption属性设置的文字,应怎样修改?

19VB程序改错题收集(答案在后面)

VB中常见的错误 1、运行下面的 Visual Basic程序,单击命令按钮 Command1,出现如下图所示的提示信息: Private Sub Command1_Click() Dim a As Single, b As Single a = Val(Text1.Text) b = 10 If a >= b b = a * a + 2 * b End If Label1.Caption = Str(b) End Sub 出现该错误的原因是 A.If语句缺少Then B.If语句缺少Else C.变量a的数据类型说明错误 D.变量b的数据类型说明错误 2、某VB程序的事件过程如下所示: Private Sub Command1_Click ( ) Dim a As Integer a = Val(Text1.Text) Text1.Text = Str(Int( a )) End Sub 运行程序,单击按钮Command1后弹出如下图所示的错误提示。导致该错误的原因可能是() A.Int函数计算时出现错误 B.Val函数应用不正确 C.窗体上缺少Text1文本框对象 D.变量a数据类型定义错误 3、某Visual Basic程序段如下: Dim a(1 To 10) As Integer Dim i As Integer a(1) = 1 For i = 2 To 10 a(i) = a(i - 1) * i Next i 运行该程序段,会出现的错误提示为 (A)下标越界(B)子程序或函数未定义(C)要求对象(D)溢出 Interger类型范围在-32768~32767,而1到10相乘超出这个范围 4、某Visual Basic程序如下: Private Sub Command1_Click() Dim a(1 To 10) As Integer

c程序改错题——有答案

试卷编号:10578 所属语言:C语言 试卷方案:TC_150522153552 试卷总分:440分 共有题型:1种 一、程序改错共44题(共计440分) 第1题(10.0分)题号:380 难度:中第2章/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:输入两个双精度数,函数返回它们的平方和的平方根值。 例如:输入:22.936 和 14.121,输出为:y = 26.934415。 ------------------------------------------------------*/ #include #include #include /**********FOUND**********/ double fun (double *a, *b)//double fun(double *a,double *b) { double c; /**********FOUND**********/ c = sqr(a*a + b*b);//sqrt /**********FOUND**********/ return *c; } main ( ) { double a, b, y; printf ( "Enter a, b : "); scanf ("%lf%lf", &a, &b ); y = fun (&a, &b); printf ("y = %f \n", y ); } 第2题(10.0分)题号:438 难度:中第2章/*------------------------------------------------ 【程序改错】 --------------------------------------------------

VB程序设计学习与实验指导答案

Visual Basic 程序设计学习与实验指导答案 上篇学习指导 第1章Visual Basic 概述 1.事件 2.查看对象 3.工程 4.视图属性窗口 5.窗体编辑器 第2章面向对象程序设计初步 1.控件 2.事件 3.类属性 4.属性 5.略 https://www.wendangku.net/doc/4b5787410.html, 第3章Visual Basic 语言基础 1.(a*sin(30/180*3.14)+c*(log(b)/log(10)))/((Abs(d)+1)*(e+f))+1

2.mod 3.X=Int(X) And Y=Int(Y) And X*Y>0 4. 4.Y Mod 4=0 And Y Mod 100<>0 Or Y Mod 400=0 5.x=Int((99-10+1)*Rnd+10) 6.0 “” 7.空格 8.6,845.30 9. (1)8 (2)1 (3)abcd (4)出错,类型不匹配 (5)False (6)2008-6-29 (7)I likeVB (8)4 (9)4 4 (10)3 4 (11)10 -10 (12)-1 (13)aa (14)3 (15)0 (16)1 (17)C (18)5 (19)8 (20)34.54 (21)中国 (22)上海 (23)VISUAL BASIC (24)visual basic 10. (1)x<-100 or x>100 (2)a=Int(a) And b =Int(b) Or a<0 And b<0 (3)x<=y or x>=z (4)a>0 And a<>Int(a) (5)a=0 xor b=0 (6)Len(S)<10 (7)UCase(S)=S (8)Left(S,1)=”a” And Right(S,1)=”a” (9)Instr(S,”@”)<>0 (10)Trim(S)=S (11)Date=#8/8/2008#

VB 改错题

【程序改错】 '------------------------------------------------ '题目:下面的程序段用于删除数组中指定位置的数字,'如果位置错误给出提示,否则分别显示删除前后'的数组元素 '------------------------------------------------ '注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------ Private Sub Form_Click() Dim a(10) As Integer, x As Integer, i As Integer, k As Integer For i = 1 To 10 a(i) = Int(Rnd * 90) + 10 Print a(i); Next i Print x = InputBox("请输入要删除第几位数字") '**********FOUND********** If x > 0 And x <= 10 Then 'If x > 0 Then '**********FOUND********** For k = x To 9 'For k = x To 10 a(k) = a(k + 1) Next k Print "删除后的数组:" For i = 1 To 9 Print a(i); Next i Else Print "删除位置错误" '**********FOUND********** End If 'End End Sub 【程序改错】 '------------------------------------------------ '题目:在下列程序段中,过程fb可以显示任意长度的菲'波那契数列,现要求通过键盘输入一数字,利用'该过程显示不超过指定数字大小的数列 '------------------------------------------------

VB程序设计试题及答案

VB程序设计试题及答案(三) 一、单选题 1. Visual Basic是一种面向对象的可视化程序设计语言,采取了 A 的编程机制。 (A) 事件驱动(B) 按过程顺序执行 (C) 从主程序开始执行(D) 按模块顺序执行 2. 若要使标签控件显示时不覆盖其背景内容,要对 D 属性进行设置。 (A) Backcolor (B) BorderStyle (C) Forecolor (D) Backstyle 3. 在Visual Basic中最基本的对象是 C ,它是应用程序的基石,是其他控件的容器。 (A) 文本框(B) 命令按钮 (C) 窗体(D) 标签 4. 要判断在文本框是否按下Enter键,应在文本框的 D 事件中判断。 (A) Change (B)KeyDown (C) Click (D)KeyPress 5. 数学表达式3≤x10 (C) x>=3 Or x<10 (D) x>=3 AND x<10 6. Rnd函数不可能为下列 B 值。 (A) 0 (B) 1 (C) 0.1234 (D) 0.0005 7. 赋值语句:a=123+Mid("123456",3,2)执行后,a变量中的值是 D 。 (A) "12334" (B) 123 (C) 12334 (D) 157 8. 对于语句If x=l Then y=l,下列说法正确的是 C 。 (A) x=l和y=l均为赋值语句 (B) x=l和y=l均为关系表达式 (C) x=l为关系表达式,y=l为赋值语句 (D) x=l为赋值语句,y=l为关系表达式 9. 下面程序段表示求两个数中的大数, D 不正确。 (A) Max=IIf(x>y,x,y) (B) If x>y Then Max=x Else Max=y (C) Max=x (D) Ify>=x Then Max=y If y>=x Then Max=y Max=x 10.当在文本框中输入“ABCD”4个字符时,窗体上显示的是 C 。 Private Sub Text1_Change( ) Print Text1; End Sub (A) ABCD (B) A (C) AABABCABCD (D) A B AB C ABC D ABCD 11.下列哪个程序段不能分别正确显示1!、2!、3!、4!的值 B 。 (A) For i=1 to 4 (B) For i=1 to 4 n=1 For j=1 to i

相关文档