欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      2012年3月全國計算機等級考試二級筆試試卷Visual_FoxPro數據庫程序設計

      時間:2019-05-14 09:23:08下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《2012年3月全國計算機等級考試二級筆試試卷Visual_FoxPro數據庫程序設計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《2012年3月全國計算機等級考試二級筆試試卷Visual_FoxPro數據庫程序設計》。

      第一篇:2012年3月全國計算機等級考試二級筆試試卷Visual_FoxPro數據庫程序設計

      2012年3月全國計算機等級考試二級筆試試卷Visual

      FoxPro數據庫程序設計(考試時間90分鐘,滿分100分)

      一、選擇題(每小題2分,共70分)

      下列各題A、B、C、D四個選項中,只有一個選項是正確地。請將正確選項填涂在答題卡上相應位置上,答在試卷上不得分。

      (1)下列敘述中正確的是

      A)循環(huán)隊列是隊列的一種鏈式存儲結構

      B)循環(huán)隊列是一種邏輯結構

      C)循環(huán)隊列是隊列的一種順序存儲結構

      D)循環(huán)隊列是非線性結構

      (2)下列敘述中正確的是

      A)棧是一種先進先出的線性表

      B)隊列是一種后進先出的線性表 C)棧與隊列都是非線性結構

      D)以上三種說法都不對

      (3)一棵二叉樹共有25個結點,其中5個是葉子結點,則度為1的結點數為

      A)4

      B)16

      C)10

      D)6

      (4)在下列模式中,能夠給出數據庫物理存儲結構與物理存取方法的是

      A)邏輯模式

      B)概念模式

      C)內模式

      D)外模式

      (5)在滿足實體完整性約束的條件下

      A)一個關系中可以沒有候選關鍵字

      B)一個關系中只能有一個候選關鍵字

      C)一個關系中必須有多個候選關鍵字

      D)一個關系中應該有一個或多個候選關鍵字

      (6)有三個關系R、S和T如下:

      則由關系R和S得到關系T的操作是

      A)并

      B)差

      C)交

      D)自然連接(7)軟件生命周期中的活動不包括

      A)軟件維護

      B)需求分析

      C)市場調研

      D)軟件測試

      (8)下面不屬于需求分析階段任務的是

      A)確定軟件系統(tǒng)的性能需求

      B)確定軟件系統(tǒng)的功能需求

      C)制定軟件集成測試計劃

      D)需求規(guī)格說明書評審(9)在黑盒測試方法中,設計測試用的主要根據是

      A)程序外部功能

      B)程序數據功能

      C)程序流程圖

      D)程序內部邏輯

      (10)在軟件設計中不使用的工具是

      A)系統(tǒng)結構圖

      B)程序流程圖

      C)PAD圖

      D)數據流圖(DFD圖)

      (11)Visual FoxPro 6.0 屬于

      A)層次數據庫管理系統(tǒng)

      B)關系數據庫管理系統(tǒng)

      C)面向對象數據庫管理系統(tǒng)

      D)分布式數據庫管理系統(tǒng)

      (12)下列字符型常量的表示中,錯誤的是

      A)[[品牌]]

      B)’5+3’

      C)’[x=y]’

      D)[“計算機”]

      (13)函數UPPER(“1a2B”)的結果是

      A)1A2b

      B)1a2B

      C)1A2B

      D)1a2b

      (14)可以隨表的打開而自動打開的索引是

      A)單項壓縮索引文件

      B)單項索引文件

      C)非結構復合索引文件

      D)結構復合索引文件

      (15)為數據庫表增加字段有效性規(guī)則是為了保證數據的

      A)域完整性

      B)表完整性

      C)參照完整性

      D)實體完整性

      (16)在Visual FoxPro中,可以在不同工作區(qū)同時打開多個數據庫或自由表,改變當前工作區(qū)的命令是

      A)OPEN

      B)SELECT

      C)USE

      D)LOAD

      (17)在INPUT、ACCEPT和WAIT三個命令中,必須要以回車鍵表示輸入結束的命令是

      A)ACCEPT、WAIT

      B)INPUT、WAIT

      C)INPUT、ACCEPT

      D)INPUT、ACCEPT和WAIT

      (18)下列控件中,不能設置數據源的是

      A)復選框

      B)命令按鈕

      C)選項組

      D)列表框

      (19)查詢“教師”表中“住址”字段中含有“望京”字樣的教師信息。正確的SQL語句是

      A)SELECT*FROM 教師 WHERE 住址 LIKE”%望京%”

      B)SELECT*FROM 教師 FOR 住址 LIKE”%望京%” C)SELECT*FROM 教師 FOR 住址= LIKE”%望京%”

      D)SELECT*FROM 教師 WHERE 住址= LIKE”%望京%”

      (20)查詢設計器中的“篩選”選項卡的作用是

      A)查看生成的SQL代碼

      B)制定查詢條件

      C)增加或刪除查詢表

      D)選擇所要查詢的字段

      (21)某數據庫有20條記錄,若用函數EOF()測試結果為.T.,那么此時函數RECND()值是

      A)21

      B)20

      C)19

      D)1

      (22)為“教師”表的職工號字段添加有效性規(guī)則:職工號的最左邊三位字符是“110”,正確的SQL語句是

      A)CHANGE TABLE 教師 ALTER 職工號 SET CHECK LEFT(職工號,3)=”110”

      B)CHANGE TABLE 教師 ALTER 職工號 SET CHECK OCCURS(職工

      號,3)=”110”

      C)ALTER TABLE教師 ALTER 職工號 SET CHECK LEFT(職工號,3)=”110”

      D)ALTER TABLE教師 ALTER 職工號 CHECK LEFT(職工號,3)=”110”

      (23)對數據表建立性別(C,2)和年齡(N,2)的復合索引時,正確地索引關鍵字表達式為

      A)性別+年齡

      B)VAL(性別)+年齡

      C)性別,年齡

      D)性別+STR(年齡,2)

      (24)刪除視圖salary的命令是

      A)DR調用,DROP VIEW salary

      B)DROP salary VIEW

      C)DELETE salary

      D)DELETE salary VIEW

      (25)關于內存變量的調用,下列說法正確地是

      A)局部變量能被本層模塊和下層模塊程序調用

      B)私有變量能被本層模塊和下層模塊程序調用

      C)局部變量不能被本層模塊程序調用

      D)私有變量只能被本層模塊程序調用

      (26)在命令按鈕中,決定命令按鈕數目的屬性是

      A)ButtonNum

      B)ControlSource

      C)ButtonCount

      D)Value

      (27)報表文件的擴展名是

      A).MNX

      B).FXP

      C).PRG

      D).FRX

      (28)下列選項中,不屬于SQL數據定義功能的是 A)ALTER

      B)CREATE

      C)DROP

      D)SELECT

      (29)要將Visual FoxPro系統(tǒng)菜單恢復成標準配置,可先執(zhí)行 SET SYSMENU NOSAVE命令,然后再執(zhí)行

      A)SET TO SYSMENU

      B)SET SYSMENU TO DEFAULT

      C)SET TO DEFAULT

      D)SET DEFAULT TO SYSMENU(30)假設有一表單,其中包含一個選項按鈕組,在表單運行啟動時,最后觸發(fā)的事件是

      A)表單的Init

      B)選項按鈕的Init

      C)選項按鈕組的Init

      D)表單的Load

      31-35題使用如下三個數據庫表:

      圖書(索書號,書名,出版社,定價,ISBN)

      借書證(借書證號,姓名,性別,專業(yè),所在單位)

      借書記錄(借閱號,索書號,借書證號,借書日期,還書日期)

      其中:定價是貨幣型,結束日期和還書日期是日期型,其它是字符型。

      (31)查詢借書證上專業(yè)“計算機”的所有信息,正確地SQL語句是

      A)SELECT ALLFORM 借書證 WHERE 專業(yè)=”計算機”

      B)SELECT 借書證號 FROM 借書證WHERE 專業(yè)=”計算機”

      C)SELECT ALLFORM借書記錄WHERE 專業(yè)=”計算機”

      D)SELECT*FROM借書證WHERE 專業(yè)=”計算機”

      (32)查詢2011年被借過圖書的書名、出版社和借書日期,正確的SQL 語句是

      A)SELECT 書名,出版社,借書日期FROM圖書,借書記錄

      WHERE 借書日期=2011 AND 圖書索引號=借書記錄,索引號

      B)SELECT 書名,出版社,借書日期FROM圖書,借書記錄

      WHERE 借書日期=YEAR(2011)AND 圖書索引號=借書記錄,索引號

      C)SELECT 書名,出版社,借書日期FROM圖書,借書記錄

      WHERE 圖書索引號=借書記錄,索引號AND YEAR(借書日期)=2011

      D)SELECT 書名,出版社,借書日期FROM圖書,借書記錄

      圖書索引號=借書記錄,索引號AND WHERE YEAR(借書日期)=YEAR(2011)

      (33)查詢所有借閱過“中國出版社”圖書的讀者的姓名和所在單位

      A)SELECT 姓名,所在單位FROM 借書證,圖書,借書記錄

      WHERE 圖書,索書號=借書記錄,索書號 AND

      借書證,借書證號=借書記錄,借書證號AND 出版社=”中國出版社”

      B)SELECT 姓名,所在單位FROM圖書, 借書證

      WHERE 圖書,索書號=借書證,借書證號AND 出版社=”中國出版社”

      C)SELECT 姓名,所在單位FROM圖書, 借書記錄

      WHERE 圖書,索書號=借書記錄,索書號AND 出版社=”中國出版社”

      D)SELECT 姓名,所在單位FROM 借書證, 借書記錄

      WHERE借書證,借書證號=借書記錄,借書證號AND 出版社=”中國出版社”

      (34)從圖書證表中刪除借書證號為“1001”的記錄,正確的SQL語句是

      A)DELETE FROM 借書證 WHERE 借書證號=”1001”

      B)DELETE FROM 借書證 FOR借書證號=”1001”

      C)DROP FROM 借書證WHERE借書證號=”1001”

      D)DROP FROM 借書證 FOR借書證號=”1001”

      (35)將原值為“錦上計劃研究所”的所在單位字段值重設為“不詳”,正確地SQL語句是

      A)UPDATE 借書證 SET 所在單位=”錦上計劃研究所”WHERE所在單位=”不詳”

      B)UPDATE 借書證 SET 所在單位=”不詳”WITH所在單位=”錦上計劃研究所”

      C)UPDATE 借書證 SET 所在單位=”不詳”WHERE所在單位=”錦上計劃研究所”

      D)UPDATE 借書證 SET 所在單位=”錦上計劃研究所”WITH所在單位=”不詳”

      二、填空題(毎空2分,共30 分)

      請將每一個空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。注意:以命令關鍵字天空的必須拼寫完整。

      (1)在長度為n的順序存儲的線性表中刪除一個元素,最壞情況下需要移動表中的元素個數為_【1】___。

      (2)設循環(huán)隊列的存儲空間為Q(1:30)。初始狀態(tài)為front=rear=30?,F經過一系列入隊與退隊運算后,front=16,rear=15,則循環(huán)隊列中有__【2】___個元素。

      (3)數據庫管理系統(tǒng)提供的數據語言中,負責數據的增、刪、改和查詢的是_【3】_____。

      (4)在將E-R圖轉換到關系模式時,實體和聯(lián)系都可以表示成_【4】______。(5)常見的軟件工程方法有結構化方法和面向對象方法,類、繼承以及多態(tài)性等概念屬于_【5】_____。

      (6)數據庫系統(tǒng)的數據完整性是指保證數據_【6】_____的特性。(7)表達式LEN(SPACE(3)-SPACE(2)的結果為_【7】_____。

      (8)自由表與數據庫表相比較,在自由表中不能建立_【8】_____索引。(9)在Visual FoxPro的查詢設計器中_【9】_____選項卡對應于SELECT短語。

      (10)刪除父表中的記錄時,若子表中的所有相關記錄能自動刪除,則相應的參照完整性的刪除規(guī)則為_【10】_____規(guī)則。

      (11)Visual FoxPro子類是通過繼承父類生成的,在子類中可以對父類繼承的方法和屬性進行_【11】_____。

      (12)在Visual FoxPro中為表單指定標題的屬性是_【12】_____。

      (13)SQL語言可以命令方式交互使用,也可以嵌入到_【13】_____中使用(14)在工資表中,按工資從高到低顯示職工記錄的SQL語句為:SELECT*FROM 工資表 ORDER BY 工資_【14】_____。

      (15)在Visual FoxPro中,刪除記錄的SQL命令是_【15】_____。

      第二篇:2005年4月全國計算機等級考試二級筆試試卷及答案

      無憂考網

      004km.cnmand1的D)

      棧只能順序存儲

      數據的邏輯結構在計算機中的表示

      (2)A)下列關于棧的描述中錯誤的是棧是先進后出的線性表

      B)對棧的插入與刪除操作中,不需要改變棧底指針

      C)棧具有記憶作用

      D)

      下,下列各排序法所對應的比較次數中正確的是

      (3)對于長度為n的線性表,在最壞情況

      冒泡排序為

      A)n 冒泡排序為n/2

      B)快速排序為

      C)n(n-1)/2 快速排序為n

      D)找,在最壞情況下所需要的比較次數為

      (4)對于長度為n的線性表進行順序查

      A)log2n

      B)n/2

      (5)下列對于線性鏈表的描述中正確的 C)n

      D)n+1 的存儲順序是任意的 A)存儲空間不一定是連續(xù),且各元素

      素一定存儲在后件元素的前面

      B)存儲空間不一定是連續(xù),且前件元

      定存儲在后件元素的前面

      C)存儲空間必須連續(xù),且前件元素一

      儲順序是任意的 D)存儲空間必須連續(xù),且各元素的存

      (6)下列對于軟件測試的描述中正確的 確

      A)軟件測試的目的是證明程序是否正 正確

      B)軟件測試的目的是使程序運行結果 程序中的錯誤

      C)軟件測試的目的是盡可能多地發(fā)現

      化原則

      D)軟件測試的目的是使程序符合結構

      塊間的耦合程度要盡量強

      (7)A)為了使模塊盡可能獨立,要求模塊的內聚程度要盡量高,且各模

      塊間的耦合程度要盡量弱

      B)模塊的內聚程度要盡量高,且各模

      塊間的耦合程度要盡量弱

      C)模塊的內聚程度要盡量低,且各模

      塊間的耦合程度要盡量強

      D)模塊的內聚程度要盡量低,且各模

      (8)下列描述中正確的是

      A)程序就是軟件

      B)C)軟件開發(fā)不受計算機系統(tǒng)的限制軟件既是邏輯實體,合D)軟件是程序、數據與相關文檔的集又是物理實體

      (9)數據獨立性是數據庫技術的重要特

      命令按鈕,然后編寫一個事件過程。程序運行以后,如果在文本框中輸入一個字符,則把命令按鈕的標題設置為“計算機等級考試”。以下能實現上述操作的事件過程是:

      試”

      A)Private Sub Text1_Change()

      Command1.Caption=”計算機等級考

      B)Private Sub Command1_Click()End Sub

      Caption=”計算機等級考試”

      End Sub

      C)Private Sub Form1_Click()

      Text1.Caption=”計算機等級考試”

      D)Private Sub Command1_Click()

      End Sub

      Text1.Text=End Sub ”計算機等級考試”

      值是

      3>2*b Or a=c And b<>c Or c>d(12)設a=5,b=4,c=3,d=2,下列表達式的 2

      A)1

      B)True

      C)False

      D)下使變量

      b(13)的值為”設a=”VisualBasicMicrosoftVisualBasic”的語句是” , 則以 C)b=Right(a,10)

      A)b=Left(a,10)

      D)b=Mid(a,11,10)

      B)b=Mid(a,10)

      (14)假定有如下的窗體事件過程:

      a$ = “Microsoft Visual Basic” Private Sub Form_Click()

      b$ = Right(a$, 5)

      c = Mid(a$, 1, 9)MsgBox a$, 34, b$, c$, 5 框中的標題欄中顯示的信息是:

      End Sub 程序運行后單擊窗體,則在彈出的信息

      C)Basic

      A)Microsoft Visual 執(zhí)行語句

      x=Iif((ad),(15)D)5

      B)Microsoft 設a=””Aa””,b=,””B”b”)后,,c=”xc的值為:”,d=”d” , A

      A)”a”

      B)”b”

      C)”B”

      D)” ”

      右移

      200,應使用的語句是(16)為了使命令按鈕(名稱為Command1)Command1.Move 200

      A)Command1.Move-200

      B)Command1.Left+200

      Command1.Left-200 C)D)Command1.Left= Command1.Left=

      (17)在窗體上畫一個文本框,然后編寫

      無憂考網

      004km.cnmand1的命令按鈕,然后編寫如下事件過程:

      Private Sub Command1_Click()

      c = “ABCD” D)123456

      計時器控件,名稱分別為

      (18)在窗體上畫一個文本框和一個Text1和Timer1,在屬性窗口中把計時器的Interval屬性設置為1000,Enabled命令按鈕,則每隔一秒鐘在文本框中顯示一次當屬性設置為False,程序運行后,如果單擊前的時間。以下是實現上述操作的程序:

      Private Sub Command1_Click()

      Timer1._________ End Sub

      Private Sub Timer1_Timer()

      Text1.Text = Time End Sub 在______處應填入的內容是C)Visible=True

      A)Enabled=True

      D)Visible=False B)Enabled=False

      個圖形,為了清除該圖形(不刪除圖片框)

      (19)假定在圖片框Picture1中裝入了一,應采用的正確方法是:

      執(zhí)行語句

      Picture1.Picture=LoadPicture(A)選擇圖片框,然后按Del“”鍵)B)選擇圖片框,在屬性窗口中選擇

      C)執(zhí)行語句Picture1.Picture=Picture”屬性,然”

      D)后按回車鍵

      一個名稱為

      (Label120)在窗體上畫一個的標簽,列表框中顯示若干個List1的列表框,項目,當單擊列表框中的某個項目時,在標簽中顯示被選中的項目的名稱,下列能正確實現上述操作的程序是

      Label1.Caption = List1.ListIndex

      A)Private Sub Label1.Name = List1.ListIndex

      B)Private

      End Sub

      List1_Click()

      Label1.Name = List1.Text

      C)Private Sub Sub End Sub

      List1_Click()

      Label1.Caption = List1.Text

      D)Private

      End Sub

      List1_Click()Sub List1_Click()

      End Sub

      稱為

      Command(21,然后編寫如下事件過程:)在窗體上畫一個命令按鈕,名

      Private Sub Command1_Click()

      Dim i As Integer, x As Integer

      For i = 1 To 6

      If i = 1 Then x = i If i <= 4 Then

      x = x + 1

      Else

      x = x + 2

      End If

      Next i Print x

      For n = 1 To 4

      Print _________

      體上顯示如下內容:

      Next End Sub

      程序運行后,單擊命令按鈕,要求在窗

      D CD

      BCD

      ABCD

      則在________處應填入的內容為 C)Mid(c,n,1)

      A)Left(c,n)

      B)Right(c,n)

      D)Mid(c,n,n)

      (23)

      Dim x As Integer, i As Integer 執(zhí)行以下程序段

      x=0

      For i = 20 To 1 Step-2 x = x + i 5

      Next I

      后,A)16x 的值為 B)17

      C)18

      D)19 啟動對象的程序是

      (24)在

      Visual Basic工程中,可以作為

      A)任何窗體或標準模塊

      B)任何窗體或過程

      C)Sub MainD)Sub Main過程或其他任何模塊過程或任何窗體

      命令按鈕數組,則以下說法中錯誤的是

      (25)假定建立了一個名為Command1 的 性)均為

      Command1

      A)數組中每個命令按鈕的名稱(名稱屬 屬性)都一樣

      B)

      數組中每個命令按鈕的標題(Caption 時間過程

      C)數組中所有命令按鈕可以使用同一個 組中的每個命令按鈕

      D)用名稱 Command1(下標)可以訪問數

      True,(26)把窗體的KeyPreview屬性設置為 Integer)

      然后編寫如下事件過程

      Private Sub Form_KeyPress(KeyAscii As :

      Dim ch As String

      ch = Chr(KeyAscii)

      體上顯示的內容是

      KeyAscii = Asc(UCase(ch))Print Chr(KeyAscii + 2)

      End Sub

      程序運行后 ,按鍵盤上的”A”鍵,則在窗

      A)A

      B)B

      C)C

      D)D 2

      文本框,名稱分別為(27)在窗體上畫一個命令按鈕和一個Command1和Text1,然后編寫如下程序:

      Private Sub Command1_Click()

      a = InputBox(“t = ”旅游景點:“ _ 請輸入日期(1~31)”)

      & IIf(a > 0 And a <= 10, “長城”, “")_

      & IIf(a > 10 And a <= 20, ”& IIf(a > 20 And a <= 30, “故宮頤和園”, “")_ ”, “")

      Text1.Text = t End Sub 文本框中顯示的內容是

      程序運行后: ,如果從鍵盤輸入16,則在 A)旅游景點:長城故宮

      B)C)旅游景點:長城頤和園D)旅游景點:頤和園旅游景點:故宮

      標簽,然后編寫如下事件過程

      (28)在窗體上畫一個名稱為:

      Label1的 Private Sub Form_Click()

      Dim arr(10, 10)As Integer

      Dim i As Integer, j As Integer

      For i = 2 To 4

      For j = 2 To 4

      arr(i, j)= i * j

      3))

      Next j

      Next i Label1.Caption = Str(arr(2, 2)+ arr(3, 的內容是

      End Sub 程序運行后,單擊窗體,在標簽中顯示

      A)12

      B)13

      C)14 D)15 Comamnd1

      (29)在窗體上命令按鈕的事件過程的命令按鈕畫一個名稱為: ,然后編寫如下通用過程和 Integer)

      Private Function fun(ByVal m As

      If m Mod 2 = 0 Then

      fun = 2

      Else

      fun = 1

      End If

      End Function

      Private Sub Command1_Click()

      Dim i As Integer, s As Integer

      s = 0

      For i = 1 To 5

      s = s + fun(i)

      Next Print s

      End Sub 顯示的是

      : 程序運行后,單擊命令按鈕,則窗體上

      A)6

      B)7

      C)8 D)9

      無憂考網

      004km.cnmand1

      Option Base 1

      Private Sub Command1_Click()

      Dim c As Integer, d As Integer

      d = 0

      c = 6

      x = Array(2, 4, 6, 8, 10, 12)

      For i = 1 To 6

      If x(i)> c Then

      d = d + x(i)

      c = x(i)

      Else

      d = d1

      Loop While n > 0 Print s

      End Sub 單擊窗體

      ,輸出結果為【以上程序的功能是【11】 10】,程序運行后,(10)設有如下程序:

      Option Base 1

      Private Sub Command1_Click()Dim arr1

      Dim Min As Integer, i As Integer 866, 43)

      arr1 = Array(12, 435, 76,-24, 78, 54,Min = 【12】

      For i = 2 To 8 If arr1(i)< Min Then 【13】

      Next i

      一個含有

      Print ”最小值是:“;Min

      End Sub 8以上程序的功能是用個元素的數組,然后查找并輸出該數組Array函數建立中的最小值,請?zhí)羁?/p>

      文本框,其名稱為(11)在名稱為Text1,在屬性窗口中把文本框的Form1的窗體上畫一個MultiLine程: 屬性設置為True,然后編寫如下事件過

      #1

      Private Sub Form_Click()Open ”d:testsmtext1.txt“ For Input As

      Do While Not Line Input #1, aspect$ 【14】

      無憂考網

      www.51test.net

      Chr(10)

      whole$ = whole$ + aspect$ + Chr(13)+

      #1

      Loop

      Text1.Text = whole$

      Close #1

      Open ”d:testsmtext2.txt" For Output As

      Print #1, Close #1 【15】

      smtext1.txt

      End Sub

      上述程序的功能是,把磁盤文件然后把該文本框中的內容存入磁盤文件的內容讀到內存并在文本框中顯示出來smtext2.txt.,請?zhí)羁?/p>

      以下答案僅供參考

      選擇題:

      1---5DBDCA 6---10 CBDDC

      11--15 ABBCD

      16--20 CDABD

      21--2526--30

      ABCDB

      31--35 CDBBA CDDDA

      填空題:

      【1】19

      【2】 對象

      【3】

      程序調試

      【4】 關系

      【5】 算法

      【6】12345.68

      【7】VB程序設計

      【【8】 VB Programming

      【910】】

      求1-8的和

      【 【11【12】36

      13】】 arr1(1)

      【【1415】min=arr1(i)】 text1.text(EOF(1)

      或whole$)

      第三篇:2009年3月全國計算機等級考試二級VFP筆試卷

      2009年3月全國計算機等級考試二級VFP筆試卷+答案

      (考試時間90分鐘,滿分100分)

      選擇題

      (1)下列敘述中正確的是

      A)棧是“先進先出”的線性表 B)隊列是“先進先出”的線性表

      C)循環(huán)隊列是非線性結構D)有序性表既可以采用順序存儲結構,也可以采用鏈式存儲結構

      (2)支持子程序調用的數據結構是

      A)棧B)樹C)隊列D)二叉樹

      (3)某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是

      A)10B)8C)6D)4

      (4)下列排序方法中,最壞情況下比較次數最少的是

      A)冒泡排序B)簡單選擇排序C)直接插入排序D)堆排序

      (5)軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是

      A)編譯軟件B)操作系統(tǒng)C)教務管理系統(tǒng)D)匯編程序

      (6)下面敘述中錯誤的是

      A)軟件測試的目的是發(fā)現錯誤并改正錯誤

      B)對被調試的程序進行“錯誤定位”是程序調試的必要步驟

      C)程序調試通常也稱為Debug D)軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性

      (7)耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是

      A)提高耦合性降低內聚性有利于提高模塊的獨立性

      B)降低耦合性提高內聚性有利于提高模塊的獨立性

      C)耦合性是指一個模塊內部各個元素間彼此結合的緊密程度

      D)內聚性是指模塊間互相連接的緊密程度

      (8)數據庫應用系統(tǒng)中的核心問題是

      A)數據庫設計B)數據庫系統(tǒng)設計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圖轉換為關系模式時,實體和聯(lián)系都可以表示為

      A)屬性B)鍵C)關系D)域

      (11)數據庫(DB)、數據庫系統(tǒng)(DBS)和數據庫管理系統(tǒng)(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, '成績優(yōu)秀')

      C)('20080101', 'c1', '90', '成績優(yōu)秀')D)('20080101', 'c1', '79', '成績優(yōu)秀')

      (15)在表單中為表格控件指定數據源的屬性是

      A)DataSourceB)DateFromC)RecordSourceD)RecordFrom

      (16)在Visual FoxPro中,下列關于SQL表定義語句(CREATE TABLE)的說法中錯誤的是

      A)可以定義一個新的基本表結構B)可以定義表中的主關鍵字

      C)可以定義表的域完整性、有效性規(guī)則等信息的設置

      D)對自由表,同樣可以實現其完整性、有效性規(guī)則等信息的設置

      (17)在Visual FoxPro中,若所建立索引的字段值不允許重復,并且一個表中只能創(chuàng)建一個,這種索引應該是

      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)執(zhí)行USE sc IN 0命令的結果是

      A)選擇0號工作區(qū)打開sc表 B)選擇空閑的最小號的工作區(qū)打開sc表

      C)選擇第1號工作區(qū)打開scD)顯示出錯信息

      (22)在Visual FoxPro中,關系數據庫管理系統(tǒng)所管理的關系是

      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 中,每一個工作區(qū)中最多能打開數據庫表的數量是

      A)1個B)2個C)任意個,根據內存資源而確定D)35535個

      (29)在Visual FoxPro 中,有關參照完整性的刪除規(guī)則正確的描述是

      A)如果刪除規(guī)則選擇的是“限制”,則當用戶刪除父表中的記錄時,系統(tǒng)將自動刪除子表中的所有相關記錄

      B)如果刪除規(guī)則選擇的是“級聯(lián)”,則當用戶刪除父表中的記錄時,系統(tǒng)將禁止刪除與子表相關的父表中的記錄

      C)如果刪除規(guī)則選擇的是“忽略”,則當用戶刪除父表中的記錄時,系統(tǒng)不負責檢查子表中是否有相關記錄D)上面三種說法都不對

      (30)在Visual FoxPro中,報表的數據源不包括

      A)視圖B)自由表C)查詢D)文本文件

      第(31)到第(35)題基于學生表S和學生選課表SC兩個數據庫表,它們的結構如下: S(學號,姓名,性別,年齡)其中學號、姓名和性別為 C型字段,年齡為N型字段。

      SC(學號,課程號,成績),其中學號和課程號為C型字段,成績?yōu)镹型字段(初始為空值)。

      (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)軟件測試可分為白盒測試和黑盒測試?;韭窂綔y試屬于【2】 測試。白盒

      (3)符合結構化原則的三種基本控制結構是:選擇結構、循環(huán)結構和【3】。順序結構

      (4)數據庫系統(tǒng)的核心是【4】數據庫管理系統(tǒng)

      (5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯(lián)系的是【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】三種專門的關系運算。聯(lián)接

      (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= ”管理系統(tǒng)“

      DO sub1

      ?X+Y

      RETURN

      *子程序:sub1

      LOCAL X

      X= ”應用“

      Y= ”系統(tǒng)"

      X= X+Y

      RETURN

      執(zhí)行命令DO TEST后,屏幕顯示的結果應是【13】。數據庫系統(tǒng)

      (14)使用SQL語言的SELECT語句進行分組查詢時,如果希望去掉不滿足條件的分組,應當在GROUP BY 中使用【14】子句。Having

      (15)設有SC(學號,課程號,成績)表,下面 SQL的SELECT語句檢索成績高于或等于平均成績的學生的學號。

      SELECT 學號 FROM sc;

      WHERE 成績>=(SELECT 【15】 FROM sc)avg(成績)

      第四篇:全國計算機等級考試二級

      全國計算機等級考試二級證書

      簡介 ***2432010年9月二級access

      證書樣本

      全國計算機等級考試和高考、全國英語四六級考試一樣,是國家教育部考試中心推出的三大權威考試,是在校大學生必須參加的考試和衡量計算機水平最權威、含金量和承認度最高的認證,并唯一得到國家和各用人單位的統(tǒng)一認可。

      創(chuàng)想獨有優(yōu)勢

      通過率高:在全國平均通過率不到10%的情況下,創(chuàng)想分中心10級助產班參考7人,雙科通過6人;10級護理5班參考21人,雙科通過17人;創(chuàng)想分中心歷屆一次性通過率全省第一。

      創(chuàng)想學員畢業(yè)受歡迎:

      06級陳燕燕同學畢業(yè)后考取濟寧汶上縣醫(yī)院事業(yè)編;

      08級馬玉寶同學,畢業(yè)后被濟南市第三人民醫(yī)院錄用;2010年9月份前二級access

      09級劉曉燕同學優(yōu)先被濟南市中心人民醫(yī)院選為實習生。證書全通通用,上網可查。查詢網址

      第五篇:《全國計算機等級考試二級教程C語言程序設計》

      《全國計算機等級考試二級教程——C語言程序設計》

      課后題及參考答案

      第一章 程序設計基本概念

      1.1 在TRUBO C環(huán)境中用RUN命令運行一個C程序時,所運行的程序的后綴是______。答案:.exe 1.2 C語言源程序文件的后綴是_____,經過編譯后,生成文件的后綴是_____,經過連接后,生成文件的后綴是_____。

      答案:.c.obj.exe 1.3 結構化程序由_____、_____、_____三種基本結構組成。答案:順序、選擇、循環(huán) 第二章 C程序設計的初步知識

      一、選擇題

      2.1 以下選項中正確的整型常量是

      A)12.B)-20

      C)1,000

      D)4 5 6

      答案:B 2.2 以下選項中正確的實型常量是

      A)0

      B)3.1415

      C)0.329×10(2)(10的2次方)

      D).871

      答案:D 2.3 以下選項中不正確的實型常量是

      A)2.607E-1

      B)0.8103e 2

      C)-77.77

      D)456e-2

      答案:B 2.4 以下選項中不合法的用戶標識符是

      A)abc.c

      B)file

      C)Main

      D)PRINTF

      答案:A 2.5 以下選項中不合法的用戶標識符是

      A)_123

      B)printf

      C)A$

      D)Dim

      答案:C 2.6 C語言中運算對象必需是整型的運算符是

      A)%

      B)/

      C)!

      D)**

      答案:A 2.7 可在C程序中用作用戶標識符的一組標識符是

      A)void

      define

      WORD

      B)as_b3

      _123

      If

      C)For

      -abc

      case

      D)2c

      DO

      SIG

      答案:B 2.8 若變量已正確定義并賦值,符合C語言語法的表達式是

      A)a=a+7;

      B)a=7+b+c,a++

      C)int(12.3%4)

      D)a=a+7=c+b

      答案:B 2.9 以下敘述中正確的是

      A)a是實型變量,C允許進行以下賦值a=10,因此可以這樣說:實型變量中允許存放整型值。

      B)在賦值表達式中,賦值號右邊既可以是變量也可以是任意表達式。

      C)執(zhí)行表達式a=b后,在內存中a和b存儲單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?。

      D)已有a=3,b=5。當執(zhí)行了表達式a=b,b=a之后,已使a中的值為5,b中的值為3。

      答案:B 2.10 以下敘述中正確的是

      A)在C程序中無論是整數還是實數,只要在允許的范圍內都能準確無誤的表示。

      B)C程序由主函數組成。

      C)C程序由函數組成。

      D)C程序由函數和過程組成。

      答案:C 2.11 TURBO C中int類型變量所占字節(jié)數是

      A)1

      B)2

      C)3

      D)4

      答案:B 2.12 不合法的八進制數是

      A)0

      B)028

      C)077

      D)01

      答案:B 2.13 不合法的十六進制數是

      A)oxff

      B)0Xabc

      C)0x11

      D)0x19

      答案:A

      二、填空題

      2.14 若k為int整型變量且賦值11。請寫出運算k++后表達式的值A)_____和變量的值B)_____。

      答案:

      11、12 2.15 若x為double型變量,請寫出運算x=3.2,++x后表達式的值A)_____和變量的值B)_____。

      答案:4.2、4.2 2.16 函數體由符號____開始,用符號____結束。函數體的前面是____部分,其后是____部分。

      答案:{、}、定義、執(zhí)行

      2.17 C語言中的標識符可分為____、____、和預定義標識符三類。

      答案:關鍵字、用戶標識符

      2.18 在C語言程序中,用關鍵字____定義基本整型量,用關鍵字____定義單精度實型變量,用關鍵字___定義雙精度實型變量。

      答案:int、float、double 2.19 把a1、a2定義成單精度實型變量,并賦初值1的定義語句是____。

      答案:float a1=1.0,a2=1.0;

      2.20 C程序中定義的變量,代表內存中的一個____。

      答案:存儲單元

      2.21 表達式3.5+1/2的計算結果是____。

      答案:3.5 2.22 對以下數學式,寫出三個等價的C語言表達式____、____、____。

      a×b

      ——

      c

      答案:a*b/c、a/c*b、b/c*a 2.23 表達式s=10應當讀做“____”。

      答案:將10賦給變量s 2.24 計算機中內存儲器的最小存儲單位稱____,其中能容納的數是____。

      答案:位、0或1 2.25 通常一個字節(jié)包含____個二進制位。在一個字節(jié)中能存放的最大(十進制)整數是____,它的二進制數的形式是____;最小(十進制)整數是____,它的二進制數的形式是____。

      答案:8、255、1111 1111、-128、1000 0000 2.26 當計算機用兩個字節(jié)存放一個整數時,其中能存放的最大(十進制)整數是____、最?。ㄊM制)整數是____,它的二進制數的形式是____。

      答案:65535、-32768、1000 0000 0000 0000 2.27 在C語言中整數可用____進制數、____進制數和____進制數三種數制表示。

      答案:十、八、十六

      三、上機改錯題

      2.24 【分析與解答】

       第1行的錯誤:

      (1)include是一個程序行,因此在此行的最后不應當有分號(;)。

      (2)include程序行中后面的stdio.h是一個文件名,按規(guī)定,文件名應當放在一對雙引號(″ ″)內,或放在一對尖括號(< >)內。 第2行的錯誤:

      (1)main()是主函數的起始行,不是語句,因此最后不應當有分號(;)。

      (2)在同一行上的/ * main function * / 顯然是注釋;C語言規(guī)定:注釋由/*開頭,由*/結束,但在*號和/之間不得插入任何空格,而在此處“/

      *”和“/

      *”之間存在空格,因此,/ * main function * /的寫法式是錯誤的,而應寫成:/* main function */。

      第3行的錯誤:

      (1)在主函數的起始行main()的后面是函數體,函數體由左花括號({)開始。但在函數體的第一行:float的前面缺少了左花括號({)。

      (2)在同一行上的/* /*r is radius*/, /* s is area of circular*/ */ 顯然是注釋;C語言規(guī)定:注釋由/*開頭,由*/結束,并且開頭的/*將去找最近的*/去配對,因此在/* /*r is radius*/中,第一個/*與最后的那個*/配上了對,結果緊跟在后面的那個逗號(,)落在了注釋的外面,而構成了一個多余符號,為此,在編譯時將報告“語法錯”。

      第6行的錯誤:

      (1)printf(″%f \[KG-*3]n″,s)應當是一條輸出語句,但在最后缺少了一個分號。

      (2)printf(″%f \[KG-*3]n″,s);是程序的最后一條語句,程序應當結束;但缺少了程序體結束所需的右花括號(});此右花括號可以放在printf(″%f \[KG-*3]n″,s);的后面,也可以放在printf(″%f \[KG-*3]n″,s);的下一行上。

      2.25 【分析與解答】

      第1行的錯誤:在include行中的文件名應該是stdio.h,而不是stdio.a。 第2行的錯誤:在main的后面缺少一對圓括號。 第4行的錯誤:在c=40的后面缺少分號。

      第6行的錯誤:在printf(″%f \〖KG-*3〗n″,v)的后面缺少分號。

      第三章、順序結構

      一、選擇題

      3.1 若a、b、c、d都是int類型變量且初值為0,以下選項中不正確的賦值語句是

      A)a=b=c=100;

      B)d++;

      C)c+b;

      D)d=(c=22)-(b++);

      答案:C 3.2 以下選項中不是C語句的是

      A){int i;i++;printf(“%d”, i);}

      B);

      C)a=5,c=10

      D){;}

      答案:C 3.3 以下合法的C語言賦值語句是

      A)A=B=58

      B)k=int(a+b);

      C)a=58,b=58

      D)--i;

      答案:D 3.4 以下程序的輸出結果是

      A)0

      B)1

      C)3

      D)不確定的值

      main()

      {

      int x=10,y=3;

      printf(“%d”, y=x/y);

      }

      答案:C 3.5 若變量已正確說明為int類型,要給a、b、c輸入數據,以下不正確的輸入語句是

      A)read(a,b,c);

      B)scanf(“%d%d%d”,a,b,c);

      C)scanf(“%D%D%D”,&a,&b,&c);

      D)scanf(“%d%d%d”,&a,&b,&c);

      答案:D 3.6 若變量已正確說明為float類型,要通過以下賦值語句給a賦予

      10、b賦予

      22、c賦予33,以下不正確的輸入形式是

      A)10 22 33

      B)10.0,22.0,33.0

      C)10.0 22.0 33.0

      D)10 22 33

      scanf(“%f %f %f”, &a, &b, &c);

      答案:B 3.7 若變量以正確定義,要將a和b中的數進行交換,下面不正確的語句組是

      A)a=a+b,b=a-b,a=a-b;

      B)t=a,a=b,b=t;

      C)a=t;t=b;b=a;

      D)t=b;b=a;a=t;

      答案:C 3.8 若變量已正確定義,以下程序段的輸出結果是

      A)輸出格式說明與輸出項不匹配,輸出無定值

      B)5.17000

      C)5.168000

      D)5.169000

      x=5.16894;

      printf(“%f”,(int)(x*1000+0.5)/(float)1000);

      答案:D 3.9 若有以下程序段,c3中的值是

      A)0

      B)1/2

      C)0.5

      D)1

      int c1=1,c2=2,c3;

      c3=c1/c2;

      答案:A 3.10 若有以下程序段,其輸出結果是

      A)0,0,-10

      B)0,0,5

      C)-10,3,-10

      D)3,3,-10

      int a=0,b=0,c=0;

      c=(a-=a-5),(a=b,b+3);

      printf(“%d,%d,%d”,a,b,c);

      答案:B 3.11 當運行以下程序時,在鍵盤上從第一列開始輸入9876543210(此處代表Enter),則程序的輸出結果是

      A)a=98,b=765,c=4321

      B)a=10,b=432,c=8765

      C)a=98,b=765.000000,c=4321.000000

      D)a=98,b=765,c=4321.0

      main(){

      int a;float b,c;

      scanf(“%2d%3f%4f”,&a,&b,&c);

      printf(“a=%d,b=%f,c=%f”,a,b,c);}

      答案:C 3.12 以下程序的輸出結果是

      A)a=%2,b=%5

      B)a=2,b=5

      C)a=%%d,b=%%d

      D)a=%d,b=%d

      main(){ int a=2,b=5;

      printf(“a=%%d,b=%%d”,a,b);}

      答案:D 3.13 若int類型占兩個字節(jié),則以下程序段的輸出是

      A)-1,-1

      B)-1,32767

      C)-1,32768

      D)-1,65535

      int a=-1;

      printf(“%d,%u”,a,a);

      答案:D 3.14 以下程序段的輸出是

      A)*496 *

      B)* 496*

      C)*000496* D)輸出格式符不合法

      int x=496;

      printf(“*%-06d*”,x);

      答案:A 3.15 以下程序段的輸出是

      A)|3.1415|

      B)| 3.0|

      C)|

      3|

      D)|

      3.|

      float a=3.1415;

      printf(“|%6.0f|”,a);

      答案:C 3.16 以下程序段的輸出是

      A)|2345.67800|

      B)|12345.6780|

      C)|12345.67800|

      D)|12345.678|

      printf(“|%10.5f|”,12345.678);

      答案:C 3.17 以下程序段的輸出是

      A)*0000057.66*

      B)*

      57.66*

      C)*0000057.67*

      D)*

      57.67*

      float a=57.666;

      printf(“*%010.2f*”,a);

      答案:C 3.18 若從終端輸入以下數據,要給變量C賦以283.19,則正確的輸入語句是

      A)scanf(“%f”,c);

      B)scanf(“%8.4f”,&c);

      C)scanf(“%6.2f”,&c);

      D)scanf(“%8”,&c);

      283.1900 表示Enter鍵

      答案:由于印刷錯誤,本題沒有正確答案。改正意見:

      把選項A改為:scanf(“%f”,&c);或者把選項D改為:scanf(“%8f”,&c);則可分別選擇A或者D為正確答案。

      3.19 若變量已正確說明,要求用以下語句給a賦予3.12、給b賦予9.0,則正確的輸入形式是(□代表空格)

      A)3.12□□9.0

      B)a=□□3.12b=□□□9

      C)a=3.12,b=9

      D)a=3.12□□,b=9□□□□

      scanf(“a=%f,b=%f”,&a,&b);表示Enter鍵

      答案:C 3.20 以下程序的輸出結果是

      A)9 8

      B)8 9

      C)6 6

      D)以上三個都不對

      #include “math.h” main(){ double a=-3.0, b=2;

      printf(“%3.0f %3.0f”,pow(b,fabs(a)),pow(fabs(a),b));}

      答案:B

      二、填空題

      3.21 若有以下定義,請寫出以下程序段中輸出語句執(zhí)行后的輸出結果。(1)____(2)____(3)____

      int i=-200,j=2500;

      printf(“(1)%d %d”,i,j);

      printf(“(2)i=%d, j=%d”,i,j);

      printf(“(3)i=%d j=%d”,i,j);

      答案:

      -200 2500

      i=-200, j=2500

      i=-200 j=2500 3.22 變量i、j、k已定義為int類型并有初值0,用以下語句進行輸入時

      scanf(“%d”,&i);scanf(“%d”,&j);scanf(“%d”,&k);當執(zhí)行第一個輸入語句,從鍵盤輸入:

      12.3 表示Enter鍵

      則變量i、j、k的值分別是____、____、____。

      答案:12、0、0 3.23 復合語句在語法上被認為是____??照Z句的形式是____。

      答案:一條語句、; 3.24 C語句的最后用____結束。

      答案:;

      3.25 以下程序段,要求通過scanf語句給變量賦值,然后輸出變量的值。寫出運行時給k輸入100,給a輸入25.81,給x輸入1.89234時的三種可能的輸入形式____、_____、____。

      int k;float a;double x;

      scanf(“%d%f%lf”,&k,&a,&x);

      printf(“k=%d,a=%f,x=%f”,k,a,x);

      答案:

      (1)100 25.81 1.89234

      (2)100 25.811.89234

      (3)100 25.81 1.89234 3.26 以下程序段的輸出結果是____。

      int x=0177;

      printf(“x=%3d,x=%6d,x=$%6o,x=%6x,x=%6u”,x,x,x,x,x);

      答案:x=127,x= 127,x= 177,x=

      7f,x= 127 3.27 以下程序段的輸出結果是____。

      int x=0177;

      printf(“x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d”,x,x,x,x,x);

      答案:

      27、x=127,x=127,x=$127,x=$000127,x=%06d 3.28 以下程序段的輸出結果是____。

      double a=513.789215;

      printf(“a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf”,a,a,a,a);答案:a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500

      三、編程題和改錯題

      3.16 【分析與解答】

      (1)主函數名main后應有一對圓括號。(2)變量定義語句中,v的前面缺逗號。

      (3)第三行的printf語句用以提示輸入,但是原樣輸出的字符串沒有用雙引號括起來;另外,從輸入的形式看,輸入的數據緊跟在提示之后,因此,printf格式串中最后不應該有換行符——\n。

      (4)因為輸入項a、b、c從定義和計算結果來看都是double類型,因此,第四行scanf語句格式串中的格式說明不應當用%d而應當用%lf;且每一個變量之前應該加地址運算符&。

      (5)第七行的printf語句中應當把%d都改成%lf或%f;按輸出要求在格式串中應添加相應的原樣輸出的字符;因為下一個printf的輸出從新的一行開始,因此在本輸出語句的格式串的最后應當加換行符——\n。

      (6)第八行的printf語句中應當把格式串整理合并放在輸出項的前面,輸出項放在后面,%d都改成%lf或%f;中間的\n刪去。

      (7)請讀者自己寫出修改后的程序,并上機調試。

      3.17【分析與解答】

      (1)分析:可用算術式560÷60把分鐘換算成小時和分鐘,商數就是小時數,余數就是分鐘數。

      (2)確定變量的名字和定義變量的類型:在程序中把小時數放在變量h中,把分鐘數放在變量m中。這兩個變量的類型可以是整型(本題中采用整型),也可以是實型。

      (3)確定所用算法:求〖SX()560〖〗60〖SX〗〗的商數,在C語言中可以用整除的算法,語句是h=560/60。求余數可用求余運算符 %:560%60,其值放入變量m中的語句是:m=560%60。(4)設計輸出格式。若輸出的形式定為:小時:分鐘,則按此形式設計輸出語句。(5)把以上內容放在主函數的一對花括號中。(6)編寫程序如下:

      main() {

      int h, m;

      h=560/60;

      m=560%60;

      printf(″The result: %3d : %3d\n″, h,m);

       } 

      運行結果是:

      The result:

      : 20

      3.18 【分析與解答】

      (1)確定變量的名字和定義變量的類型。若用a存放1500,用b存放350;用q存放商數,用r存放余數,所有變量應定義成int類型。

      (2)設計輸入語句從終端輸入1500和350;在輸入語句之前,應當設計一個輸出語句,用以提示輸入。(3)可用整除求商數,結果放在變量q中。可用求余運算符%求兩數之余數,結果放在變量r中。(4)設計輸出語句。輸出a、b、q、r。

      (5)把以上內容放在主函數的一對花括號中。

      本題的程序與3.30相似,請讀者參考上題并根據本題的解釋自己編程,并上機調試。

      3.19 【分析與解答】

      (1)定義4個雙精度變量a、b、c和ave,變量a、b、c分別存放讀入的3個雙精度數,ave存放它們的平均值。

      (2)設計輸入語句,以及在此之前用于提示輸入的(printf)語句。(3)設計求平均值的算法,把所求得的平均值放入變量ave中。

      (4)設計把變量ave中的數,從小數點后第二位數進行四舍五入的算法?,F舉例說明:若ave中的數為123.4644,為了保留此值小數點后一位,可用表達式:(int)(123.4644*10)/10.0;依次推算,為了保留此值小數點后二位,可用表達式:(int)(123.4644*100)/100.0;其他依此類推。

      (5)若要求對小數點后第二位數進行四舍五入,則可對原數加0.05后再進行以上運算。如要求保留123.4644小數點后一位且對第二位數進行四舍五入,可用表達式:(int)((123.467+0.05)*10)/10.0。注意:分母一定要用實數10.0而不能用整數10,否則就變成整除了;若要求保留123.4644小數點后兩位且對第三位數進行四舍五入,可用表達式:(int)((123.467+0.005)*100)/100.0;其他依此類推。(6)設計輸出語句。輸出a、b、c和ave。(7)把以上內容放在主函數的一對花括號中。(8)編寫程序如下: main()

      {

      double a,b,c,ave; printf(″Enter a ,b ,c : ″);

      scanf(″%lf%lf%lf″, &a, &b, &c); ave=(a+b+c)/3; printf(″ave=%f\n″, ave);

      /*用以比較四舍五入前后的數據*/ ave=(int)((ave+0.05)*10)/10.0;

      printf(″a=%f, b=%f, c=%f, ave=%f\n″, a,b,c,ave);

       } 

      3.20 【分析與解答】

      (1)關于對變量中的數進行交換的算法請參考3.7題中的解釋和《教程》中有關的例題。

      (2)定義4個整型變量a、b、c和t,變量a、b、c分別存放讀入的3個整數,t用作臨時存儲單元。(3)設計輸入語句,以及在此之前用于提示輸入的(printf)語句。(4)輸出a、b、c中的值,以便于比較。(5)交換的步驟如下: ① 把c中的值賦給t。 ② 把b中的值賦給c。 ③ 把a中的值賦給b。 ④ 把t中的值賦給a。

      經過以上步驟,已按要求進行了交換。(6)輸出a、b、c中的值。(7)編寫程序如下: main()

      {

      int a, b, c, t;

      printf(″Enter a, b, c :\n″); scanf(″%d%d%d″,&a,&b,&c);

      printf(″(1)a=%d,b=%d,c=%d\n″,a,b ,c); t=c;c=b;b=a;a=t;

      printf(″(2)a=%d,b=%d,c=%d\n″,a,b,c);

       } 

      第四章、選擇結構

      一、選擇題

      4.1 下列運算符中優(yōu)先級最高的運算符是

      A)!

      B)%

      C)-=

      D)&&

      答案:A 4.2 下列運算符中優(yōu)先級最低的運算符是

      A)||

      B)!=

      C)<=

      D)+

      答案:A 4.3 為表示關系x≥y≥z,應使用的C語言表達式是

      A)(x>=y)&&(y>=z)

      B)(x>=y)AND(y>=z)

      C)(x>=y>=z)

      D)(x>=y)&(y>=z)

      答案:A 4.4 設a、b和c都是int型變量,且a=3,b=4,c=5;則以下的表達式中,值為0的表達式是

      A)a&&b

      B)a<=b

      C)a||b+c&&b-c

      |1)

      答案:D 4.5 以下程序的輸出結果是

      A)0

      B)1

      C)2

      D)3

      main()

      { int a=2,b=-1,c=2;

      if(a

      if(b<0)c=0;

      else c+=1;

      printf(“%d”,c);

      }

      D)!((a

      答案:C 4.6 以下程序的輸出結果是

      A)1

      B)2

      C)3

      D)4

      main(){ int w=4,x=3,y=2,z=1;

      printf(“%d”,(w

      答案:A 4.7 若執(zhí)行以下程序時從鍵盤上輸入3和4,則輸出結果是

      A)14

      B)16

      C)18

      D)20

      main(){ int a,b,s;

      scanf(“%d%d”,&a,&b);

      s=a;

      if(a

      s*=s;

      printf(“%d”,s);}

      答案:B 4.8 下面的程序片段所表示的數學函數關系是

      -1(x<0)A)y= 0(x=0)

      1(x>0)

      1(x<0)B)y=-1(x=0)

      0(x>0)

      0(x<0)C)y=-1(x=0)

      1(x>0)

      -1(x<0)D)y= 1(x=0)

      0(x>0)

      y=-1;if(x!=0)y=1;

      if(x>0)y=1;else y=0;答案:A 4.9 運行以下程序后,輸出

      A)****

      B)&&&&

      C)####&&&&

      D)有語法錯誤不能通過編譯

      main(){ int k=-3;

      if(k<=0)printf(“****”)

      else printf(“&&&&”);}

      答案:D 4.10 若a和b均是正整型變量,以下正確的switch語句是 A)switch(pow(a,2)+pow(b,2))

      { case 1: case 3: y=a+b;break;

      case 0: case 5: y=a-b;

      } B)switch(a*a+b*b);

      { case 3:

      case 1: y=a+b;break;

      case 0: y=b-a;break;

      } C)switch a

      { default: x=a+b;

      case 10: y=a-b;break;

      case 11: x=a*d;break;

      } D)switch(a+b)

      { case10 : x=a+b;break;

      case11 : y=a-b;break;

      }

      答案:沒有正確答案。如果C選項改為: switch(a){ default: x=a+b;

      case 10: y=a-b;break;

      case 11: x=a*b;break;} 則答案可以選擇C

      二、填空題

      4.11 C語言中用____表示邏輯值“真”,用____表示邏輯值“假”。

      答案:非0、0 4.12 C語言中的關系運算符按優(yōu)先級別是____、____、____、____。

      答案:>、<、>=、<=、==、!= 4.13 C語言中的邏輯運算符按優(yōu)先級別是____、____、____。

      答案:!、&&、|| 4.14 C語言中的關系運算符和邏輯運算符的優(yōu)先級別是____、____、____、____、____、____、____。

      答案:!、<、>、==、!=、&&、|| 4.15 C語言中邏輯運算符____的優(yōu)先級高于算術運算符。

      答案:!

      4.16 將下列數學式改寫成C語言的關系表達式或邏輯表達式A)____B)____。

      A)a=b或a

      B)|x|>4

      答案:A)a==b||a4||x<-4 4.17 請寫出以下程序的 輸出結果____。

      main(){ int a=100;

      if(a>100)printf(“%d”,a>100);

      else

      printf(“%d”,a<=100);}

      答案:1 4.18 請寫出與以下表達式等價的表達式A)____B)____。A)!(x>0)

      B)!0

      答案:A)x<=0 B)1 4.19 當a=1,b=2,c=3時,以下if語句執(zhí)行后,a、b、c中的值分別為____、____、____。

      if(a>c)

      b=a;a=c;c=b;

      答案:3、2、2 4.20 若變量已正確定義,以下語句段的輸出結果是____。

      x=0;y=2;z=3;

      switch(x)

      { case 0: switch(y==2)

      { case 1: printf(“*”);break;

      case 2: printf(“%”);break;

      }

      case 1: switch(z)

      { case

      1: printf(“$”);

      case

      2: printf(“*”);break;

      default : printf(“#”);

      }

      } 答案:*#

      三、編程題

      4.21 【分析與解答】

      相關內容請參考《教程》4.2節(jié)和4.4節(jié)。(1)改寫如下: switch(a/10)

      { default : m=5;break;

      case 0 : case 1 : case 2 : m=1;break; case 3 : m=2;break; case 4 : m=3;break; case 5 : m=4;break; };

      (2)本題中對a的判斷條件有一定的規(guī)律可尋;關鍵是,在switch語句后的表達式中利用了a/10,從而簡化了case標號。

      4.22 【分析與解答】

      編寫本題的程序,首先要解決如何計算學生當前的年齡(設存放實足年齡的變量是age)。(1)如果當前的月份大于生日的月份,則學生的實足年齡age=y1-y0。

      (2)如果當前的月份等于生日的月份,就要看日數,當前的日數大于或等于生日的日數,則學生的實足年齡age=y1-y0。

      (3)如果不滿足以上的條件,就可斷定當前的日期沒有超過生日日期,就是說學生的年齡應當是age=y1-y0-1。 以上3條,用C語言可以描述如下:

      if((m1>m0)[JB>1|][JB>1|](m1==m0&&d1>=d0))age=y1-y0;

      else age=y1-y0-1;

      讀者可以參考以上語句寫出程序,也可以根據分析寫出與此形式不同的語句和程序。 4.23【分析與解答】

      (1)若輸入的整數a是奇數,輸出 dd number,是偶數輸出:even number。

      (2)若一個a是偶數,它就能被2除盡,即a%2==0,輸出even number;若是奇數,它就不能被2除盡,即a%2!〖KG-*2〗=0,輸出odd number。

      讀者可以參考以上給出的算法,寫出相應的C語句,并編寫出完整的程序。 4.24 【分析與解答】

      本題的主要算法是從3個數中找出最大的那個數。假定始終把最大的數放在變量max中。(1)假定a中的數最大,把a賦給max。

      (2)用b去和max比較,若b大于max,則把b賦給max;若不大于max,則什么也不做。(3)用c去和max比較,若c大于max,則把c賦給max;若不大于max,則什么也不做。(4)經過以上操作,max中已放入了a、b、c三個數中的最大數,輸出max即可。 讀者可以參考以上給出的算法,寫出相應的C語句,并編寫出完整的程序。 4.25 【分析與解答】

      (1)本題已給出了非常明確的條件,只要寫出正確的條件判斷語句就可基本完成程序的編寫。

      (2)由給出的函數可知,只有x的值在規(guī)定的范圍內時,才求出y的值,因此程序應當對輸入的x進行判斷,若超過范圍就不求y的值。

      (3)現以使用if[CD#*2]else語句為例寫出程序供參考。

      main() {

      int x,y;printf(″Enter x : ″);scanf(″%d″, &x); if(x>-5&&x<10)

      {

      if(x==0)y=x-1;

      else if(x<10 && x>0)y=x+1; else if(x<0 && x>-5)y=x;

      printf(″x=%d y=%d\n″, x,y);

       }

      printf(″***END***\n\n″);

       } 

      第五章、循環(huán)結構

      一、選擇題

      5.1 以下程序段的輸出結果是

      A)9

      B)1

      C)11

      int k,j,s;

      for(k=2;k<6;k++,k++)

      { s=1;

      for(j=k;j<6;j++)s+=j;

      }

      printf(“%d”, s);

      答案:D 5.2 以下程序段的輸出結果是

      A)12

      B)15

      C)20

      int i,j,m=0;

      for(i=1;i<=15;i+=4)

      for(j=3;j<=19;j+=4)m++;

      printf(“%d”, m);

      答案:C 5.3 以下程序段的輸出結果是

      A)10

      B)9

      C)10

      D)9

      D)10 D)25

      int n=10;

      while(n>7)

      { n--;

      printf(“%d”, n);

      }

      答案:B 5.4 以下程序段的輸出結果是

      A)1

      B)3 0

      C)1-2

      int x=3;

      do

      { printf(“%3d”,x-=2);}

      while(!(--x));

      答案:C 5.5 以下程序段的輸出結果是

      A)15

      B)14

      C)不確定

      main()

      { int i,sum;

      for(i=1;i<6;i++)sum+=sum;

      printf(“%d”,sum);

      }

      答案:C 5.6 以下程序段的輸出結果是

      A)741

      B)852

      C)963

      main()

      { int y=10;

      for(;y>0;y--)

      if(y%3==0)

      { printf(“%d”,--y);continue;

      }

      答案:B 5.7 若x是int型變量,以下程序段的輸出結果是

      A)**3

      ##4

      **5

      B)##3

      **4

      ##5

      C)##3

      **4##5

      D)**3##4

      **5

      for(x=3;x<6;x++)

      printf((x%2)?(“**%d”):(##%d“),x);

      D)死循環(huán)

      D)0 D)875421 }

      答案:D 5.8 以下程序的輸出結果是

      A)*#*#*#$

      B)#*#*#*$

      C)*#*#$

      D)#*#*$

      main(){ int i;

      for(i=1;i<=5;i++)

      { if(i%2)printf(”*“);

      else

      contionue;

      printf(”#“);

      }

      printf(”$“);}

      答案:A 5.9 以下敘述正確的是

      A)do_while語句構成的循環(huán)不能用其它語句構成的循環(huán)來代替。

      B)do_while語句構成的循環(huán)只能用break語句退出。

      C)用do_while語句構成循環(huán)時,只有在while后的表達式為非零時結束循環(huán)。

      D)用do_while語句構成循環(huán)時,只有在while后的表達式為零時結束循環(huán)。

      答案:D 5.10 以下程序的輸出結果是

      A)39 81

      B)42 84

      C)26 68

      D)28 70

      main(){ int x,i;

      for(i=1;i<=100;i++)

      { x=i;

      if(++x%2==0)

      if(++x%3==0)

      if(++x%7==0)

      printf(”%d “, x);

      }

      printf(”“);}

      答案:D

      二、填空題

      5.11 當執(zhí)行以下程序段后,i的值是____、j的值是____、k的值是____。

      int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for(;a>b;++b)i++;while(a>++c)j++;do k++;while(a>d++);

      答案:5、4、6 5.12 以下程序段的輸出結果是____。

      int k,n,m;n=10;m=1;k=1;while(k<=n)m*=2;printf(”%d“,m);

      答案:死循環(huán)

      5.13 以下程序的輸出結果是____。

      main(){ int x=2;

      while(x--);

      printf(”%d“,x);}

      答案:-1 5.14 以下程序段的輸出結果是____。

      int i=0,sum=1;

      do { sum+=i++;}while(i<5);

      printf(”%d“,sum);

      答案:11 5.15 有以下程序段:

      s=1.0;

      for(k=1;k<=n;k++)s=s+1.0/(k*(k+1));

      printf(”%f“,s);請?zhí)羁?,使下面的程序段的功能完全與之等同。

      s=0.0;

      ____;

      k=0;

      do

      { s=s+d;

      ____;

      d=1.0/(k*(k+1));

      }

      while(____);

      printf(”%f“,s);

      答案:d=1.0、k++、k<=n 5.16 以下程序的功能是:從鍵盤上輸入若干個學生的成績,統(tǒng)計并輸出最高成績和最低成績,當輸入負數時結束輸入。請?zhí)羁铡?/p>

      main()

      { float x,amax,amin;

      scanf(”%f“,&x);

      amax=x;amin=x;

      while(____)

      { if(x>amax)

      amax=x;

      if(____)

      amin=x;

      scanf(”%f“,&x);

      }

      printf(”amax=%famin=%f“,amax,amin);

      }

      答案:x>=0、x

      三、編程題

      5.17【分析與解答】

      (1)本題的基本算法是求累加值。累加項的值有規(guī)律的遞增,每一項的絕對值比前一項增2,因此可以利用循環(huán)的控制變量的遞增來得到累加項的絕對值。例如:

      for(i=1;i<=101;i+=2)?

      (2)按所給的算式可以看到,累加項的符號是在交叉改變的,為此應當在循環(huán)體內設

      置一個變量,使它的符號按此規(guī)律交叉改變,這可用:s=-s;來實現,s的初值為1;當s的值為1時,賦值后s中新的值為-1,當s的值為-1時,賦值后s中新的值為1。用s去乘累加項,將使累加項的符號也隨之有規(guī)律地改變。(3)若累加和放在變量sum中,累加項放在變量t中,按照以上敘述,for循環(huán)體內的語句可以設計如下:

      s=-s;t=s*i;sum=sum+t;(4)sum的值是51。

      (5)請讀者自己對變量做出正確的定義并賦初值,設計輸出語句,完善程序。

      5.18 【分析與解答】

      (1)本題的基本算法是求累加值。累加項的分子部分都是1;分母的值有規(guī)律的遞增,依次為1!、2!、?、n!,即,若第i-1項的累加項為

      t(i-1),則第i項的累加項是 t(i-1)*i,在程序中可用表達式:t=t/i(i從1變化到n)來表示。(2)根據以上分析,若用變量t來存放累加項,當i的值從1變化到n時,可用以下語句來實現累加:

      t=t/i;e+=t;

      (3)為了實現累加過程,以上語句應當放在循環(huán)內,循環(huán)控制變量從1變化到n。

      (4)若用for循環(huán),按題目要求已指定n的值是50。若用while循環(huán),并沒有指定n的值,但已指定了循環(huán)結束的條件,當t的值小于10-4結束循環(huán)。(5)現例示用while循環(huán)來求e值的部分程序: i=1;e=1.0;t=1.0; while(t>=1e-4) {

      t=t/i; e+=t; i++; } 

      (6)請讀者自己對變量做出正確的定義,設計輸出語句,完善程序;也可以參考此程序段,按照自己的思路獨立地完成程序。(7)e的值應當是:2.71828。

      (8)根據以上分析,讀者已不難用for循環(huán)來實現求e值的計算。

      (9)注意:在完成此程序時,不要對分母中的階乘值進行單獨計算,因為17!的值已超過long類型的最大值,更無法求到50!。

      5.19【分析與解答】

      (1)從1880年至2000年的年數可用一個for循環(huán)來取得。

      (2)對每一年,用以上指定的條件來進行判斷,若滿足條件即為閏年,進行輸出。

      (3)按輸出的要求,需要設一個變量用于統(tǒng)計一行中輸出的個數,若在一行上已連續(xù)輸出了5個年數,就需輸出一個換行符,使下一個輸出項在新的一行上開始;若用變量n來做此統(tǒng)計,則當表達式n%5==0時就應輸出一個換行符,同時使n重新置0值。

      (4)若變量y代表年數,if語句的邏輯表達式可以寫成如下:

      (y%4==0 && y%100!=0[JB>1|][JB>1|]y%400==0)(5)以下程序段供參考:

      for(y=1880;y<=2000;y++)

      if(y%4==0 && y%100![KG-*2]=0[JB>1|][JB>1|]y%400==0) {

      printf(″%d ″,y); n++;

      if(n%5==0)

      { printf(″\n″);n=0;} }

      (6)請讀者自己對變量做出正確的定義并賦初值,完善程序;也可以參考此程序段,按照自己的思路獨立地完成程序。從1880年至2000年有30個閏年。

      5.20 【分析與解答】

      (1)不難理解利用以下的for循環(huán)可以在一行上連續(xù)輸出n個*號:

      for(i=1;i<=n;i++)printf(″*″);

      printf(″\n″);

      若n的值是6,則連續(xù)輸出6個*號。

      (2)以上圖形是在各行上輸出數目不等的*號,只是*號的數目依次有規(guī)律地變化。在上半部分各行依次是1、3、5、7個,因此可以用以下的程序段來實現這樣的輸出:

      for(k=1;k<=7;k++,k++)

      {

      for(i=1;i<=k;i++)printf(″*″); printf(″\n″);

       } 

      在下半部依次是5、3、1個;因此可以用以下的程序段來實現這樣的輸出:

      for(k=5;k>=1;k--,k--)

      {

      for(i=1;i<=k;i++)printf(″*″); printf(″\n″);

       } 

      以上程序段從第一列起輸出的結果如下: * *** ***** ******* ***** *** * 

      現在我們已完成了在每行輸出指定數目的*號。

      (3)輸出結果與題目要求不同,它們的區(qū)別是:按題目每一行之前有不同的空格,而這里則是所有的行都在第一列上開始輸出*號;所以接著就應當解決這一問題。(4)分析題目要求,每行第一個*號位置的縮進是有規(guī)律的,假定中間這一行第一個*號位置是在第一列,則可看出,第一至第三行的縮進分別是3、2、1個空格;而圖形下半部的縮進數則剛好相反。這可在以上循環(huán)中添加輸出連續(xù)空格的for循環(huán)來實現,對于上半部程序如下:

      b=3; for(k=1;k<=7;k++,k++)

      {

      for(j=1;j<=b;j++)printf(″ ″);b--;

      for(i=1;i<=k;i++)printf(″*″); printf(″\n″);

       } 

      (5)請讀者在理解以上給出的示例的基礎上,自己添加下半部空格的輸出。

      第六章、字符型數據

      一、選擇題

      6.1 C語言中的簡單數據類型有

      A)整型、實型、邏輯型

      B)整型、實型、字符型

      C)整型、字符型、邏輯型

      D)整型、實型、邏輯型、字符型

      答案:B 6.2 C語言中,字符(char)型數據在微機內存中的存儲形式是

      A)反碼

      B)補碼

      C)EBCDIC碼

      D)ASCII碼

      答案:D 6.3 設有語句char a=''72'';,則變量a

      A)包含1個字符

      B)包含2個字符

      C)包含3個字符

      D)說明不合法

      答案:A 6.4 C語言中不合法的字符常量是

      A)''