第一篇:2002-2010.3計算機等級二級vfp歷年考試真題答案(打印版)
年9月全國計算機考試VF二級考試筆試試題
一、選擇題((一)——(35)每小題2分,共70分)
下列各題A)、B)、C)、D)四個選項中,是有一個選項是正確的。請將正確選項添涂在答題卡相應的位置上,答在試卷上不得分。
(1)在寫列四個選項中,不屬于基本關系運算的是
A)連接 B)投影 C)選擇 D)排序
(2)如果一個班只能有一個班長,而且一個班長不能同時擔任其他班的班長,班級和班長兩個實體之間的關系屬于
A)一對一聯系 B)一對二聯系 C)多對多聯系 D)一對多聯系(3)VF支持的數據模型是
A)層次數據模型 B)關系數據模型 C)網狀數據模型 D)樹狀數據模型(4)VF的命令窗口中鍵如CREATE DATA命令以后,屏幕會出現一個創建對話框,要想完成同樣的工作,還可以采取如下步驟
A)單擊“文件”菜單中的“新建”按鈕,然后在新建對話框中選定“數據庫”單選鈕,再單擊“新建文件”命令按鈕
B)單擊“文件”菜單中的“新建”按鈕,然后在新建對話框中選定“數據庫”單選鈕,再單擊“向導”命令按鈕
C)單擊“文件”菜單中的“新建”按鈕,然后在新建對話框中選定“表”單選鈕,再單擊“新建文件”命令按鈕
D)單擊“文件”菜單中的“新建”按鈕,然后在新建對話框中選定“表”單選鈕,再單擊“向導”命令按鈕
(5)將內存變量定義為全局變量的VF命令是 A)LOCAL B)PRIVATE C)PUBLIC D)GLOBAL 0(6)擴展名為DBC的文件是
A)表單文件 B)數據庫表文件 C)數據庫文件 D)項目文件
(7)建設已經生成了名為mymenu的菜單問,執行該菜單文件的命令是 A)DO mymenu B)DO mymenu.mpr C)DO mymenu.pjx D)DO mymenu.mnx0(8)下面有關索引的描述正確的是
A)簡化里索引以后。原來的數據庫表文件中記錄的物理順序將被改變 B)索引與數據庫表的數據存儲在一個文件中
C)創建索引是創建一個指向數據庫表文件記錄的指針構成的文件 D)使用索引并不能加快對表的查詢操作
(9)若建立索引的字段值不允許重復,并且一個表中只能創建一個。它應該是 A)主索引 B)唯一索引 C)后選索引 D)普通索引(10)參照完整性的規則不包括
A)更新規則 B)刪除規則 C)插入規則 D)檢索規則
(11)一數據庫名為student,要想打開該數據庫,應使用的命令
A)OPEN student B)OPEN DATA student C)USE DATA student D)USE student(12)下列函數中函數值為字符型的是
A)DATE()B)TIME()C)YEAR()D)DATETIME()(13)在下面的數據類型中默認為.F.的是)數值型 B)字符型 C)邏輯型 D)日期型(14)在下面有關HAVING子句描述錯誤的是
A)HAVING子句必須與GROUP BY子句同時使用,不能單獨使用 B)使用HAVING子句的同時不能使用WHERE子句 C)使用HAVING子句的同時可以使用WHERE子句 D)使用HAVING子句的作用是限定分組的條件(15)——(27)使用的數據如下:
當前盤當前目錄下有數據庫db_stock,其中有數據庫表stock.dbf,該數據庫表的內容是: 股票代碼 股票名稱 單價 交易所 0600600 青島啤酒 7.48 上海 0600601 方正科技 15.20 上海 0600602 廣電電子 10.40 上海 0600603 興業房產 12.76 上海 0600604 二紡機 9.96 上海 0600605 輕工機械 14.59 上海 0000001 深發展 7.48 深圳
0000002 深萬科 12.50 深圳
(15)執行如下SQL語句后0SELECT * FROM stock INTO DBF stock ORDER BY 單價 A)系統將會提示出錯信息
B)會生成一個按“單價”升序排列的表文件,將原來的stock.dbf文件覆蓋 C)會生成一個按“單價”降序排列的表文件,將原來的stock.dbf文件覆蓋 D)不會生成排序文件,只能在屏幕上顯示一個按“單價”排序的結果
(16)執行下列程序以后,內存變量a的內容是0CLOSE DATABASE0a=00USE stock 0GO TOP0DO WHILE.NOT.EOF()0IF 單價>100a=a+10END IF0SKIP0END D A)1 B)3 C)5 D)7(17)有如下SQL SELECT語句0SELECT * FORM stock WHERE 單價BETWEEN 12.76 AND 15.20與該語句等價的是
A)SELECT * FORM stock WHERE 單價<=15.20.AND.單價>= 12.76 B)SELECT * FORM stock WHERE 單價< 15.20.AND.單價>12.76 C)SELECT * FORM stock WHERE 單價>= 15.20.AND.單價<=12.76 D)SELECT * FORM stock WHERE 單價>15.20.AND.單價< 12.76(18)如果在建立數據庫表stock.dbf時,將單價字段的字段有效性規則設為“單價>0”,通過該設置,能保證數據的
A)實體完整性 B)域完整性 C)參照完整性 D)表完整性(19)在當前盤當前目錄下刪除表stock的命令是
A)DROP stock B)DELETE TABLE stock C)DROP TABLE stock D)DELETE stock(20)有如下SQP語句0SELECT max(單價)INTO ARRAY a FROM stock0執行該語句后 A)a[1]的內容為15.2 B)a[1]的內容為6 C)a[0]的內容為15.2 D)a[0]的內容為6(21)有如下SQP語句0SELECT 股票代碼,avg(單價)as 均價 FROM stock0GROUP BY 交易所 INTO DBF temp 0執行該語句后temp表中第二條記錄的“均價”字段的內容是)ALTER TABLE stock 股票名稱 WITH c(10)B)ALTER TABLE stock 股票名稱 c(10)C)ALTER TABLE stock ALTRE 股票名稱 c(10)D)ALTER TABLE stock 股票名稱 c(10)(23)有如下SQP語句0CREATE VIEW stock_view AS SELECT * FROM stock WHERE 交易所=“深圳”0執行該語句后產生的視圖包含的記錄數個是 A)1 B)2 C)3 D)4(24)有如下SQP語句0CREATE VIEW view_stock AS SELECT 股票名稱AS 名稱、單價FROM stock0執行該語句后產生的視圖含有的字段名是
A)股票名稱、單價 B)名稱、單價 C)名稱、單價、交易所 D)股票名趁、單價、交易所(25)下面有關對視圖的描述正確的是
A)可以使用MODIFY STRUCTURE命令修改視圖的結構 B)視圖不能刪除,否則影響原來的數據文件
C)視圖是對表的復制產生的
D)使用對視圖進行查詢時必須事先打開該視圖所在的數據庫
(26)執行如下SQP語句后0SELECTVDISTINCT 單價 FROM stock;0WHERE 單價=(SELECT min(單價)FROM stock)INTO DBF stock_x0表stock_x中的記錄個數是 A)1 B)2 C)3 D)4(27)求每個交易所的平均單價的SQP語句是
A)SELECT 交易所,avg(單價)FROM stock GROUP BY單價 B)SELECT 交易所,avg(單價)FROM stock ORDER BY單價 C)SELECT 交易所,avg(單價)FROM stock ORDER BY交易所 D)SELECT 交易所,avg(單價)FROM stock GROUP BY交易所(28)視圖設計器中含有的、但查詢設計器卻沒有的選項卡是 A)篩選 B)排序依據 C)分組依據 D)更新條件(29)下面關于查詢描述正確的是 A)可以使用CREATE VIEW 打開查詢設計器
B)使用查詢設計器可以生成所有的SQP查詢語句
C)使用查詢設計器生成的SQP語句存盤后將存放在擴展名為QPR的文件中 D)使用DO語句執行查詢時,可以不帶擴展名
(30)使用報表向導定義報表時,定義報表布局的選項是 A)列數、方向、字段布局 B)列數、行數、字段布局 C)行數、方向、字段布局 D)列數、行數、方向
(31)能夠將表單的Visible屬性設置為.T.,并使表單成為活動對象的方法是 A)Hide B)Show C)Release D)SetFocus(32)下面對編輯框(EditBox)控制屬性的描述正確的是 A)SelLength屬性的設置可以小于0 B)當ScrollBars的屬性值為0時,編輯框內包含水平滾動條 C)SeText屬性在做界面設計時不可用,在運動時可讀寫 D)Readonly屬性值為.T.,用戶不能使用編輯框上的滾動條(33)下面對控件的描述正確的是)用戶可以在組合框中進行多重選擇 B)用戶可以在列表框中進行多重選擇
C)用戶可以在一個選項組中多個選項按鈕
D)用戶對一個表單內的一組復選框中只能選中其中一個
(34)確定列表框內的某個條目是否被選定應使用的屬性是0A)value B)ColumnCount C)ListCount D)Selected0(35)沒有關系R1和R2,經過關系運算得到結果是S,則S 是 A)一個關系 B)一個表單 C)一個數據庫 D)一個數組
二、填空題(每空2分,共30分)請將答案分別寫在答題卡中的序號為[1]——[5]的橫線上,答在試卷上不得分。
(1)Visual FoxPro 6.0是一個 [ 1 ] 位的數據棵管理系統。(2)在連接運算中,[ 2 ] 連接是去掉重復屬性的等值連接。
(3)項目管理器的 [ 3 ] 選項卡用于顯示和管理數據庫、自由表和查詢等。(4)自由表的擴展名是 [ 4 ]。
(5)LEFT(“123456789”,LEN(“數據庫”))的計算結果是 [ 5 ]。
(6)同一個表的多個索引可以創建在一個索引文件中,索引文件名與相關的表同名,索引文件的擴展名是 [ 6 ],這種作因稱為 [ 7 ]。
(7)用來確定復選框是否被選中的屬性是 [ 8 ],用來指定顯示在復選框旁的文字的屬性是 [ 9 ] 下面各題使用如下的“教師”表和“學院”表
“教師”表 職工號 姓名 職稱 年齡 工資 系號011020001 肖天海 副教授 35 2000.00 01 011020002 王巖鹽 教授 40 3000.00 02 011020003 劉星魂 講師 25 1500.00 01 011020004 張月新 講師 30 1500.00 03 0111020005 李明玉 教授 34 2000.00 01 011020006 孫民山 教授 47 2100.00 02 011020007 錢無名 教授 49 2200.00 03 0“學院”表0系號 系名 001 英語 002 會計 003 工商管理
(8)使用SQP語句將一條新的記錄插入學院表0INSERT [ 10 ] 學院(系號,系名)[ 11 ](“04”,“計算機”)
(9)使用SQP語句求“工商管理”系的所有職工的工資總和。0SELECT [ 12 ](工資)FROM 教師0WHERE 系號 IN(SELECT 系號 FROM [ 13 ] WHERE 系名=“工商管理”)
(10)使用SQP語句完成如下操作(將所有教授的工資提高5%)0[ 14 ] 教師 SET 工資=工資*1.05 [ 15 ] 職稱=“教授”
2002年9月VF試題答案(僅供參考)
DABAC CBCAD BBCBA CABCA BCBBD ADDCA BCBDA032 自然 數據.DBF 123456.CDX 結構復合索引 value CAPTION INTO valueS SUM 學院 UPDATE WHERE
一、2003年4月全國計算機等級考試VF二級筆試試題
選擇題((1)~(35)每小題2分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在大題卡相應位置上,答在試卷上不得分。 (1)Visual FoxPro DBMS 是
A)操作系統的一部分 B)操作系統支持下的系統軟件 C)一種編譯程序 D)一種操作系統
(2)Visual FoxPro DBMS 基于的數據模型是 A)層次型 B)關系型 C)網狀型 D)混合型
(3)設有部門和職員兩個實體,每個職員只能屬于一個部門,一個部門可以有多名職員,則部門與職員實體之間的聯系類型是
A)m:n B)1:m C)m:k D)1:1
(4)在Visual FoxPro中,調用表設計器建立數據庫表STUDENT.DBF的命令是 A)MODIFY STRUCTURE STUDENT B)MODIFY COMMAND STUDENT C)REATE STUDENT D)CREATE TABLE STUDENT (5)在Visual FoxPro中,關于自由表敘述正確的是
A)自由表和數據庫表是完全相同的 B)自由表不能建立字段級規則和約
C)自由表不能建立候選索引 D)自由表不可以加入到數據庫中
(6)在Visual FoxPro中,建立數據庫表時,將年齡字段值限制在12~14之間的這種約束屬于 A)實體完整性約束 B)域完整性約束 C)參照完整性約束 D)視圖完整性約(7)在Visual FoxPro中,運行表單T1.SCX的命令是
A)DO T1 B)RUN FORM1 T1 C)DO FORM T1 D)DO FROM T1 (8)使用SQL語句進行分組檢索時,為了去掉不滿足條件的分組,應當 A)使用WHERE子句 B)在GROUP BY后面使用HAVING 子句 C)先使用WHERE子句,再使用HAVING 子句。
D)先使用HAVING 子句,再使用WHERE子句
(9)在Visual FoxPro的參照完整性規則不包括 A)更新規則 B)刪除規則 C)查詢規則 D)插入規則
(10)在Visual FoxPro中,表結構中的邏輯型、通用型、日期型字段的寬度由系統自動給出,它們分別為: A)1、4、8 B)4、4、10 C)1、10、8 D)2、8、8
(11)在Visual FoxPro中,學生表STUDENT中包含有通用型字段,表中通用型字段中的數據均存儲到另一個文件中,該文件名為 A)STUDENT.DOC B)STUDENT.MEN
(12)在Visual FoxPro中,使用“菜單設計器”定義菜單,最后生成的菜單程序的擴展 A)MNX B)PRG C)MPR D)SPR (13)在Visual FoxPro中,使用SQL命令將學生STUDENT中的學生年齡AGE字段的值增加1歲,應該使用的命令是
A)REPLACE AGE WITH AGE+1 B)UPDATE STUDENT AGE WITH AGE+1 C)UPDATE SET AGE WITH AGE+1 D)UPDATE STUDENT SET AGE=AGE+1(14)調用報表格式文件PP1預覽報表的命令是
A)REPORT FROM PP1 PREVIEW B)DO FROM PP1 PREVIEW C)REPORT FORM PP1PREVIEW D)DO FORM PP1 PREVIEW
(15)在Visual FoxPro中,建立索引的作用之一是
A)節省存儲空間 B)便于管理 C)提高查詢速度 D)提高查詢和更新的速度(16)在Visual FoxPro中,相當于主關鍵字的索引是
A)主索引 B)普通索引 C)唯一索引 D)排序索引 (17)在Visual FoxPro中,為了將表單從內存中釋放(清除),可將表單中退出命令按鈕的Click事件代碼設置為
A)ThisForm.Refresh B)ThisForm.Delete C)ThisForm.Hide D)ThisForm.Release(18)假定一個表單里有一個文本框Text1和一個命令按鈕組CommandGroup1,命令按鈕組是一個容器對象,其中包含Command1 和Command2兩個命令按鈕。如果要在Command1令按鈕的某個方法中訪問文本框的value屬性值,下面哪個式子是正確的? A)ThisForm.Text1.value B)This.Parent.value C)Parent.Text1.value D)this.Parent.Text1.value(19)在Visual FoxPro 中,創建一個名為SDB.DBC的數據庫文件,使用的命令是 A)CREATE B)CREATE SDB C)CREATE TABLE SDB D)CREATE DATABASE SDB
(20)在Visual FoxPro中,存儲圖象的字段類型應該是B
A)備注型 B)通用型 C)字符型 D)雙精度型
(21)在Visual FoxPro中,下面4個關于日期或日期時間的表達式中,錯誤的是 A){^2002.09.01 11:10:10:AM}-{^2001.09.01 11:10:10AM} B){^01/01/2002}+2 C){^2002.02.01}+{^2001.02.01} D){^2002/02/01}-{^2001/02/01}
(22)在Visual FoxPro中,關于過程調用的敘述正確的是 A)當實參的數量少于形參的數量時,多余的形參初值取邏輯假 B)當實參的數量多于形參的數量時,多余的實參被忽略 C)實參與形參的數量必須相等 D)上面A和B都正確 (23)下面是關于表單數據環境的敘述,其中錯誤的是
A)可以在數據環境中加入與表單操作有關的表 B)數據環境是表單的容器
C)可以在數據環境中建立表之間的聯系 D)表單自動打開其數據環境中的(24)在Visual FoxPro中,如果希望一個內存變量只限于在本過程中使用,說明這種內存變量的命令是:
B)PUBLIC C)LOCAL
D)在程序中直接使用的內存變量(不通過A,B,C說明) (25)在 DO WHILE ? ENDDO循環結構中,LOOP命令的作用是: A)退出過程,返回程序開始處
B)轉移到DO WHILE語句行,開始下一個判斷和
C)終止循環,將控制轉移到本循環結構ENDDO后面的第一條語句繼續執行 D)終止程序執行
(26)在Visual FoxPro中,關于視圖的正確敘述是
A)視圖與數據庫表相同,用來存儲數據 B)視圖不能同數據庫表進行連接操作 C)在視圖上不能進行更新操作 D)視圖是從一個或多個數據庫表導出的虛擬表(27)SQL是那幾個英文單詞的縮寫
A)Standard Query Language B)Structured Query Language C)Select Query Language D)以上都不是
(28)如果學生表STUDENT是使用下面的SQL語句創建的 CREATE TABLE STUDENT(SNOC(4)PRIMARY KEY NOTNULL,;SN C(8),;SEX C(2),;AGE N(2)CHECK(AGE>15 AND AGE<30)下面的SQL語句中可以正確執行的是
A)INSERT INTO STUDENT(SNO,SEX,AGE)valueS(“S9”,“男”,17) B)INSERT INTO STUDENT(SNO,SEX,AGE)valueS(“李安琦”,“男”,20)C)INSERT INTO STUDENT(SEX,AGE)valueS(“男”,20)
D)INSERT INTO STUDENT(SNO,SN)valueS(“S9”,“安琦”,16)
(29)使用SQL語句從表STUDENT中查詢所有姓王的同學的信息,正確的命令是: A)SELECT*FROM STUDENT WHERE LEFT(姓名,2)=“王” B)SELECT*FROM STUDENT WHERE RIGHT(姓名,2)=“王” C)SELECT*FROM STUDENT WHERE TRIM(姓名,2)=“王” D)SELECT*FROM STUDENT WHERE STR(姓名,2)=“王”
(30)連編后可以脫離開Visual FoxPro獨立運行的程序是 A)APP程序 B)EXE程序 C)FXP程序 D)PRG程序
第(31)-(35)題使用如下表的數據:
部門表 部門號 部門名稱 40 家用電器部 10 電視錄攝像機部 20 電話手機部 30 計算機部 商品表 部門號 商品號 商品名稱 單價 數量 產地 40 0101 A牌電風扇 200.00 10 廣東 40 0104 A牌微波爐 350.00 10 廣東 40 0105 B牌微波爐 600.00 10 廣東 20 1032 C牌傳真機 1000.00 20 上海 40 0107 D牌微波爐_A 420.00 10 北京 20 0110 A牌電話機 200.00 50 廣東 20 0112 B牌手機 2000.00 10 廣東 40 0202 A牌電冰箱 3000.00 2 廣東 30 1041 B牌計算機 6000.00 10 廣東 30 0204 C牌計算機 10000.00 10 上海 (31)SQL語句
SELECT部門號,MAX(單價*數量)FROM商品表GROUP BY部門號查詢結果有幾條記錄? A)1 B)4 C)3 D)10
(32)SQL語句 SELECT 產地,COUNT(*)提供的商品種類數; FROM 商品表; WHERE 單價>200; GROUP BY 產地 HAVING COUNT(*)>=2; ORDER BY 2 DESC 查詢結果的第一條記錄的產地和提供的商品種類數是
A)北京,1 B)上海,2 C)廣東,5 C)廣東,7
(33)SQL 語句 SELECT 部門表.部門號,部門名稱,SUM(單價*數量); FROM 部門表,商品表; WHERE 部門表.部門號=商品表.部門號; GROUP BY 部門表.部門號 查詢結果是
A)各部門商品數量合計 B)各部門商品金額合計
C)所有商品金額合計 D)各部門商品金額平均值
(34)SQL 語句 SELECT 部門表.部門號,部門名稱,商品號,商品名稱,單價; FROM 部門表,商品表;、WHERE 部門表.部門號=商品表.部門號; ORDER BY 部門表.部門號 DESC,單價 查詢結果的第一條記錄的商品號是A)0101 B)0202 C)0110 D)0112 (35)SQL 語句 SELECT 部門名稱 FROM 部門表 WHERE 部門號 IN; (SELECT 部門號 FROM 商品表 WHERE 單價 BETWEEN 420 AND 1000)查詢結果是 A)家用電器部、電話手機部 B)家用電器部、計算機部
C)電話手機部、電視錄攝像機部 D)家用電器部、電視錄攝像機部
二、填空題(每空2分,共30分)請將每一個空的正確答案寫在答題卡上【1】—【15】序號的答題卡上,答在試卷上不得分。 (1)用二維表數據來表示實體之間聯系的數據模型稱為【1】。
(2)在Visual FoxPro 中說明數組后,數組的每個元素在未賦值之前的默認值是【2】。(3)可以在項目管理器的 【3】 選項卡下建立命令文件。
(4)在Visual FoxPro中數據庫文件的擴展名是【4】.DBC,數據庫表文件的擴展名是【5】(5)打開數據庫設計器的命令是【6】DATA
(6)在SQL的CAEATA TABLE 語句中,為屬性說明取值范圍(約束)的是【7】短語。(7)SQL插入記錄的命令是INSERT,刪除記錄的命令是【8】,修改記錄的命令是【9】。(8)在SQR的嵌套查詢中,量詞ANY和【10】是同義詞。在SQL查詢時,使用【11】 子句指出的是查詢條件。 (9)從職工數據庫表中計算工資合計的SQL語句是 SELECT【12】FROM職工。(10)把當前表當前記錄的學號,姓名字段值復制到數組A 的命令是 SCATTER FIELD 學號,姓名【13】。
(11)在表單中確定控件是否可見的屬性是【14】。 (12)函數BETWEEN(40,34,50)的運算結果是【15】。
答案:
一、選擇題(1)B(2)B(3)B(4)C(5)B(6)B(7)C(8)B(9)C(10)A(11)D(12)C(13)D(14)C(15)C(16)A(17)D(18)A(19)D(20)B(21)C(22)A(23)B(24)C(25)B(26)D(27)B(28)A(29)A(30)B(31)C(32)C(33)B(34)A(35)A
二、填空題(答案字母大小寫均可)(1)【1】 關系模型 或 關系(2)【2】.F.或 邏輯假 或 假 或.N.(3)【3】 代碼 或 全部(4)【4】 DBC 或.DBC 【5】 DBF 或.DBF(5)【6】 MODIFY 或 MODI 或 MODIF(6)【7】 CHECK 或 CHEC(7)【8】 DELETE 或 DELE 或 DELET 【9】 UPDATE 或 UPDA 或 UPDAT(8)【10】 SOME 【11】 WHERE 或 WHER(9)【12】 SUM(工資)(10)【13】 TO A(11)【14】 Visible(12)【15】.T.或 邏輯真 或 真 或.Y.2003年9月全國計算機等級考試二級Foxpro筆試試題
一、選擇題((1)~(40)每題1分,(41)~(50)每 題2分,共60分)
(1)在計算機中,一個字節所包含二進制位的個數是 A)2 B)4 C)8 D)16
(2)在多媒體計算機中,CD-ROM屬示媒體于 A)存儲媒體 B)傳輸媒體 C)表現媒體 D)表
(3)在DOS系統中,帶有通配符的文件名*.*表示
A)硬盤上的全部文件 B)當前盤當前目錄中的全部文件
C)當前盤上的全部文件 D)根目錄中的全部文件
(4)十六進制數100轉換為十進制數為 A)256 B)512C)1024 D)64
(5)能將高級語言編寫的源程序轉換為目標程序的軟件是
A)匯編程序 B)編輯程序 C)解釋程序 D)編譯程序
(6)在Internet中,用于在計算機之間傳輸文件的協議是
A)TELNET B)BBS C)FTP D)www.tmdps.cnO,GRADE),其中SNO,CNO分別表示意圖學號和課程號(兩者均為字符型),GRADE表示成績(數值型),若要把學號為”S101”的同學,選修課程號為”C11”,成績為98分的記錄插入到表SC中,正確的語名是。
A)INSERT INTO SC(SNO,CNO,GRADE)VALUES(‘S101’,‘C11’,‘98’)B)INSERT INTO SC(SNO,CNO,GRADE)VALUES(S101,C11,98)C)INSERT(‘S101’,‘C11’,‘98’)INTOSC D)INSERT INTO SC VALUES(S104,C11,98)(17)以下有關SELECT短語的敘述中錯誤的是。A)SELECT短語中可以使用別名
B)SELECT短語中只能包含表中的列及其構成的表達式 C)CELECT短語規定了結果集中的列順序
D)如果FROM短語引用兩個表有同名的列,則SELECT短語引用它們時必須使用表名前綴加以限定.(18)在SQL語句中,與表達式”年齡BETWEEN12AND16功能相同的表達式是。A)年齡>=12OR<=46 B)年齡>=12AND<=46 C)年齡>=12OR年齡<=46 D)年齡>=12AND年齡<=46(19)在SELECT語句中,以下有關HAVING短語的正確敘述是。A)HAVING短語必須與GROUP BY 短語同時使用 B)使用HAVING短語同時不能使用WHERE短語 C)HAVING短語可以在任意的一個位置出現 D)HAVING短語與WHERE短語功能相同
(20)在SQL的SELECT查詢的結果中,消除重復記錄的方法是。A)通過指定主索引實現 B)通過指定惟一索引實現 C)使用DISTINCT短語實現 D)使用WHERE短語實現
(21)在Visal Foxpro中,假定數據庫表S(學號,姓名,性別,年齡)和SC(學號,課程號,成績)之間使用學號建立了表之間的永久聯系,在參照完整性的更新規則,刪除規則和插入規則中選擇了設置了“限制”如果表S所有的記錄在表SC中都有相關聯系的記錄,則。A)允許修改表S中的學號字段值 B)允許刪除表S中的記錄
C)不允許修改表S中的學號字段值 D)不允許在表S中增加新的記錄(22)在VisualFoxpro中,對于字段值為空值(NULL)敘述正確的是。A)空值等同于空字符串 B)空值表示字段還沒有確定值 C)不支持字段值為空值 D)空值等同于數值0(23)在Visual Foxpro中,如果希望內存變量只能在本模塊(過程)中使用,不能在上層或下層模塊中使用,說明該種內存變量的命令是。
A)PRIVATE B)LOCAL C)PUBLIC D)A不用說明,在程序中直接使用
(24)在Visual Foxpro中,下面關于索引的正確描述是。A)當數據庫表建立索引以后,表中的記錄的物理順序將被改變 B)索引的數據將與表的數據存儲在一個物理文件中
C)建立索引是創建一個索引文件,該文件包含著有指向表記錄的指針 D)使用索引可以加快對表的更新操作
(25)在Visnal FoxPrn中.在數據庫中創建表的CREATE TABLE命令中定義主索引,實現實體完整性規則的短語是。
A)FOREIGE KEY B)DEFAULT C)PRIMARY KEY D)CHECK(26)在Visual Foxpro中,以下關于查詢的描述正確的是。A)不能用自由表建立查詢 B)只能用自由表建立查詢
C)不能用數據庫表建立查詢 D)可以用數據表和自由表建立查詢
(27)在Visual Foxpro中,數據庫表的字段或記錄的有效性規則的設置可以在。A)項目管理器中進行 B)數據庫設計器中進行
C)表設計器中進行 D)表單設計器中進行(28)在Visual Foxpro中,如果要將學生表S(學號,姓名,性別,年齡)中“年齡”屬性刪除,正確的SQL命令是。
A)ALTER TABLE S DROP COLUMN 年齡 B)DELETE 年齡FROM S C)ALTER TABLE S DELETE COLUMN 年齡
D)ALTER TABLE S DELETE年齡
(29)在Visual Foxpro的數據庫表中只能有一個。A)候選索引 B)普通索引 C)主索引 D)惟一索引
(30)設有學生表S(學號,姓名,性別,年齡),查詢所有年齡小于等于18歲的女同學,并按年齡進行降序生成新的表WS,正確的SQL命令是。
A)SELECT*FROMS WHERE性別=“女”AND年齡<=18ORDER BY 4 DBSC INTO TABLE WS B)SELECT*FROMS WHERE性別=“女”AND年齡<=18ORDER BY 年齡 INTO TABLE WS C)SELECT*FROMS WHERE性別=“女”AND年齡<=18ORDER BY 年齡 DESC INTO TABLE WS D)SELECT*FROMS WHERE性別=“女”OR 年齡 <=18ORDER BY 年齡ASC INTO TABLE WS(31)設有學生選課表SC(學號,課程號,成績),用SQL檢索同時選修課程號為“C1”“C5”的學生的學號的正確命令是
A)SELECT學號FROM SC WHERE 課程號=“C1”AND課程號=“C5”
B)SELECT學號FROM SC WHERE 課程號=“C1”AND課程號=(SELECT課程號 FROM SC WHERE 課程號=“C5”)
C)SELECT學號FROM SC WHERE 課程號=“C1”AND學號=(SELECT學號 FROM SC WHERE 課程號=“C5”)
D)SELECT學號FROM SC WHERE 課程號=“C1”AND學號 IN(SELECT學號 FROM SC WHERE 課程號=“C5”)
(32)設有學生表S(學號,姓名,性別,年齡)、課程表 C(課程名,學分)和學生選課表SC(學號,課程號,成績),檢索學號、姓名和學生所選課程的課程名和成績,正確的DQL命令是。A)SELECT學號,姓名,課程名,成績 FROM S,SC,C WHERE S.學號=SC.學號AND SC.學號=C.學號
B)SELECT學號,姓名,課程名,成績 FROM(SJOIN SC ON S.學號=SC.學號)JOIN C ON SC.課程號 =C.課程號
C)SELECT學號,姓名,課程名,成績 FROM S JOIN SC JOIN C ON S.學號=SC.學號ON SC.課程號=C.課程號
D)SELECT學號,姓名,課程名,成績 FROM S JOIN SC JOIN C ON SC.課程號=C.課程號 ONS,學號=SC.學號
(33)在Visual FoxPro中以下敘述正確的是。A)表也被稱作表單 B)數據庫文件不存儲用戶數據 C)數據庫文件的擴展名是DBF D)一個數據庫中的所有表文件存儲在一個物理文件中
(34)在Visual FoxPro中,釋放表單時會引發的事件是。A)UnLoad事件 B)Init事件 C)Load事件 D)Release事件
(35)在Visual FoxPro中,在屏幕上預覽報表的命令是。A)PREVIEW REPORT B)REPORT FORM···PREVIEW
C)DO REPORT···PREVIEW D)RUN REPORT···PREVIEW
二、填空題(每空2分,共30分)
請將每一個空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。注意:以命令關鍵字填空的必須拼寫完整。
(1)在深度為7的滿二叉樹中,度為2的結點個數為 【1】。
(2)軟件測試分為白箱(盒)測試和黑箱(盒)測試。等價類劃分法屬于【2】 測試。
(3)在數據庫系統中,實現各種數據管理功能的核心軟件稱為【3】。
(4)軟件生命周期可分為多個階段,一般分為定義階段,開發階段和維護階段,編碼和測試屬于【4】 階段。
(5)在結構化分析使用的數據流圖(DFD)中,利用【5】 對其中的圖形元素進行確切解釋。(6)為使表單運行時在主窗口中居中顯示。應設置表單的AutoCenter屬性值為【6】。(7)?AT(“EN”,RIGHT(“STUDENT”,4)的執行結果是【7】。
(8)數據庫表上字段有效性規則是一個【8】 表達式。
(9)在Visual FoxPro中,通過建立數據庫表的主索引可以實現數據的【9】 完整性。(10)執行下列程序,顯示的結果是【10】。one=“WORK” two=“” a=LEN(one)i =a DO WHILE i >1 Two=two+SUBSTR(one,i , 1)i =i –1 ENDDO two(11)“歌手”表中有“歌手號”、“姓名”和“最后得分”三個字段,“最后得分”越高名次越靠前,查詢前10名歌手的SQL語句是 SELECT*【10】 FROM 歌手ORDER BY 最后得分【12】。
(12)已有“歌手”表,將該表中的“歌手號”字段定義為候選索引、索引名是temp,正確的SQL語句是【13】 TABLE 歌手 ADD UNIQUE 歌手號 TAG temp(13)連編應用程序時,如果選擇連編生成可執行程序,則生成的文件的擴展名是【14】。
(14)為修改已建立的報表文件打開報表設計器的命令是【15】 REPORT
答案
1、C 解析: 棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區別是:棧只允許在表的一端進行插入或刪除操作,是一種“后進先出”的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種“先進先出”的線性表。
2、D 解析: 依據后序遍歷序列可確定根結點為c;再依據中序遍歷序列可知其左子樹由deba構成,右子樹為空;又由左子樹的后序遍歷序列可知其根結點為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構成,如下圖所示。求得該二叉樹的前序遍歷序列為選項D)。
3、B 解析: 鏈表采用的是鏈式存儲結構,它克服了順序存儲結構的缺點:它的結點空間可以動態申請和釋放;它的數據元素的邏輯次序靠結點的指針來指示,不需要移動數據元素。但是鏈式存儲結構也有不足之處:① 每個結點中的指針域需額外占用存儲空間;② 鏈式存儲結構是一種非隨機存儲結構。
4、D 解析: 順序結構、選擇結構和循環結構(或重復結構)是結構化程序設計的3種基本結構。
5、D 解析: 測試的目的是發現軟件中的錯誤。經驗表明,程序中存在錯誤的概率與該程序中已發現的錯誤數成正比。這一現象說明,為了提高測試效率,測試人員應該集中對付那些錯誤群集的程序。
6、C 解析: 算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執行算法所需要的計算工作量;算法的空間復雜度一般是指執行這個算法所需要的內存空間。
7、D 解析: 軟件生命周期分為軟件定義、軟件開發及軟件運行維護3個階段。本題中,詳細設計、軟件編碼和軟件測試都屬于軟件開發階段;維護是軟件生命周期的最后一個階段,也是持續時間最長,花費代價最大的一個階段,軟件工程學的一個目的就是提高軟件的可維護性,降低維護的代價。
8、C 解析: 選項A)、B)顯然不合題意。數據定義語言(Data Definition Language,簡稱DDL)負責數據的模式定義與數據的物理存取構建;數據操縱語言(Data Manipulation Language,簡稱DML)負責數據的操縱,包括查詢及增、刪、改等操作。
9、C 解析: 數據庫(Database,簡稱DB)是數據的集合,它具有統一的結構形式并存放于統一的存儲介質內,是多種應用數據的集成,并可被各個應用程序所共享。數據庫中的數據具有“集成”、“共享”之特點。
10、D 解析: 數據處理是指將數據轉換成信息的過程,故選項A)敘述錯誤;數據的物理獨立性是指數據的物理結構的改變,不會影響數據庫的邏輯結構,故選項B)敘述錯誤;關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性,對應存儲文件中的字段,故選項C)敘述錯誤。
11、A 解析: Visual FoxPro就是一種關系數據庫管理系統,一個“表”就是一個關系,一個關系就是一個二維表。關系數據庫管理系統可管理若干個二維表。
12、B 解析: 關系的基本運算可以分為兩類:傳統的集合運算和專門的關系運算。傳統的集合運算包括并、差、交等,專門的關系運算包括選擇、投影和聯接。
13、D
14、C 解析: 字符型數據的定界符為半角單引號、雙引號或方括號。但是,如果某種定界符本身也為字符串內容,則需要用另一種定界符為該字符串定界。
15、C 解析: 變量值可以隨時改變。在Visual FoxPro中,將變量分為字段變量和內存變量,變量的類型是可以隨時改變的,它的類型取決于變量值的類型,并不是變量類型決定變量值的類型,它是隨變量值的改變而改變。
16、C 解析: 結構復合索引文件是Visual FoxPro數據庫中最普通的,也是最重要的一種索引文件,它會隨著表的打開而自動打開。
17、A 解析: 實體完整性是保證表中記錄惟一的特性,即在一個表中不允許有重復的記錄。在Visual FoxPro中利用主關鍵字或候選關鍵字來保證表中的記錄惟一。
18、C 解析: LOCATE FOR是指查找到第1條滿足要求的記錄,然后使用CONTINUE繼續查找下1條滿足要求的記錄。選項B)是查找所有滿足要求的記錄。選項A),D)命令格式錯誤。
19、D 解析: 索引文件是數據庫的一部分,會隨著數據庫的關閉而關閉。20、B 解析: 在自由表中不可使用長字段名,字段名的最大值是10;數據庫表中可以使用長字段名,最大值為128。
21、C 解析: 在Visual FoxPro中,如果要在同一時刻打開多個表,只需要利用SELECT命令選擇不同的工作區并打開不同的表即可。最小的工作區號是1,最大的是32 767,即可以同時打開32 767個表。
22、C 解析: 查詢可以從指定的表或視圖中提取滿足條件的記錄,但它并不只限于單個表或視圖,查詢設計器的局限性是指它只能建立一些規則的查詢,如果要建立比較復雜的查詢,則只能通過SQL
SELECT語句來實現。
23、B 解析: 在Visual FoxPro中,視圖可以引用一個或多個表,也可以引用其他視圖,是一個定制的虛擬表,它可以是本地視圖、遠程視圖或帶參數的。
24、A 解析: WAIT命令只能接收單個字符型數據,可以在用戶輸入一個字符后自動結束該命令,故答案為A)。
25、D 解析: 公共變量可以被整個程序調用;私有變量只能被本層模塊和下層模塊程序調用;而局部變量只能被本層模塊調用,其他模塊都不能調用局部變量。
26、C 解析: 該循環語句中,變量s和i每次執行循環后值的變化如下: s值 i值第一次循環 5 6,第二次循環 11 7,第三次循環 18 8,程序在第四次執行循環時,因條件(18<=11)為假而退出循環。
27、C解析: 在Visual FoxPro中,類可分為控件類和容器類。控件類用于進行一種或多種相關的控制,其封裝性比容器類更加嚴密,但靈活性比容器類差,故答案為C)。
28、B 解析: 在Visual FoxPro中,對象被選定,就獲得焦點。如果要為控件設置焦點,Enabled和Visible屬性的值必須為真(.T.),其中Enabled屬性決定控件是否可用,而Visible屬性決定控件是否可見。
29、D 解析: 編輯框實際上是一個完整的字處理器,可進行選擇、剪切、粘貼及復制正文等操作,但在編輯框中只能輸入和編輯字符型數據。30、A 解析: Visual FoxPro中,支持兩種類型的菜單,分別是條形菜單和彈出式菜單。菜單系統一般是一個下拉式菜單,它是由一個條形菜單和一個彈出式菜單所組成的。
31、B 解析: 在報表設計器中,報表包括若干個帶區,頁標頭、細節和頁注腳3個帶區是快速報表默認的基本帶區,如果要使用其他帶區,用戶可在“報表”菜單中進行設置。
32、D 解析: Visual FoxPro在SQL方面支持數據定義、數據查詢和數據操縱功能。由于Visual FoxPro自身在安全控制方面的缺陷,它沒有提供數據控制功能。
33、C 解析: SELECT查詢語句最基本的格式為SELECT-FROM-WHERE。選項A)缺少FROM短語,選項B)和D)中條件短語錯誤。
34、D解析: 選項A)中缺少查詢的“倉庫”表,且查詢條件聯接有誤;選項B)中同樣缺少查詢的“倉庫”表;選項C)中查詢條件錯誤,應使用AND進行條件聯接,而不是OR。
35、D解析: 利用EXISTS或NOT EXISTS,可用來檢查在子查詢中是否有結果返回。利用運算符IN來表示,可寫成如下格式: SELECT * FROM 倉庫表 WHERE 倉庫 IN;(SELECT 倉庫號 FROM 職工表)1 有窮性 解析: 算法是指解題方案的準確而完整的描述。它有4個基本特征,分別是可行性、確定性、有窮性和擁有足夠的情報。解析: 對于長度為n的有序線性表,在最壞情況下,二分查找只需要比較log2n次,而順序查找需要比較n次。3 對象 解析: 將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。4 軟件生命周期 解析: 軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設計、實現、測試、交付使用以及維護等活動。5 關系模型 解析: 數據庫管理系統是位于用戶與操作系統之間的一層系統管理軟件,是一種系統軟件,是用戶與數據庫之間的一個標準接口。其總是基于某種數據模型,可以分為層次模型、網狀模型和關系模型。6 32 解析: Visual FoxPro從3.0版本開始,就是一個32位的管理系統,并支持面向對象編程。7 15 解析: SPACE()函數是用來生成指定數量的空格,結果為字符型數據。在字符表達式中,不論是“+”或“-”運算,都表示連接字符串的運算,其連接后的新字符串長度總是等于所連接的兩個字符串長度之和。LEN()函數用來測試字符串的長度。
8、AGAIN解析: 在Visual FoxPro中,一個工作區上只能打開一個數據表,如果要在不同工作區上打開同一個數據表文件,必須使用AGAIN短語。9 1.EXE 學生檔案管理 2.學生項目 解析: 連編應用程序的命令是BUILD APP或BUILD EXE,根據指定的項目生成一個應用程序。其中EXE文件可以在Windows環境下直接運行。10 1.命令交互 2.程序 解析: SQL語言是一種一體化語言,語言非常簡潔,是高度非過程化的語言,它不僅可以直接以命令方式交互使用,也可以嵌入到程序設計語言中以程序方式使用。11 1.選課表B 2.B.學生號=“W2” 解析: SQL不僅可以對多個關系進行聯接操作,也可
以將同一關系與其自身進行聯接。在自聯接操作中,別名是必不可少的,別名是在FROM短語中定義的,格式為<關系名> <別名>。12 1.SET 工資=工資+30 解析: 在SQL語句中,使用UPDATE更新語句可以修改表中的記錄。語句基本格式為: UPDATE TableName SET Column_Name1=eExpression1[,Column_Name1=eExpression1...] WHERE Condition 2007年9月全國計算機等級考試二級筆試試卷
一﹑選擇題(每小題2分,70分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應的位置上,答在試卷上不得分。
(1)軟件是指
A.程序 B.程序和文檔 C.算法加數據結構 D.程序、數據與相關文檔的完整集合(2)軟件調試的目的是
A.發現錯誤 B.改正錯誤 C.改善軟件的性能 D.驗證軟件的正確性(3)在面向對象方法中,實現信息隱蔽是依靠
A.對象的繼承 B.對象的多態 C.對象的封裝 D.對象的分類(4)下列敘述中,不符合良好程序設計風格要求的是 A.程序的效率第一,清晰第二 B.程序的可讀性好 C.程序中要有必要的注釋 D.輸入數據前要有提示信息(5)下列敘述中正確的是
A.程序執行的效率與數據的存儲結構密切相關 B.程序執行的效率只取決于程序的控制結構 C.程序執行的效率只取決于所處理的數據量 D.以上三種說法都不對
(6)下列敘述中正確的是
A.數據的邏輯結構與存儲結構必定是一一對應的
B.由于計算機存儲空間是向量式的存儲結構,因此,數據的存儲結構一定是線性結構 C.程序設計語言中的數組一般是順序存儲結構,因此,利用數組只能處理線性結構 D.以上三種說法都不對
(7)冒泡排序在最壞情況下的比較次數是
A.n(n+1)/2 B.nlog2 n C.n(n-1)/2 D.n/2(8)一棵二叉樹中共有70個葉子結點與80個度為1的結點,則該二叉樹中的總結點數為 A.219 B.221 C.229 D.231(9)下列敘述中正確的是
A.數據庫系統是一個獨立的系統,不需要操作系統的支持 B.數據庫技術的根本目標是要解決數據的共享問題 C.數據庫管理系統就是數據庫系統 D.以上三種說法都不對
(10)下列敘述中正確的是
A.為了建立一個關系,首先要構造數據的邏輯關系
B.表示關系的二維表中各元組的每一個分量還可以分成若干數據項 C.一個關系的屬性名表稱為關系模式 D.一個關系可以包括多個二維表
(11)在Visual Foxpro中,通常以窗口形式出現,用以創建和修改表、表單、數據庫等應用程序組件的可視化工具稱為
A.向導 B.設計器 C.生成器 D.項目管理器(12)命令?VARTYPE(TIME())結果是 A.C B.D C.T D.出錯
(13)命令?LEN(SPACE(3)-SPACE(2))的結果是 A.1 B.2 C.3 D.5(14)在Visual Foxpro中,菜單程序文件的默認擴名是A.mnx B.mnt C.mpr D.prg(15)想要將日期型或日期時間型數據中的年份用4位數字顯示,應當使用設置命令 A.SET CENTURY ON B.SET CENTURY OFF C.SET CENTURY TO 4 D.SET CENTURY OF 4(16)已知表中有字符型字段職稱和姓別,要建立一個索引,要求首先按職稱排序、職稱相同時再按性別排序,正確的命令是
A.INDEX ON 職稱+性別 TO ttt B.INDEX ON 性別+職稱TO ttt C.INDEX ON職稱,性別TO ttt D.INDEX ON 性別,職稱TO ttt(17)在Visual Foxpro中,Unload事件的觸發時機是 A.釋放表單 B.打開表單 C.創建表單 D.運行表單(18)命令SELECT 0的功能是
A.選擇編號最小的未使用工作區 B.選擇0號工作區 C.關閉當前工作區的表 D.選擇當前工作區
(19)下面有關數據庫表和自由表的敘述中,錯誤的是 A.數據庫表和自由表都可以用表設計器來建立 B.數據庫表和自由表都支持表間聯系和參照完整性 C.自由表可以添加到數據庫中成為數據庫表 D.數據庫表可以從數據庫中移出成為自由表(20)有關ZAP命令的描述,正確的是 A.ZAP命令只能刪除當前表的當前記錄
B.ZAP命令只能刪除當前表的帶有刪除標記的記錄 C.ZAP命令能刪除當前表的全部記錄 D.ZAP命令能刪除表的結構和全部記錄
(21)在視圖設計器中有,而在查詢設計器中沒有的選項卡是 A.排序依據 B.更新條件 C.分組依據 D.雜項
(22)在使用查詢設計器創建查詢是,為了指定在查詢結果中是否包含重復記錄(對應于DISTINCT),應該使用的選項卡是
A.排序依據 B.聯接 C.篩選 D.雜項
(23)在Visual Foxpro中,過程的返回語句是 A.GOBACK B.COMEBACK C.RETURN D.BACK(24)在數據庫表上的字段有效性規則是
A.邏輯表達式 B.字符表達式 C.數字表達式 D.以上三種都有可能
(25)假設在表單設計器環境下,表單中有一個文本框且已經被選定為當前對象。現在從屬性窗口中選擇Value屬性,然后在設置框中輸入:={^2001-9-10}-{^2001-8-20}。請問以上操作后,文本框Value屬性值的數據類型為:
第二篇:全國計算機等級考試二級vfp考點
010二級公共基礎知識復習綱要
第 1 章
數據結構與算法
考點1:算法具有4個基本特征:可行性、確定性、有窮性、擁有足夠的情報。確定性:是指算法中每一個步驟都必須是有明確定義的,不允許模棱兩可的定義 有窮性:是指算法必須能在有限的時間內做完
一個算法由兩種基本要素組成:一是對數據對象的運算和操作,二是算法的控制結構 考點2:算法復雜度包括時間復雜度和空間復雜度 時間復雜度
執行算法所需要的計算工作量 空間復雜度
執行這個算法所需要的內存空間 考點3:數據結構
一:討論的問題:1.數據元素之間的邏輯關系,即數據的邏輯結構 2.數據元素在計算機中的存儲關系,即數據的存儲結構 3.對各種數據結構進行的運算
考點4:數據結構分為兩大類型:線性結構與非線性結構。(1)如果一個非空的數據結構滿足下列兩個條件: ① 有且只有一個根結點;
② 每一個結點最多有一個前件,也最多有一個后件。則稱該數據結構為線性結構。
如果一個數據結構不是線性結構,則稱之為非線性結構。考點5:線性表
特點:(1)線性表中所有元素所占的存儲空間是連續的
(2)線性表中各數據元素在存儲空間中是按邏輯順序依次存放的 考點5: 棧的基本概念
棧(stack)是一種特殊的線性表,是限定只在一端進行插入與刪除的線性表。棧是按照“先進后出”或“后進先出”的原則組織數據的。考點6:隊列的基本概念
隊列是只允許在一端進行刪除,在另一端進行插入的順序表,通常將允許刪除的這一端稱為隊頭,允許插入的這一端稱為隊尾。當表中沒有元素時稱為空隊列。即先進先出表。循環隊列就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間,供隊列循環使用
考點7: 鏈表
在鏈式存儲方式中,要求每個結點由兩部分組成:一部分用于存放數據元素值,稱為數據域;另一部分用于存放指針,稱為指針域。其中指針用于指向該結點的前一個或后一個結點(即前件或后件)。考點8:二叉樹性質
(1)
在樹結構中,每一個結點只有一個前件,稱為父結點,沒有父結點的只有一個,成為根結點
(2)
沒有后件的結點成為葉子結點
(3)
一個結點所擁有的后件個數稱為該結點的度,在樹中,所有結點中最大的度稱為樹的度
(4)
樹的最大層次稱為樹的深度
(5)
在二叉樹的第k層上,最多有2^(k-1)個結點(6)
深度為m的二叉樹最多有2^m-1個結點(7)
任意一棵二叉樹,度為0的結點(即葉子結點)總是比度為2的結點多一個(8)
滿二叉樹:除最后一層外,每一層上的所有結點都有兩個子節點
(9)
完全二叉樹:除最后一層外,每一層上的結點數都達到最大值,在最后一層上只缺少右邊的若干結點
考點9: 二叉樹的遍歷
根據訪問根結點的次序,二叉樹的遍歷分為三類:前序遍歷、中序遍歷和后序遍歷。(1)前序遍歷
先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且在遍歷左、右子樹 時,仍需先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。(2)中序遍歷
先遍歷左子樹、然后訪問根結點,最后遍歷右子樹;并且,在遍歷左、右子 樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。例如,對圖 1-1 中的二叉樹進行中序遍歷的結果(或稱為該二叉樹的中序序列)(3)后序遍歷
先遍歷左子樹、然后遍歷右子樹,最后訪問根結點;并且,在遍歷左、右子 樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結點。考點10:各種排序的復雜度(1)順序查找需要比較n 次
(2)冒泡排序在最壞的情況下需要比較次數為n(n-1)/2。(3)簡單插入排序法,最壞情況需要n(n-1)/2 次比較;(4)希爾排序法,最壞情況需要O(n1.5)次比較。
(5)簡單選擇排序法,最壞情況需要n(n-1)/2 次比較;(6)堆排序法,最壞情況需要O(nlog2n)次比較。
第二章:程序設計基礎
考點1:結構化程序設計的原則
(1)自頂向上:先考慮整體,再考慮細節;先考慮全局目標,再考慮局部目標;(2)逐步求精:對復雜問題應設計一些子目標作為過渡,逐步細化;
(3)模塊化:把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊。
(4)限制使用goto 語句:在程序開發過程中要限制使用goto 語句。考點2:結構化程序的基本結構
結構化程序的基本結構有三種類型:順序結構、選擇結構和循環結構。
考點3: 面向對象方法涵蓋對象及對象屬性與方法、類、繼承、多態性幾個基本要素。對象是面向對象方法中最基本的概念,主要特點:(1)標識惟一型
(2)分類性(3)多態性
(4)封裝性
(5)模塊獨立性好 考點4:消息:對象間的相互合作需要一個機制來協助進行,這個機制就是消息 考點5:繼承是面向對象的方法的一個主要特征,分為單繼承和多重繼承
第三章:軟件工程基礎
考點1: 計算機軟件是包括程序、數據以及相關文檔的完整集合,軟件工程包括3 個要素:方法、工具和過程
考點2: 軟件產品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命周期。軟件生命周期還可以分為軟件定義、軟件開發、軟件運行維護階段 軟件定義階段包括:可行性研究、需求分析
軟件開發階段包括:概要設計、詳細設計、實現、測試 軟件維護階段包括:使用、維護、退役
考點3:軟件工程的理論和技術性研究主要包括:軟件開發技術和軟件工程管理 考點4:數據流圖圖符的含義
圓形表示加工,箭頭表示數據流,等于號表示存儲文件,矩形表示源、潭
考點5:數據字典:是結構化分析方法的核心,數據字典是對所有與系統相關的數據元素的一個有組織的列表
考點6:軟件需求規格說明書是需求分析階段的最后成果 考點7:模塊獨立性
衡量模塊獨立性的定性標準:內聚性與耦合性
內聚性:是一個模塊內部各個元素間彼此結合的緊密程度的度量 耦合性:模塊間互相連接的緊密程度的度量 一個優秀的設計應盡量做到高內聚、低耦合
考點8:典型的數據流類型有兩種:變換型和事務型 考點9:程序流程圖圖符的含義
考點10:軟件測試是為了發現錯誤而執行程序的過程 靜態測試是由人工進行的測試 動態測試是基于計算機的測試
考點11:白盒測試主要方法:邏輯覆蓋、基本路徑測試
黑盒測試主要方法:等價類劃分法、邊界值分析法、錯誤推測法、因果圖等
軟件測試過程一般按4個步驟來進行:單元測試、集成測試、驗收測試、系統測試
考點12:程序調試的任務是診斷和改正程序中的錯誤,與測試不同,軟件測試是盡可能多的發現錯誤
第四章:數據庫設計基礎
考點1:數據庫管理系統是數據庫的機構,它是一種系統軟件,負責數據庫中的數據組織,數據操縱,數據維護,控制及保護和數據服務等 考點2:數據庫系統提供的數據語言:(1)
數據定義語言:該語言負責數據的模式定義與數據的物理存取構建(2)
數據操縱語言負責數據的操縱,包括查詢及增、刪、改等
(3)
數據控制語言負責數據完整性、安全性的定義與檢查以及并發控制、故障恢復等 考點3:數據庫系統由如下幾部分組成:數據庫、數據庫管理系統、數據庫管理員、硬件平臺與軟件平臺
考點4:數據獨立性是數據與程序間的互不依賴性,即數據庫中數據獨立于應用程序而不依賴于應用程序,數據獨立性分為物理獨立性和邏輯獨立性 考點5:數據庫的三級模式
(1)
概念模式:是數據庫系統中全局數據邏輯結構的描述,是全體用戶公共數據視圖(2)
外模式:是用戶的數據視圖,也就是用戶所見到的數據模式(3)
內模式:它給出了數據庫物理存儲結構與物理存取方法 考點6:數據模型所描述的內容有三個方面:(1)
數據結構:主要描述數據的類型、內容、性質以及數據間的聯系(2)
數據操作:主要描述在相應數據結構上的操作類型與操作方式(3)
數據約束:主要描述數據結構內數據間的語法、語義聯系 考點7:E-R模型
(1)E-R模型由三個基本概念組成:實體、聯系和屬性
(2)在E-R圖示法中:矩形表示實體集,橢圓形表示屬性,菱形表示聯系
考點8:關系模型的約束包括實體完整性約束、參照完整性約束、用戶自定義完整性約束 考點9:關系代數
并運算:關系R與S經并運算后所得到的關系是由那些在R內或在S內的有序組 交運算:關系R與S經交運算后所得到的關系是由那些即在R內又在S內的有序組 差運算:關系R與S經差運算后所得到的關系是由那些在R內但不在S內的有序組 自然連接: 考點10:E-R圖與關系的轉換
E-R圖中實體與聯系都可以轉換成關系,屬性也可以轉換成關系的屬性 1.1 數據庫基礎知識
考點1 計算機數據管理的發展 1數據與數據處理
數據是指存儲在某一種媒體上能夠識別的物理符號。數據處理的中心問題是數據管理。2計算機數據管理(l)人工管理。(2)文件系統。(3)數據庫系統。
(4)分布式數據庫系統。(5)面向對象數據庫系統。3數據庫管理系統
為數據庫的建立、使用和維護而配置的軟件稱為數據庫管理系統DBMS(DataBase Management System)。
圖1-1 數據庫系統中數據與程序的關系 考點2 數據庫系統 1有關數據庫的概念
(1)數據庫(DataBase):存儲在計算機存儲設備上、結構化的相關數據的集合。
(2)數據庫應用系統(DBAS):是由系統開發人員利用數據庫系統資源開發出來的,面向某一類實際應用的應用軟件系統。
(3)數據庫管理系統(DBMS):對數據實行專門管理,提供安全性和完整性等統一機制,可以對數據庫的建立、使用和維護進行管理。
(4)數據庫系統(DBS):是指引進數據庫技術后的計算機系統,實現有組織地、動態地存儲大量相關數據,提供數據處理和信息資源共享的便利手段。數據庫系統由硬件系統、數據庫、數據庫管理系統及相關軟件、數據庫管理員和用戶等部分組成。2數據庫系統的特點
(l)實現數據共享,減少數據冗余。(2)采用特定的數據模型。(3)具有較高的數據獨立性。(4)具有統一的數據控制功能。考點3 數據模型 1實體的描述(1)實體。
(2)實體的屬性。(3)實體集和實體型。
2實體間聯系及聯系的種類(1)一對一聯系。(2)一對多聯系。(3)多對多聯系。3數據模型簡介
為了反映事物本身及事物之間的各種聯系,數據庫中的數據必須有一定的結構,這種結構用數據模型來表示,通常有以下3種。(1)層次數據模型。(2)網狀數據模型。(3)關系數據模型。小提示:
數據庫DB、數據庫系統DBS和數據庫管理系統DBMS之間的關系是DBS包括DB和DBMS。1.2 關系模型
關系模型的用戶界面非常簡單,一個關系的邏輯結構就是一張二維表。這種用二維表的形式表示實體和實體間聯系的數據模型稱為關系數據模型。1關系術語
(l)關系:一個關系就是一張二維表,每個關系有一個關系名。在Visual FoxPro中一個關系存儲為一個文件,擴展名為DBF,稱為“表”。
對關系的描述稱為關系模式,一個關系模式對應一個關系的結構,格式為: 關系名(屬性名1,屬性名2,?,屬性名n)(2)元組:在一個二維表中,水平方向的行稱為元組,每一行為一個元組。(3)屬性:將二維表中垂直方向的列稱為屬性,每一列都有一個屬性名。(4)域:屬性的取值范圍,即不同元組對同一個屬性的取值所限定的范圍。
(5)關鍵字:屬性或屬性的組合,其值能夠唯一地標識一個元組。在Visual FoxPro中,主關鍵字和候選關鍵字就起唯一標志一個元組的作用。
(6)外部關鍵字:如果表中一個字段不是本表的主關鍵字或候選關鍵字,而是另一個表的主關鍵字或候選關鍵字,那么這個字段(屬性)就稱為外部關鍵字。2關系的特點
(1)關系必須規范化。
(2)在同一個關系中不能出現同名屬性,Visual FoxPro中表示為字段名的不同。(3)關系中不允許有完全相同的元組,即冗余。(4)在一個關系中元組的次序無關緊要。(5)在一個關系中列的次序無關緊要。考點5 關系運算
對關系數據庫進行查詢時,需要找到用戶感興趣的數據,這就需要對關系進行一定的關系運算,關系的基本運算有兩類:傳統的集合運算和專門的關系運算。1傳統的集合運算
(1)并:兩個相同結構關系的并是由屬于這兩個關系的全部元組組成的集合。
(2)差:兩個相同結構關系的差是由屬于前一個關系的元組而不屬于后一個關系的元組組成的集合。例如,關系R和S的差結果是由屬于R但不屬于S的元組組成的集合。(3)交:兩個相同結構關系的交是由屬于這兩個關系所共有的元組組成的集合。2專門的關系運算
(1)選擇:從關系中找出滿足給定條件的元組的操作。(2)投影:從關系模式中指定若干個屬性組成新的關系:
(3)連接:關系的橫向結合,將兩個關系模式拼接成一個更寬的關系模式。
(4)自然連接:在連接運算中,按照字段值對應相等為條件進行的連接操作稱為等值連接。自然連接是去掉重復屬性的等值連接。小提示:
選擇和投影運算的操作對象只是一個表,相當于對一個二維表進行切割。連接運算則需要把兩個表作為操作對象。如果兩個表以上進行連接,應當兩兩進行連接。1.3 數據庫設計基礎 考點6 數據庫設計步驟 1設計原則
(l)關系數據庫的設計應遵從概念單一化“一事一地”的原則。(2)避免在表之間出現重復字段。
(3)表中的字段必須是原始數據和基本數據元素。(4)用外部關鍵字保證有關聯的表之間的聯系。2設計步驟
利用Visual FoxPro來開發數據庫應用系統,可以按照以下步驟來設計。(1)需求分析。(2)確定需求表C(3)確定需求字段。(4)確定聯系。(5)設計精確
1.4 Visual FoxPro系統概述 考點7 Visual FoxPro的特點(l)增強項目與數據庫管理。
(2)提高應用程序開發的生產率。(3)互操作性與支持Internet。(4)充分利用已有數據。2.1程序與程序文件 程序與程序文件
考點1 程序的概念、建立與執行 1程序的概念
程序是能夠完成一定任務的命令集合。這組命令被存放在稱為程序文件或命令文件的文本文件中。當運行程序時,系統會按照一定的次序自動執行包含在程序文件中的命令。2程序文件的建立與修改
程序文件的建立與修改一般是通過調用系統內置的文本編輯器來進行的。其建立步驟如下。(l)打開文本編輯窗口。
(2)在文本編輯窗口中輸入程序內容,此處所輸入的程序命令不會馬上被執行。
(3)編輯完成后,從“文件”菜單中選擇“保存”命令或按快捷鍵Ctrl+W保存程序文件。3打開或修改程序文件的方法
(1)從“文件”菜單中選擇“打開”命令,彈出“打開”對話框。(2)在“文件類型”列表框中選擇“程序”。(3)在文件列表框中選定要修改的文件,并單擊“確定”按鈕。
(4)編輯修改后,從“文件”菜單中選擇“保存”命令或按快捷鍵Ctrl+W保存程序文件,若要放棄修改,可直接按Esc鍵,或從“文件”菜單中選擇“還原”命令。4程序文件的執行
程序文件建立后,可使用多種方式、多次執行它,常用的以下有兩種方式。(l)菜單方式。(2)命令方式。
考點2 簡單的輸入輸出命令
程序一般都包含數據輸入、數據處理和數據輸出3個部分。1 INPUT命令
格式:INPUT[<字符表達式>]TO<內存變量> 功能:該命令等待用戶從鍵盤輸入數據,當用戶回車后,系統將表達式的值存入指定的內存變量。
注釋:輸入的數據可以是常量、變量,也可以是更為一般的表達式。但不能不輸入任何內容直接按回車鍵輸入字符串時必須加定界符,輸入邏輯型常量時要用圓點定界(如.T.,.F.),則輸入日期時間型常量時要用大括號(如{^2001-03-01})。2 ACCEPT命令
格式:ACCEPT[<字符表達式>]TO<內存變量> 功能:該命令等待用戶從鍵盤輸入字符串,當用戶回車后,系統將表達式的值存入指定的內存變量。
注釋:該命令只能接收字符串。用戶在輸入字符串時不需要加定界符;否則,系統會把定界符作為字符串本身的一部分。如果不輸入任何內容而直接按回車鍵,系統會把空串賦給指定的內存變量。3 WAIT命令
格式:WAIT[<字符表達式>][TO<內存變量>][WINDOW[AT<行>,<列>]] [NOWAIT][CLEARINOCLEAR][TIMEOUT<數值表達式>] 功能:該命令顯示字符表達式的值作為提示信息,暫停程序的執行,直到用戶按任意鍵或單擊鼠標時繼續程序運行。
注釋:<內存變量>用來保存用戶輸入的字符,其類型為字符型。若用戶按的是Enter鍵或單擊了鼠標,那么<內存變量>中保存的將是空串若不選TO <內存變量>短語,則輸入的單字符不保留。小提示:
如果用DO命令執行查詢文件、菜單文件,在文件名中必須要包括擴展名(QPR、MPR)。7.2 程序的基本結構
程序結構是指程序中命令或語句執行的流程結構,包括3種基本結構:順序結構、選擇結構和循環結構。考點3 順序結構
順序結構是最簡單的程序結構,它是按命令在程序中出現的先后次序依次執行。考點4 選擇結構
支持選擇結構的語句包括條件語句和分支語句。1條件語句 格式: IF<條件> <語句序列1> [ELSE> <語句序列2>] ENDIF 功能:該語句根據<條件>是否成立從兩組代碼中選擇一組執行。語句的執行流程圖如圖7-1和圖7-2所示。
圖7-1有ELSE的選擇語句
圖7-2無ELSE的選擇語句 2分支語句
格式:DO CASE CASE<條件1> <語句序列1> CASE<條件2> <語句序列2> ……
CASE<條件n> <語句序列n> [OTHERWISE <語句序列>] ENDCASE
功能:語句執行時,依次判斷CASE后面的條件是否成立。分支語句實現的是一種擴展的選擇結構,可以根據條件從多組代碼中選擇一組執行。分支語句的流程如圖7-3所示。
圖7-3 多分支語句 考點5 循環結構
循環結構也稱為重復結構,是指程序在執行的過程中,其中的某段代碼被重復執行若一干珠。被重復執行的代碼段,通常稱為循環體。Visual FoxPro支持循環結構的語句包括:DO WHILE-ENDDO、FOR-ENDFOR和SCAN-ENDSCAN。1 DO WHILEENDFOR語句 格式:
FOR<循環變量>=<初值>TO<終值>[STEP<步長>] <循環體> ENDFOR 功能:首先將初值賦給循環變量,然后判斷循環條件是否成立(若步長為正值,則循環條件為<循環變量><=<終值>;若步長為負值,則循環條件為<循環變量>>=<終值>)。如果成立,則執行循環體,然后循環變量增加一個步長值,并再次判斷循環條件,一直到條件為假時,退出循環體。該語句通常用于實現循環次數已知情況下的循環結構〕 3 SCAN-ENDSCAN語句 格式:
SCAN[<范圍>][FOR<條件1>][WHERE<條件2>] <循環體> ENDSCAN
功能:該循環語句一般用于處理表中記錄,語句可指明需要處理的記錄范圍及應滿足的條件。執行該語句時,記錄指針自動、依次地在當前表的指定范圍內滿足條件的記錄上移動,對每一條記錄執行循環體內的命令。7.3 多模塊程序
模塊是一個相對獨立的程序段,它可以被其他模塊調用,也可以調用其他模塊。通常,把被其他模塊調用的模塊稱為子程序,把調用其他模塊而沒有被其他模塊調用的模塊稱為主程序。應用程序一般都是多模塊程序,包含多個程序模塊。考點6 模塊的定義和調用 1模塊的定義
在Visual FoxPro中,模塊可以是命令文件,也可以是過程。過程定義的語句格式為: PROCEDURE|FUNCTION<過程名> <命令序列> [RETURN[<表達式>]] [ENDPROCIENDFUNC] 功能說明如下。
(1)PROCEDURE|FUNCTION命令表示一個過程的開始,并命名過程。過程名必須以字母或下劃線開頭,可以包含數字、字母和下劃線。
(2)當程序執行到RETURN命令時,控制將轉回到調用處(或命令窗口),并返回表達式的值。若默認RETURN命令,系統將在過程結束處自動調用一條隱含的RETURN命令。(3)ENDPROC|ENDFUNC命令表示一個過程的結束。如果默認此語句,那么過程結束于下一條PROCEDURE|FUNCTION命令或文件尾。2模塊的調用
模塊調用的格式有兩種。
(1)使用DO命令,格式如下。DO<文件名>|<過程名>(2)在名字后加一對小括號,格式如下。<文件名>|<過程名>()3打開過程文件 命令格式如下。
SET PROCEDURE TO[<過程文件1>[,<過程文件2>,?][ADDITIVE] 4關閉過程文件 命令格式如下。
RELEASE PROCEDURE<過程文件1>[,<過程文件2>,?] 考點7 參數傳遞
模塊程序可以接收調用程序傳遞過來的參數。
(1)PARAMETERS<形參變量1>[,<形參變量2>,?]。(2)LPARAMETERS<形參變量1>[,<形參變量2>,?]。
說明PARAMETERS聲明的形參被看做是模塊程序中建立的私有變量,LPARAMETERS聲明的形參被看做是模塊程序中建立的局部變量。除此之外,兩條命令無其他區別。不管是PARAMETERS或LPARAMETERS,都應該是模塊程序的第一條可執行命令。(1)調用參數調用模塊程序參數的格式如下。
DO<文件名>|<過程名>WITH<實參1>[,<實參2>,?] <文件名>|<過程名>(<實參1>[,<實參2>,?])說明:實參可以是常量、變量或一般表達式,調用模塊程序時,形參的數目不能少于實參的數目,當形參數目多于實參數目時,多余的形參取初值邏輯假.F.。
(2)參數的傳遞。模塊中參數的傳遞分為兩種:按值傳遞(實參一般為常量和表達式)和引用傳遞(實參一般為變量)。參數的傳遞方式可以重新設置,格式如下。SET UDFPARMS TO VALUE|REFERENCE 考點8 變量的作用域
變量的一個重要屬性是作用域。變量的作用域指的是變量在什么范圍內是有效或能夠被訪問的。在Visual FoxPro中,可分為公共變量、私有變量和局部變量3類。1.公共變量
在任何模塊中都可使用的變量稱為公共變量,公共變量必須先定義后使用,格式如下。PUBLIC<內存變量表> 說明:該命令是建立公共的內存變量,并賦以初值邏輯假.F.。建立好的公共變量一直有效,即使程序結束返回命令窗口也不會消失,只有執行CLEAR MEMORY,RELEASE或QUIT等命令后,才能被釋放。2私有變量
在程序中直接使用(沒有預先聲明),而由系統自動隱含建立的變量都是私有變量。私有變量的作用域是建立它的模塊及其下屬的各層模塊。3局部變量
局部變量只能在建立它的模塊中使用,不能在上層或下層模塊中使用。程序結束時,自動釋放局部變量。格式如下 LOCAL<內存變量表> 說明:該變量同樣給建立的內存變量賦以初值邏輯假.F.,也必須先定義后使用。當子程序中定義的變量名與主程序中同名時,為避免子程序中的變量值改變主程序中的變量值,可在子程序中使用PRIVATE命令隱藏主程序中可能存在的變量,使這些變量在子程序中暫時無效。格式如下。
(1)PRIVATE<內存變量表>。
(2)PRIVATE ALL[LIKE<通配符>|EXCEPT<通配符>]。說明:該命令并不建立內存變量,它只是隱藏指定的在上層模塊中可能已經存在的內存變量,但是當模塊程序返回到上層模塊時,被隱藏的變量就自動恢復有效性,保持原值。7.4 程序調試
考點9 調試器環境
程序調試是指在發現程序有錯誤的情況下,確定出錯位置并糾正錯誤。計算機一般能夠發現程序的出錯位置,但對于計算機不能發現的錯誤,只能由用戶自己來查錯。Visual FoxPro提供的功能強大的調試工具—調試器,可幫助我們進行這項工作。調用調試器的方法一般有兩種。
(l)選擇“工具”菜單中的“調試器”命令。(2)在命令窗口中輸入DEBUG命令。考點10 設置斷點
可以設置以下4種類型的斷點。
(1)在定位處中斷:可指定一行代碼,當程序調試執行到該行時,中斷程序運行。
(2)如果表達式值為真,則在定位處中斷:指定一行代碼及一個表達式,當程序調試執行到該行代碼時,如果表達式值為真,就中斷程序運行。
(3)當表達式值為真時中斷:可以指定一個表達式,在程序調試執行過程中,當該表達式值為邏輯真.T.時,中斷程序運行。
(4)當表達式值改變時中斷:可以指定一個表達式,在程序調試執行過程中,當該表達式值改變時,中斷程序運行。考點11 “調試”菜單
“調試”菜單包含執行程序、選擇執行方式、終止程序執行、修改程序,以及調整程序執行速度等命令。各命令具體功能如下。
(1)運行:執行在跟蹤窗口中打開的程序:
(2)繼續執行:當程序被中斷時,該命令可使程序在中斷處繼續往下執行。(3)取消:終止程序的調試執行,并關閉程序。
(4)定位修改:終止程序的調試執行,然后在文本編輯窗口中打開調試程序。
(5)跳出:以連續方式而非單步方式繼續執行被調用模塊程序中的代碼,然后在調用程序的調用語句的下一行處中斷。
(6)單步:單步執行下一行代碼。如果下一行代碼調用了過程或者方法程序,那么該過程或者方法程序在后臺執行。
(7)單步跟蹤:單步執行下一行代碼。
(8)運行到光標處:從當前位置執行代碼直至光標處中斷。
(9)調速:打開“調整運行速度”對話框,設置兩代碼行執行之間的延遲秒數。
(10)設置下一條語句:程序中斷時選擇該命令,可使光標所在行成為恢復執行后要執行的語句。
3.1 Visual FoxPro數據庫及其建立 考點1 建立和使用數據庫 1數據庫的建立
(1)在項目管理器中建立數據庫。(2)通過“新建”對話框建立數據庫。(3)使用命令建立數據庫,格式為:
CREATE DATABASE[DatabaseName |?] 2數據庫的打開
(1)在項目管理器中打開。(2)通過“打開”對話框打開數據庫。(3)使用命令打開數據庫,格式為:
OPEN DATABASE[FileName |?][EXCLUSIVE I SHARED] [NOUPDATE] [VALIDATE] 考點2 修改和刪除數據庫
Visual FoxPro在建立數據庫時建立了擴展名分別為dbc、dct和dcx的3個文件,用戶不能直接修改這些文件。
Visual FoxPro中修改數據庫實際是打開數據庫設計器,完成數據庫中各種對象的建立、修改和刪除等操作。
可以有3種方法打開數據庫設計器。(1)從項目管理器中打開數據庫設計器。(2)從“打開”對話框中打開數據庫設計器。(3)使用命令打開數據庫設計器,格式為: MODIFY DATABASE[DatabaseName|?] 在項目管理器中不管刪除還是移去數據庫文件,都不會刪除其所包含的各個對象做口數據表)。如果要在刪除數據庫的同時刪除其所包含的數據表,就必須使用命令,格式為: DELETE DATABASE DatabaseName|?[DELETETABLES][RECYCLE] 小提示:
在Visual FoxPro中,Open DataBase和Modify DataBase命令的區別在于:Open DataBase打開的只是數據庫的工作環境,并不會進入數據庫設計器;Modify DataBase是打開數據庫設計器。4.2 建立數據庫表
考點3 在數據庫中建立表 在數據庫中建立數據表,最直接的方法就是在數據庫設計器中利用鼠標右鍵單擊空白處,選擇“新建表”命令,在彈出的表設計器中設置數據表結構。另外可以在命令窗口利用OPEN DATA命令先打開數據庫,然后利用CREATE命令打開表設計器進行數據表設計,如圖4-l所示。
圖4-1 表設計器 1字段名
(l)自由表字段名最長為10個字符。(2)數據庫表字段名最長為128個字符。(3)字段名必須以字母或漢字開頭。
(4)字段名可以由字母、漢字、數字和下劃線組成。(5)字段名中不能包含空格。2字段類型和寬度
(1)字符型:可以是字母、數字等各種字符型文本,如用戶名稱。(2)貨幣型:貨幣單位,如貨物價格。(3)數值型:整數或小數,如訂貨數量。(3)浮點型:功能類似于“數值型”,其長度在表中最長可達20位。(4)日期型:由年、月、日構成的數據類型,如訂貨日期。
(5)日期時間型:由年、月、日、時、分、秒構成的數據類型,如員工上班的時間。(6)雙精度型:雙精度數慎類型,一般用于要求精度很高的數據。(7)整型:不帶小數點的數值類型,如訂單的行數。
(8)邏輯型:值為“真”(.T.)或假(.F.),如表示訂單是否已執行完。
(9)備注型:不定長的字符型文本。在表中占4個字節,表備注型文件的擴展名為FPT。(10)通用型:用于標記電子表格、文檔、圖片等OLE對象,在表中占4個字節。(11)字符型(二進制)。(12)備注型(二進制)。3空值
一個字段是否允許為空值與實際應用有關,比如作為關鍵字的字段是不允許為空值的,而那些在插入記錄時允許暫缺的字段值往往允許為空值。4字段有效性組框
在字段有效性組框中可以定義字段的有效性規則、違反規則時的提示信息和字段的默認值。5顯示組框
在顯示組框下可以定義字段顯示的格式、輸入的掩碼和字段的標題。輸入掩碼是字段的一種屬性,用限制或控制用戶輸入的格式。標題用于字段顯示時的標題,如果不指定標題則顯示字段名。當字段名是英文或縮寫時,則通過指定標題可以使界面更友好。6字段注釋
可以為每個字段添加注釋,便于日后或其他人對數據庫進行維護。考點4 修改表結構 在Visual FoxPro中可以對表結構任意修改,修改表結構和建立表結構時,表設計器界面完全一樣。修改數據表結構時,首先應該用USE命令打開要修改的數據表,然后利用MODIFY STRUCTURE打開表設計器進行修改,具體操作有以下幾種。(1)修改已有字段。(2)添加新字段。(3)刪除不用的字段。4.3 表的基本操作
考點5 使用瀏覽器操作表
在交互式工作方式下,最簡單、方便的方法就是使用BROWSE瀏覽器瀏覽表,打開瀏覽器的方法有多種。在項目管理器中將數據庫展開至表,然后單擊“瀏覽”按鈕,或直接在窗口中輸入BROWSE命令(首先應該打開表文件)。1瀏覽器操作
(1)下一記錄(下箭頭鍵)。(2)前一記錄(上箭頭鍵)。(3)下一頁(PageDown鍵)。(4)上一頁(PageUp鍵)。(5)下一字段(Tab鍵)。
(6)前一字段(Shift+Tab鍵)。2修改記錄
只需將光標定位到要修改的記錄和字段上,就可以進行修改了。3刪除記錄 Visual FoxPro中刪除記錄有邏輯刪除和物理刪除兩種,邏輯刪除只在記錄旁做刪除標記(如圖4-2所示),必要時可以進行恢復物理刪除是在邏輯刪除的基礎上真正地將記錄從表中刪除。要在瀏覽器中刪除有刪除標記的記錄,可選擇“表/徹底刪除”菜單命令。
圖4-2 增加和刪除記錄
考點6 增加、刪除、修改和顯示記錄的命令 1增加記錄
APPEND命令是在表的尾部增加記錄,格式有如下兩種。格式1:APPEND 格式2:APPEND BLANK 2插入記錄
格式:INSERT [BEFORE][BLANK] 3刪除記錄
刪除記錄有物理刪除和邏輯刪除兩種,Visual FoxPro用來刪除記錄的命令如下。(1)設置刪除標記的命令
格式:DELETE [FOR lExpressionl] 說明:如果不使用FOR短語指定邏輯條件,則只刪除當前記錄,否則邏輯刪除滿足條件的所有記錄。
(2)恢復記錄的命令。
格式:RECALL [FOR lExpressionl] 說明:使用該命令恢復表中邏輯刪除的記錄,短語FOR的功能同上。(3)物理刪除有刪除標記的記錄 格式:PACK 說明:此命令用來物理刪除當前表中所有帶刪除標記的記錄。(4)物理刪除表中的全部記錄 格式:ZAP 說明:不管表中記錄是否帶有刪除標記,此命令可以一次性將當前表中的記錄全部物理刪除,但表結構仍保留使用此命令相當于DELETE ALL與 PACK的連用。4修改記錄
在Visual FoxPro中可以交互修改記錄,也可以用指定值直接修改記錄。(1)用EDIT或CHANGE命令交互式修改。(2)用REPLACE命令直接修改。5顯示記錄
格式:LIST/DISPLAY [[FIELDS]FieldList][FOR LExpressionl][OFF] [TO PRINTER[PROMPT]|TO FILE FileName] 考點7 查詢定位的命令(1)用GOTO命令直接定位(2)SKIP命令
(3)用LOCATE命令定位。
LOCATE命令是按條件定位記錄位置,格式為: LOCATE FOR IExpressionl LOCATE命令常用結構如下。LOCATE FOR IExpression1 DO WHILE FOUND()****處理數據*** CONTINUE ENDDO 小提示:
連續使用DELETE ALL和PACK命令,其操作結果與ZAP命令一樣,都可以將表中的所有記錄一次性物理刪除。4.4 索引與排序
考點8 索引的基本概念
索引是對表中的記錄按照某種邏輯順序重新排列。
(l)主索引:在指定的字段或表達式中不允許出現重復值的索引,且一個表只能創建一個主索引。
(2)候選索引:具有與主索引相同的性質和功能,但一個表中可以創建多個候選索引,其指定的字段或表達式中也不允許出現重復值。
(3)唯一索引:它的“唯一性”是指索引項的唯一,而不是字段值的唯一。但在使用該索引時,重復的索引段值只有唯一一個值出現在索引項中。
(4)普通索引:不僅允許字段中出現重復值,并且索引項中也允許出現重復值。考點9 索引的建立 1單項索引
在表設計器界面中有“字段”、“索引”和“表“3個選項卡,在“字段”選項卡中定義字段時就可以直接指定某些字段是否為索引項,用鼠標單擊定義索引的下拉列表框可以看到3個選項:無、升序和降序(默認是無)。如果選定升序或降序,則在對應的字段上建立一個普通索引,索引名與字段名同名,索引表達式就是對應的字段。2復合字段索引
(1)在“索引”選項卡中的索引名欄目中輸入索引名。(2)在索引類型的下拉框中選擇索引類型。
(3)單擊表達式欄右側的按鈕,打開表達式生成器。
(4)在“表達式”文本框中輸入索引表達式(如圖4-3所示),最后單擊“確定”按鈕。
圖4-3 表達式生成器界面
3使用命令建立索引
格式:INDEX ON eExpression TO IDXFileName | TAG TagName[OF CDXFileName] [FOR lExpression][COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] 從索引的組織方式來講,索引共有3種類型。(1)單獨的IDX索引,是一種非結構索引。
(2)采用非默認名的CDX索引,也是一種非結構復合索引。(3)與表同名的CDX索引,是結構復合索引。結構復合索引文件可隨表的打開而打開,在同一個索引文件中能包含多個索引方案或索引關鍵字,在添加、更改或刪除記錄時自動維護索引。考點10 索引的使用
(l)打開索引文件,格式為: SET INDEX TO Indexfilelist(2)設置當前索引,格式為:
SET ORDER TO[nIndexNumber |[TAG]TagName][ASCENDING|DESCENDING](3)使用索引快速定位,格式為:
SEEK eExpression[ORDER nIndexNumber|[TAG]TagName][ASCENDING| DESCENDING](4)刪除索引,格式為:
DELETE TAG TagNamel
&&TagName1為索引名 要刪除全部索引,可使用命令:DELETE TAG ALL 考點11 排序
索引可以使用戶按照某種順序瀏覽或查找表中的記錄,這種順序是邏輯的,如要對表中的記錄按物理順序重新排列,可使用SORT命令,格式為: SORT TO TableName ON FieldNainel[/A}/D][/C][,FieldName2[/A|/D][/C]?][ASCEND ING | DESCENDING][FOR lExpressionl][FIELDS FieldNameList] 小提示:
在數據庫表中只能有一個主索引,且只能在表設計器中建立。其他3種索引可以建立多個,既能在表設計器中建立,也能以命令方式建立,但在自由表中不能為其創建主索引,只能創建后3種索引,同樣也可以建立多個。4.5 數據完整性
考點12 實體完整性與主關鍵字
(1)實體完整性是保證表中記錄唯一的特性,即在同一個表中不允許有重復的記錄出現。在Visual Pro中通過主索引和候選索引來保證數據的實體完整性。
(2)如果一個字段的值或幾個字段的值能夠唯一標志表中的一條記錄,則稱這個字段為候選關鍵字。在Visual FoxPro中將主關鍵字稱做主索引,將候選關鍵字稱為候選索引。考點13 參照完整性與表之間的關聯 1建立表之間的聯系
參照完整性與表之間的聯系有關,其含義大致是:當插入、刪除或修改一個表中的數據時,通過參照引用相互關聯的另一個表中的數據,檢查對表的數據操作是否正確。
在數據庫設計器中設計表之間的聯系時,要在父表中建立主索引,在子表中建立普通索引,然后通過父表主索引和子表的普通索引建立起兩個表之間的聯系。2設置參照完整性約束
建立參照完整性之前,首先必須清理數據庫,即物理刪除表中被邏輯刪除的記錄,然后選擇兩個關聯表之間的連線并選擇“數據庫”、“編輯參照完整性”菜單命令,打開如圖4-4所示的“參照完整性生成器”對話框。
圖4-4 “參照完整性生成器”對話框 小提示:
欲建立兩表之間的聯系,首先用鼠標選中一個表的主索引,按住鼠標左鍵不放,并拖動鼠標到另一個表的索引上,這時鼠標箭頭變成小矩形狀,最后釋放鼠標。4.6 自由表
考點14 數據庫表與自由表
自由表是不屬于任何數據庫的表。在沒有打開數據庫時,所建立的表就是自由表。數據庫表與自由表之間可以相互轉化。1建立自由表的方法
(1)在項目的“數據”選項卡中選擇“自由表”,單擊“新建”按鈕。
(2)在沒有打開數據庫的情況下,通過“新建”對話框,選擇“表”并單擊“新建文件”按鈕。
(3)在沒有打開數據庫的情況下,在命令窗口輸入CREATE命令,新建自由表。2數據庫表相對于自由表的特點
(l)數據庫表可以使用長表名,在表中可以使用長字段名。(2)可以為數據庫表中的字段指定標題和添加注釋。(3)可以為數據庫表中的字段指定默認值和輸入掩碼。(4)數據庫表的字段有默認的控件類。
(5)可以為數據庫表規定字段級規則和記錄級規則。
(6)數據庫表支持主關鍵字、參照完整性和表之間的聯系。(7)支持INSERT,UPDATE和DELETE事件的觸發器。考點15 將自由表添加到數據庫中
(1)在數據庫設計器中可利用“數據庫”→“添加表”菜單命令,在“打開”對話框中選擇自由表文件,將其添加到數據庫中。
(2)直接用命令方式將自由表添加到當前數據庫中,格式為: ADD TABLE TableName|?[NAME LongTableName] 考點16 從數據庫中移出表
(1)直接利用命令移出數據庫表,格式為:
REMOVE TABLE TableName |?[DELETE][RECYCLE](2)從項目管理器中移出數據庫。(3)從數據庫設計器中移出數據庫。4.7 多個表的同時使用
在Visual FoxPro中,一次可以打開多個數據庫,每個數據庫都可以打開多個數據表。考點17 多工作區的概念
指定工作區的命令格式為SELECT nWorkArea | cTableAlias,每個表打開后都有兩個默認別名,一個是表的自身名,另一個是工作區所對應的別名。在前10個工作區中指定的默認別名是工作區字母A~J,其后面的工作區所對應的別名為W11~W32767。
另外還可以在USE命令中通過ALIAS短語指定表別名。
例如:USE學生表IN 1 ALIAS student,為學生表指定了別名student。考點18 使用不同工作區的表
除了使用SELECT命令切換不同的工作區之外,也可以在一個工作區使用其他工作區的數據表。即通過短語:IN nWorkArea|cTableAlias。在表別名后加上“.”或“->”操作符,可在一個工作區中直接調用其他工作區中數據表的記錄。例如當前工作區號為2,要調用1區上學生表中的班級號的相關字段,可使用命令:
學生表.班級號 或學生表->班級號或A.班級號或A->班級號 考點19 表之間的關聯
使用SET RELATION命令建立表間記錄指針的臨時聯系(關聯)。
格式:SET RELATION TO eExpressionl INTO nWorkAreal I cTableAliasl。
說明:eExpressionl是指建立臨時聯系的索引關鍵字,一般是父表的主索引,子表的普通索引。用工作區號 nWorkAreal或表的別名cTableAlias I說明臨時聯系是由當前工作區的表到哪個表。利用SET RELATION TO命令將取消當前表到所有表的臨時聯系。4.1 SQL概述 5.1 SQL概述 考點1 概述 1概念
SQL是結構化查詢語言Structured Query Language的縮寫。它包括數據查詢、數據定義、數據操縱和數據控制4部分。Visual FoxPro在SQL方面支持數據定義、數據查詢和數據操縱功能。另外,由于Visual FoxPro自身在安全控制方面的缺陷,所以它沒有提供數據控制功能。2 SQL語言的特點
(1)一種一體化的語言。
(2)一種高度非過程化的語言。(3)語言非常簡潔。
(4)可以直接以命令方式交互使用,也可以以程序方式使用。5.2 查詢功能
SQL的核心是查詢,基本形式由SELECT-FROM-WHERE查詢塊組成,多個查詢塊可嵌套執行,如表5-1所示。
表5-1 SQL命令動詞
考點2 簡單查詢 1簡單查詢
簡單查詢是由SELECT和FROM短語構成的無條件查詢,或由SELECT,FROM和WHERE短語構成的條件查詢。2簡單的連接查詢
連接是關系的基本操作之一,連接查詢是一種基于多個關系的查詢。3嵌套查詢
嵌套查詢所要求的結果出自一個關系,但關系的條件卻涉及多個關系。其內層基本上也是一個SELECT-FROM-WHERE查詢語句。這種簡單嵌套查詢,可使用謂詞IN或NOT IN來判斷在外層的查詢條件中是否包含內層查詢的結果。考點3 特殊運算符號 1 BETWEEN?AND?
含義:該查詢的條件是在??范圍之內,相當于用AND連接的一個邏輯表達式。2 LIKE 含義:它是一個字符串匹配運算符,與之搭配使用的通配符包括“*”和“?”。考點4 排序
使用SQL SELECT可以將查詢結果進行排序,排序的短語是ORDER BY。格式:ORDER BY Order_Item[ASCIDESC][,Order_Item[ASC|DESC]?] 說明:可以按升序(ASC)或降序(DESC)排序,允許按一列或多列排序。考點5 計算查詢 1簡單的計算查詢
SQL不僅具有一般的檢索能力,而且還有計算方式的檢索,用于計算檢索的函數有:COUNT(計數)、SUM(求和)、AVG(計算平均值)、MAX(求最大值)及MIN(求最小值)。2分組與計算查詢
在SQL SELECT中可以利用GROUP BY子句進行分組計算查詢。
格式:GROUP BY GroupColumn[,GroupColumn?][HAVING FilterCondition] 說明:可以按一列或多列分組,還可以用HAVING子句進一步限定分組的條件。它必須跟在GROUP BY子句之后,不可單獨使用,與WHERE子句并不矛盾。考點6 別名和自連接查詢
(1)SQL語句允許在二OM短語中為關系定義別名,格式為:一 <關系名><別名>(2)SQL不僅可以對多個關系進行連接操作,也可以將同一關系與其自身進行連接,這種連接就稱為自連接。在關系的自連接操作中,別名是必不可少的。考點7 使用量詞和謂詞的查詢
與嵌套查詢或子查詢有關的運算符,除了IN和NOT IN運算符外,還有兩類與子查詢有關的運算符,它們有以下兩種格式。
(1)<表達式><比較運算符>[ANY I ALL | SOME](子查詢)(2)[NOT]EXISTS(子查詢)EXISTS是謂詞,EXISTS或NOT EXISTS是用來檢查在子查詢中是否有結果返回,即存在元組或不存在元組。其本身并沒有進行任何運算或比較,只用來返回子查詢結果。考點8 超鏈接查詢
(1)在新的SQL標準中支持兩個新的關系連接運算符,這兩個新的連接運算是左連接(*=)和右連接=*):首先保證一個表中滿足條件的元組都在結果表中,然后將滿足連接條件的元組與另一個表的元組進行連接,不滿足連接條件的則應將來自另一個表的屬性值置為空值。在一般SQL中超鏈接運算符是“*=”(左連接)和“=*”(右連接)。(2)在Visual FoxPro中不支持超鏈接運算符“*=”和“=*”,Visual FoxPro有專門的連接運算。下面拼出SQL中超鏈接的部分語句格式: SELECT…
FROM Table INNER|LEFT|RIGHT|FULL JOIN Table ON JoinCondition WHERE…
考點9 Visual FoxPro中SQL SELECT的幾個特殊選項(l)顯示部分結果,格式為: TOP nExpr[PERCENT](2)將查詢結果存放到數組中,格式為: INTO ARRAY ArrayName(3)將查詢結果存放到臨時文件中,格式為: INTO CURSOR CursorName(4)將查詢結果存放到永久表中,格式為: INTO DBF|TABLE TableName(5)將查詢結果存放到文本文件中,格式為: TO FILE FileName[ADDITIVE](6)將查詢結果直接輸出到打印機,格式為: TO PRINTER[PROMPT] 5.3 操作功能 考點10 插入
Visual FoxPro支持兩種SQL插入命令的格式,一種是標準格式,另一種是特殊格式。1標準格式
INSERT INTO dbf name[(frame 1[,fname2,?])] VALUES(eExpressionl[,eExpression2,?])2特殊格式
INSERT INTO dbf _name FROM ARRAY ArrayName|FROM MEMVAR 考點11 更新
SQL的數據更新命令格式如下: UPDATE TableName SET Column_Namel=eEpressionl[,Column_Name2=eExpression2?] WHERE Condition 說明:利用WHERE字句指定條件,以更新滿足條件的一些記錄的字段值,并巨一次可更新多個字段;如果不使用WHERE子句,則更新全部記錄。考點12 刪除
SQL從表中刪除數據的命令格式如下:
DELETE FROM TableName[WHERE Condition] 說明:FROM指定從哪個表中刪除記錄,WHERE指定被刪除的記錄所滿足的條件,如果不使用WHERE子句,則刪除該表中的全部記錄。小提示:
當一個表定義一個主索引或候選索引后,由于相應的字段具有關鍵字的特性,即不能為空,所以只能用此命令插入記錄、)APPEND和INSERT都是插入一條空白記錄再輸入各字段的值,故不能用它們來插入記錄。5.4 定義功能 考點13 表的定義
利用SQL命令建立的數據表同樣可以完成在表設計器中設計表的所有功能。格式:CREATE TABLE I DBF TableNamel[NAME LongTableName][FREE](FieldNarnel FieldType[(nFieldWidth[,nPrecision])][NULL |NOT NULL] [CHECK IExpressionl [ERROR cMessageTextl]] [DEFAULT eExpressionl] [PRIMARY KEY I UNIQUE] [PEFERENCES TableName2[AG TagName1]] [NOCPTRANS] [,FieldName2?] [,PRIMARY KEY eEpression2 TAG TagName2|,UNIQUE eExpression3 TAG TagName3] [,FOREIGN KEY eExpression4 TagName4[NODUP] REFERENCES TableName3 [TAG TagName5]] [,CHECK lExpression2[ERROR cMessageText2]])|FROM ARRAY ArravNasne 說明:此命令除了建立表的基本功能外,還包括滿足實體完整性的主關鍵字(主索引)PRIMARY KEY、定義域完整性的CHECK約束及出錯提示信息ERROR、定義默認值DEFAULT等,另外還有描述表之間聯系的FOREIGN KEY和REFERENCES等。考點14 表的刪除
利用SQL命令刪除表,可直接使用語句,格式為: DROP TABLE Table_name 說明:如果刪除的是自由表,則應該將當前打開的數據庫先關閉,才能進行刪除。如果刪除數據庫表,則要先打開數據庫,在數據庫中進行操作二否則,即使刪除了數據庫表,但記錄在數據庫中的信息并沒有被刪除,此后會出現錯誤提示。考點15 表結構的修改
修改表結構的命令是ALTER TABLE,該命令有3種格式。
(1)ALTER TABLE TableNamel ADD| ALTER[COLUMN]FieldNamel FieldTvpe[(nFieldWidth[,nPrecision])][NULL |NOT NULL] [CHECK lExpressionl[ERROR cMessageTextl ]][DEFAULT eExpressionl] [PRIMARY KEY |UNIQUE] [REFERENCES TableName2[TAG TagNamel〕](2)ALTER TABLE TableNamel ALTER[COLUMN]FieldName2[NULL|NOT NULL] [SET EFAULTeExpression2][SET CHECK lExpression2[ERROR cMessageText2] [DROP DEFAULT][DROP CHECK](3)ALTER TABLE TableName1[DROP [COLUMN]FieldName3] [SET CHECK lExpression3[ERROR cMessageText3] [DROP CHECK] [ADD PRIMARY KEY eExpression3 TAG TagName2[FOR lExpression4]] [DROP PRIMARY KEY〕
[ADD UNIQUE eExpression4[TAG TagName3[FOR lExpression5]]] [DROP UNIQUE TAG TagName4] [ADD FOREIGN KEY[eExpression5] TAG TagName4[FOR lExpression6] REFERENCES TableName2[TAG TagName5]] [DROP FOREIGN KEY TAG TagName6[SAVE]] [RENAME COLUMN FieldName4 TO FieldName5] 考點16 視圖的定義 1視圖的概念及其定義(l)視圖的概念。
Visual FoxPro中視圖是一個虛擬的表,可以是本地的、遠程的或帶參數的。(2)視圖的定義,格式為:
CREATE VIEW view name[(column_name[,column_name]?)] AS select_statement 2從單個表派生出來的視圖
視圖一經定義,就可以和基本表一樣進行各種查詢,也可以進行一些修改操作。對于最終用戶來說,有時并不需要知道操作的是基本表還是視圖。3從多個表派生出來的視圖
視圖一方面可以限定對數據的訪問,另一方面又可以簡化對數據的訪問。4視圖的刪除
視圖由于是從表派生出來的,所以不存在修改結構的問題,但是視圖可以刪除。格式:DROP VIEW<視圖名> 5關于視圖的說明
在關系數據庫中,視圖始終不真正含有數據,它總是原有表的一個窗口。所以,雖然視圖可以像表一樣進行各種查詢,但是插入、更新和刪除操作在視圖上卻有一定限制。在一般情況下,當一個視圖是由單個表導出時可以進行插入和更新操作,但不能進行刪除操作;當視圖是從多個表導出時,插入、更新和刪除操作都不允許進行。這種限制是很有必要的,它可以避免一些潛在問題的發生。5.1 查詢與視圖
考點1 查詢設計器 1查詢的概念
查詢是從指定的表或視圖中提取滿足條件的記錄,然后按照想得到的輸出類型定向輸出查詢結果。查詢以擴展名為QPR的文件保存在磁盤上的,這是一個文本文件,它的主體是SQL SELECT語句。2查詢的建立
建立查詢可以使用“查詢設計器”,但它的基礎是SQL SELECT語句。建立查詢的方法有以下幾個方面。
(l)可以利用CREATE QUERY命令打開查詢設計器建立查詢。(2)可以利用“新建”對話框打開查詢設計器建立查詢。
(3)可以在項目管理器的“數據”選項卡中打開查詢設計器建立查詢。(4)可直接編輯QPR文件建立查詢。建立查詢時,首先進入如圖6-1所示的界面選擇用于建立查詢的表或視圖,選擇表或視圖后,單擊“添加”按鈕。最后單擊“關閉”按鈕,進入如圖6-2所示的查詢設計器界面。
圖6-1 為查詢選擇表或視圖
查詢設計器中的各選項卡和SQL SELECT語句的各短語是相對應的,對應關系如下。“字段”――SELECT短語,用于指定要查詢的數據 “連接”――JOIN ON短語,用于編輯連接條件。“篩選”――WHERE短語,用于指定查詢條件。
“排序依據”――ORDER BY短語,用于指定排序字段和排序方式。“分組依據”――GROUP BY短語和HAVING短語,用于分組。
圖6-2 查詢設計器 3查詢的運行
運行查詢有下列兩種方法。
(1)可以在項口管理器的“數據”選項卡中,展開“查詢”選項,然后選擇要運行的查詢文件,單擊“運行”按鈕,可查看查詢結果。(2)在命令窗門執行命令DO QueryFile。
注意:此處的查詢文件名是全名,包括擴展名QPR。4查詢去向
設計查詢的目的不只是完成一種查詢功能,在查詢設計器中可以根據需要為查詢輸出定位查詢去向。通過“查詢”菜單卜的“查詢去向”,或在“查詢設計器”工具欄中單擊“查詢去向”按鈕。“查詢去向”對話框如圖6-3所示
圖6-3 “查詢去向”對話框 各去向的含義如下。
(1)瀏覽:在“瀏覽”(BROWSE)窗口中顯示查詢結果,這是默認的輸出去向。(2)臨時表:將查詢結果存儲于一個命名的臨時只讀表中。(3)表:將結果保存在一個命名的數據表文件中。(4)圖形:查詢結果可以用于Microsoft Graph。
(5)屏幕:在Visual FoxPro主窗口或當前活動輸出窗口中顯示查詢結果。(6)報表:將結果輸出到一個報表文件。(7)標簽:將結果輸出到一個標簽文件。小提示:
在7種輸出去向中,只有“瀏覽”和“屏幕”兩種輸出去向才能直接看到查詢結果。6.2 視圖
考點2 視圖的概念與建立 1視圖的概念
視圖是操作表的一種手段,通過視圖可以查詢表,也可以更新表。視圖是根據表定義的,因此視圖基于表,而視圖可以使應用更靈活,因此它又超越表。視圖是數據庫中的一個特有功能,只有在包含視圖的數據庫打開時才能使用。
視圖兼有“表”和“查詢”的特點,與查詢相類似的地方是可以用來從一個或多個相關聯的表中提取有用信息;與表類似的地方是可以用來更新其中的信息,并將結果永久性保存在磁盤上。
2視圖的建立
(l)用CREATE VIEW命令打開視圖設計器建立視圖。(2)利用“新建”對話框打開視圖設計器建立視圖。
(3)在項目管理器的“數據”選項卡中打開視圖設計器建立視圖。(4)利用SQL命令CREATE VIEW...AS...建立視圖。3視圖設計象
視圖設計器(如圖6一所示)與查詢設計器基本上一樣,主要有以下幾點不同。(1)視圖的結果保存在數據庫中,在磁盤上找不到類似的文件。
(2)視圖可以用來更新數據,因此在設計器中多了一個“更新條件”選項卡。(3)在視圖中沒有“查詢去向”的問題。
圖6-4 視圖設計器
考點3 遠程視圖與連接
為了建立遠程視圖,必須首先建立連接遠程數據庫的“連接”,“連接”是Visual FoxPro數據庫中的一種對象。1定義數據源和連接
數據源一般是ODBC數據源,開放數據庫互連ODBC是一種連接數據庫的通用標準。為了定義ODBC數據源,必須首先安裝ODBC驅動程序。2建立連接
建立連接的方法有以下幾種。(1)用CREATE CONNECTION命令打開“連接設計器”,或完全用命令方式建立連接。(2)通過“新建”對話框建立連接。
(3)在項目管理器的“數據”選項卡中建立連接。3設計遠程視圖
利用數據源或連接建立的遠程視圖的SQL語法要符合遠程數據庫的語法,例如,SQL Server的語法和Visual FoxPro的語法就有所區別。考點4 視圖與數據更新
視圖是根據基本表派生出來的,所以把它叫做虛擬表為了通過視圖能夠更新基本表中的數據,需要在視圖設計器的“更新條件”選項卡中的左下角選中“發送SQL更新”復選框。1指定可更新的表
如果視圖是基于多個表的,默認可以更新“全部表”的相關字段,如果要指定只能更新某個表的數據,則可以通過“表”下拉列表框選擇表 2指定可更新的字段
在“字段名”列表框中列出了與更新有關的字段,在字段名左側有兩列標志,“鑰匙”表示關鍵字,“鉛筆”表示更新通過單擊相應列可以改變相關的狀態,默認可以更新所有非關鍵字字段,并且通過基本表的關鍵字完成更新,即Visual FoxPro用這些關鍵字字段來唯一標識那些已在視圖中修改過的基本表中的記錄建議不要改變關鍵字的狀態,不要試圖通過視圖來更新基本表中的關鍵字字段值,如有必要,可以指定更新非關鍵字字段值 3檢查更新的合法性 如圖6-1所示,“SQL WHERE子句包括”框中的選項決定哪些字段包含在UPDATE或DELETE語句的WHERE子句中,Visual FoxPro正是利用這些語句將在視圖中修改或刪除的記錄發送到遠程數據源或基本表中,WHERE子句就是用來檢查自從提取記錄用于視圖中后,服務器上的數據是否已經改變。“SQL WHERE子句包括”框中各選項的含義如下。
(l)關鍵字段:當基本表中的關鍵字字段被改變時,更新失敗。
(2)關鍵字和可更新字段:當基本表中任何標記為可更新的字段被改變時,更新失敗。
(3)關鍵字和已修改字段:當在視圖中改變的任一字段的值在基本表中已被改變時,更新失敗。
(4)關鍵字和時間戳:當遠程表上記錄的時間戳在首次檢索之后被改變時,更新失敗。4使用更新方式
“使用更新”框的選項決定當向基本表發送SQL更新時的更新方式。
(1)SQL DELETE然后INSERT:先用SQL DELETE命令刪除基本表中被更新的舊記錄,再用SQL INSERT命令向基本表中插入更新后的記錄。
(2)SQL UPDATE:使用SQL UPDATE命令更新基本表。考點5 使用視圖
視圖建立后,不但可以用它來顯示和更新數據,而且可以通過調整它的屬性來提高性能,它的使用類似于表。1視圖操作
(1)在數據庫中使用USE命令打開或關閉視圖。(2)在“瀏覽器”窗口中顯示或修改視圖中的記錄。(3)使用SQL語句操作視圖。
(4)在文本框、表格控件、表單或報表中使用視圖作為數據源。2使用視圖
視圖一經建立就基本可以像基本表一樣使用,適用于基本表的命令基本都可以用于視圖。比如在視圖上也可以建立索引,此索引當然是臨時的,視圖一關閉,索引自動刪除,多工作區時也可以建立聯系等。但視圖不可以用MODIFY STRUCTURE命令修改結構。因為視圖畢竟不是獨立存在的基本表,它是由基本表派生出來的,只能修改視圖的定義。
小提示:
查詢與視圖的區別是:查詢可以定義輸出去向,可以將查詢的結果靈活地應用于表單、報表、圖形等各種場合,但是利用查詢不可以修改數據;而利用視圖可以修改數據,可以利用SQL將對視圖的修改發送到基本表,特別是對于遠程表的操作,利用視圖是非常有效的。
6.1表單與控件 面向對象的概念 考點1 對象與類 1對象(Object)客觀世界里的任何實體都可以被視為對象。對象可以是具體事物,也可以指某些概念二(1)屬性:用來表示對象的狀態。(2)方法:用來描述對象的行為。2類(Class)類是對一類相似對象性質的描述。同類對象具有相同的性質:相同的屬性及方法。考點2 子類與繼承 1繼承
繼承表達了一種從一般到特殊的進化過程。在面向對象的方法里,繼承是指基于現有類的方法和屬性。2類
我們把新類稱為現有類的子類,而把現有類稱為新類的父類。一個子類的成員一般包括以下兩個方面。
(l)從其父類繼承的成員,包括屬性、方法。(2)由子類自己定義的成員,包括屬性、方法。8.2 Visual FoxPro基類簡介 考點3 Visual FoxPro基類
Visual FoxPro中所有基類共有的屬性如表8-1所示。表8-1 Visual FoxPro基類的最小屬性集
(l)在編程方式里,對象的生成通常使用CREATE OBJECT函數來完成,格式為: CREATE OBJECT(<類名>[,<參數1>,<參數2>,?])說明:函數基于指定的類生成一個對象,并返回對象的引用。(2)對象屬性訪問及對象方法調用的基本格式為: <對象引用>.<對象屬性> <對象引用>.<對象方法>[(?)] 考點4 容器與控件
Visual FoxPro中的類一般可分為兩種類型:容器類和控件類。相應地,可分別生成容器(對象)和控件(對象)。
(l)控件:是一個可以以圖形化的方式顯示出來并能與用戶進行交互式的對象。(2)容器:可看成是一個特殊的控件,它能包容其他的控件或容器。(3)層次:容器內的包容關系形成r對象的嵌套層次關系。對象的層次概念與類的層次概念是兩個完全不同的概念對象的層次關系指的是包容與被包容的關系,而類的層次指的是繼承與被繼承的關系。
在對象的嵌套層次關系中,要引用其中的某個對象,需要指明對象在嵌套層次中的位置。對象引用的幾個屬性或關鍵字如表8-2所示。表8-2 對象引用的幾個屬性或關鍵字
考點5 事件
事件是一種由系統預先定義而由用戶或系統發出的動作。它作用于對象,對象識別事件并做出相應的反應。與方法集可以無限擴展不同的是,事件集是固定的。用戶不能定義新的事件。表8-3列出了VisualFoxPro基類的最小事件集,不管哪個基類都包含這些事件。表8-3 Visual FoxPro基類的最小事件集
8.3 創建與管理表單
考點6 創建、修改及運行表單 1使用表單向導創建表單
調用表單向導的方法有多種,這里只做簡單介紹。
(l)在“項目管理器”窗口中,選擇“文檔”選項卡,選擇其中的“表單”圖標。(2)單擊“新建”按鈕,系統彈出“新建表單”對話框。(3)單擊“表單向導”圖標按鈕,打開“向導選取”對話框。(4)從列表框中選擇要使用的向導,然后單擊“確定”按鈕。2使用表單設計器創建表單
可以使用以下3種方法中的任何一種調用表單設計器。(1)在項目管理器環境下調用。(2)菜單方式調用。(3)命令方式調用。3修改已有的表單
一個表單無論是通過任何途徑創建的,都可以使用表單設計器進行編輯修改。我們可以通過項目或使用命令“MODIFY FORM<表單名>”來打開表單設計器。4運行表單
可以采用下列方法運行通過表單設計器創建的表單文件。
(1)在項目管理器窗口中,選擇要運行的表單,然后單擊窗口里的“運行”按鈕。
(2)在表單設計器環境下,選擇“表單”菜單中的“執行表單”命令,或單擊標準工具欄上的“運行”按鈕。
(3)選擇“程序”菜單中的“運行”命令,打開“運行”對話框,然后在對話框中指定要運行的表單文件并單擊“運行”按鈕。(4)在命令窗口中輸入命令,格式為:
DO FORM<表單文件名>[NAME<變量名>] WITH<實參>[,<實參>,?][LINKED][NOSHOW] 考點7 管理表單屬性和方法
可以向表單添加任意數量的新屬性和新方法,并像引用表單的其他屬性和方法一樣引用它們。Visual FoxPro中表單的屬性大約有100個,但絕大多數很少用到。表8-4列出了常用的一些表單屬性,這些屬性規定了表單的外觀和行為。表8-4 表單的常用屬性
1創建新屬性
向表單添加新屬性的方法如F。
(l)選擇“表單”菜單中的“新建屬性”命令,打開“新建屬性”對話框,如圖8-1所示。(2)在“名稱”文本框中輸入新屬性的名稱。
(3)有選擇地在“說明”列表框中輸入新建屬性的說明信息。
圖8-1 “新建屬性”對話框
2創建新方法
向表單添加新方法的步驟如下
(l)運行“表單”→“新建方法程序”命令,打開“新建方法程序”對話框,如圖8-2所示。(2)在“名稱”文本框中輸入新方法名。
(3)有選擇地在“說明”列表框中輸入新建方法的說明信息。
圖8-2 “新建方法程序”對話框
3編輯方法或事件代碼
在表單設計器中,編輯方法或事件代碼的步驟如下。
(1)選擇“顯示”菜單中的“代碼”命令,打開代碼編輯窗口,如圖8-3所示。(2)從“對象”框中選擇方法或事件所屬的對象。(3)從“過程”框中指定需要編輯的方法或事件。(4)在編輯區輸入或修改方法或事件的代碼。
圖8-3 代碼編輯窗口
考點8 常用事件與方法
下面將以表的形式簡單介紹一下表單及控件常用的一些事件和方法,如表8-5所示。表8-5 常用的一些屬性和方法
8.4 表單設計器
考點9 表單設計器環境
表單設計器啟動后,在Visual FoxPro的主窗口中出現“表單設計器”窗口、“屬性”窗口、“表單控件”工具欄、“表單設計器”工具欄及“表單”菜單。1“表單設計器”窗口
用戶可視化地添加和修改控件的窗口。2“屬性”窗口
如圖8-4所示,在“屬性”窗口中包括對象框、屬性設置框、方法和事件列表。用戶可在此窗口中選擇表取中的控件,并為表單設計屬性、方法及事件。
對于表單及控件的絕大多數屬性,其數據類型是固定的。一般來說,要為屬性設置一個字符型數值,可以在設置框中直接輸入,不需要加定界符。
“屬性”窗口可以通過單擊“表單設計器”工具欄中的“屬性窗口”按鈕或選擇“顯示”菜單中的“屬性環境”命令打開或關閉。
圖8-4 “屬性”窗口
3“表單控件”工具欄
如圖8-5所示,利用“表單控件”工具欄可以方便地向表單添加控件。
圖8-5 “表單控件”工具欄
除了控件按鈕外,“表單控件”工具欄還包含“選定對象”、“按鈕鎖定”、“生成器鎖定”和“查看類”4個輔助按鈕。4“表單設計器”工具欄
“表單設計器”工具欄如圖8-6所示,它可以通過“顯示”菜單中的“工具欄”命令打開或關閉。
圖8-6 “表單設計器”工具欄
5“表單”菜單 “表單”菜單中的命令主要用于創建、編輯表單或表單集,如為表單增加新的屬性和方法等。考點10 控件的操作與布局 1控件的基本操作
在表單設計器下,對表單上的控件可進行移動、改變大小、復制、刪除等操作。(l)選定控件。(2)移動控件
(3)調整控件大小。(4)復制控件。(5)刪除控件。2控件布局 利用“布局”工具欄中的按鈕,可以方便地調整表單窗口中被選控件的相對大小或位置。“布局”工具欄丁以通過單擊“表單設計器”工具欄上的“布局工具欄”按鈕或選擇“顯示”菜單中的“布局工具欄”命令打開或關閉。3設置Tab鍵次序
當表單運行時,用戶可以按Tab鍵選擇表單中的控件,使焦點在控件間移動。控件的Tab鍵次序決定了選擇控件的次序。Visual FoxPro提供了兩種方式來設置Tab鍵次序:交互方式和列表方式。考點11 數據環境 1數據環境的常用屬性
常用的兩個數據環境是AutoOpenTables和AutoCloseTables,其功能如下。
(1)AutoOpenTables;表示當運行或打開表單時,是否打開數據環境中的表和視圖,默認值為邏輯真.T.)。
(2)AutoCloseTables:表示當釋放或關閉表單時,是否關閉由數據環境指定的表和視圖,默認值為邏輯真(.T.)。
2打開數據環境設計器
可通過單擊“表單設計器”工具欄中的“數據環境”按鈕,也可以選擇“顯示”菜單中的“數據環境”命令打開或關閉“數據環境設計器”窗口。3向數據環境中添加表或視圖
(1)選擇“數據環境”菜單中的“添加”命令,或用鼠標右鍵單擊“數據環境設計器”窗口,然后在彈出的快捷菜單中選擇“添加”命令,打開“添加表或視圖”對話框。
(2)選擇要添加的表或視圖并單擊“添加”按鈕。如果單擊“其他”按鈕,將調出“打開”對話框,用戶可以從中選擇需要的表。4從數據環境中移去表或視圖
在數據環境設計器環境下,按下列方法從數據環境移去表或視圖。(1)在“數據環境設計器”窗口中,單擊選擇要移去的表或視圖。(2)選擇“數據環境”菜單中的“移去”命令。
也可以用鼠標右鍵單擊要移去的表或視圖,然后在彈出的快捷菜單中選擇“移去”命令。當表從數據環境中移去時,與這個表有關的所有關系也將隨之消失。5在數據環境中設置關系
如果添加到數據環境的表之間具有在數據庫中設置的永久關系,這些關系也會自動添加到數據環境中。如果表之間沒有永久關系,可以根據需要在數據環境設計器下為這些表設置關系。6在數據環境中編輯關系
關系是數據環境中的對象,它有自己的屬性、方法和事件。常用的關系屬性如表8-6所示。
表8-6 常用的關系屬性
7向表單添加字段
我們可以利用“表單控件”工具欄方便地將一個標準控件放置到表單上,也可以從“數據環境設計器”窗口、“項目管理器”窗口或“數據庫設計器”窗口中直接將字段、表或視圖拖入表單,系統將產生相應的控件并與字段相聯系。8.5 常用表單控件
考點12 標簽(Label)控件 標簽的常用屬性如下
(1)Caption屬性:指定標簽的標題文本很多類控件都具有Caption屬性。用戶可以利用該屬性為所創建的對象指定標題文本。
(2)Alignment屬性:指定標題文本在控件中的顯示對齊方式。該屬性包括三個屬性值――0、1和2,分別代表左對齊、右對齊和中央對齊。考點13 命令按鈕(CommandButton)控件 命令按鈕的常用屬性如下。
(1)Default屬性:該屬性默認值為.F.。當屬性為.T.時,可稱為“確定”按鈕,一個表單中只能包含一個“確定”按鈕;在Windows中,當焦點不在命令按鈕上時,按Enter鍵,系統將自動執行該命令按鈕的Click事件代碼、(2)Cancel屬性:該屬性默認值為.F.。當屬性為.T.時,可稱為“取消”按鈕,在表單中,可通過Esc鍵執行該命令按鈕中的Click事件代碼一個表單中可有多個命令按鈕的Cancel屬性值為.T.。(3)Enabled屬性:指定表單或控件能否響應用戶引發的事件。默認的屬性值為.T.,即對象是有效的,當Enabled=.F.時,只是用來顯示只讀的信息。
(4)Visible屬性:指定對象是可見還是隱藏。默認的屬性值為.T.,即對象是可見的。考點14 命令組(CommandGroup)控件
命令組是包含一組命令按鈕的容器控件,其常用屬性如下。
(1)ButtonCount屬性:指定命令組中命令按鈕的個數,默認的屬性值為2。(2)Buttons屬性:用于存取命令組中各按鈕的數組。用戶可以利用該數組為命令組中的命令按鈕設置屬性或調用其方法,屬性數組下標的取值范圍應該在1到ButtonCount屬性值之間。(3)Value屬性:指定命令組當前的狀態。該屬性的類型可以是數值型,也可以是字符型。考點15 文本框(TextBox)控件 文本框的常用屬性如下。
(1)ControlSource屬性:可利用該屬性為文本框指定一個字段或內存變量,運行時,文本框中首先顯示該變量的內容
(2)Value屬性:返回文本框的當前內容。該屬性的默認值是空串。(3)PasswordChar屬性:指定文本框控件內是顯示用戶輸入的字符還是顯示占位符。該屬性的默認值是空串,此時沒有占位符。當為屬性指定一個占位符(例如*)后,文本框中只顯示占位符。
(4)InputMask屬性:指定在一個文本框中如何輸入和顯示數據。各種模式符的功能如表8-7所示。
表8-7 模式符及其功能
考點16 編輯框的常用屬性如下。
(1)AllowTabs屬性:指定編輯框中能否使用Tab鍵。該屬性的默認值為.F.,當按Tab鍵時,焦點移出編輯框。
(2)HideSelection屬性:指定當編輯框失去焦點時,編輯框中選定的文本是否仍顯示為選定狀態。該屬性的默認值為.T.,即當編輯框失去焦點時,編輯框中選定的文本不顯示為選定狀態(3)ReadOnly屬性:指定用戶能否編輯編輯框中的內容。如果該屬性的默認值為.F.,則叮以編輯編輯框中的內容;當屬性值為.T.時,編輯框中的內容為只讀。
(4)ScrollBars屬性:指定編輯框是否具有滾動條。該屬性包括“0-無” 和“2-垂直”兩個屬性值。
(5)SelStart屬性:返回用戶在編輯框中所選文本的起始位置或插入點位置。屬性的有效取值范圍在0與編輯區中的字符總數之間。
(6)SelLength屬性:返回用戶在控件的文本輸入區中所選定字符的數目,或指定要選定的字符數目。
(7)SelText屬性:返回用戶編輯區內選定的文本。如果沒有選定文本,將返回空串。考點17 復選框(CheckBox)控件 復選框的常用屬性如下。
(1)Caption屬性:用來指定顯示在復選框旁邊的文字。
(2)Value屬性:用來指明復選框的當前狀態,共有3種情況:0或.F.表示未被選中;1或.T.表示被選扣;2或.NULL.表示不確定,只在代碼中有效。
(3)ControlSource屬性:指明與復選框建立聯系的數據源。作為數據源的字段變量或內存變量,其類型可以是邏輯型或數值型。考點18 選項組(OptionGroup)控件
選項組是包含若干個選項按鈕的一種容器控件,其常用屬性如下。(1)ButtonCount屬性:指定選項組中選項按鈕的數目,其默認值為2,(2)Value屬性:用于指定選項組中哪個選項按鈕被選中。該屬性值的類型可為數值k1J或字符型。
(3)ControlSource屬性:指明與選項組建立聯系的數據源。作為數據源的字段變量或內存變量,其類型可以是字符型或數值型
(4)Buttons屬性:用于存取選項組中每個按鈕的數組,其含義與命令組的Buttons類似。考點19 列表框(ListBox)控件 列表框的常用屬性如下
(1)RowSourceType屬性與RowSource屬性:RowSourceType屬性指明列表框中的條目數據源的類型,RowSource屬性指定列表框的條目數據源。RowSourceType屬性共有10種取值范圍:0-無(默認值)、1-值,2-別名、3-SQL語句,4-查詢(.qpr),5-數組,6-字段,7-文件,8-結構,9-彈出式菜單。(2)List屬性:用以存取列表框中數據條目的字符串數組。(3)ListCount屬性:指明列表框中數據條目的數目。(4)ColumnCount屬性:指定列表框的列數。
(5)Value屬性:列表框中被選中的條目。該屬性可以是數值型,也可以是字符型。
(6)ControlSource屬性:該屬性在列表框中的用法和在其他控件中的用法有所不同。用戶可以通過該屬性指定一個字段或變量用以保存用戶從列表框中選擇的結果。(7)Selected屬性:指定列表框內的某個條目是否處于選定狀態〕(8)MultiSelect屬性:指定用戶在列表框控件內進行多重選定。其中,0或.F.表示不允許多重選定,為系統默認值;1或.T.表示允許多重選定。考點20 組合框(ComboBox)控件
組合框與列表框類似,也是用于提供一組條目供用戶從中選擇,組合框的特點如下。(1)對于組合框來說,通常只有一個條目是可見的。(2)組合框不提供多重選定的功能。
(3)組合框可通過Style屬性設置其形式,共有兩種:0表示下拉組合框,2表示下拉列表框。考點21 表格(Gride)控件 表格是一種容器對象。一個表格對象由若十列對象組成,每個列對象包含一個標頭對象和若干控件,它們都有自己的屬性、事件和方法。1表格的常用屬性
(l)RecordSourceType屬性與RecordSource屬性:RecordSourceType屬性指明表格數據源類型,RecordSource屬性指定表格數據源。其中數據類型共有5種取值范圍:0-表、1-別名(默認值)、2-提示、3-查詢(.qpr)、4-SQL語句。
(2)ColumnCount屬性:指定表格的列數,即一個表格對象所包含的列對象數目。(3)LinkMaster屬性:用于指定表格控件中所顯示的子表的父表名稱。(4)ChildOrder屬性:用于指定建立一對多的關聯關系,子表所要用到的索引。該屬性類似于SET ORDER命令。
(5)RelationalExpr屬性:確定基于主表字段的關聯表達式。2常用的列屬性
(1)ControlSource屬性:指定要在列中顯示的數據源,常見的是表中的一個字段。
(2)CurrentControl屬性:指定列對象中的一個控件,該控件用以顯示和接收列中活動單元格的數據。
(3)Sparse屬性:用于確定CurrentControl屬性是影響列中的所有單元格還是影響活動單元格。
3常用的標頭(Header)屬性
(1)Caption屬性:指定標頭對象的標題文本,顯示于列頂部。(2)Alignment屬性:指定標題文本在對象中顯示的對齊方式。考點22 頁框(PageFrame)控件
頁框是包含頁面(Page)的容器對象,其常用屬性如下。
(1)PageCount屬性:用于指明一個頁框對象所包含的頁對象的數量。最小值為0,最大值為99。
(2)Pages屬性:該屬性是一個數組,用于存取頁框中的某個頁對象。(3)Tabs屬性:指定頁框中是否顯示頁面標簽欄。
(4)TabStretch屬性:如果頁面標題文本太長,可通過設置該屬性利用多行顯示。其中0表示多重行,1表示單行(默認值)。
(5)ActivePage屬性:返回頁框中活動頁的頁號,或使頁框中的指定頁 7.1菜單設計
9.1 Visual FoxPro系統菜單 考點1 菜單結構 Visual FoxPro支持兩種類型的菜單:條形菜單和彈出式菜單。菜單項的名稱顯示于屏幕供用戶識別,菜單及菜單項的內部名稱或選項序號則用于在代碼中引用。每一個菜單項都可以選擇設置一個熱鍵和一個快捷鍵。無論哪種類型的菜單,當選擇某個選項時都會有一定的動作,這個動作可以是下列3種情況之一:執行一條命令、執行一個過程或激活另一個菜單。考點2 系統菜單 Visual FoxPro系統菜單是一個典型的菜單系統,其主菜單是一個條形菜單。條形菜單的內部名字為_MSYSMENU,也可看做是整個菜單系統的名字。
條形菜單中常見選項的名稱及內部名字如表9-1所示,各彈出式菜單的內部名字如表9-2所示。表9-3的是“編輯”菜單中常用選項的選項名稱和內部名字。表9-1 主菜單(MSYSMENU)常見選項
表9-2 彈出式菜單的內部名字
表9-3 “編輯”菜單(_MEDIT)常用選項
通過SET SYSMENU命令可以允許或禁止在程序執行時訪問系統菜單,也可以重新配置系統菜單,格式如下。
SET SYSMENU ON|OFF AUTOMATIC |TO[<彈出式菜單名表>] |TO[<條形菜單項名表>] |TO[DEFAULT]|SAVE|NOSAVE 小提示:
如不帶任何參數,直接SET SYSMENU TO命令,將屏蔽系統菜單,使系統菜單不可用。9.2 下拉式菜單設計
考點3 菜單設計的基本過程
用菜單設計器設計下拉式菜單的基本過程如下。(l)調用菜單設計器。
(2)在“菜單設計器”窗口中定義菜單,指定菜單的各項內容,定義完成后,通過菜單命令“保存”或直接使用快捷鍵Ctrl+W保存菜單。
(3)通過菜單命令“菜單”*“生成”命令,產生可執行的菜單程序文件(MPR)。
(4)在命令窗口中,使用DO命令執行菜單文件,此處的文件擴展名MPR不能默認。菜單設計的基本流程如圖9-1所示。
圖9-1 菜單設計的基本流程圖 考點4 定義菜單
1“菜單設計器”窗口
“菜單設計器”窗口每頁顯示和定義一個菜單,可以是條形菜單(菜單欄),也可以是彈出式菜單(子菜單)。“菜單設計器”窗口打開時,首先顯示和定義的是條形菜單,即主菜單名。窗口的左邊是一個列表框,其中每一行定義當前菜單的一個菜單項,包括“菜單名稱”、“結果”和“選項”3列內容(如圖9-2所示)。(1)“菜單名稱”列。(2)“結果”列。(3)“選項”列。2“顯示”菜單
在菜單設計一器環境下,系統“顯示”菜單會出現兩條命令。(1)“常規選項”對話框。(2)“菜單選項”對話框。
圖9-2 “菜單設計器”窗口 考點5 用編程方式定義菜單
無論是條形菜單還是彈出式菜單,都可以通過命令進行定義和設計。此處介紹幾種有關菜單定義的簡單命令。(1)條形菜單定義。(2)彈出式菜單定義。
考點6 為頂層表單添加菜單
為頂層表單添加下拉式菜單的方法和過程如下。(1)在“菜單設計器”窗口中設計好下拉式菜單。
(2)打開“常規選項”對話框,選中對話框右下角的“頂層表單”復選框。(3)將表單的ShowWindow屬性設置為2,使之成為頂層表單。(4)在表單的Init事件中添加調用菜單的程序代碼: DO<文件名>WITH This[,“<菜單名>”] 此處的<文件名>是指被調用的菜單程序文件(MPR),<菜單名>是為被添加的下拉式菜單的條形菜單指定的一個內部名字。
(5)在表單的Destroy事件中添加清除菜單的程序代碼: RELEASE MENU<菜單名>[EXTENDED] 其中EXTENDED表示在清除條形菜單時一起清除其下屬的所有子菜單。9.3 快捷菜單設計
考點7 快捷菜單的建立與執行
與下拉式菜單相比,快捷菜單沒有條形菜單,只有彈出式菜單。建立快捷菜單的方法和過程如下。
(1)打開“新建”對話框二
(2)在“新建”對話框中選擇“菜單”選項.單擊“新建文件”按鈕。
(3)在“新建菜單”對話框中選擇“快捷菜單”選項,打開“快捷菜單設計器”窗口。
(4)用與設計下拉式菜單相似的方法,在“快捷菜單設計器”窗口中設計快捷菜單,生成菜單程序文件。
(5)在快捷菜單的“清理”代碼中添加清除菜單的命令,使得在選擇、執行菜單命令后能及時清除菜單,釋放其所占用的內存空間,格式為: RELEASE POPUPS<快捷菜單名>[EXTENDED](6)在設計器環境下,選定需要添加快捷菜單的對象。
(7)在選定對象的RightClick事件代碼中,添加調用快捷菜單程序的格式為: DO<快捷菜單程序文件名> 此處的文件擴展名MPR不能默認。
第三篇:全國計算機二級考試歷年真題(整理)
05年試卷
一、選擇題((1)~(35)每小題2分,共70分
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)數據的存儲結構是指()。A.存儲在外存中的數據
B.數據所占的存儲空間量
C.數據在計算機中的順序存儲方式 D.數據的邏輯結構在計算機中的表示
(2)下列關于棧的描述中錯誤的是()。
A.棧是先進后出的線性表 B.棧只能順序存儲 C.棧具有記憶作用
D.對棧的插入與刪除操作中,不需要改變棧底指針
(3)對于長度為n的線性表,在最壞情況下,下列各排序法所對應的比較次數中正確的是()。A.冒泡排序為n/2 B.冒泡排序為n C.快速排序為n D.快速排序為n(n-1)/2
(4)對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數為()。A.log2n B.n/2 C.n D.n+1
(5)下列對于線性鏈表的描述中正確的是()。A.存儲空間不一定是連續,且各元素的存儲順序是任意的 B.存儲空間不一定是連續,且前件元素一定存儲在后件元素的前面 C.存儲空間必須連續,且前件元素一定存儲在后件元素的前面 D.存儲空間必須連續,且各元素的存儲順序是任意的
(6)下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結果正確
C.軟件測試的目的是盡可能多地發現程序中的錯誤
D.軟件測試的目的是使程序符合結構化原則
(7)為了使模塊盡可能獨立,要求()。
A.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強
B.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強
(8)下列描述中正確的是()。
A.程序就是軟件
B.軟件開發不受計算機系統的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數據與相關文檔的集合
(9)數據獨立性是數據庫技術的重要特點之一。所謂數據獨立性是指()。
A.數據與程序獨立存放
B.不同的數據被存放在不同的文件中
C.不同的數據只能被對應的應用程序所使用
D.以上三種說法都不對
(10)用樹形結構表示實體之間聯系的模型是()。
A.關系模型
B.網狀模型
C.層次模型
D.以上三個都是(11)在窗體(名稱為Form1)上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕,然后編寫一個事件過程。程序運行后,如果在文本框中輸入一個字符,則把命令按鈕的標題設置為“計算機等級考試”。以下能實現上述操作的事件過程是()。
A.Private Sub Text1_Change()
Command1.Caption = “計算機等級考試”
End Sub
B.Private Sub Command1_ Click()
Caption = “計算機等級考試”
End Sub
C.Private Sub Form1_ Click()
Text1.Caption = “計算機等級考試”
End Sub
D.Private Sub Command1_ Click()
Text1.Text = “計算機等級考試”
End Sub
(12)設a=5,b=4,c=3,d=2下列表達式的值是()。> 2 * b Or a = c And b <> c Or c > d
A.1
B.True
C.False
D.2
(13)設a = “MicrosoftVisualBasic”,則以下使變量b的值為“VisualBasic”的語句是()。
A.b = Left(a, 10)
B.
該文章轉載自無憂考網:http://www.tmdps.cnmand1)右移200,應使用的語句是()。
A.Command1.Move-200
B.Command1.Move 200
C.Command1.Left = Command1.Left + 200
D.Command1.Left = Command1.Leftc
End If
Next
Print d
End Sub
程序運行后,如果單擊命令按鈕,則在窗體上輸出的內容為()。
A. 10
B. 16
C.12
D. 20
(32)設有如下程序:
Private Sub Command1_Click()
Dim c As Integer, d As Integer
c = 4
d = InputBox(“請輸入一個整數”)
Do While d > 0
If d > c Then
c = c + 1
End If
d = InputBox(“請輸入一個整數”)
Loop
Print c + d
End Sub
程序運行后,單擊命令按鈕,如果在輸入對話框中依次輸入1、2、3、4、5、6、7、8、9、0,則輸出結果是()。
A.12
B.11
D.9
(33)在窗體上畫一個名稱為Command1的命令按鈕和一個名稱為Text1的文本框,在文本框中輸入以下字符串:Microsoft Visu
該文章轉載自無憂考網:http://www.tmdps.cnmand1_Click()
Open “d:tempoutf.txt” For Output As #1
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= “A” And c <= “Z” Then
Print #1, LCase(End If
Next i
Close
End Sub
程序運行后,單擊命令按鈕,文件outf.txt中的內容是()。
A.MVBP
B.mvbp
C.M
D.m
V v
B b
P p(34)在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下程序:
Dim SW As Boolean
Function func(X As Integer)As Integer
If X < 20 Then
Y = X
Else
Y = 20 + X
End If
func = Y
End Function
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
SW = False
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
SW = True
End Sub
Private Sub Command1_Click()
Dim intNum As Integer
intNum = InputBox(“")
If SW Then
Print func(intNum)
End If
End Sub
程序運行后,單擊命令按鈕,將顯示一個輸入對話框,如果在輸入對話框中輸入25,則程序的執行結果為()。
A.輸出0
B.輸出25
輸出45
D.無任何輸出
(35)設有如下通用過程:
Public Sub Fun(a()As Integer, x As Integer)
For i = 1 To 5
x = x + a(i)
Next
End Sub
在窗體上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕。然后編寫如下的事件過程:
Private Sub Command1_Click()
Dim arr(5)As Integer, n As Integer
For i = 1 To 5
arr(i)= i + i
Next
Fun arr, n
Text1.Text = Str(n)
End Sub
程序運行后,單擊命令按鈕,則在文本框中顯示的內容是()。
A.30
B.25
C.20
D.15
二、填空題(每空2分,共30分)
請將每空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
(1)某二叉樹中度為2的結點有18個,則該二叉樹中有 【1】 個葉子結點。
(2)在面向對象方法中,類的實例稱為 【2】。
(3)診斷和改正程序中錯誤的工作通常稱為 【3】。
(4)在關系數據庫中,把數據表示成二維表,每一個二維表稱為 【4】。
(5)問題處理方案的正確而完整的描述稱為 【5】。
(6)以下語句輸出結果是 【6】。
Print Int(12345.6789 * 100 + 0.5)/ 100
(7)在窗體上畫一個文本框和一個圖片框,然后編寫如下兩個事件過程:
Private Sub Form_
該文章轉載自無憂考網:http://www.tmdps.cnmand1_Click()
Dim arr1
Dim Min As Integer, i As Integer
arr1 = Array(12, 435, 76,-24, 78, 54, 866, 43)
Min = 【12】
For i = 2 To 8
If arr1(i)< Min Then 【13】
Next
Print ”最小值是:“;Min
End Sub
以上程序的功能是:用Array函數建立一個含有8個元素的數組,然后查找并輸出該數組中各元素的最小值。請填空。
(11)在名稱為Form1的窗體上畫一個文本框,其名稱為Text1,在屬性窗口中把該文本框的MultiLine屬性設置為True,然后編寫如下的事件過程:
Private Sub Form_Click()
Open ”d:testsmtext1.txt“ For Input As #1
Do While Not 【14】
Line Input #1, aspect$
whole$ = whole$ + aspect$ + Chr$(13)+ Chr$(10)
Loop
Text1.Text = whole$
Close #1
Open ”d:testsmtext2.txt“ For Output As #1
Print #1, 【15】
Close #1
End Sub
上述程序的功能是,把磁盤文件smtext1.txt的內容讀到內存并在文本框中顯示出來,然后把該文本框中的內容存入磁盤文件smtext2.txt。請填空2005年4月全國計算機等級考試二級VB語言筆試答案
參考答案:
選擇題:
1---5 DBDCA
6---10 CBDDC
11--15 ABBCD
16--20 CDABD
21--25 ABCDB
26--30 CDBBA
31--35 CDDDA
填空題:
【1】19
【2】 對象
【3】 程序調試
該文章轉載自無憂考網:http://www.tmdps.cnmand1_Click
(14)設窗體上有1個滾動條,要求單擊滾動條右端的◢按鈕一次,滾動條移動一定的刻度值,決定此刻度的屬性是(C)
A)Max
B)Min
C)SmallChange
D)LargeChang
(15)1個二維數組可以存放1個矩形.在程序開始有語句Option Base 0,則下面定義的數組中正好可以存放1個4*3矩陣(即只有12個元素)的是(B)
A)Dim a(-2 To 0,2)AS Integer
B)Dim a(3,2)AS Ingeger
C)Dim a(4,3)AS Ingeger
D)Dim a(-1 To-4,-1 To-3)AS Ingeger
(16)若設置了文本框的屬性PasswordChar=”$”,則運行程序時向文本框中輸入8個任意字符后,文本框中顯示的是(A)
A)8個”$”
B)1個”$”
C)8個”*”
D)無任何內容
(17)設在窗體上有1個名稱為Combo1的組合框,含有5個項目,要刪除最后一項,正確的語句是(B)
A)Combo1.RemoveItem Combo1.Text
B)Combo1.RemoveItem4
C)Combo1.RemoveItem Combo1.ListCount
D)Combo1.RemoveItem5
(18)工程中有2個窗體,名稱分別為Form1.Form2,Form1為啟動窗體,該窗體上有命令按鈕Command1,要求程序運行后單擊該命令按鈕時顯示Form2,則按鈕的Click事件過程應該是(A)
A)Private Sub Command1_Click()
B)Private Sub Command1_Click()
Form2.Show
Form2.Visible
End
Sub
End
Sub
C)Private Sub Command1_Click()
D)Private Sub Command1_Click()
Load Form2
Form2.Load
End
Sub
End
Sub
(19)若在某窗體模塊中有如下事件過程(D)
Private Sub Command1_Click(Index AS Integer)
……
End Sub
則以下敘述中正確的是
A)
此事件過程與不帶參數的事件過程沒有區別
B)
有1個名稱為Command1的窗體,單擊此窗體則執行此事件過程
C)
有1個名稱為Command1的空件數組,數組中有多個不同類型控件
D)
有1個名稱為Command1的空件數組,數組中有多個相同類型控件
(20)以下循環語句中在任何情況下都至少執行一次循環體的是(C)
A)Do While <條件>
B)While <條件>
循環體
循環體
Loop
Wend
C)Do
D)Do Until <條件>
循環體
循環體
Loop Until <條件>
Loop
(21)在窗體上有1個名為Cd1的通用對話框,為了在運行程序時打開保存文件對話框,則在程序總應使用的語句是(A)
A)Cd1.Action=2
B)Cd1.Action=1
C)Cd1.ShowSave=Ture
D)Cd1.ShowSave=0
(22)下面關于菜單的敘述中錯誤的是(B)
A)各級菜單中的所有菜單項的名稱必須唯一
B)同一子菜單中的菜單項名稱必須唯一,但不同子菜單中的菜單項名稱可以相同
C)彈出式菜單也用菜單編輯器編輯
(23)已知有下面的過程(D)
Private Sub proc1(a As Integer,b As String,Optional x As Boolean)
……
End Sub
正確調用此過程的語句是
A)Call procl(5)
B)Call proc1 5,”abc”,False
C)proc1(12,”abc”,True)
D)proc1 5, “abc”
(24)在窗體上有一個文件名稱為Text1的文本框和1個名稱為Command1的命令按鈕,要求在程序執行時,每單擊命令按鈕一次,文本框向右移動一定距離。下面能夠正確實現上述功能的程序是(C)
A)Private Sub Command1_Click()
B)Private Sub Command1_Click()
Text1.Left=100
T
ext1.Left= Text1.Left-100
End Sub
End Sub
C)Private Sub Command1_Click()
D)Private Sub Command1_Click()
Text1.Move.Text.Left+100
Text1.Move.Text.Left
End Sub
End Sub
(25)某人創建了1個工程,其中的窗體名稱為Form1;之后又添加了1個名為Form2的窗體,并希望程序執行時先顯示Form2窗體,那么,他需要做的工作是(A)
A)在工程屬性對話框中把“啟動對象”設置為Form2
B)在Form1的Load事件過程中加入語句 Load Form2
C)在Form2的Load事件過程中加入語句Form2.Show
D)在Form2的TabIndex屬性設置為1,把Form1的TabIndex屬性設置為2
(26)窗體上有1個名稱為Text1的文本框和1個名稱為Command1的命令按鈕。要求程序運行時,單擊命令按鈕,就可以把文本框中的內容寫到文件out.txt中,每次寫入的內容附加到文件原有內容之后。下面能夠實現上述功能的程序是(C)
A)Private Sub Command1_Click()
B)Private Sub Command1_Click()
Open “out.txt” For Inpit As#1
Open “out.txt” For Outpit As#1
Print#1,Text1.Text
Print#1,Text1.Text
Close#1
Close#1
End Sub
End Sub
C)Private Sub Command1_Click()
D)Private Sub Command1_Click()
Open “out.txt” For Append As#1
Open “out.txt” For Random As#1
Print#1,Text1.Text
Print#1,Text1.Text
Close#Close#1
End End Sub
(27)為計算1+3+5+??+99的值,某人編程如下
k=1
Sub
s=0
While k<=99
k=k+2
:
s=s+k
Wend
Print s
在調試時發現運行結果有錯誤,需要修改。下列錯誤原因和修改方案中正確的是(D)
A)While ?Wend循環語句錯誤,應改為For k=1 To 99 ?Next k
B)循環條件錯誤,應改為Whlie k<99
C)循環前的賦值語句k=1錯誤,應改為k=0
D)循環中兩條賦值語句的順序錯誤,應改為s=s+k :
(29)在窗體上有1個名稱為CommonDialog1的通用對話框和1個名稱為Command1的命令按鈕,以及其他一些控件。要求在程序運行時,單擊Command1按鈕,則顯示打開文件對話框,并在選擇或輸入了1個文件名后,就可以打開該文件。以下是Command1_Click事件過程的兩種算法
算法1:
Private Sub Command1_Click()
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As#1
End Sub
算法2:
Private Sub Command1_Click()
CommonDialog1.ShowOpen
IfCommonDialog1.FileName<>””Then
Open CommonDialog1.FileName For Input As#1
End If
End Sub
下面關于這兩種算法的敘述中正確的是(B)
A)
顯示打開文件對話框后若未選擇或輸入任何文件名,則算法2會出錯,算法1不會
B)
顯示打開文件對話框后若未選擇或輸入任何文件名,則算法1會出錯,算法2不會
C)
兩種算法的執行結果完全一樣
D)
算法1允許輸入的文件名中含有空格,而算法2不允許
(30)窗體上有1個名稱為List的列表框,其中已經輸入了若干個項目(如圖所示):還有2個文本框,名稱分別為Text1、Text2, 1個名稱為
Command1的命令按鈕,并有以下程序
Private Sub Command1_Click()
Dim str As String, s As String, k As Integer
s=Text1
Str=””
For k=List1.ListCount-1 to 0 Step-1
If InStr(List.List(k),s)>0 then
str=str&List.List(k)&” ”
End If
Next k
If str=””Then
Text2=”沒有匹配的項目”
Else
Text2=str
End If
End Sub
程序運行時,在Text1中輸入“京”,單擊命令按鈕,則在Text2中顯示的內容是(C)
A)京
B)北京 南京
C)南京
D)沒有匹配的項目
(31)在窗體上畫1一個名稱為Command1的命令按鈕,并編寫以下程序
Private Sub Command1_Click()
Print fun(“ABCDEFG”)
End Sub
Function fun(st As String)As String
stlen=Len(st)
temp=””
For k
fun=temp
End Function
程序運行時,單擊命令按鈕,則窗體上顯示的是(B)
A)ABCDEFG
B)AGBFCE
C)GFEDCBA
D)AGBFCED
(32)在窗體上先后畫2個圖片框,名稱分別為Picture1和banana,banana中添加了香蕉圖片(見圖1),且將banana.DragMode屬性設置為1。要求程序運行時,可以用鼠標把banana拖拽到Picture1中(見圖2)。能實現此功能的事件過程是(C)
A)Priate Sub Form_DragDrop(Source As Control,X As Single,Y As Single banana.Move Picture1.Left+X,Picture1.Top+Y)
End Sub
B)Private Sub banana _DragDrop(Source As Control,X As Single,Y As Single)
Source.Move Picture1.Left+X.Picture1.Top+Y
End Sub
C)B)Private Sub Picture1_DragDrop(Source As Control,X As Single,Y As Single)
Source.Move Picture1.Left+X.Picture1.Top+Y
End Sub
D)B)Private Sub Picture1_DragDrop(Source As Control,X As Single,Y As Single)
banana.Move banana.Left+X, banana.Top+Y
End Sub
(33)在窗體上畫1個名稱為Command1的命令按鈕,然后編寫如下事件過程
Option Base 1
Pribate Sub Command1_Click()
Dim a(5.5)As Integer
For i=1 To 5
a(I,j)*510
Next j
Next i
S=0
For i=1 To 5
S=s+a(i,i)
Next i
Print s
End Sub
程序運行后,單擊命令按鈕,輸出結果是(A)
A)15
B)13
C)11
D)9
(34)在窗體上從左到右有Text1、Text2兩個文本框(見圖),要求程序運行時,在Text1中輸入1個分數后按回車鍵,則判斷分數的合法性,若分數為0~100中的1個數,周圍光標移到Text2中;否則光標不動,并彈出對話框顯示“分數錯”,下面程序中正確的是(D)
A)Private Sub Text1__KeyPress(KeyAscii AS Integer)
If KeyAscii=13 Then
‘回車符的ACSII碼是13
a=Val(Text1)
If a>=0 or a<=100 Then
Text2.SetFocus
Else
Text1.SetFocus
;MsgBox(“分數錯”)
End If
End If
End Sub
B)Private Sub Text1__KeyPress(KeyAscii AS Integer)
If KeyAscii=13 Then
‘回車符的ACSII碼是13
a=Val(Text1)
If a>=0 And a<=100 Then
Text1.SetFocus
Else
Text2.SetFocus
;MsgBox(“分數錯”)
End If
End If
End Sub
C)Private Sub Text1__KeyPress(KeyAscii AS Integer)
If KeyAscii=13 Then
‘回車符的ACSII碼是13
a=Val(Text1)
If a<0 And a>100 Then
Text2.SetFocus
Else
Text1.SetFocus
;MsgBox(“分數錯”)
End If
End If
End Sub
D)Private Sub Text1__KeyPress(KeyAscii AS Integer)
If KeyAscii=13 Then
‘回車符的ACSII碼是13
a=Val(Text1)
If a>=0 And a<=100 Then
Text2.SetFocus
Else
Text1.SetFocus
;MsgBox(“分數錯”)
End If
End If
End Sub
(35)在窗體上畫2個命令按鈕,名稱分別為Command1、command2,并編寫如下程序
Const n=5,m=4
Dim a(m,n)
Private Sub Command1_Click()
K=1
For i=1 To m
For j=1 To n
a(i,j)=k
k=k+1
Next j
Next i
Private Sub Command2_Click()
Summ=0
For i=1 To m
For j=1 To n
If i=1 Or i=m Then
Summ=summ+a(i,j)
Else
If j=I Or j=n Then
Summ=summ+a(i,j)
End If
End If
Next j
Next i
Print summ
End Sub
過程Command1_Click()的作用是二維數組a 中存放1個 m行n列的矩陣;過程Command2_Click()的作用是(A)
A)
計算矩陣外圍一圈元素的累加和
B)
計算矩陣除外一圈以外的所有元素的累加和
C)
計算矩陣第1列和最后一列元素的累加和
D)
計算矩陣第1行和最后一行元素的累加和
二、填空題(每空2分,共30分)
請將每一個空的正確答案寫在答題紙上[1]~[15]序號的橫線上,答在試卷上,答在試卷上不得分,注意:以命令關鍵字填空的必須寫完整
(1)
在深度為7的滿二叉樹中,度為2的結點個數為___63_____。
(2)
軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬于__黑箱(或黑盒)測試。
(3)
在數據庫系統中,實現各種數據管理功能的核心軟件稱為
數據庫管理系統(DBMS)_____。
(4)
軟件生命周期可分為多個階段,一般分為定義階段、開發階段和維護階段。編碼和測試屬于
開發_____階段。
(5)在結構化分析使用的數據流圖(DFD)中,利用
數據字典
對其中的圖形元素進行確切解釋。
(6)1+ + + +??.n
最大的n。請填空
Private Sub Command1__Click()
Dim s ,m,n AS Integer
m=Val(InputBox(“請輸入一個大于100的整數”))
n=
0
s=0
Do While s
N=n+1
S=s+n*n
Loop
Print “滿足不等式的最大n是
n-1
End Sub
(7)下面程序的功能是把文件file11.txt中重復字符去掉后(即若有多個字符相同,則只保留1個)寫入文件file2.txt。請填空。
Private Sub Command1__Click()
Dim inchar AS String,temp AS String,outchar AS String
Outchar=” ”
Open=”file1.txt” For Input AS #1
Open=”file2.txt” For Output AS
#2
n=LOF()
inchar=Input$(n,1)
For k=1 To n
temp=Mid(inchar,k,1)
If InStr(outchar,temp)=
0
Then
outchar=outchar & temp
End If
Next k
print #2,outchar
close #2
close #1
End Sub
(8)在窗體上先畫1個名為Text1的文本框和平個名為Label1的標簽,再畫1個名為OP1的有4個單選按鈕數組,其Index屬性按季度順序為0∽3(見圖1)。在文件sales.txt中按月份順序存有某企業某年12個月的銷售額。要求在程序執行時,鼠標單擊1個單選按鈕,則Text1中顯示相應季度的銷售總額,并把相應的文字顯示在標簽上。圖2是單擊“第3季度”單選按鈕產生的結果。請填空。
Dim sales(12)As Long
Private Sub Form__Load()
open “sales.txt” For Input AS #1
For k=1 To 12
Input #1,sales(k)
Next k
Close #1
End Sub
Private Sub
Op1_Click
(Index, AS Integer)
Dim sum AS Long ,k AS Ingeger,month AS Ingeger
sum=0
month=Index*
For k=1 To 3
month=month+1
sum=sum+sales(month)
Next k
Label1.Caption=Opl(Index).Caption
& “銷售總額:”
Text1=sum
End Sub
(9)某人編寫如下函數來判斷a是否為素數,若是,則函數返回True;否則返回False
Function Prime(a As Integer)AS Boolean
Dim k As Interger,isprime AS Boolean
If a<2 Then
isprime=False
Else
isprime=True
k=2
Do While k
If a Mod k=0 Then
isprime=False
ELSE
k=k+1
End IF
LOOP
End If
prime=isprime
End Function
在測試時發現有1個非素數也被判斷為素數,這個錯判的數是
2007年4月全國計算機等級考試二級VB語言筆試試題答案
選擇題:
1-10
cdacd cabaa
11-20
ddbcd abadc
21-30
bbdca cddbc
31-35
bcada 填空:
黑盒測試
DBMS
開發階段
數據詞典
0
N-1 #2 1 0
outchar
op1_click 3
caption 4
07年9月全國計算機二級VB筆試含答案
引用地址:http://www.tmdps.cnmand1的命令按鈕和一個名稱為Text1的文本框。要求單擊Command1按鈕時可把光標移到文本框中。下面正確的事件過程是
A)Private Sub Command1_Click()B)Private Sub Text1.GotFocus Command1.GotFocus End Sub EndSub C)Private Sub Command1_Click()D)Private Sub Text1.SetFocus Command1.SetFocus End Sub End Sub(14)執行以下程序后輸出的是 Private Sub Command1_Click()Ch$=”AABCDEFGH”
Print Mid(Righ(ch$,6),Len(left(ch$,4)),2)End Sub A)CDEFGH B)ABCD C)FG D)AB(15)設在窗體Form1上有一個列表框List1,其中有若干個項目。要求單擊列表框中某一項時,把該項顯示在窗體上,正確的事件過程是
A)Prvate Sub List1_Click()B)Private Sub Form1_Click()Print List1.Text Print List1.Text End Sub End Sub C)Private Sub List1_Click()D)Private Sub Form1_Click()Print Form1.Text List1.Print List1.Text End Sub End Sub(16)若窗體上的圖片框中有一個命令按鈕,則此按鈕的Left屬性是指 A)按鈕左端到窗體左端的距離 B)按鈕左端到圖片框左端的距離 C)按鈕中心點到窗體左端的距離 D)按鈕中心點到圖片框左端的距離
(17)為使程序運行時通用對話框CD1上顯示的標題為“對話框窗口”,若通過程序設置該標題,則應使用的語句是
A)CD1.DialogTitle=“對話框窗口” B)CD1.Action=“對話框窗口” C)CD1.FileName=“對話框窗口” D)CD1.Filter=“對話框窗口”(18)在窗體上有如右圖所示的控件,各控件的名稱 與其標題相同,并有如下程序: Private Sub Form_Load()Command2.Enabled=False Check1.value=1 End Sub 剛運行程序時,看到的窗體外觀是:
(19)設在窗體中有一個名稱為List1的列表框,其中有若干個項目(如圖)。要求選中某一項后單擊Command1按鈕,就刪除選中的項,則正確的事件過程是
A)Private Sub Command1_Click()List1.Clear End Sub B)Private Sub Command1_Click()List1.Clear List1.ListIndex End Sub C)Private Sub Command1_Click()List1.Removeltem List1.ListIndex End Sub D)Private Sub Command1_Click()List1.Removeltem End Sub(20)某人設計了如下程序用來計算并輸出7!(7的階乘)Private Sub Command1_Click()t=0 For k=7 To 2 Step-1 t=t*k Next Print t End Sub 執行程序時,發現結果是錯誤的,下面的修改方案中能夠得到正確結構的是 A)把t=0改為t=1 B)把For k = 7 To 2 Step-1改為For k =7 To 1 Step-1 C)把For k = 7 To 2 Stip-1改為Fork=1 To 7 D)把Next改為Nexi k(21)若窗體中已經有若干個不同的單選按鈕,要把它們改為一個單選按鈕數組,在屬性窗口中需要且只需要進行的操作是
A)把所有單選按鈕的Index屬性改為相同值 B)把所有單選按鈕的Index 屬性改為連續的不同值 C)把所有單選按鈕的Caption屬性值改為相同
D)把所有單選按鈕的名稱改為相同,且把它們的Index屬性改為連續的不同值。(22)窗體上有文本框Text1和一個菜單,菜單標題、名稱如表,結構見圖。要求程序執行時單擊“保存”菜單項,則把其標題顯示在Text1文本框中。下面可實現此功能的事件過程是: 標題 名稱 文件 file 新建 new 保存 save A)Private Sub save_Click()B)Private Sub save_Click()Text1.Text=file.save.Caption Text1.Text=save.Caption End Sub End Sub C)Private Sub file_Click()D)Private Sub file_Click()Text1.Text=file.save.Caption Text1.Text=save.Caption End Sub End Sub(23)某人在窗體上畫了一個名稱為Timer1的計時器和一個名稱為Lab 的屬性設置為Enabled=True, Interval=0,并編程如下。希望在每2秒在標簽上顯示一次系統當前時間。
Private Sub Timer1_Timer()Label1.Caption=Time$ End Sub 在程序執行時發現未能實現上述目的,那么,他應做的修改是 A)通過屬性窗口把計時器的Interval屬性設置為2000 B)通過屬性窗口把計時器的Enabled屬生設置為False C)把事件過程中的Label1.Caption=Time$語句改為Timer1.Interval=Tims$ D)把事件過程中的Label1.Caption=Time$語句改為Label1.Caption=Timer1.Time(24)形狀控件的Shape屬性有6種取值,分別代表6種幾何圖形。下列不屬于這6種幾何圖形的是
(25)下面關于文件的敘述中錯誤的是 A)隨機文件中各條記錄的長度是相同的] B)打開隨機文件時采用的文件存取方式應該是Random C)向隨機文件中寫數據應使用語句Print#文件號
D)打開隨機文件與打開順序文件一樣,都使用Open語句(26)設窗體上有一個圖片框Picture1,要在程序運行期間裝入當前文件夾下的圖形文件File1.jpg,能實現此功能的語句是
A)Picture1.Picture=”Flie1.jpg
B)Picture1.Picture=LoadPicture(“File1.jpg”)C)LoadPicture(“File1.jpg”)D)Call LoadPicture(“File1.jpg”)(27)下面程序執行時,在窗體上顯示的是 Private Sub Command1_Click()Dim a(10)For k = 1 To 10 a(k)= 11 – k Next k Print a(a(3)a(7)Mod a(5))End Sub A)3 B)5 C)7(28)為達到把a、b中的值交換后輸出的目的,某人編程如下: Private Sub Command1_Click()a% = 10:b% = 20 Call swap(a,b)Print a,b End Sub Private Sub swap(ByVal a As Integer,ByVal b As Integer)c= a:a=b:b=c End Sub 在運行時發現輸出結果錯了,需要修改。下面列出的錯誤原因和修改方案中正確的是 A)調用swap過程的語句錯誤,應改為Call swap a,b B)輸出語句錯誤,應改為:Print ”a”,”b”
C)過程的形式參數有錯,應改為:swap(ByRef a As Integer,ByRef b As Integer)D)swap中3條賦值語句的順序是錯誤的,應改為a=b:b=c:c=a(29)有如下函數:
Function fun(a As Integer,n As Integer)As Integer Dim m As Integer While a >=n a=a-n m= m+1 Wend fun=m End Function 該函數的返回值是
A)a乘以n的乘積 B)a加n的和
C)a減n的差 D)a除以n的商(不含小數部分)(30)下面程序的輸出結果是 Private Sub Command1_Click()ch$=”ABCDEF” proc ch Print ch End Sub Private Sub proc(ch As String)S=””
For k=Len(ch)To 1 Step-1 s=s&Mid(ch,k,1)Next k ch=s End Sub A)ABCDEF B)FEDCBA C)A D)F(31)某人編寫了一個能夠返回數組a中10個數中最大數的函數過程,代碼如下: Function Maxvalue(a()As Integer)As Integer Dim max% max=1 For k = 2 To 10 If a(k)>a(max)Then max = k End If Next k Maxvalue = max End Function 程序運行時,發現函數過程的返回值是錯的,需要修改,下面的修改方案中正確的是 A)語句max = 1應改為max = a(1)B)語句For k = 2 To 10應改為For k = 1 To 10 C)If語句中的條件a(k)>a(max)應改為a(k)>max D)語句Maxvalue = max 應改為Maxvalue = a(max)(32)在窗體上畫一個名稱為Command1的命令按鈕,并編寫以下程序: Private Sub Command1_Click()Dim n%,b,t t = 1:b = 1:n = 2 Do b = b*n t = t + b n = n +1 Loop Until n>9 Print t End Sub 此程序計算并輸出一個表達式的值,該表達式是
A)9!B)10!C)1!+2!+?+9!D)1!+2!+?+10!
(33)有一個名稱為Form1的窗體,上面沒有控件,設有以下程序(其中方法Pset(X,Y)的功能是在坐標X,Y處畫一個點):
Dim cmdmave As Boolean Private Sub Form_MouseDown(Button As Integer,Shift As Integer, X As Single,Y As Single)cmdmave = True End Sub Private Sub Form_MouseMove(Button As Integer,Shift As Integer, X As Single, Y As Single)If cmdmave Then Form1.Pset(X,Y)End If End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single,Y As Single)cmdmave = False End Sub 此程序的功能是
A)每按下鼠標鍵一次,在鼠標所指位置畫一個點
B)按下鼠標鍵,則在鼠標所指位置畫一個點;放開鼠標鍵,則此點消失 C)不按鼠標鍵而拖動鼠標,則沿鼠標拖動的軌跡畫一條線
D)按下鼠標鍵并拖動鼠標,則沿鼠標拖動的軌跡畫一條線,放開鼠標鍵則結束畫線(34)某人設計了下面的函數fun,功能是返回參數a中數值的位數 Function fun(a As Integer)As Integer Dim n% n = 1 While a 10 >= 0 n = n + 1 a = a 10 Wend fun = n End Function 在調用該函數時發現返回的結果不正確,函數需要修改,下面的修改方案中正確的是 A)把語句n = 1改為n = 0 B)把循環條件a 10 >= 0改為a 10 > 0 C)把語句 a = a 10改為a = a Mod 10 D)把語句fun = n改為 fun = a(35)在窗體上有一個名稱為Check1的復選框數組(含4個復選框),還有一個名稱為Text1的文本 框,初始內容為空。程序運行時,單擊任何復選 框,則把所有選中的復選框后面的方字羅列在文 本框中(見圖)。下面能實現此功能的事件過程是 A)Private Sub Check1_Click(Indes As Integer)Text1.Text =”“ For k = 0 To 3 If Check1(k).value = 1 Then Text1.Text = Text1.Text & Check1(k).Caption & ” “ '雙引號中是空格 End If Next k End Sub B)Private Sub Check1_Click(Index As Integer)For k = 0 To 3 If Check1(k).value = 1 Then Text1.Text = Text1.Text & Check1(k).Caption & ” “ '雙引號中是空格 End If Next k End Sub C)Private Sub Check1_Click(Index As Integer)Text1.Text = ”“ For k = 0 To 3 If Check1(k).value = 1 Then Text1.Text = Text1.Text & Check1(Index).Caption & ” “ '雙引號中是空格 End If Next k End Sub D)Private Sub Check1_Click(Index As Integer)Text1.Text = ”“ For k = 0 To 3 If Check1(k).value = 1 Then Text1.Text = Text1.Text & Check1(k).Caption & ” “ '雙引號中是空格 Exit For End If Next k End Sub
二、填空題(每空2分,共30分)
請將每空的正確答案寫在答題卡[1]~[15]序號的橫線上,答在試卷上不得分。
(1)軟件需求規格說明書應具有完整性,無岐義性、正確性、可驗證性、可修改性等特征,其中最重要的是【1】。
(2)在兩種基本測試方法中,【2】 測試的原則之一是保證所測模塊中每一個獨立路徑至少執行一次。
(3)線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構。隊列是一種特殊的線性表,循環隊列是隊列的【3】 存儲結構。
(4)對下列二叉樹進行中序遍歷的結果為【4】。
(5)在E-R圖中,矩形表示【5】。(6)窗體上有一個組合框,其中已輸入了 若干個項目。程序運行時,單擊其中一 項,即可把該項與最上面的一項交換。例如:單擊圖1中的“重慶”,則與“北 京”交換,得到圖2的結果。下面是可 實現此功能的程序,請填空。Private Sub Combo1_Click()Dim temp temp = Combo1.Text [6] = Combo1.List(0)Combo1.List(0)= temp End Sub(7)設窗體上有一個名稱為HScroIII的水平滾動條,要求當滾動塊移動位置后,能夠在窗體上輸出移動的距離(即新位置與原位置的刻度值之差,向右移動為正數,向左移動為負數)。下面是可實現此功能的程序,請填寫。
Dim [7] As Integer Private Sub Form_Load()pos=HScroIII.value End Sub Private Sub HScroIII_Change()Print [8]-pos pos=HScroIII.value End Sub(8)設窗體上有一個名稱為CD1的通用對話框,一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕。程序執行時,單擊Command1按鈕,則顯示打開文件對話框,操作者從中選擇一個文本文件,并單擊對話框上的“打開”按鈕后,則可打開該文本文件,并讀入一行文本,顯示在Text1中。下面是實現此功能的事件過程,請填空。
Private Sub Command1_Click()CD1.Filter =”文本文件1*.txt(Word 文檔)*.doc“ CD1.Filterinder = 1 CD1.ShowOpen If CD1.FileName<>”“Then Open [9] For Input As #1 Line Input #1,ch$ Close #1 Text1.Text = [10] End If End Sub(9)下面的程序執行時,可以從鍵盤輸入一個正整數,然后把該數的每位數字按逆序輸出。例如:輸入7685,則輸出5867,輸入1000,則輸出0001。請填空。
Private Sub Command1_Click()Dim x As Integer x=InputBox(“請輸入一個正整數”)While x>__[11]___ Print x Mod 10;x=x10 Wend Print__[12]__ End Sub
(10)有如圖所示的窗體。程序執行時先在Text1文本框中輸入編號,當焦點試圖離開Text1時,程序檢查編號的合法性,若編號合法,則焦點可以離開Text1文本框;否則,顯示相應錯誤信息,并自動選中錯誤的字符,且
焦點不能離開Text1文本框(見圖)。合法編號的組成是:前2個字符是大寫英文 字母,第3個字符是“-”,后面是數字字符(至少1個)。下面程序可實現此功能,請 填空。
Private Sub Text1_Lostfocus()Dim k%,n% n=Len([13])For k=1 to if(n>3,n,4)c=Mid(Text1.Text,k,1)Select Case k Case 1,2 If c<”A“ Or c>”Z“ Then MsgBox(”第“&k&”個字符必須是大寫字母!“)SetPosition k Exit For End If Case 3 If c<>”-“ Then MsgBox(”第“&k&”個字符必須是字符“'”-“'”)SetPosition k Exit For End If Case Else If c<“0” Or c>“9” Then MsgBox(“第”&k&“個字符必須是數字!”)SetPosition k Exit For End If End Select Next k End Sub
Private Sub SetPosition(pos As Integer)Text1.SelStart=pos-1 Text.SelLength= [14] Text1.[15] End Sub
2007年9月全國計算機等級考試二級VB參考答案
一、選擇題 1-5 DBCAA 6-10 CCABA 11-15 BDCCA 16-20 BAACA 21-25 DBABC 26-30 BDCDB 31-35 DCDBA
第四篇:2009年3月全國計算機等級考試二級VFP筆試卷
2009年3月全國計算機等級考試二級VFP筆試卷+答案
(考試時間90分鐘,滿分100分)
選擇題
(1)下列敘述中正確的是
A)棧是“先進先出”的線性表 B)隊列是“先進先出”的線性表
C)循環隊列是非線性結構D)有序性表既可以采用順序存儲結構,也可以采用鏈式存儲結構
(2)支持子程序調用的數據結構是
A)棧B)樹C)隊列D)二叉樹
(3)某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是
A)10B)8C)6D)4
(4)下列排序方法中,最壞情況下比較次數最少的是
A)冒泡排序B)簡單選擇排序C)直接插入排序D)堆排序
(5)軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是
A)編譯軟件B)操作系統C)教務管理系統D)匯編程序
(6)下面敘述中錯誤的是
A)軟件測試的目的是發現錯誤并改正錯誤
B)對被調試的程序進行“錯誤定位”是程序調試的必要步驟
C)程序調試通常也稱為Debug D)軟件測試應嚴格執行測試計劃,排除測試的隨意性
(7)耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是
A)提高耦合性降低內聚性有利于提高模塊的獨立性
B)降低耦合性提高內聚性有利于提高模塊的獨立性
C)耦合性是指一個模塊內部各個元素間彼此結合的緊密程度
D)內聚性是指模塊間互相連接的緊密程度
(8)數據庫應用系統中的核心問題是
A)數據庫設計B)數據庫系統設計C)數據庫維護D)數據庫管理員培訓
(9)有兩個關系R,S如下:
RS
A B CA B
a 3 2a 3
b 0 1b 0
c 2 1c 2
由關系R通過運算得到關系S,則所使用的運算為
A)選擇B)投影C)插入D)連接
(10)將E-R圖轉換為關系模式時,實體和聯系都可以表示為
A)屬性B)鍵C)關系D)域
(11)數據庫(DB)、數據庫系統(DBS)和數據庫管理系統(DBMS)三者之間的關系是
A)DBS包括DB和DBMSB)DBMS包括DB和DBS
C)DB包括DBS和DBMSD)DBS就是DB,也就是DBMS
(12)SQL語言的查詢語句是
A)INSERTB)UPDATEC)DELETED)SELECT
(13)下列與修改表結構相關的命令是
A)INSERTB)ALTERC)UPDATED)CREATE
(14)對表SC(學號 C(8),課程號 C(2),成績 N(3),備注 C(20)),可以插入的記錄是
A)('20080101', 'c1', '90',NULL)B)('20080101', 'c1', 90, '成績優秀')
C)('20080101', 'c1', '90', '成績優秀')D)('20080101', 'c1', '79', '成績優秀')
(15)在表單中為表格控件指定數據源的屬性是
A)DataSourceB)DateFromC)RecordSourceD)RecordFrom
(16)在Visual FoxPro中,下列關于SQL表定義語句(CREATE TABLE)的說法中錯誤的是
A)可以定義一個新的基本表結構B)可以定義表中的主關鍵字
C)可以定義表的域完整性、有效性規則等信息的設置
D)對自由表,同樣可以實現其完整性、有效性規則等信息的設置
(17)在Visual FoxPro中,若所建立索引的字段值不允許重復,并且一個表中只能創建一個,這種索引應該是
A)主索引B)唯一索引C)候選索引D)普通索引
(18)在Visual FoxPro中,用于建立或修改程序文件的命令是
A)MODIFY<文件名>B)MODIFY COMMAND <文件名>
C)MODIFY PROCEDURE <文件名>D)上面B和C都對
(19)在Visual FoxPro中,程序中不需要用PUBLIC等命令明確申明和建立,可直接使用的內存變量是
A)局部變量B)私有變量C)公告變量D)全局變量
(20)以下關于空值(NULL值)敘述正確的是
A)空值等于空字符串B)空值等同于數值0
C)空值表示字段或變量還沒有確定的值D)Visual FoxPro不支持空值
(21)執行USE sc IN 0命令的結果是
A)選擇0號工作區打開sc表 B)選擇空閑的最小號的工作區打開sc表
C)選擇第1號工作區打開scD)顯示出錯信息
(22)在Visual FoxPro中,關系數據庫管理系統所管理的關系是
A)一個DBF文件B)若干個二維表C)一個DBC文件D)若干個DBC文件
(23)在Visual FoxPro中,下面描述正確的是
A)數據庫表允許對字段設置默認值B)自由表允許對字段設置默認值
C)自由表或數據庫表都允許對字段設置默認值
D)自由表或數據庫表都不允許對字段設置默認值
(24)SQL的SELECT語句中,“HAVING<條件表達式>”用來篩選滿足條件的A)列B)行C)關系D)分組
(25)在Visual FoxPro中,假設表單上有一個選項組:O男 O女,初始時該選項組的value屬性值為1。若選項按鈕“女”被選中,該選項組的value屬性值是
A)1B)2C)“女”D)“男”
(26)在Visual FoxPro中,假設教師表T(教師號,姓名,性別,職稱,研究生導師)中,性別是C型字段,研究生導師是L型字段。若要查詢“是研究生導師的女老師”信息,那么SQL語句“SELECT * FROM T WHERE <邏輯表達式>”中的<邏輯表達式>應是
A)研究生導師 AND 性別= “女”B)研究生導師 OR 性別= “女”
C)性別= “女” AND 研究生導師=.F.D)研究生導師=.T.OR 性別=女
(27)在Visual FoxPro中,有如下程序,函數IIF()返回值是
PRIVATE X,Y
STORE “男” TO X
Y=LEN(X)+2
?IIF(Y<4, “男”, “女”)
RETURN
A)“女”B)“男”C).T.D).F.(28)在Visual FoxPro 中,每一個工作區中最多能打開數據庫表的數量是
A)1個B)2個C)任意個,根據內存資源而確定D)35535個
(29)在Visual FoxPro 中,有關參照完整性的刪除規則正確的描述是
A)如果刪除規則選擇的是“限制”,則當用戶刪除父表中的記錄時,系統將自動刪除子表中的所有相關記錄
B)如果刪除規則選擇的是“級聯”,則當用戶刪除父表中的記錄時,系統將禁止刪除與子表相關的父表中的記錄
C)如果刪除規則選擇的是“忽略”,則當用戶刪除父表中的記錄時,系統不負責檢查子表中是否有相關記錄D)上面三種說法都不對
(30)在Visual FoxPro中,報表的數據源不包括
A)視圖B)自由表C)查詢D)文本文件
第(31)到第(35)題基于學生表S和學生選課表SC兩個數據庫表,它們的結構如下: S(學號,姓名,性別,年齡)其中學號、姓名和性別為 C型字段,年齡為N型字段。
SC(學號,課程號,成績),其中學號和課程號為C型字段,成績為N型字段(初始為空值)。
(31)查詢學生選修課程成績小于60分的學號,正確的SQL語句是
A)SELECT DISTINCT 學號 FROM SC WHERE “成績” <60
B)SELECT DISTINCT 學號 FROM SC WHERE 成績 < “60”
C)SELECT DISTINCT 學號 FROM SC WHERE 成績 <60
D)SELECT DISTINCT “學號” FROM SC WHERE “成績” <60
(32)查詢學生表S的全部記錄并存儲于臨時表文件one中的SQL命令是
A)SELECT * FROM 學生表 INTO CURSOR one
B)SELECT * FROM 學生表TO CURSOR one
C)SELECT * FROM 學生表 INTO CURSORDBF one
D)SELECT * FROM 學生表TO CURSOR DBF one
(33)查詢成績在70分至85分之間學生的學號、課程號和成績,正確的SQL語句是
A)SELECT 學號,課程號,成績 FROM sc WHERE 成績 BETWEEN 70 AND 85
B)SELECT 學號,課程號,成績 FROM scWHERE 成績 >=70 OR 成績 <=85
C)SELECT 學號,課程號,成績 FROM scWHERE 成績 >=70 OR <=85
D)SELECT 學號,課程號,成績 FROM scWHERE 成績 >=70 AND <=85
(34)查詢有選課記錄,但沒有考試成績的學生的學號和課程號,正確的SQL語句是
A)SELECT 學號,課程號 FROM sc WHERE 成績 = “"
B)SELECT 學號,課程號 FROM sc WHERE 成績 = NULL
C)SELECT 學號,課程號 FROM sc WHERE 成績 IS NULL
D)SELECT 學號,課程號 FROM sc WHERE 成績
(35)查詢選修C2課程號的學生姓名,下列SQL語句中錯誤的是
A)SELECT 姓名 FROM S WHERE EXISTS;
(SELECT * FROM SC WHERE 學號=S.學號 AND 課程號= 'C2')
B)SELECT 姓名 FROM S WHERE 學號 IN;
(SELECT * FROM SC WHERE課程號= 'C2')
C)SELECT 姓名 FROM S JOIN ON S.學號=SC.學號 WHERE 課程號= 'C2'
D)SELECT 姓名 FROM S WHERE 學號=;
(SELECT * FROM SC WHERE課程號= 'C2')
二、填空題(每空2分,共30分)
將每一個空的正確答案寫在答題紙上【1】-【15】序號的橫線上,答在試卷上,在試卷上不得分,(1)假設一個長度為50的數組(數組元素的下標從0到49)作為棧的存儲空間,棧底指針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數組下標),則棧中具有 【1】 個元素。20
(2)軟件測試可分為白盒測試和黑盒測試。基本路徑測試屬于【2】 測試。白盒
(3)符合結構化原則的三種基本控制結構是:選擇結構、循環結構和【3】。順序結構
(4)數據庫系統的核心是【4】數據庫管理系統
(5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯系的是【5 】框。菱形
(6)所謂自由表就是那些不屬于若任何【6】的表。數據庫
(7)常量{^2009-10-01,15:30:00}的數據類型是【7】日期時間型。
(8)利用SQL語句的定義功能建立一個課程表,并且為課程號建立主索引,語句格式為:CREATE TABLE 課程表(課程號 C(5)【8】,課程名 C(30))primary key
(9)在Visual FoxPro中,程序文件的擴展名是【9】。.prg
(10)在Visual FoxPro中,SEELCT 語句能夠實現投影、選擇和【10】三種專門的關系運算。聯接
(11)在Visual FoxPro中,LOCATE ALL命令按條件對某個表中的記錄進行查找,若查找不到滿足條件的記錄,函數EOF()的返回值應是【11】。.T.(12)在Visual FoxPro中,設有一個學生表STUDENT,有學號、姓名、年齡、性別等字段,用戶可以用命令”【12】 年齡 WITH 年齡+1”將表中所有學生的年齡增加一歲。Replace all
(13)在Visual FoxPro中,有如下程序:
*程序名:TEST.PRG
SET TALK OFF
PRIVATE X,Y
X= ”數據庫“
Y= ”管理系統“
DO sub1
?X+Y
RETURN
*子程序:sub1
LOCAL X
X= ”應用“
Y= ”系統"
X= X+Y
RETURN
執行命令DO TEST后,屏幕顯示的結果應是【13】。數據庫系統
(14)使用SQL語言的SELECT語句進行分組查詢時,如果希望去掉不滿足條件的分組,應當在GROUP BY 中使用【14】子句。Having
(15)設有SC(學號,課程號,成績)表,下面 SQL的SELECT語句檢索成績高于或等于平均成績的學生的學號。
SELECT 學號 FROM sc;
WHERE 成績>=(SELECT 【15】 FROM sc)avg(成績)
第五篇:二級建造師歷年考試真題及答案解析
二級建造師歷年考試真題及答案解析免費下載
2014年二級建造師考試真題、模擬題盡收其中,諸多業界權威名師精心解析,精細化試題分析、完美解析一網打盡!二級建造師考試歷年考試真題:http://url.cn/ejORs7
更多精品備考資料及資訊2015年二建高效備考交流群:338463100(入群即送一套白金課程,備考資
料,歷年真題)
1關于施工企業法人與項目經理部法律關系的說法。正確的是()。A.項目經理部具備法人資格
B.項目經理是企業法定代表人授權在建設工程施工項目上的管理者 C.項目經理部行為的法律后果由其自己承擔 D.項目經理部是施工企業內部常設機構 正確答案是 B,回答正確
解析 項目經理部是施工企業為了完成某項建設工程施工任務而設立的組織。項目經理部是由一個項目經理與技術、生產、材料、成本等管理人員組成的項目管理班子,是一次性的具有彈性的現場生產組織機構。項目經理部不具備法人資格,而是施工企業根據建設工程施工項目而組建的非常設的下屬機構。項目經理根據企業法人的授權,組織和領導本項目經理部的全面工作。
2(單項選擇題)單位甲委托自然人乙采購特種水泥,乙持授權委托書向供應商丙采購,丙向乙說明無法供供貨,乙表示愿意購買普通水泥代替,向丙出示加蓋公章的空白合同。經查,丙不知乙授權不足的情況,關于甲、乙行為的說法,正確的是()A.乙的行為屬于法定代理 B.甲有權拒絕接受這批普通水泥 C.如甲拒絕,應由乙承擔付款義務 D.甲應承擔付款義務 正確答案是 D,回答正確
解析 《合同法》規定,行為人沒有代理權、超越代理權或者代理權終止后以被代理人名義訂立 合同,相對人有理由相信行為人有代理權的,該代理行為有效。3(單項選擇題)根據《物權法》,土地承包經營權屬于()A.所有權 B.用益物權 C.擔保物權 D.準物權
正確答案是 B,回答正確
解析 用益物權是權利人對他人所有的不動產或者動產,依法享有占有、使用和收益的權 利。用益物權包括土地承包經營權、建設用地使用權、宅基地使用權和地役權。4(單項選擇題)關于不動產物權設立的說法,正確的是()
A.經依法登記,發生設立效力 B.合同簽字蓋章,發生設立效力
C.依法屬于國家所有的自然資源,所有權必須登記 D.未經登記,不動產交易合同無效 正確答案是 A,回答正確
解析 不動產物權的設立、變更、轉讓和消滅,應當依照法律規定登記,自記載于不動產登 記簿時發生效力。經依法登記,發生效力;未經登記,不發生效力,但法律另有規定的除 外。依法屬于國家所有的自然資源,所有權可以不登記。
5(單項選擇題)工程建設中使用的計算機軟件是()保護的客體,受知識產權保護。A.專利權 B.商標權 C.著作權 D.發明權
正確答案是 C,回答正確
解析 在建設工程中常見的知識產權主要是專利權、商標權、著作權、發明權和其他科技成 果。計算機軟件也是工程建設中經常使用的,計算機軟件屬于著作權保護的客體。6(單項選擇題)根據《擔保法》,下列財產不可以抵押的是()A.廠房
B.可轉讓的專利權 C.生產原材料
D.公立幼兒園的教育設施 正確答案是 D,回答正確 解析 下列財產不得抵押:(1)土地所有權;
(2)耕地、宅基地、自留地、自留山等集體所有的土地使用權;
(3)學校、幼兒園、醫院等以公益為目的的事業單位、社會團體的教育 設施、醫療衛生設施和其他社會公益設施;
(4)所有權、使用權不明或者有爭議的財產;(5)依法被查封、扣押、監管的財產;(6)依法不得抵押的其他財產。
7(單項選擇題)根據《物權法》,下列財產不可以抵押的是()A.生產設備 B.建設用地使用權 C.正在建設的建筑物 D.集體所有的宅基地
正確答案是 D,回答正確
解析 下列財產不得抵押:(1)土地所有權;(2)耕地、宅基地、自留地、自留山等集體所有的土地使用權;
(3)學校、幼兒園、醫院等以公益為目的的事業單位、社會團體的教育 設施、醫療衛生設施和其他社會公益設施;(4)所有權、使用權不明或者有爭議的財產;(5)依法被查封、扣押、監管的財產;(6)依法不得抵押的其他財產。
8(單項選擇題)某材料供應商由于自身原因,沒有按合同約定及時提供原材料,給工程建設項目造成了經濟損失,該供應商應承擔()。A.行政處分 B.違約責任 C.行政處罰 D.交納罰金
正確答案是 B,回答正確
解析 民事責任可以分分為違約責任和侵權責任兩類。違約責任是指合同當事人違反法律規定或合同約定的義務而應承擔的責任。
9(單項選擇題)以市場主導,以守法、守信、守德、綜合實力為基礎進行綜合評價的是()。A.政府對市場主體的守法誠信評價 B.社會中介信用機構的綜合信用評價 C.市場主體的自我綜合信用評價 D.行業協會協助政府部門的綜合信用評價 正確答案是 B,回答正確
解析 社會中介信用機構的綜合信用評價是市場主導,以守法、守信(主要指經濟信用,包 括市場交易信用和合同履行信用)、守德(主要指道德、倫理信用)、綜合實力(主要包括 經營、資本、管理、技術等)為基礎進行綜合評價。
10(單項選擇題)承攬工程不符合規定質量標準造成損失的,施工企業與使用本企業名義施工的單位承擔()。A.按份責任 B.補充責任 C.連帶責任 D.公平責任
正確答案是 C,回答正確 解析 無
11(單項選擇題)建設工程招標的基本程序主要包括:
①發售招標文件;②編制招標文件;③委托招標代理機構;④旅行項目審批手續;⑤開標、評標;⑥簽訂合同;
⑦發布招標公告或投標邀請書;⑧發出中標通知書。上述程序正確的排列順序是()。A.①②③④⑤⑥⑦⑧ B.③②④⑦①⑤⑧⑥ C.②③①④⑦⑤⑥⑧ D.④③②⑦①⑤⑧⑥ 正確答案是 D,回答正確
解析 建設工程招標的基本程序主要包括:履行項目審批手續、委托招標代理機構、編制招 標文件及標底、發布招標公告或投標邀請書、資格審查、開標、評標、中標和簽訂合同,以及終止招標等。
12(單項選擇題)按照《建筑施工場界環境噪聲排放標準》,建筑施工場界環境噪聲排放限值為()。A.晝間60dB(A),夜間50dB(A)B.晝間65dB(A),夜間50dB(A)C.晝間70dB(A),夜間55dB(A)D.晝間75dB(A),夜間60dB(A)正確答案是 C,回答正確 解析
按照《建筑施工場界環境噪聲排放標準》GB 12523—2011的規定,建筑施工過 程中場界環境噪聲不得超過規定的排放限值。建筑施工場界環境噪聲排放限值,晝間 70dB(A),夜間55 dB(A)。夜間噪聲最大聲級超過限值的幅度不得高于15 dB(A)。
13(單項選擇題)根據《最高人民法院關于適用《中華人民共和國仲裁法》若干問題的解釋,當事人申請只想仲裁裁決的案件,由()管轄。A.仲裁機構所在地中級人民法院 B.仲裁機構所在地高級人民法院
C.被執行人住所地或者被執行財產所在地高級人民法院 D.被執行人住所地或者被執行財產所在地中級人民法院 正確答案是 D,回答正確
解析 仲裁裁決作出后,當事人應當履行裁決。一方當事人不履行的,另一方當事人可以依 照我國《民事訴訟法》的規定,向人民法院申請執行。根據我國最高人民法院的相關司法 解釋,當事人申請執行仲裁裁決案件,由被執行人所在地或者被執行財產所在地的中級人民法院管轄。
14(單項選擇題)在招標投標過程中,投標人發生合并、分立、破產等重大變化的,應當()。A.撤回投標 B.提高投標保證金額 C.撤銷投標
D.及時書面告知招標人 正確答案是 D,回答正確
解析 投標人發生合并、分立、破產等重大變化的,應當及時書面告知招標人。投標人不再 具備資格預審文件、招標文件規定的資格條件或者其投標影響招標公正性的,其投標無效。15(單項選擇題)關于建筑工程施工分包行為的說法,正確的是()A.承包人并未對該工程的施工活動進行組織管理的,視同轉包 B.個人可以承攬分包工程業務
C.建設單位有權直接指定分包工程承包人 D.建設單位推薦的分包單位,總承包單位物權拒絕 正確答案是 A,回答正確
解析 分包工程發包人將工程分包后,未 在施工現場設立項目管理機構和派駐相應人員,并未對該工程的施工活動進行組織管理的,視同轉包行為。
16.在施工成本控制的步驟中,通過檢杳,可以估算整個項目完成時的(),為決策提供支持。A.施工成本 B.報價成本 C.直接成本 D.合同成本
17.下列關于工程變更的說法中正確的是()。A.如果計劃完整,工程變更可以避免
B、工程變更一般包括設計變更、進度計劃變更、施工條件變更等 C.一旦出現變更,工程量、工期、成本不一定發生變化 D.工程變更不能作為施工成本控制的依據
18,按照國際慣例,通常發生逾期支付情況,在索賠款額的計算中可包括()。A.高于利息的50% B.利息 C.滯納金 D.50%的利息
19.設置措施項目清單時,確定材料二次搬運等項目主要參考()A.施工技術方案 B.施工規程 C.施工組織設計 D.施工規范
20、已知某挖土機挖土的一個工作循環需2分鐘,每循環一次挖土0.5(立方米),工作班的延續時間為8小時,時間利用系數K二o.85,則其臺班產量定額為()。
A.12.8(立方米)/臺班 B.15(立方米)/臺班 C.102(立方米)/臺班
D.120(立方米)/臺班
21.()網絡計劃是前后工作之間有多種邏輯關系的肯定型網絡計劃 A.單代號時標 B.雙代號時標 C.雙代號搭接 D.單代號搭接
22.下列選項中,屬于施工方進度控制技術措施的是()。A.編制資源需求計劃 B.進度控制職能分工
C.選用對實現進度目標有利的施工方案 D.對工程進度進行風險分析
23,施工方進度控制的任務是依據()對施工進度的要求控制施工進度。A.監理規劃 B.施工任務委托合同 C.施工任務單 D.施工組織設計
24.針對大型建設工程項目,需要編制()等層次的施工進度計劃。A.控制性、實施性 B.指導性
C.指導性、控制性 D.控制性、指導性、實施性
25.對于我國大型或特大型建設項目,控制性施工進度計劃的編制任務可以由()承擔。A.業主 B.設計單位 C.總承包商 D.物資供應商
26.建設工程項目的總進度目標指的是整個項目的進度目標,是在項目()確定的。A.施工階段
B.設計準備階段 C.設計階段 D.決策階段
27.按施工質量計劃的要求,控制準備工作狀態,為施工作業過程或工序的質量控制打好基礎屬于()的內容。A.事前控制 B.事中控制 C.事后控制 D.反饋控制
28.()是比較普遍采用的施工質量計劃文件。A.《工程施工組織設計》 B.《施工項目管理實施規劃》 C.《質量手冊》 D.《施工質量計劃》
29,對危險性較大的現場安裝的起重機械設備,安裝完畢交付使用前必須經()的驗收,合格后方可使用。A.專業管理部門 B.施工單位 C.業主 D.監理單位
30.在正確合理的工程設計的前提下,建設工程質量不合格主要歸結為()。A.投入的施工生產要素質量不合格以及工序操作質量不合格 B.工序操作質量不合格以及施工作業質量不合格
C.投入的施工生產要素質量不合格以及已完施工產品質量檢驗不合格 D.投入的施工生產要素質量不合格和施工作業質量不合格
31隱蔽工程在隱蔽前應由()通知有關單位進行驗收,并應形成驗收文件。A.建設單位 B.臨理單位 C.施工單位 D.政府質量監督部門
32、造成經濟損失()萬元以上或重傷3人以上或死亡2人以下等后果的質量事故屬于重大施工質量事故。
A.5 D.10 C.15 D.20
33、下列施工質量事故處理方式中,()是指經過適當的加固補強、修復缺陷,自檢合格后重新進行檢查驗收。A.返工處理 B.返修處理 C.讓步處理 D.降級處理
34.在我國的行政法規中,為了加強對建設工程質量的管理,特別在()中明確政府行政主管部門設立專門機構對建設工程質量行使監督職能。A.《建筑法》
B.《建設工程質量管理條例》 C.《建設工程質量驗收統一標準》 D.《合同法》
35.應該在()辦理工程質量監督申請手續。A.工程開工當日 B.開工后七天內 C.開工后三天內 D.工程項目開工前
36、單位工程質量監督報告需要在竣工驗收之日起()提交竣工驗收備案部門。A.3天內
B.7天內 C.5天內 D.10天內
37、由企業的最高領導者所發布的一個企業的質量宗旨和質量方向是指()。A.質量目標
B.質量方針 C.質量戰略 D.質量體系
38.在認證后的維持和監督管理中,下列關于復評的解釋,正確的是()A.當出現質量管理體系認證標準變更時,可提出復評申請 B.企業被認證撤銷后,經整改可提出復評申請 C.企業認為認證機構處罰不當時,可提出復評申請
D.認證合格有效期滿前,如企業愿意繼續延長,可提出復評申請
39.職業健康安全的條件和因素可能影響到的工作場所內的人員有()。A.正式工人、臨時工人、施工管理人員和監理人員 B.員工、臨時工作人員、合同方人員、防問者和其他人員 C .承包商和工程監理在現場工作的所有工作人員 D,業主、監理工程師和承包商所有在現場的人員
40.建筑產品的單件性要求,每一個建筑產品都要根據其特定要求進行施工,其表現包括)(A.不能使用同一施工隊伍、同一施工工藝、同一生產設備、同一家承包商進行生產 B.施工生產組織及機構變動頻繁,生產經營的“隨機性”特征特別突出 C.生產過程中試驗性研究課題多,給職業健康安全與環境管理帶來不少難題 D.對于同一地區的不同建設工程項目;可以制定相同健康安全與環境管理計劃)。