2004年4月全国计算机等级考试二级VFP笔试试卷
一、选择题( (1)~(35) 每题2分,共70分)下列各题A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系是
A) DBS包括DB和DBMS B) DBMS包括DB和DBS
C) DB包括DBS和DBMS D) DBS就是DB,也就是DBMS
(2) 在Visual FoxPro中“表”是指
A) 报表 B) 关系 C) 表格 D) 表单
(3) 数据库系统与文件系统的最主要区别是
A) 数据库系统复杂,而文件系统简单
B) 文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决
C) 文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件
D) 文件系统管理的数据量较小,而数据库系统可以管理庞大的数据量
(4) 在当前表单的LABEL1控件中显示系统时间的语句是
A) THISFORM.LABEL1.CAPTION=TIME()
B) THISFORM.LABEL1.VALUE=TIME()
C) THISFORM.LABEL1.TEXT=TIME()
D) THISFORM.LABEL1.CONTROL=TIME()
(5) 在关系模型中,为了实现“关系中不允许出现相同元组”的约束应使用
A) 临时关键字 B) 主关键字C) 外部关键字 D) 索引关键字
(6) 在Visual FoxPro中创建项目,系统将建立一个项目文件,项目文件的扩展名是
A)pro B) prj C) pjx D) itm
(7) 在Visual FoxPro的项目管理器中不包括的选项卡是
A) 数据 B) 文档 C) 类 D) 表单
(8)在Visual FoxPro 中说明数组的命令是
A) DIMENSION和ARRAY B) DECLARE和ARRAY
C) DIMENSION和DECLARE D) 只有DIMENSION
(9) 数据库表可以设置字段有效性规则,字段有效性规则属于A) 实体完整性范畴 B) 参照完整性范畴
C) 数据一致性范畴 D) 域完整性范畴
(10) 在Visual FoxPro中字段的数据类型不可以指定为
A) 日期型 B) 时间型C) 通用型 D) 备注型
(11) 用命令“INDEX ON 姓名 TAG index_name UNIQUE”建立索引,其索引类型是
A) 主索引 B) 候选索引 C) 普通索引 D) 惟一索引
(12) 以下关于主索引和侯选索引的叙述正确的是
A) 主索引和侯选索引都能保证表记录的惟一性
B) 主索引和侯选索引都可以建立在数据库表和自由表上
C) 主索引可以保证表记录的惟一性,而侯选索引不能
D) 主索引和侯选索引是相同的概念
(13) 查询订购单号首字符是“P”的订单信息,应该使用命令A) SELECT * FROM 订单 WHERE HEAD(订购单号,1)=“P”
B) SELECT * FROM 订单 WHERE LEFT(订购单号,1)= “P”
C) SELECT * FROM 订单 WHERE “P”$订购单号
D) SELECT * FROM 订单 WHERE RIGHT(订购单号,1)= “P”
(14) 有如下赋值语句,结果为“大家好”的表达式是 a=“你好” b=“大家”
A) b+AT(a,1) B) b+RIGHT(a,1)
C) b+ LEFT(a,3,4) D) b+RIGHT(a,2)
(15) 数据库表的字段可以定义默认值,默认值是
A) 逻辑表达式 B) 字符表达式C) 数值表达式 D) 前三种都可能
(16) 数据库的字段可以定义规则,规则是
A) 逻辑表达式 B) 字符表达式
C) 数值表达式 D) 前三种说法都不对
(17) 在SQL语句中,与表达式“供应商名 LIKE” %北京%“”功能相同的表达式是
A) LEFT(供应商名,4)=“北京” B) “北京”$供应商名
C) 供应商名IN“%北京%” D) AT(供应商名,“北京”)
(18) 使数据库表变为自由表的命令是
A) DROP TABLE B) REMOVE TABLE
C) FREE TABLE D) RELEASE TABLE
(19) 在Visual FoxPro的查询设计器中“筛选”选项卡对应的SQL短语是
A) WHERE B) JOIN C) SET D) ORDER BY
(20) SQL支持集合的并运算,在Visual FoxPro中SQL并运算的运算符是
A) PLUS B) UNION C) + D) U
(21) 根据“职工”项目文件生成emp_sys.exe应用程序的命令是A)BUILD EXE emp_sys FROM 职工
B)DUILD APP emp_sys.exe FROM 职工
C)LINK EXE emp_sys FROM 职工
D)LINK APP emp_sys FROM 职工
(22) 如果指定参照完整性的删除规则为“级联”,则当删除父表中的记录时
A)系统自动备份父表中被删除记录到一个新表中
B)若字表中有相关记录,则禁止删除父表中记录
C)会自动删除子表中所有相关记录
D)不作参照完整性检查,删除父表记录与子表无关
(23) 以下关于关系的说法正确的是
A) 列的次序非常重要 B) 当需要索引时列的次序非常重要
C) 列的次序无关紧要 D) 关键字必须指定为第一列
(24) 为了在报表中打印当前时间,这时应该插入一个
A) 表达式控件 B) 域控件C) 标签控件 D) 文件控件
(25) 在Visual FoxPro中释放和关闭表单的方法是东方教育网提供 Http://www.eastedu.com.cn
A) RELEASE B) CLOSE C) DELETE D) DROP
(26) 为了从用户菜单返回到系统菜单应该使用命令
A) SET DEFAULT SYSTEM B) SET MENU TO DEFAULT
C) SET SYSTEM TO DEFAULT D) SET SYSMENU TO DEFAULT
(27) 在表单中为表格控件指定数据源的属性是
A) DataSource B) RecordSourceC) DataFrom D) RecordFrom
(28) 以下关于表单数据环境叙述错误的是
A) 可以向表单数据环境设计器中添加表或视图
B) 可以从表单数据环境设计器中移出表或视图
C) 可以在表单数据环境设计器中设置表之间的关系
D) 不可以在表单数据环境设计器中设置表之间的关系
(29) 以下关于查询描述正确的是
A) 不能根据自由表建立查询
B) 只能根据自由表建立查询
C) 只能根据数据库表建立查询
D) 可以根据数据库表和自由表建立查询
第(30)-(35)题使用如下三个表:
部门.DBF:部门号C(8),部门名C(12),负责人C(6),电话C(16)职工.DBF:部门号C(8),职工号C(10),姓名C(8),性别C(2),出生日期D工资.DBF:职工号C(10),基本工资N(8.2),津贴N(8.2),奖金N(8.2),扣除N(8.2)
(30) 查询职工实发工资的正确命令是
A) SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资 FROM 工资
B) SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资 FROM 工资;WHERE 职工.职工号=工资.职工号
C) SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资;FROM 工资,职工 WHERE 职工.职工号=工资.职工号
D) SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资;FROM 工资 JOIN 职工 WHERE 职工.职工号=工资. 职工号
(31) 查询1962年10月27日出生的职工信息的正确命令是
A) SELECT*FROM 职工 WHERE 出生日期={^1962-10-27}
B) SELECT*FROM 职工 WHERE 出生日期=1962-10-27
C) SELECT*FROM 职工 WHERE 出生日期=“1962-10-27”
D) SELECT*FROM 职工 WHERE 出生日期=(“1962-10-27”)
(32) 查询每个部门年龄最长者的信息,要求得到的信息包括部门名和最长者的出生日期。正确的命令是
A) SELECT 部门名,MIN(出生日期)FROM 部门 JOIN 职工;ON 部门.部门号=职工.部门号 GROUP BY 部门名
B) SELECT 部门名,MAX(出生日期)FROM 部门 JOIN 职工;ON 部门.部门号=职工.部门号 GROUP BY 部门名
C) SELECT 部门名,MIN(出生日期)FROM 部门 JOIN 职工;WHERE 部门.部门号=职工.部门号 GROUP BY 部门名
D) SELECT 部门名,MAX(出生日期)FROM 部门 JOIN 职工;WHERE 部门.部门号=职工.部门号 GROUP BY 部门名
(33) 查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按职工人数降序排列。正确的命令是
A) SELECT 部门名,COUNT(职工号)AS 职工人数;FROM 部门,职工 WHERE 部门.部门号=职工.部门号;GROUP BY 部门名 HAVING COUNT(*)>=10;ORDER BY COUNT(职工号)ASC
B) SELECT 部门名,COUNT(职工号)AS 职工人数;FROM 部门,职工 WHERE 部门.部门号=职工.部门号;GROUP BY 部门名 HAVING COUNT(*)>=10;ORDER BY COUNT(职工号)DESC
C) SELECT 部门名,COUNT(职工号)AS 职工人数;FROM 部门,职工WHERE 部门.部门号=职工.部门号;GROUP BY 部门名 HAVING COUNT(*)>=10;ORDER BY 职工人数 ASC
D) SELECT 部门名,COUNT(职工号)AS 职工人数;FROM 部门,职工WHERE 部门.部门号=职工.部门号;GROUP BY 部门名 HAVING COUNT(*)>=10;ORDER BY 职工人数 DESC
(34) 查询所有目前年龄在35岁以上(不含35岁)的职工信息(姓名、性别和年龄),正确的命令是
A) SELECT 姓名,性别,YEAR(DATE())-YEAR(出生日期) 年龄 FROM 职工;WHERE 年龄>35
B) SELECT 姓名,性别,YEAR(DATE())-YEAR(出生日期) 年龄 FROM 职工;WHERE YEAR(出生日期)>35
C) SELECT 姓名,性别,YEAR(DATE())-YEAR(出生日期) 年龄 FROM 职工;WHERE YEAR(DATE())-YEAR(出生日期)>35
D) SELECT 姓名,性别,年龄=YEAR(DATE())-YEAR(出生日期)FROM 职工;WHERE YEAR(DATE())-YEAR(出生日期)>35
(35) 为“工资”表增加一个“实发工资”字段的正确命令是
A) MODIFY TABLE 工资 ADD COLUMN 实发工资 N(9,2)
B) MODIFY TABLE 工资 ADD FIELD 实发工资 N(9,2)
C) ALTER TABLE 工资 ADD COLUMN 实发工资 N(9,2)
D) ALTER TABLE 工资 ADD FIELD 实发工资 N(9,2)
二、填空题( 每空2分,共30分) 请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须拼写完整
(1)使用数据库设计器为两个表建立联系,首先应在父表中建立
______索引,在子表中建立______索引。
(2) 常量 .n.表示的是______型的数据。
(3) 在Visual FoxPro中参数传递的方式有两中,一种是按值传递,
另一种是按引用传递,将参数设置为按引用传递的语句是:SET
UDFPARMS_______
(4) 运行表单时,Load事件是在Init事件之______被引发。
(5) 如下程序的输出结果是________. i=1 DO WHILE i<10
i=i+2 ENDDO ?i
第(6)~(9)题使用如下三个表
零件.DBF:零件号C(2),零件名称C(10),单价N(10),规格C(8)使用
零件.DBF:项目号C(2),零件号C(2),数量I 项目.DBF:项目号
C(2),项目名称C(20),项目负责人C(10),电话C(20)
(6) 为“数量”字段增加有效性规则:数量>0,应该使用的SQL语句
是________TABLE使用零件________数量SET_______数量>0
(7) 查询与项目“s1”(项目号)所使用的任意一个零件相同的项目
号、项目名称、零件号和零件名称,使用的SQL语句是SELECT 项
目.项目号,项目名称,使用零件.零件号,零件名称;FROM 项目,使
用零件,零件WHERE 项目.项目号=使用零件.项目号______;使用
零件.零件号=零件.零件号 AND 使用零件.零件号_______;
(SELECT 零件号 FROM 使用零件 WHERE 使用零件.项目号=‘s1’)
(8) 建立一个由零件名称、数量、项目号、项目名称字段构成的视
图,视图中只包含项目号为“s2”的数据,应该使用的SQL语句是
CREATE VIEW item_view_______;SELECT 零件.零件名称,使用零件.
数量,使用零件.项目号,项目.项目名称;FROM 零件 INNER JOIN 使
用零件;INNER JOIN_______;ON 使用零件.项目号=项目.项目号;
ON 零件.零件号=使用零件.零件号;WHERE 项目.项目号=‘s2’
(9) 从上一题建立的视图中查询使用数量最多的2个零件的信息,应该
使用的SQL语句是SELECT*_______2 FROM item_view______数量DESC.
2004年4月全国计算机等级考试二级VB笔试试卷
一、选择题((1)—(20)每小题2分,(21)—(30)每小题3分,共70分)下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click() Move 500,500 End Sub 程序运行后,单击命令按钮,执行的操作为
A) 命令按钮移动到距窗体左边界、上边界各500的位置
B) 窗体移动到距屏幕左边界、上边界各500的位置
C) 命令按钮向左、上方向各移动500
D) 窗体向左、上方向各移动500
(2) 在窗体上有若干控件,其中有一个名称为Text1的文本框。影响Text1的Tab顺序的属性是
A) TabStop B)EnabledC) Visible D)TabIndex
(3) 以下定义数组或给数组元素赋值的语句中,正确的是
A)Dim a As Variant B)Dim a(10) As Integera=Array(1,2,3,4, a=Array(1,2,3,4,5) C)Dim a%(10) D)Dim a(3),b(3) As Integera(1)="ABCDE" a(0)=0a(1)=1a(2)=2
(4) 在窗体上画一个名称为List1的列表框,为了对列表框中的每个项目都能进行处理,应使用的循环语句为
A) For i=0 To List1.ListCount-1……Next
B) For i=0 To ListCount-1……Next
C) For i=1 To List1.listCount……Next
D) For i=1 To ListCount……Next
(5) 以下Case语句中错误的是
A) Case 0 To 10 B) Case Is>10
C) Case Is>10 And Is<50 D) Case 3,5,Is>10
(6) 以下关于图片框控件的说法中,错误的是
A) 可以通过Print方法在图片框中输出文本
B) 清空图片框控件中图形的方法之一是加载一个空图形
C) 图片框控件可以作为容器使用
D) 用Stretch属性可以自动调整图片框中图形的大小
(7) 执行语句s=Len(Mid("VisualBasic",1,6))后,s的值是
A) Visual B) Basic C) 6 D) 11
(8) 以下叙述中错误的是
A) 下拉式菜单和弹出式菜单都用菜单编辑器建立
B) 在多窗体程序中,每个窗体都可以建立自己的菜单系统
C) 除分隔线外,所有菜单项都能接收Click事件
D) 如果把一个菜单项的Enabled属性设置为False,则该菜单项不可见
(9) 在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:Private Sub Command1_Click() a = 12345Print Format$(a, "000.00")End Sub程序运行后,单击命令按钮,窗体上显示的是
A) 123.45 B) 12345.00 C) 12345 D)00123.45
(10) 以下叙述中错误的是
A) 一个工程可以包括多种类型的文件
B) Visual Basic应用程序既能以编译方式执行,也能以解释方式执行
C) 程序运行后,在内存中只能驻留一个窗体
D) 对于事件驱动型应用程序,每次运行时的执行顺序可以不一样
(11) 以下关于函数过程的叙述中,正确的是
A) 函数过程形参的类型与函数返回值的类型没有关系
B) 在函数过程中,过程的返回值可以有多个
C) 当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递
D) 如果不指明函数过程参数的类型,则该参数没有数据类型
(12) 以下关于变量作用域的叙述中,正确的是
A) 窗体中凡被声明为Private的变量只能在某个指定的过程中使用B) 全局变量必须在标准模块中声明
C) 模块级变量只能用Private关键字声明
D) Static类型变量的作用域是它所在的窗体或模块文件
(13) 确定一个控件在窗体上的位置的属性是
A) Width和Height B) Width或Height
C) Top和Left D) Top或Left
(14) 在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程 Private Sub Command1_Click() Text1.Text = "Visual" Me.Text1 = "Basic" Text1 = "Program"End Sub程序运行后,如果单击命令按钮,则在文本框中显示的是
A) Visual B) Basic C) Program D) 出错
(15) 以下关系表达式中,其值为False的是
A) "ABC">"AbC" B) "the"<>"they"
C) "VISUAL"=UCase("Visual") D) "Integer">"Int"
(16) 语句Print 5/4*6\5 Mod 2的输出结果是
A) 0 B) 1 C) 2 D) 3
(17) 在窗体上画一个文本框、一个标签和一个命令按钮,其名称分别为Text1、Label1和Command1,然后编写如下两个事件过程:Private Sub Command1_Click()strText = InputBox("请输入")Text1.Text = strTextEnd SubPrivate Sub Text1_Change()Label1.Caption = Right(Trim(Text1.Text), 3)End Sub程序运行后,单击命令按钮,如果在输入对话框中输入abcdef,则在标签中显示的内容是
A)空 B) abcdef C) abc D) def
(18) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()x = -5If Sgn(x) Then y = Sgn(x ^ 2)Else y = Sgn(x)End IfPrint yEnd Sub程序运行后,单击命令按钮,窗体上显示的是
A) -5 B) 25 C) 1 D) -1
(19) 一个工程中含有窗体Form1、Form2和标准模块Model1,如果在Form1中有语句Pubilc X As Integer,在Model1中有语句Pubilc Y As Integer,则以下叙述中正确的是
A) 变量X、Y的作用域相同 B) Y的作用域是Model1
C) 在Form1中可以直接使用X D) 在Form2中可以直接使用X和Y
(20) 在窗体上画一个名称为Drive1的驱动器列表框,一个名称为Dir1的目录列表框。当改变当前驱动器时,目录列表框应该与之同步改变。设置两个控件同步的命令放在一个事件过程中,这个事件过程是
A)Drive1_Change B) Drive1_Click
C) Dir1_Click D) Dir1_Change
(21) 在窗体上画一个命令按钮(其NAME属性为Command1),然后编写如下代码:Option Base 1Private Sub Command1_Click() Dim a s = 0 a = Array(1,2,3,4) j = 1 For i = 4 To 1 Step -1 s = s + a(i) * j j = j * 10 Next i Print sEnd Sub运行上面的程序,单击命令按钮,其输出结果是
A) 4321 B) 1234 C) 34 D) 12
(22) 在窗体上画一个名称为Text1的文本框,要求文本框只能接收大写字母的输入。以下能实现该操作的事件过程是
A) Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < 65 Or KeyAscii > 90 Then MsgBox "请输入大写字母" KeyAscii = 0 End IfEnd Sub
B) Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode < 65 Or KeyCode > 90 Then MsgBox "请输入大写字母" KeyCode = 0 End IfEnd Sub
C) Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Asc(Text1.Text) < 65 Or Asc(Text1.Text) > 90 Then MsgBox "请输入大写字母" End IfEnd Sub
D) Private Sub Text1_Change() If Asc(Text1.Text) > 64 And Asc(Text1.Text) < 91 Then MsgBox "请输入大写字母" End IfEnd Sub
(23) 假定在窗体(名称为Form1)的代码窗口中定义如下记录类型:Private Type animal AnimalName As String*20 AColor As String*10End Type在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click() Dim rec As animal Open "c:\vbTest.dat" For Random As #1 Len = Len(rec) rec.animalName = "Cat" rec.aColor = "White" Put #1, , rec Close #1End Sub则以下叙述中正确的是A) 记录类型animal不能在Form1中定义,必须在标准模块中定义B) 如果文件c:\vbTest.dat不存在,则Open命令执行失败
C) 由于Put命令中没有指明记录号,因此每次都把记录写到文件的末尾
D) 语句“Put #1, , rec”将animal类型的两个数据元素写到文件中
(24) 在窗体上画一个名称为Text1的文本框,一个名称为Command1的命令按钮,然后编写如下事件过程和通用过程:Private Sub Command1_Click() n = Val(Text1.Text) If n\2 = n/2 Then f = f1(n) Else f = f2(n) End If Print f; nEnd SubPublic Function f1(ByRef x) x=x*x f1=x+xEnd FunctionPublic Function f2(ByVal x) x=x*x f2=x+x+xEnd Function程序运行后,在文本框中输入6,然后单击命令按钮,窗体上显示的是A) 72 36 B) 108 36 C) 72 6 D) 108 6
(25) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click() c = 1234 c1 = Trim(Str(c)) For i = 1 To 4 Print NextEnd Sub程序运行后,单击命令按钮,要求在窗体上显示如下内容1121231234则在下划线处应填入的内容为A) Right(c1,i) B) Left(c1,i) C) Mid(c1,i,1) D) Mid(c1,i,i)
(26) 在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,然后编写如下事件过程:Private Sub Command1_Click() n = Val(Text1.Text) For i = 2 To nFor j = 2 To sqr(i) If i Mod j = 0 Then Exit For Next jIf j > Sqr(i) Then Print i Next iEnd Sub该事件过程的功能是
A) 输出n以内的奇数 B) 输出n以内的偶数
C) 输出n以内的素数 D) 输出n以内能被j整除的数
(27) 在以下描述中正确的是
A) 标准模块中的任何过程都可以在整个工程范围内被调用
B) 在一个窗体模块中可以调用在其他窗体中被定义为Public的通用过程
C) 如果工程中包含Sub Main过程,则程序将首先执行该过程
D) 如果工程中不包含Sub Main过程,则程序一定首先执行第一个建立的窗体
(28) 在窗体上画一个名称为Command1的命令按钮,然后编写如下通用过程和命令按钮的事件过程:Private Function f(m As Integer) If m Mod 2 = 0 Then f = m Else f = 1 End IfEnd FunctionPrivate Sub Command1_Click() Dim i As Integer s = 0 For i = 1 To 5 s = s + f(i) Next Print sEnd Sub程序运行后,单击命令按钮,在窗体上显示的是
A) 11 B) 10 C) 9 D) 8
(29) 在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click() Dim array1(10, 10) As Integer Dim i As Integer, j As Integer For i = 1 To 3 For j = 2 To 4 array1(i, j) = i + j Next j Next i Text1.Text = array1(2, 3) + array1(3, 4)End Sub程序运行后,单击命令按钮,在文本框中显示的值是
A) 15 B) 14 C) 13 D) 12
(30) 在窗体上画四个文本框(如图所示),并用这四个文本框建立一个控件数组,名称为Text1(下标从0开始,自左至右顺序增大),然后编写如下事件过程:Private Sub Command1_Click() For Each TextBox In Text1 Text1(i) = Text1(i).Index i = i + 1 NextEnd Sub程序运行后,单击命令按钮,四个文本框中显示的内容分别为
A) 0 1 2 3 B) 1 2 3 4C) 0 1 3 2 D) 出错信息
二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
(1) Visual Basic应用程序中标准模块文件的扩展名是【1】 。
(2) 在菜单编辑器中建立一个菜单,其主菜单项的名称为mnuEdit,
Visible属性为False,程序运行后,如果用鼠标右键单击窗体,则弹出与mnuEdit相应的菜单。以下是实现上述功能的程序,请填空。Private Sub Form 【2】 (Button As Integer, Shift As Integer, X As Single, Y As Single)If Button=2 Then 【3】 mnuEditEnd IfEnd Sub
(3) 为了使计时器控件Timer1每隔0.5秒触发一次Timer事件,应将Timer1控件的【4】属性设置为【5】 。
(4) 与数学表达式 对应的Visual Basic表达式是【6】 。
(5) 将C盘根目录下的图形文件moon.jpg装入图片框Picture1的语句是【7】 。
(6) 在窗体上画一个名称为Text1的文本框,然后画三个单选按钮,并用这三个单选按钮建立一个控件数组,名称为Option1,程序运行后,如果单击某个单选按钮,则文本框中的字体将根据所选择的单选按钮切换,如图所示,请填空。Private Sub Option1_Click(Index As Integer) Select Case 【8】 Case 0 a = "宋体" Case 1 a = "黑体" Case 2 a = "楷体_GB2312" End Select text1. 【9】 =aEnd Sub
(7) 在窗体上画两个组合框,其名称分别为Combo1、Combo2,然后画两个标签,名称分别为Label1、Label2,如图所示,程序运行后,如果在某个组合框中选择一个项目,则把所选中的项目在其下面的标签中显示出来。请填空。Private Sub Combo1_Click() Call ShowItem(Combo1, Label1)End SubPrivate Sub Combo2_Click() Call ShowItem(Combo2, Label2)End SubPublic Sub ShowItem(tmpCombo As ComboBox, tmpLabel As Label) 【10】.Caption =【11】.TextEnd Sub
(8)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click() n = 5 f = 1 s = 0 For i = 1 To n f = f【12】 s = s + f Next Print sEnd Sub该事件过程的功能是计算 的值。请填空。
(9)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:Option Base 1Private Sub Command1_Click() Dim a(10) As Integer For i = 1 To 10 a(i) = i Next Call swap( 【13】 ) For i = 1 To 10 Print a(i); NextEnd SubSub swap(b() As Integer) n = 【14】 For i = 1 To n / 2 t = b(i) b(i) = b(n) b(n) = t 【15】 NextEnd Sub上述程序的功能是,通过调用过程swap,调换数组中数值的存放位置,即a(1)与a(10)的值互换,a(2)与a(9)的值互换,……,a(5)与a(6)的值互换。请填空。
2004年4月全国计算机等级考试二级C语言笔试试卷
一、选择题,(1-40)每题1分,(41-50)每题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 1MB等于
A) 1000字节 B) 1024字节
C) 1000×1000字节 D) 1024×1024字节
(2) 与十六进制数200等值的十进制数为
A) 256 B) 512 C) 1024 D) 2048
(3) 所谓“裸机”是指
A) 单片机 B) 单板机
C) 不装备任何软件的计算机 D) 只装备操作系统的计算机
(4) 能将高级语言编写的源程序转换成目标程序的是
A) 链接程序 B) 解释程序 C) 编译程序 D) 编辑程序
(5) 在64位计算机中,一个字长所占的字节数为
A) 64 B) 8 C) 4 D) 1
(6) 在Windows环境下,当一个应用程序窗口被最小化后,该应用程序
A) 继续在后台运行 B) 继续在前台运行
C) 终止运行 D) 暂停运行
(7) 在Windows环境下,能实现窗口移动的操作是
A) 用鼠标拖动窗口中的任何部位 B) 用鼠标拖动窗口的边框
C) 用鼠标拖动窗口的控制按钮 D) 用鼠标拖动窗口的标题栏
(8) 在Windows环境下,PrintScreen键的作用是
A) 打印当前窗口的内容 B) 打印屏幕内容
C) 复制屏幕到剪贴板 D) 复制当前窗口到剪贴板
(9) Internet的通信协议是
A) TCP/IP B) BBS C) WWW D) FTP
(10) 下列叙述中正确的是
A) 计算机病毒只感染可执行文件
B) 计算机病毒只感染文本文件
C) 计算机病毒只能通过软件复制的方式进行传播
D) 计算机病毒可以通过网络或读写磁盘等方式进行传播
(11) 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是
A) 有零个或多个输入 B) 有零个或多个输出
C) 有穷性 D) 可行性
(12) 以下叙述中正确的是
A) C语言的源程序不必通过编译就可以直接运行
B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行
D) C语言中的函数不可以单独进行编译东方教育网提供
(13) 以下符合C语言语法的实型常量是
A) 1.2E0.5 B) 3.14.159E C) .5E-3 D) E15
(14) 以下4组用户定义标识符中,全部合法的一组是
A) _main
B) If
C) txt
D) intenclude -max REAL k_2 sin turbo 3COM _001
(15) 若以下选项中的变量已正确定义,则正确的赋值语句是
A) x1=26.8%3 B) 1+2=x2 C) x3=0x12 D) x4=1+2=3;
(16) 设有以下定义int a=0; double b=1.25;char c=’A’;#define d 2则下面语句中错误的是
A) a++; B) b++ C) c++; D) d++;
(17) 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符的是
A) (a+B) *h/2 B) (1/2)*(a+B) *h
C) (a+B) *h*1/2 D) h/2*(a+B)
(18) 有以下程序main( ){ int x=102,y=012; printf(“%2d,%2d\n”,x,y);} 执行后输出结果是A) 10,01 B) 02,12 C) 102,10 D) 02,10(19) 以下4个选项中,不能看作一条语句的是
A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;
(20) 设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是
A) scanf(“%d”,pA) ; B) scanf(“%d”,A) ;
C) scanf(“%d”,&pA) ; D) scanf(“%d”,*pA) ;
(21) 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是A) if((a>B) &&(b>C) ) k=1;
B) if((a>B) ||(b>C) ) k=1else k=0;
C) if(a<=B) k=0;
D) if(a>B) k=1; else if(b<=C) k=1; else if(b>C) k=1; else k=0;
(22) 有以下程序main( ){ char k; int I; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”); } }}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是
A) another
B) another
C) another
D) numbernumber number number number another number
(23) 有以下程序main( ){ int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf(“%d,%d,%d\n”,x,y,z);}程序执行后的输出结果是
A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5
(24) 有以下程序main( ){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);}程序执行后的输出结果是
A) 自然数1~9的累加和 B) 自然数1~10的累加和
C) 自然数1~9中的奇数之和 D) 自然数1~10中的偶数之和
(25) 有以下程序东方教育网提供 Http://www.eastedu.com.cnmain( ){ int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i);n++; } printf(“n=%d\n”,n);}程序执行后的输出结果是A) n=5 B) n=2 C) n=3 D) n=4
(26) 若程序中定义了以下函数 double myadd(double a,double B) { return (a+B) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是A) double myadd(double a,B) ;
B) double myadd(double,double);
C) double myadd(double b,double A) ;
D) double myadd(double x,double y);
(27) 有以下程序char fun(char x , char y){ if(x return y;}main( ){ int a=’9’,b=’8’,c=’7’;printf(“%c\n”,fun(fun(a,B) ,fun(b,C) ));}程序的执行结果是
A) 函数调用出错 B)8 C)9 D)7
(28) 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是
A) p=1; B) *q=2; C) q=p; D) *p=5;
(29) 有以下程序void f(int v , int w){ int t; t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是
A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1
(30) 有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是
A) 5 B) 6 C) 8 D) 9
(31) 31、有以下程序main( ){ char a[]=”abcdefg”,b[10]=”abcdefg”;printf(“%d %d\n”,sizeof(A) ,sizeof(B) );}执行后输出结果是
A) 7 7 B) 8 8 C) 8 10 D) 10 10
(32) 有以下程序void swap1(int c[]){ int t; t=c[0];c[0]=c[1];c[1]=t;}void swap2(int c0,int c1){ int t; t=c0;c0=c1;c1=t;}main( ){ int a[2]={3,5},b[2]={3,5}; swap1(A) ; swap2(b[0],b[1]); printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);}其输出结果是
A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3
(33) 有以下程序void sum(int *A) { a[0]=a[1];}main( ){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) &nb sp; sum(&aa[i]); printf(“%d\n”,aa[0]);}执行后的输出结果是
A) 4 B) 3 C) 2 D) 1
(34)有以下程序int f(int b[][4]){ int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; }return s;}main( ){ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};printf(“%d\n”,f(A) );}执行后的输出结果是
A) 12 B) 11 C) 18 D) 16
(35) 有以下定义#include char a[10],*b=a;不能给数组a输入字符串的语句是
A) gets(A) B) gets(a[0]) C) gets(&a[0]); D) gets(B) ;
(36) 有以下程序main( ){ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\n”,strlen(p[4]));}执行后输出结果是
A) 2 B) 3 C) 4 D) 5
(37) 有以下程序int a=2;int f(int *A) {return (*A) ++;}main( ){ int s=0; { int a=5; s+=f(&A) ; } s+=f(&A) ; printf(“%d\n”,s);}执行后输出结果是
A) 10 B) 9 C) 7 D) 8
(38) 有以下程序#define f(x) x*xmain( ){ int i; i=f(4+4)/f(2+2); printf(“%d\n”,i);}执行后输出结果是
A) 28 B) 22 C) 16 D) 4
(39) 设有以下语句typedef struct S{ int g; char h;} T;则下面叙述中正确的是
A) 可用S定义结构体变量 B)可以用T定义结构体变量
C)S是struct类型的变量 D)T是struct S类型的变量
(40) 有以下程序struc STU{ char name[10]; int num;};void f1(struct STU C) { struct STU b={“LiSiGuo”,2042}; c=b;}void f2(struct STU *C) { struct STU b={“SunDan”,2044}; *c=b;}main( ){ struct STU a={“YangSan”,2041},b={“WangYin”,2043}; f1(A) ;f2(&B) ; printf(“%d %d\n”,a.num,b.num);}执行后的输出结果是
A)2041 2044 B)2041 2043 C)2042 2044 D)2042 2043
(41) 有以下程序main( ){ unsigned char a,b; a=4|3; b=4&3; printf(“%d %d\n”,a,b(;}执行后输出结果是
A) 7 0 B) 0 7 C) 1 1 D) 43 0
(42) 下面程序的功能是输出以下形式的金字塔图案是: * *** ***** *******main( ){ int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(“ “); for(j=1;j<=_______;j++) printf(“*”); printf(“\n”);} }在下划线处应填入的是
A) i B) 2*i-1 C) 2*i+1 D) i+2
(43) 有以下程序void sort(int a[],int n){ int i,j,t; for(i=0;i for(j=i+2;j if(a[i]}main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf(“%d”,aa[i]); printf(“\n”);}其输出结果是
A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1,
C) 9,2,7,4,5,6,3,8,1,10, D) 1,10,3,8,5,6,7,4,9,2,
(44) 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是
A) char s[10]=”abcdefg”;
B) char t[]=”abcdefg”,*s=t;
C) char s[10];s=”abcdefg”;
D) char s[10];strcpy(s,”abcdefg”);
(45) 有以下程序#include main(int argc ,char *argv[ ]){ int i,len=0; for(i=1;i printf(“5d\n”,len);} 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44执行后输出结果是
A) 14 B) 12 C) 8 D) 6
(46) 有以下程序void f(int a[],int i,int j){ int t; if(i
A) 5,4,3,2,1, B) 5,2,3,4,1, C) 1,2,3,4,5, D) 1,2,3,4,5,
(47) 有以下程序struct STU{ char name[10]; int num; int Score;};main( ){ struct STU s[5]={{“YangSan”,20041,703},{“LiSiGuo”,20042,580}, {“wangYin”,20043,680},{“SunDan”,20044,550}, {“Penghua”,20045,537}},*p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[j]=t;} printf(“5d %d\n”,s[1].Score,p[1]->Score);}执行后输出结果是
A) 550 550 B) 680 680 C) 580 550 D) 580 680
(48) 有以下程序#include struct NODE{int num;struct NODE *next;};main( ){ struct NODE *p,*q,*r;int sum=0;p=(struct NODE *)malloc(sizeof(struct NODE));q=(struct NODE *)malloc(sizeof(struct NODE));r=(struct NODE *)malloc(sizeof(struct NODE));p->num=1;q->num=2;r->num=3;p->next=q;q->next=r;r->next=NULL;sum+=q->next->num;sum+=p->num;printf(“%d\n”,sum);}执行后的输出结果是
A) 3 B) 4 C) 5 D) 6
(49) 有以下程序#include main( ){ FILE *fp; int i,k=0,n=0; fp=fopen(“d1.dat”,”w”); for(i=1;i<4;i++) fprintf(fp,”%d”,i); fclose(fp); fp=fopen(“d1.dat”,”r”); fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n); fclose(fp);}执行后输出结果是
A) 1 2 B) 123 0 C) 1 23 D) 0 0
(50) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)#include main( ){ FILE *fp; int i,a[4]={1,2,3,4},b; fp=fopen("data.dat","wb"); for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int).SEEK_END) ;fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/fclose(fp);printf("%d\n",B) ;}执行后输出结果是
A) 2 B) 1 C) 4 D) 3
二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上, 答在试卷上不得分.
(1) E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1】 。
(2) 计算机网络分为广域网和局域网,因特网属于【2】 。
(3) 从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为【3】 。
(4) 在Windows环境下,只要在“开始”菜单中单击【4】选项,就可以查阅最近打开过的文档清单。
(5) 计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行【5】条指令。
(6) 已知字符A的ACSII码值为65,以下语句的输出结果是【6】char ch=’B’;printf(“%c %d\n”,ch,ch);
(7) 有以下语句段int n1=10,n2=20;printf(“ 【7】 ”,n1.n2);要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。n1=10n2=20
(8) 有以下程序main( ){ int t=1,i=5; for(;i>=0;i--) t*=i; printf(“%d\n”,t);}执行后输出结果是【8】 。
(9) 有以下程序main( ){ int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d\n”,x);}执行后输出结果是【9】 。
(10) 有以下程序#include main( ){ char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-‘0’; n2=n1*10+(ch2-‘0’); printf(“%d\n”,n2);}程序运行时输入:12<回车>,执行后输出结果是【10】 。
(11) 有以下程序void f( int y,int *x){y=y+*x; *x=*x+y;}main( ){ int x=2,y=4; f(y,&x); printf(“%d %d\n”,x,y);}执行后输出的结果是【11】 。
(12) 函数fun的功能是计算xndouble fun(double x,int n){ int i; double y=1; for(i=1;i<=n;i++) y=y*x; return y;}主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+B) 3。实现这一计算的函数调用语句为【12】 。
(13) 下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如: 1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 当 A= 9 10 11 12 则 A’= 3 7 11 15 13 14 15 16 4 8 12 16请填空#define N 4void rotate(int a[][N]){ int i,j,t; for(i=0;i
(14) 以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。void sstrcpy(char *s,char *t){ while(*s++=【15】);}main( ){ char str1[100],str2[]=”abcdefgh”; sstrcpy(str1,str2); printf(“%s\n”,str1);}
(15) 下列程序的运行结果是:【16】#include char *ss(char *s){ return s+strlen(s)/2;}main( ){ char *p,*str=”abcdefgh”; p=ss(str); printf(“%s\n”,p);}
(16) 下面程序的运行结果是:【17】int f( int a[], int n){ if(n>1) return a[0]+f(&a[1],n-1); else return a[0];}main ( ){ int aa[3]={1,2,3},s; s=f(&aa[0],3); printf(“%d\n”,s);}
(17) 以下程序中给指针p分配三个double型动态内存单元,请填空。# include main ( ){ double *p; p=(double *) malloc(【18】); p[0]=1.5;p[1]=2.5;p[2]=3.5; printf(“%f%f%f\n”,p[0],p[1],p[2]);}
(18) 以下程序的运行结果是【19】# include typedef struct student{ char name[10]; long sno; float score; }STU;main( ){ STU a={“zhangsan”,2001,95},b={“Shangxian”,2002,90},c={“Anhua”,2003,95},d,*p=&d; d=a; if(strcmp(a.name,b.name)>0) d=b; if(strcmp(c.name,d.name)>0) d=c; printf(“%ld%s\n”,d.sno,p->name); }
(19) 以下sum函数的功能是计算下列级数之和。 S=1+x+x2/2!+x3/3!+........+xn/n! 请给函数中的各变量正确赋初值。 double sum( double x, int n ) { int i; double a,b,s; 【20】 for( i=1;i<=n;i++) { a=a*x; b=b*i; s=s+a/b; } return s;
等级考试二级笔试试卷QBASIC语言程序设计
(考试时间:120分钟,满分100分)
一、选择题,(1~40)每题1分,(41~50)每题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)1MB等于
A) 1000字节 B) 1024字节
C) 1000×1000字节 D) 1024×1024字节
(2)与十六进制数200等值的十进制数为
A) 256 B) 512
C) 1024 D) 2048
(3)所谓“裸机”是指
A) 单片机 B) 单板机
C) 不装备任何软件的计算机 D) 只装备操作系统的计算机
(4)能将高级语言编写的源程序转换成目标程序的是
A) 链接程序 B) 解释程序
C) 编译程序 D) 编辑程序
(5)在64位计算机中,一个字长所占的字节数为
A) 64 B) 8
C) 4 D) 1
(6)在Windows环境下,当一个应用程序窗口被最小化后,该应用程序
A) 继续在后台运行 B) 继续在前台运行
C) 终止运行 D) 暂停运行
(7)在Windows环境下,能实现窗口移动的操作是
A) 用鼠标拖动窗口中的任何部位 B) 用鼠标拖动窗口的边框
C) 用鼠标拖动窗口的控制按钮 D) 用鼠标拖动窗口的标题栏
(8)在Windows环境下,PrintScreen键的作用是
A) 打印当前窗口的内容 B) 打印屏幕内容
C) 复制屏幕到剪贴板 D) 复制当前窗口到剪贴板
(9)Internet的通信协议是
A) TCP/IP B) BBS C) WWW D)FTP
(10)下列叙述中正确的是
A) 计算机病毒只感染可执行文件
B) 计算机病毒只感染文本文件
C) 计算机病毒只能通过软件复制的方式进行传播
D) 计算机病毒可以通过网络或读写磁盘等方式进行传播
(11)在QBASIC集成开发环境中调试程序时,键盘上的F8键是用来
A) 设置循环步长 B) 单步执行
C) 过程单步执行 D) 重新执行
(12)进入QBASIC操作环境后,屏幕上显示的两个窗口是
A) 程序窗口与运行窗口 B) 程序窗口与子程序窗口
C) 命令窗口与运行窗口D) 程序窗口与命令窗口
(13)在下列4个选项中,可作为QBASIC合法变量名的是
A) x1/y B) lxy C) x1y D) x1+y
(14)值666&的数据类型为
A) 整形 B) 长整形C) 单精度实型D) 双精度实型
(15)在语句IF x=3+y THEN PRINT x中,表达式 x=3+y是
A) 赋值表达式 B) 关系表达式
C)算术表达式 D) 逻辑表达式
(16)在QBASIC中,表达式 5^2\3 MOD 4的值是
A) 1 B) -1 C) 3 D) 0
(17)打印语句PRING 1+2;“=”;1+2执行后,输出的结果是
A) 1+2“=”3 B) 3=3
C) 3;=3 D) 1+2=3
(18)有如下程序,运行后输出的结果是
INPUT “x-y=”;x
INPUT y
PRINT x;“+”;y
END
A) 键盘输入的两数之和 B) 键盘输入的两数之差
C) 键盘输入的两个数相加的表达式 D) 错误信息
(19)已知x=2,y=9,z=4,逻辑表达式 x>y OR z>x AND xy的值是
A) TRUE B) -1 C) 0 D) FALSE
(20)定义一个3行4列的二维数组,正确的语句是
A) DIM(1 TO 3,1 TO 4) B) DIM a(3,4)
C) DIM a(3 TO 4) D) DIM a(2,1 TO 4)
(21)有如下程序,运行后输出的结果是
DIM a(10)
FOR j=20 TO 0 STEP –5
READ a(1)
NEXT j
PRINT a(1)+a(2)+a(3)
DATA 1,2,3,4,5,6,7,8,9,10
END
A) 5 B) 6 C) 7 D) 10
(22)有如下程序,运行后输出的结果是
x=0
DO WHILE x<20
x=x+1
x=x*x
LOOP
PRINT x
END
A) 16 B) 19 C) 20 D) 25
(23)有如下程序
a=-4.5:s=0
b=SGN(a)+2*ABS(a)
c=(INT(a)+14)/2
FOR i=a TO b STEP c
s=s+i
NEXT i
PRINT “s=”;s
END
运行后,输出的结果是
A) s=1 B) s=4.5 C) s=0 D) s=9
(24)有如下程序段,运行后输出的结果是
CONST s$=“STRING”,c$=“WANG”
c#=1
PRINT c#,c$,s$
A) 1 WANG STRING B) 1 1 STRING
C) 错误信息 D) WANG WANG STRING
(25)有如下程序
a$=“ABCDEFGHIJK”
PRINT RIGHT$(a$,2)+STRING$(4,a$)
END
运行后,输出的结果是
A) JKABCD B) JKAAAA C) ABHIJK D) ABEFGH
(26)在下列运算符中,优先级最高的是
A) OR B)>= C) AND D)*
(27)有如下程序
DIM a(5) AS STRING *5
FOR i= 1 TO 5
READ a(i)
sum=sum+LEN(a(i))
NEXT i
PRINT sum
DATA 1,zhangsan,m,90,70
END
运行后,输出的结果是
A) 14 B) 25 C) 错误信息D) 1zhangsam9070
(28)在下列单行函数的定义中,正确的是
A) DEF fna(x,y)=3*x+2 B) DEF fn(x,y)=3*x+2*y
C) DEF ff(x,y)=3*x+2 D) DEF fna(x,y)=3*x+2*y END DEF
(29)下列程序运行后,输出的结果是
DIM m(10)
FOR k= 1 TO 10
m(k)=11-k
NEXT K
x=6
PRINT m(2+m(x))
END
A) 2 B) 3C) 4 D) 5
(30)如有下程序
FOR k= 1 TO 3
s=0
IF k<1 THEN
x=1
ELSEIF k<2 THEN
x=2
ELSEIF k<3 THEN
x=3
ELSE
x=4
END IF
PRINT x;
s=s+x
NEXT k
PRINT s
END
运行后,输出的结果是
A) 2 3 4 9 B) 2 3 4 4
C) 1 2 3 3 D) 1 2 3 6
(31)有如下程序
a$=“123.0”
b$=“456.0”
c=VAL(a$+b$)
PRINT c
END
运行后,输出的结果是
A) 579B) 123.0456.0 C) 123.0456 D) 123
(32)有如下程序
n=5
DIM a(n)
a(1)=1:a(2)=1
FOR M=1 TO n
a(m+2)=a(m)+a(m+1)
NEXT m
FOR m= 1 TO n
PRINT a(m);
NEXT m
END
运行后,输出的结果是
A) 1 1 2 3 5 B) 1 1 2 0 0
C) 下标越界错误信息 D) 1 2 2 2 2
(33)如有下程序
a=0:b=1
DO WHILE b<10
SWAP a,b
b=a+b
LOOP
PRING b
END
运行后,输出的结果是
A) 8 B)13 C) 21 D) 34
(34)有如下程序
i=0:n=1
DO
n=(2*n+3) MOD 7
i=i+1
LOOP UNTIL n=1
PRINT i
END
运行后,输出的结果是
A) 1 B) 3 C) 5 D) 7
(35)有如下程序
FOR j=1 TO 3
FOR k= 1 TO 3
a(j,k)=(j-1)*3+k
NEXT k
NEXT j
FOR j= 2 TO 3
FOR k= 1 TO 2
PRINT a(k,j);
NEXT k
PRINT
NEXT j
END
运行后,输出的结果是
A) 2 5
B) 2 3
C) 4 7
D) 4 5 3 6 5 6 5 8 7 8
(36)有如下程序段
FOR i= 1 TO 10
FOR j=i TO 10
PRINT “*”;
NEXT j,i
运行后,屏幕上输出“*”的个数是
A) 10 B) 100 C) 45 D) 55
(37)有如下程序
CLS
SCREEN 1,0
PSET (50,50),2
LINE –STEP (100,100),,B
END
运行后,屏幕上显示的是
A) 一个空心正方形 B) 一条折线
C) 一个空心三角形 D) 一个实心正方形
(38)有如下程序
b$=“”
FOR j= 1 TO 3
READ a$
b$=b$+MID$(a$,j,j)
NEXT j
PRINT b$
DATA BEER,CASE,TANKS
END
运行后,输出的结果是
A) BASE B) BANKS C) BAT D) BASNKS
(39)对OPEN“workjobs.dat”FOR INPUT AS #1语句功能描述正确的是
A) 为了向顺序文件workjobs.dat写数据而打开该文件
B) 为了从顺序文件workjobs.dat读入数据而打开该文件
C) 为了向随机文件workjobs.dat写数据而打开该文件
D) 为了从随机文件workjobs.dat读入数据而打开该文件
(40)有如下程序
DECLARE SUB factorial(k,s)
sum=0
FOR k= 2 TO 4
CALL factorial(k,s)
sum=sum+s
NEXT k
PRINT sum
END
SUB factorial(k,s)
s=1
FOR j= 1 TO k
s=s*j
NEXT j
END SUB
运行后,输出的结果是
A) 32 B) 120 C) 150 D) 152
(41)有如下程序
s=0
DO
s=4*(s+1)
num=num+1
LOOP UNTIL s>=20
PRINT num,s
END
运行后,输出的结果是 【41】
A) 3 84 B) 3 20 C) 2 20 D) 2 84
(42)下面程序的功能是在不同位置上画五个不同颜色、不同大小的圆。请在【42】处将程序补充完整。
CLS:SCREEN 13:COLOR 3
RANDOMIZE TIMER
x0=160: y0=100
FOR j= 1 TO 5
x=INT(RND*101)-50:y=INT(RND*91)-45
r=INT(RND*41)+5: C=INT(RND*16)+1
【42】(x0+x,y0+y),r,c
NEXT j
END
A) DRAW B) LINE C) PEST D) CIRCLE
(43)下面程序的功能是计算矩阵主对角线上元素的和,请在【43】处将程序补充完整。
DIM a(4,4)
FOR j= 1 TO 4
FOR k= 1 TO 4
a(j,k)=j+k
NEXT k
NEXT j
FOR j= 1 TO 4
【43】
NEXT j
PRINT sum
END
A) sum=sum+a(j,j) B) sum=sum+a(j),(j)
C) sum=sum+a(j-1,j) D) sum=sum+a(j,5-j)
(44)有如下函数
FUNCTION myfun(x)
IF x<=1 THEN
tmp=2
ELSE
tmp=myfun(x-1)+2
END IF
myfun=tmp
END FUNCTION
当以参数10调用此函数时,所返回的值是【44】
A) 1024 B) 512 C) 20 D) 不定值
(45)(46)(47)下面程序的功能是将一个数插入到已经从小到大排列的数组中,并使该数组仍保持原来的顺序。请在【45】、【46】、【47】处将程序补充完整。
DECLARE FUNCTION findposition (a(),nr,key1)
DIM b(20)
n=12
FOR j= 1 TO n
RDAD b(j)
NEXT j
INPUT “m=”;m
k=findposition(b(),n,m)
FOR j= n TO k STEP -1
【45】
NEXT j
【46】
DATA 8,10,12,16,17,19,41,47,55,64,87,99
FOR j= 1 TO 13
PRINT b(j);
NEXT j
END
FUNCTION findposition(a(),nr,key1)
FOR j= 1 TO nr
IF key1<=a(j) THEN 【47】
NEXT j
findposition=j
END FUNCTION
(45)【45】
A) b(j)=b(j+1) B) b(j)=b(j-1)
C) b(j+1)=b(j) D) b(j-1)=b(j)
(46)【46】
A) b(k-1)=m B) b(k+1)=m
C) b(j)=m D) b(k)=m
(47)【47】
A) END FOR B) EXIT
C) EXIT FUNCTION D) EXIT FOR
(48) (49) (50) 下列程序的功能是产生100个-300到300(含-300和300)间的不同随机整数,并找出其中最小数所在的位置。请在(48)、(49)、(50)处将程序补充完整。
DIM a(100)
REM Generate the different random numbers
j=1
DO WHILE 【48】
a(j)=INT(RND*601)-300
FOR k= 1 TO j-1
IF a(j)=a(k) THEN EXIT FOR
NEXT K
IF k>=j THEN 【49】
LOOP
n=100
REM Find the sumallest
k=1
FOR m=2 TO n
IF a(m)NEXT m
PRINT “k=”;k
END
【48】
A) j<=100 B) j>100 C) j>=100 D) j=100
【49】
A) j=j-1 B) j=j+1 C) EXIT DO D) j=k
【50】
A) a(k)=a(m) B) a(m)=a(k) C) m=k D) k=m
二、填空题(每空2分,共40分)请将每空的正确答案写在答题卡上【1】~【20】序号的横线上,答在试卷上不得分。
(1) E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1】 。
(2) 计算机网络分为广域网和局域网,因特网属于【2】 。
(3) 从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为【3】 。
(4) Windows环境下,只要在“开始”菜单中单击 【4】选项,就可以查况最近打开过的文档清单。
(5) 计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行【5】 条指令。
(6) 数学式(ax2+bx+c)e-2.5t的QBASIC表达式是【6】。
(7) 有如下程序【7】
Str1$=“TCGIGE”
FOR i= 1 TO LEN(str1$)
IF MID$(str1$,i,2)=“GT” THEN
MID$(str1$,i)=“!”
END IF
NEXT I
PRINT str1$
END
运行后,输出的结果是 【7】 。
(8) 有如下程序
DELARE SUB test(x%,y%)
CALL test(4,y%)
PRINT x%,y%
END
SUB test(x%,y%)
SWAP x%,y%
END SUB
运行后,输出的结果是【8】 。
(9) 对变量x的值进行四舍五入(保留小数点后两位)的表达式是 【9】 /100 。
(10) 下列程序定义一个名为“student”的记录类型,基域名、数据类型及数据长度如下:
域名 数据类型 数据长度
名字 字符型 20
年龄 整形 2
体重 单精度实型 4
请在【10】处填入适当内容将程序补充完整。
TYPE student
name AS string *20
age AS INTEGER
weight AS 【10】
END TYPE
(11) 下面程序的功能是输入n,并在n以内找出全部勾股数(勾股数:如果 a、b、c均为自然数,且a2+b2=c2 ,那么就称a、b、c为一级勾股数)。请在【11】、【12】处将程序补充完整。
INPUT n
n2=n*n
FOR i= 1 to n
j=i+1:tmp=i*i+j*j
DO WHILE 【11】
root=SQR(tmp)
IF root=INT(root) THEN PRINT I,j,root
tmp=tmp+2*j+1
j=【12】
LOOP
NEXT i
END
(12) 有如下程序
a$=“ABCDE”
FOR k= 1 TO 4
PRINT TAB(6-k); 【13】
NEXT K
END
运行后,输出的结果如下:
DE
CDE
BCDE
ABCED
但程序不完整,请在【13】处补充使之完整。
(13) 下面程序的功能是计算1~100之间所有或的倍数之和n ,并输出到文件a1.out中,然后重新从该文件中读取n的值,并在屏幕上输出。请在【14】【15】处填入适当的内容,将程序补充完整。
n=0:i=1
WHILE i<=100
IF i MOD 5 =0 OR i MOD 7 =0 THEN 【14】
i=i+1
WEND
OPEN “a1.out” FOR OUTPUT AS #1
PRINT #1,n
CLOST #1
OPEN 【15】 FOR INPUT AS #1
INPUT #1,n
PRINT “n=”;n
CLOSE #1
END
(14) 下列程序的功能是以数组中第一个数为标准,将数组分成两个部分( 小于等于该数的部分及大于该数的部分),并把结果连续存入在另一个数组中。在结果数组中放先入小的部分,再放原数组中的第一个数,最后放大的部分。请在【16】、【17】【18】处将程序补充完整。
DIM a(10),b(10)
FOR i = 1 TO 10
INPUT a(i)
NEXT i
【16】 :j=10
FOR k=2 TO 10
IF a(k)<=a(1) THEN
b(i)=a(k)
i=i+1
ELSE
b(j)=a(k)
【17】
END IF
NEXT K
b(j)=【18】
END
(15) 设有数列 xn = xn-1 + 2xn-2 (n=2,3, 4, … , x0 = x1 =1)。下面程序的功能是打印该数列中小于5000的数,并对基记数(含第0项)。请在【19】、【20】处将程序补充完整。
X0=1:x1=1
PRINT x0;x1;
k=2
x=x1+2*x0
DO WHILE 【19】
PRINT x;
x0=x1: 【20】
x=x1 + 2 * x0
k=k+1
LOOP
PRINT k
END