眾賞文庫
全部分類
  • 抗擊疫情 >
    抗擊疫情
    病毒認知 防護手冊 復工復產 應急預案 防控方案 英雄事跡 院務工作
  • 成品畢設 >
    成品畢設
    外文翻譯 畢業(yè)設計 畢業(yè)論文 開題報告 文獻綜述 任務書 課程設計 相關資料 大學生活 期刊論文 實習報告
  • 項目策劃 >
    項目策劃
    土地準備 規(guī)劃設計 開工開盤 項目綜合 竣工移交 售后移交 智慧方案 安全專項 環(huán)境影響評估報告 可行性研究報告 項目建議書 商業(yè)計劃書 危害評估防治 招投標文件
  • 專業(yè)資料 >
    專業(yè)資料
    人文法律 環(huán)境安全 食品科學 基礎建設 能源化工 農林牧畜 綜合待分類 教育經驗 行政人力 企業(yè)管理 醫(yī)學衛(wèi)生 IT技術 土木建筑 考研專題 財會稅務 公路隧道 紡織服裝
  • 共享辦公 >
    共享辦公
    總結匯報 調研報告 工作計劃 述職報告 講話發(fā)言 心得體會 思想?yún)R報 事務文書 合同協(xié)議 活動策劃 代理加盟 技術服務 求職簡歷 辦公軟件 ppt模板 表格模板 融資協(xié)議 發(fā)言演講 黨團工作 民主生活
  • 學術文檔 >
    學術文檔
    自然科學 生物科學 天文科學 醫(yī)學衛(wèi)生 工業(yè)技術 航空、航天 環(huán)境科學、安全科學 軍事 政學 文化、科學、教育、 交通運輸 經濟 語言、文字 文學 農業(yè)科學 社會科學總論 藝術 歷史、地理 哲學 數(shù)理科學和化學 綜合性圖書 哲學宗教
  • 經營營銷 >
    經營營銷
    綜合文檔 經濟財稅 人力資源 運營管理 企業(yè)管理 內控風控 地產策劃
  • 教學課件 >
    教學課件
    幼兒教育 小學教育 初中教育 高中教育 職業(yè)教育 成人教育 高等教育 考研資源 試題真題 作業(yè)習題 課后答案 綜合教學
  • 土木建筑 >
    土木建筑
    專項施工 應急預案 建筑規(guī)范 工藝方案 技術交底 施工表格 圖片圖集
  • 課程導學 >
    課程導學
    醫(yī)學綜合 中醫(yī)養(yǎng)生 醫(yī)學研究 身心發(fā)展 醫(yī)學試題 影像醫(yī)學 醫(yī)院辦公 外科醫(yī)學 老年醫(yī)學 內科醫(yī)學 婦產科 神經科 醫(yī)學課件 眼鼻喉科 皮膚病科 腫瘤科 兒科醫(yī)學 康復醫(yī)學 全科醫(yī)學 護理學科 針灸學科 重癥學科 病毒學科 獸醫(yī) 藥學
    • 簡介:1616循環(huán)的嵌套循環(huán)的嵌套一個循環(huán)體內又包含另一個完整的循環(huán)結構稱為循環(huán)的嵌套。內嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。QVZ9NNLYN三種循環(huán)WHILE循環(huán)、DOWHILE循環(huán)和F循環(huán)可以互相嵌套。I4U0N7_GX下面幾種都是合法的形式4WU4D_OO1717幾種循環(huán)的比較幾種循環(huán)的比較1四種循環(huán)都可以用來處理同一問題,一般情況下它們可以互相代替。但一般不提倡用GOTO型循環(huán)。2在WHILE循環(huán)和DOWHILE循環(huán)中,只在WHILE后面的括號內指定循環(huán)條件,因此為了使循環(huán)能正常結束,應在循環(huán)體中包含使循環(huán)趨于結束的語句如I,或II1等。F循環(huán)可以在表達式3中包含使循環(huán)趨于結束的操作,甚至可以將循環(huán)體中的操作全部放到表達式3中。因此F語句的功能更強,凡用WHILE循環(huán)能完成的,用F循環(huán)都能實現(xiàn)。D9YW5F573用WHILE和DOWHILE循環(huán)時,循環(huán)變量初始化的操作應在WHILE和DOWHILE語句之前完成。而F語句可以在表達式1中實現(xiàn)循環(huán)變量的初始化。J1P3G0WH4WHILE循環(huán)、DOWHILE循環(huán)和F循環(huán),可以用BREAK語句跳出循環(huán),用CONTINUE語句結束本次循環(huán)BREAK語句和CONTINUE語句見下節(jié)。而對用GOTO語句和IF語句構成的循環(huán),不能用BREAK語句和CONTINUE語句進行控制“TKAZ5W2KN0T1818BREAKBREAK語句和語句和CONTINUECONTINUE語句語句XMA8KJBR1U一般形式BREAK4_PE0MQ72L6KD注意注意BREAKBREAK語句不能用于循環(huán)語句和語句不能用于循環(huán)語句和SWITCHSWITCH語句之外的任何其他語句中。語句之外的任何其他語句中。0IYSY2FR1R100BREAK67IFN308CONTINUE9PRINTF“D″,N1011復制代碼說明當N能被3整除時,執(zhí)行CONTINUE語句,結束本次循環(huán)即跳過PRINTF函數(shù)語句,只有N不能被3整除時才執(zhí)行PRINTF函數(shù)。FMP2GK5UA0O31919程序舉例程序舉例YLN1M7S例66用Π4≈1131517公式求Π的近似值,直到某一項的絕對值小于為止。GXDE0YFP?QNS結構化流程圖表示算法9RR7CMXY7V例17求FIBONACCI數(shù)列前40個數(shù)。1INCLUDE2VOIDMAIN34LONGINTF1,F(xiàn)25INTI6F11F217FI1I20I89PRINTF″LDLD″,F(xiàn)1,F(xiàn)210IFI2011PRINTF″N″12F1F1F213F2F2F11415復制代碼
      下載積分: 6 賞幣
      上傳時間:2024-03-10
      頁數(shù): 6
      6人已閱讀
      ( 4 星級)
    • 簡介:自定義數(shù)據(jù)類型自定義數(shù)據(jù)類型結構體結構體結構體是程序員在程序中自定義的一種數(shù)據(jù)類型,在說明和使用之前必須先定義它,也就是構造它。定義一個結構體的語法格式如下STRUCT結構體類型名成員1的數(shù)據(jù)類型名成員1名稱;成員2的數(shù)據(jù)類型名成員2名稱;成員N的數(shù)據(jù)類型名成員N名稱;結構體變量表成員初始化;注意成員可以由若干個不同的數(shù)據(jù)類型組成,每個成員也可以是結構體,即可以嵌套定義。例如STRUCTSTUDENTLONGNUMNAMESEXFLOATSCE已經定義的某種結構體類型可以視為一種標準的數(shù)據(jù)類型,它的使用方法與標準數(shù)據(jù)類型使用方法相同,可以用來定義變量、數(shù)組、指針。結構體變量說明結構體變量說明結構體變量的說明在程序的變量說明部分給出,一般在結構定義之后,它的語法格式如下STRUCT結構類型名結構變量名表;例如STRUCTSTUDENTSTU;指出了結構變量STU是STUDENT類型的變量,它由四個成員組成,每個成員的數(shù)據(jù)類型和名字都與STUDENT結構定義中給出的相同。系統(tǒng)完全按照結構定義時制定的內存模式為結構變量分配內存空間。可以在定義結構體類型的同時給出結構體變量。STRUCTSTUDENTLONGNUMCHANAME20CHASEXFLOATSCESTU1STU2這種形式與前面給出的結構定義和結構說明分開處理效果相同。三種訪問結構體成員的方式結構變量。成員名(結構指針變量)。成員名結構指針變量成員名結構體與數(shù)組結構體與數(shù)組相同結構的結構體變量組成的數(shù)組,簡稱結構數(shù)組。STRUCTSTUDENTLONGNUMNAME20SEXSTRUCTBIRTHDAYBIRFLOATSCESTUDENTS35上面定義了一個結構數(shù)組STUDENTS,共35個元素,STUDENTS0STUDENTS34。每個數(shù)組元素都具有STRUCTSTUDENT的結構形式,用來描述一個學生的相關信息。結構數(shù)組名STUDENTS表示該數(shù)組存儲的首地址。結構數(shù)組在說明的同時也可以對它進行初始化賦值。語法格式如下STRUCT結構體名結構數(shù)組名數(shù)組長度初始數(shù)據(jù);與其他數(shù)組一樣,結構體數(shù)組的元素也可以用指針來引用。但指針應說明為數(shù)組元素類型的指針,并將數(shù)組名或者數(shù)組的第0個元素的地址賦給指針變量。引用上述結構體數(shù)組STUDENTS元素的指針變量說明如下STRUCTSTUDENTPSTUDENTS;或者STRUCTSTUDENTP則P為指向結構數(shù)組的指針變量,且P指向該結構數(shù)組的0號元素,P1指向1號元素,PI指向第I號元素。PNUM或PNUM表示引用STUDENTS0NUMPNUM或PNUM表示引用STUDENTS1NUMC語言中規(guī)定,定義某個結構體時,其成員的類型可以是該結構體本身,但是這個成員只能是指針變量或指針數(shù)組,不能使普通變量或數(shù)組。結構體與函數(shù)結構體與函數(shù)結構體作為函數(shù)的參數(shù)可以采用三種方式進行傳遞將結構體成員作為單獨的參數(shù)傳遞給函數(shù);
      下載積分: 6 賞幣
      上傳時間:2024-03-14
      頁數(shù): 6
      13人已閱讀
      ( 4 星級)
    • 簡介:創(chuàng)建完整的示例VISUALC項目1創(chuàng)建一個名為CEXCELDATA的新文件夾。示例程序將在此文件夾中存儲EXCEL工作簿。2創(chuàng)建一個新工作簿,以供示例向其中寫入數(shù)據(jù)A在EXCEL中啟動一個新工作簿。B在新工作簿的SHEET1上,在單元格A1中鍵入FIRSTNAME,在單元格B1中鍵入LASTNAME。C選擇A1B1。D在“插入”菜單上,指向“名稱”,然后單擊“定義”。鍵入名稱MYTABLE,然后單擊“確定”。E將該工作簿另存為CEXCELDATABOOK7XLS。F退出EXCEL。3啟動MICROSOFTVISUALSTUDIO2005或MICROSOFTVISUALSTUDIO。在“文件”菜單上,指向“新建”,然后單擊“項目”。在“VISUALC項目”或“VISUALC”下,選擇“WINDOWS應用程序”。默認情況下會創(chuàng)建FM1。4添加對EXCEL對象庫和ADODB主互操作程序集的引用。為此,請按照下列步驟操作A在“項目”菜單上,單擊“添加引用”。B在“”選項卡上,找到“ADODB”,然后單擊“選擇”。注意在VISUALSTUDIO2005中,您不需要單擊“選擇”。10111213PRIVATEVOIDBUTTON1_CLICKOBJECTSENDERSYSTEMEVENTARGSE141516替換為EXCELOBJECTREFERENCESPRIVATEEXCELAPPLICATIONM_OBJEXCELNULLPRIVATEEXCELWKBOOKSM_OBJBOOKSNULLPRIVATEEXCEL_WKBOOKM_OBJBOOKNULLPRIVATEEXCELSHEETSM_OBJSHEETSNULLPRIVATEEXCEL_WKSHEETM_OBJSHEETNULLPRIVATEEXCELRANGEM_OBJRANGENULLPRIVATEEXCELFONTM_OBJFONTNULLPRIVATEEXCELQUERYTABLESM_OBJQRYTABLESNULLPRIVATEEXCEL_QUERYTABLEM_OBJQRYTABLENULLFREQUENTYUSEDVARIABLEFOPTIONALARGUMENTSPRIVATEOBJECTM_OBJOPTSYSTEMREFLECTIONMISSINGVALUEPATHSUSEDBYTHESAMPLECODEFACCESSINGSTINGDATAPRIVATEOBJECTM_STRSAMPLEFOLDER“CEXCELDATA“PRIVATESTRINGM_STRNTHWIND“CPROGRAMFILESMICROSOFTOFFICEOFFICE10SAMPLESNTHWINDMDB“PRIVATEVOIDFM1_LOADOBJECTSENDERSYSTEMEVENTARGSECOMBOBOX1DOWNSTYLECOMBOBOXSTYLEDOWNLISTCOMBOBOX1ITEMSADDRANGENEWOBJECT“USEAUTOMATIONTOTRANSFERDATACELLBYCELL“
      下載積分: 6 賞幣
      上傳時間:2024-03-15
      頁數(shù): 15
      8人已閱讀
      ( 4 星級)
    • 簡介:“C語言程序設計語言程序設計B”指導書指導書(第(第2版)版)北京航空航天大學北京航空航天大學機械工程及自動化學院機械工程及自動化學院2012081課程總體目標課程總體目標經過本門課程的大量上機實踐,使得學生能夠掌握C語言編程解決實際問題的能力。采用課堂講授、知識點單項上機練習、基于項目的大作業(yè)課后綜合上機實踐相結合的方式,以切實提高學生的實踐能力,為后續(xù)軟件技術基礎等課程奠定堅實基礎。
      下載積分: 6 賞幣
      上傳時間:2024-03-16
      頁數(shù): 24
      13人已閱讀
      ( 4 星級)
    • 簡介:C如何獲取其他程序LISTVIEW控件中的內容含源碼分類C代碼片段2014032510531099人閱讀評論1收藏舉報源碼下載地址源碼下載地址點擊打開鏈接點擊打開鏈接需求需求獲取其他程序中的LISTVIEW控件的文本內容原理原理進程之間是相互隔離的,數(shù)據(jù)是不能共享的(有些特例)LVM_GETTITEMTEXT將一個數(shù)據(jù)緩沖區(qū)提供給LISTVIEW32控件,你不能把你的進程的數(shù)據(jù)緩沖提供給另外的程序,所以要用OPENPROCESS打開“任務管理器”進程然后在“任務管理器進程”中申請足夠長度的內存VIRUALALLOCEX,將這個內存地址提供給LISTVIEW32使用SENDMESSAGE發(fā)送LVM_GETTITEMTEXT消息待SENDMESSAGE返回后用READPROCESSMEMY讀取這段內存的數(shù)據(jù),即LISTVIEW控件的文本內容API函數(shù)函數(shù)FINDWINDOW查找窗口FINDWINDOWEX在窗口列表中尋找與指定條件相符的第一個子窗口SENDMESSAGEGETWINDOWTHREADPROCESSID找出某個窗口的創(chuàng)建者線程或進程返回創(chuàng)建者的標志符OPENPROCESS打開一個已存在的進程對象并返回進程的句柄VIRTUALALLOCEX為指定的進程分配內存地址成功則返回分配內存的首地址READPROCESSMEMY從指定內存中讀取字節(jié)集數(shù)據(jù)WRITEPROCESSMEMY將數(shù)據(jù)寫入內存中CLOSEHLEVIRTUALFREEEX在其它進程中釋放申請的虛擬內存空間USINGSYSTEMTHREADINGTASKSUSINGSYSTEMWINDOWSFMSUSINGSYSTEMRUNTIMEINTEROPSERVICESNAMESPACE讀取其他軟件LISTVIEW控件的內容PUBLICPARTIALCLASSFM1FMINTHWND窗口句柄INTPROCESS進程句柄INTPOINTERPRIVATECONSTUINTLVM_FIRST0X1000PRIVATECONSTUINTLVM_GETHEADERLVM_FIRST31PRIVATECONSTUINTLVM_GETITEMCOUNTLVM_FIRST4獲取列表行數(shù)PRIVATECONSTUINTLVM_GETITEMTEXTLVM_FIRST45獲取列表內的內容PRIVATECONSTUINTLVM_GETITEMWLVM_FIRST75
      下載積分: 6 賞幣
      上傳時間:2024-03-14
      頁數(shù): 18
      16人已閱讀
      ( 4 星級)
    • 簡介:C抽象類和接口的區(qū)別關系項目抽象類接口概念類是抽象了對象,抽象類是抽象了類,是抽象中的抽象更像一個規(guī)范,準則,規(guī)定是否能被實例化否否是否被繼承可以可以繼承自一個類可以繼承自一個類(單繼承)一個類可以繼承自多個接口(多繼承)是否被實現(xiàn)如果包含抽象方法,抽象方法必須定義在抽象類里,只能聲明,不能被實現(xiàn),但其派生類必須實現(xiàn)其方法定義接口只能聲明,不能被實現(xiàn),但其派生類必須實現(xiàn)其方法抽象類主要用于關系密切的對象而接口適合為不相關的類提供通用功能抽象類里面可以有非抽象方法但接口里只能有抽象方法抽象類是對根源的抽象。抽象類表示的是,這個對象是什么。接口是對動作的抽象接口表示的是,這個對象能做什么抽象類更多的是定義在一系列緊密相關的類間而接口大多數(shù)是關系疏松但都實現(xiàn)某一功能的類中抽象類是從一系列相關對象中抽象出來的概念,因此反映的是事物的內部共性接口是為了滿足外部調用而定義的一個功能約定,因此反映的是事物的外部特性支持回調10盡量避免使用繼承來實現(xiàn)組建功能,而是使用黑箱復用,即對象組合。因為繼承的層次增多,造成最直接的后果就是當你調用這個類群中某一類,就必須把他們全部加載到棧中后果可想而知(結合堆棧原理理解)。同時,有心的朋友可以留意到微軟在構建一個類時,很多時候用到了對象組合的方法。比如中,PAGE類,有SERVERREQUEST等屬性,但其實他們都是某個類的對象。使用PAGE類的這個對象來調用另外的類的方法和屬性,這個是非?;镜囊粋€設計原則。11如果抽象類實現(xiàn)接口,則可以把接口中方法映射到抽象類中作為抽象方法而不必實現(xiàn),而在抽象類的子類中實現(xiàn)接口中方法四、抽象類和接口的使用1如果預計要創(chuàng)建組件的多個版本,則創(chuàng)建抽象類。抽象類提供簡單的方法來控制組件版本。2如果創(chuàng)建的功能將在大范圍的全異對象間使用,則使用接口。如果要設計小而簡練的功能塊,則使用接口。3如果要設計大的功能單元,則使用抽象類如果要在組件的所有實現(xiàn)間提供通用的已實現(xiàn)功能,則使用抽象類。4抽象類主要用于關系密切的對象;而接口適合為不相關的類提供通用功能。抽象類主要用于關系密切的對象;而接口適合為不相關的類提供通用功能。以下是我在網上看到的幾個形象比喻真的非常不錯呵呵1飛機會飛,鳥會飛,他們都繼承了同一個接口“飛”;但是F22屬于飛機抽象類,鴿子屬于鳥抽象類。2就像鐵門木門都是門(抽象類),你想要個門我給不了(不能實例化),但我可以給你個具體的鐵門或木門(多態(tài));而且只能是門,你不能說它是窗(單繼承);一個門可以有鎖(接口)也可以有門鈴(多實現(xiàn))。門(抽象類)定義了你是什么,接口(鎖)規(guī)定了你能做什么(一個接口最好只能做一件事,你不能要求鎖也能發(fā)出聲音吧(接口污染))。
      下載積分: 5 賞幣
      上傳時間:2024-03-15
      頁數(shù): 3
      8人已閱讀
      ( 4 星級)
    • 簡介:項目四,項目要點數(shù)組的定義和使用數(shù)組的存儲結構數(shù)組的輸入輸出字符串處理函數(shù)學習目標使用數(shù)組處理同一類型的大批數(shù)據(jù)使用字符數(shù)組處理字符串使用二維數(shù)組處理字符串,C語言程序設計,工作任務導入,工作任務一個班上50位學生參與考試,考了3門課程,現(xiàn)要求按總成績的高低輸出成績單引導問題1、課程的成績如何存儲2、學生信息如何存儲3、如何對成績進行排序,任務1輸入/輸出多個學生一門課程的成績,MAIN{INTI,X,S0FORI0I50I{SCANF“D”,SX}PRINTF“F\N”,S/500},只用了三個變量就解決了問題,但數(shù)據(jù)沒有保存。,如果需要把成績按從高到低的順序全部打印出來,怎么辦,計算50個學生成績的平均分,,任務1輸入/輸出多個學生一門課程的成績,一維數(shù)組的定義,數(shù)據(jù)類型數(shù)組名常量表達式;,數(shù)組元素的數(shù)據(jù)類型,遵循C語言標識符規(guī)則,數(shù)組長度幾個數(shù)組元素,任務1輸入/輸出多個學生一門課程的成績,411一維數(shù)組,例如INTA5;,說明常量表達式表示元素的個數(shù),即數(shù)組長度。常量表達式中可以包括常量和符合常量,不能包含變量。,任務1輸入/輸出多個學生一門課程的成績,411一維數(shù)組,INTI5INTAI/數(shù)組長度為變量/,任務1輸入/輸出多個學生一門課程的成績,411一維數(shù)組,以下對一維整型數(shù)組A的正確定義的是A、INTA10B、INTN10,ANC、INTNINTAND、DEFINESIZE10SCANF“D”,NINTASIZE,任務1輸入/輸出多個學生一門課程的成績,412一維數(shù)組的引用,表示引用數(shù)組A中的第2個元素,數(shù)組名下標表達式;,表示引用數(shù)組A中的第6個元素,表示引用數(shù)組A中的第16個元素,,,,若一個數(shù)組長度為N,其下標值范圍是0~N1,C語言規(guī)定只能逐個引用數(shù)組元素而不能一次引用整個數(shù)組。,任務1輸入/輸出多個學生一門課程的成績,412一維數(shù)組的引用,輸入5個學生的數(shù)學成績,計算平均分,將平均分輸出到屏幕上。VOIDMAIN{INTI,MATHSCORE5,SUM0FLOATAVERAGEFORI0I5I{SCANF“D“,}FORI0I5I{SUMSUMMATHSCOREI}AVERAGESUM/50PRINTF“F“,AVERAGE},數(shù)組元素的地址也是通過“修改為AVERAGESUM/5結果如何2、練習從鍵盤輸入5個學生的成績,求出并輸出分數(shù)最高的學生序號及最高成績。。,數(shù)組的賦值只能逐個對數(shù)組元素賦值,不能直接對數(shù)組名賦值。因數(shù)組在內存占一片連續(xù)的存儲空間,可用循環(huán)語句處理數(shù)組。,任務1輸入/輸出多個學生一門課程的成績,412一維數(shù)組的引用,(1)在定義數(shù)組時,對全部數(shù)組元素賦初值此時可以省略數(shù)組的長度,任務1輸入/輸出多個學生一門課程的成績,413一維數(shù)組的初始化,C語言程序設計,任務1輸入/輸出多個學生一門課程的成績,413一維數(shù)組的初始化,(2)在定義數(shù)組時,對部分數(shù)組元素賦初值,C語言程序設計,任務1輸入/輸出多個學生一門課程的成績,413一維數(shù)組的初始化,(3)當初值的個數(shù)多于數(shù)組元素的個數(shù)時,編譯出錯,任務1輸入/輸出多個學生一門課程的成績,412一維數(shù)組的引用,例用初始化方法,把10個學生的數(shù)學成績存儲在數(shù)組中,再從鍵盤輸入一個考分,查找該分數(shù)是否在數(shù)組中,如果是,則輸出它是第幾名學生的成績。。VOIDMAIN{INTI,A10{56,65,76,68,92,37,87,51,73,48}INTFINDPRINTF“請輸入要查找的分數(shù)\N“SCANF“D“,FORI0I10I{IFAIFIND/查找到了/{PRINTF“D“,I1BREAK}}},任務1輸入/輸出多個學生一門課程的成績,413一維數(shù)組,練習一個班50位同學參加了一次C語言程序設計考試,現(xiàn)要輸入全班同學的成績,并按逆序輸出。,任務2排序學生成績,任務1中已經輸入了50個同學的成績到數(shù)組中,現(xiàn)在需要確定如何對學生成績從低到高進行排序。,,兩層循環(huán)結構外層循環(huán)每次把操作范圍內最大的數(shù)放到最后位置內層循環(huán)每次把較大的數(shù)放到靠后的位置,任務2排序學生成績,有數(shù)組A,其元素值為7、1、5、6、9、3,現(xiàn)要把該數(shù)組按從小到大的順序排列并輸出。,MAIN{INTA{7,1,5,6,9,3}INTI,J,TPRINTF“THESORTEDNEMBERS\N”FORI0I6IPRINTF“\N”,XI},FORI0IXJ1{TXJXJXJ1XJ1T},任務2排序學生成績,任務2排序學生成績,421冒泡法排序,1、上例中,如果要按從大到小的順序排序,該如何修改程序呢2、練習一個班50位同學參加了一次C語言程序設計考試,現(xiàn)要輸入全班同學的成績,并按從低到高排序并輸出。,任務3處理多位學生多門課程的成績,一個班上50位學生參與考試,考了3門課程,現(xiàn)要求按總成績的高低輸出成績單。如果僅僅使用一維數(shù)組進行上述處理,是很困難的,此時需要使用二維數(shù)組。,X00X01X02X10X11X12,數(shù)據(jù)類型數(shù)組名常量表達式1常量表達式2;,,行,列,,INTA3,4,B3,4;INTC,D34,任務3處理多位學生多門課程的成績,431二維數(shù)組,二維數(shù)組的定義,數(shù)組名行下標列下標,A343A1,21,引用,/下標越界/,/A121/,任務3處理多位學生多門課程的成績,432二維數(shù)組的引用,任務3處理多位學生多門課程的成績,練習輸入5個同學三門課程的成績并輸出,計算各門課的總分及平均分,并輸出。,432二維數(shù)組的引用,1分行對二維數(shù)組初始化,INTA23{{1,2,3},{4,5,6}}初始化后123456,任務3處理多位學生多門課程的成績,433二維數(shù)組的初始化,INTA23{1,2,3,4,5,6}初始化后123456,2按數(shù)組排列的順序初始化,任務3處理多位學生多門課程的成績,433二維數(shù)組的初始化,任務3處理多位學生多門課程的成績,433二維數(shù)組的初始化,3對全部數(shù)組元素初始化,INTA3{1,2,3,4,5,6}初始化后123456,省略行號,用二層循環(huán)語句處理數(shù)組,通常外循環(huán)控制行,內循環(huán)控制列。,FOR(I0;I3I)FOR(J0;J4J)AIJIJ;,二維數(shù)組的賦值,0123234345,任務3處理多位學生多門課程的成績,433二維數(shù)組的初始化,二維數(shù)組的輸入輸出,INTB34,I,JFORI0I3IFORJ0J4JSCANF“D”,FORI0I3IFORJ0J4JPRINTF“”,BIJ,任務3處理多位學生多門課程的成績,433二維數(shù)組的初始化,任務3處理多位學生多門課程的成績,練習用初始化方法,把5個同學三門課程成績存儲在二維數(shù)組中,計算每位同學的總成績和平均分,輸出總分最高的同學的總成績。,433二維數(shù)組初始化,練習,下列程序有哪些錯誤請解釋錯誤原因。(1)MAIN{INTX,A10;FORX0;X10;XSCANF“D”,,任務4輸入/輸出學生,一個班上50位學生參與考試,需要輸入/輸出學生的姓名信息。這個任務需要解決多個字符的存放問題。,任務4輸入/輸出學生,441字符數(shù)組,CHAR數(shù)組名常量表達式;,二維字符數(shù)組,CHAR數(shù)組名常量表達式1常量表達式2;,一維字符數(shù)組STR,,,二維字符數(shù)組S1,1用字符常數(shù)初始化,CHARC{‘C’,’H’,’I’,’N’,’A’,’\0’}初始化后,任務4輸入/輸出學生,441字符數(shù)組,任務4輸入/輸出學生,441字符數(shù)組,CHARC{“CHINA”}CHARC“CHINA”初始化后,2直接用字符串常量初始化,任務4輸入/輸出學生,441字符數(shù)組,1用字符常數(shù)初始化,CHARLAN58{{‘B’,‘A’,‘S’,‘I’,‘C’,‘\0’},{‘F’,‘O’,‘R’,‘T’,‘R’,‘A’,‘N’,‘\0’},{‘P’,‘A’,‘S’,‘C’,‘A’,‘L’,‘\0’},{‘C’,‘\0’},{‘J’,‘A’,‘V’,‘A’,‘\0’}},二維字符數(shù)組的初始化,每行存放一個字符串,任務4輸入/輸出學生,441字符數(shù)組,二維字符數(shù)組的初始化,CHARA310{“BASIC“,“PASCAL“,“C“},2直接用字符串常量初始化,練習1、給字符數(shù)組初始化為“HAPPY”,并輸出各個數(shù)組元素。2、輸出一個鉆石圖形。如圖所示。,任務4輸入/輸出學生,441字符數(shù)組,任務4輸入/輸出學生,442字符串,字符串是用雙引號括起來的若干有效字符序列,字符串可以包括字母、數(shù)字、轉義字符等,C語言中,將字符串作為字符數(shù)組來處理。,任務4輸入/輸出學生,442字符串,C語言規(guī)定了一個“字符串結束標志”,以字符‘\0’代表。在處理字符數(shù)組的過程中,一旦遇到結束符‘\0’,就表示已達到字符串末尾。,數(shù)組的長度是6,而不是5。,練習1、分析以下程序,其運行結果是什么VOIDMAIN{CHARC5{’A’,’B’,’\0’,’C’,’\0’}PRINTF“S\N“,C}2、有字符串“ABCABCDEFDEF”,把該字符串中的小寫字母轉換為大寫字母后輸出。,任務4輸入/輸出學生,442字符串,任務4輸入/輸出學生,443字符串輸入/輸出,1字符數(shù)組的元素逐個輸入和輸出,用格式輸入輸出函數(shù)SCANF和PRINTF,使用“C”格式符,或用字符輸入輸出函數(shù)GETCHAR和PUTCHAR。每次輸入或輸出一個字符。,FORI0I10ISCANF“C”,,FORI0I10ICIGETCHAR,注GETCHAR和PUTCHAR定義在標題文件“STDIOH”中,使用前要用INCLUDE把它們包含進來,任務4輸入/輸出學生,443字符串輸入/輸出,2字符數(shù)組整體輸入和輸出,用格式輸入輸出函數(shù)SCANF和PRINTF,使用“S”格式符,輸入和輸出字符串。,(1)一維字符數(shù)組,SCANF“S”,字符數(shù)組名;PRINTF“S”,字符數(shù)組名;,CHARS110SCANF“S”,S1;PRINTF“S”,S1;,不用加SCANF“S”,STR1;PRINTF“S”,STR1;,任務4輸入/輸出學生,443字符串輸入/輸出舉例,MAIN{CHARSS310INTIFORI0I3ISCANF“S”,SSI;FORI0I3IPRINTF“S”,SSI;},注意在SCANF和PRINTF的“S”是直接控制字符串的,只要求某個字符串的起始地址作為參數(shù)。輸入時,SCANF會自動把用戶輸入的回車符、空格或制表符轉換成“\0”加在字符串的末尾,PRINTF則在遇到“\0”就結束輸出,但不能自動換行。,MAIN{CHARSTR14SCANF“S”,STRPRINTF“\NS”,STRPRINTF“STRING”},輸入HOWAREYOU↙輸出HOWAREYOU,輸入HOWAREYOU↙輸出HOWSTRING,練習1、輸入一行字符串,統(tǒng)計其中大寫字母、小寫字母、數(shù)字以及其他字符的個數(shù)。,任務4輸入/輸出學生,443字符串輸入/輸出,任務5任務拓展,451字符串處理函數(shù),①程序中如果調用下面介紹的4個字符串處理函數(shù),在程序的開始應該寫預處理命令INCLUDE②在字符串處理函數(shù)中,凡是用數(shù)組名或字符串首地址作參數(shù)的地方,都可以用指針變量作參數(shù)。指針變量的概念在第6章介紹。,說明,任務5任務拓展,451字符串處理函數(shù),1求字符串長度函數(shù)STRLEN,格式STRLENSTR,功能測試字符串長度。函數(shù)值就是STR中字符的個數(shù)不包含字符串的結束符“\0”。,任務5任務拓展,451字符串處理函數(shù),1求字符串長度函數(shù)STRLEN,CHARSTR10“CHINA“PRINTF“D“,STRLENSTR或PRINTF“D“,STRLEN“CHINA“,輸出結果5,任務5任務拓展,451字符串處理函數(shù),2字符串復制函數(shù)STRCPY,格式STRCPYSTR1,STR2,功能將STR2中的字符串復制到STR1數(shù)組中。,任務5任務拓展,451字符串處理函數(shù),2字符串復制函數(shù)STRCPY,CHARS110,S2“BEIJING“STRCPYS1,S2或STRCPYS1,“BEIJING“,S1的結果,S1必須足夠大,STRCPYS1,S2,3,表示將S2中的前3個字符復制到S1中。,任務5任務拓展,451字符串處理函數(shù),3字符串比較函數(shù)STRCMP,格式STRCMPSTR1,STR2,任務5任務拓展,451字符串處理函數(shù),3字符串比較函數(shù)STRCMP,任務5任務拓展,451字符串處理函數(shù),4字符串連接函數(shù)STRCAT,格式STRCATSTR1,STR2,功能把STR2中的字符串連接到STR1字符串的后面,結果放在STR1數(shù)組中,函數(shù)值是STR1的值。,任務5任務拓展,451字符串處理函數(shù),4字符串連接函數(shù)STRCAT,CHARSTR121“BEIJINGAND“CHARSTR2“SHANGHAI“PRINTF“S“,STRCATSTR1,STR2,輸出結果BEIJINGANDSHANGHAI,STR1必須足夠大,練習1、輸出如下的楊輝三角形,要求一共有10行10列。2、從鍵盤輸入5個字符串,將其中最大的字符串輸出。3、輸入一行字符,統(tǒng)計其中有多少個單詞,單詞之間用空格分隔開。,任務5任務拓展,
      下載積分: 4 賞幣
      上傳時間:2024-01-06
      頁數(shù): 57
      9人已閱讀
      ( 4 星級)
    • 簡介:冒泡法排序,數(shù)組的應用,例輸入10個數(shù),對這10個數(shù)排序由小到大。,假設輸入10個數(shù)為9,8,5,4,2,0。,經過第一趟共5次比較與交換后,最大的數(shù)9已“沉底”。,第一趟比較,,然后進行對余下的前面5個數(shù)第二趟比較,如果有N個數(shù),則要進行N1趟比較。在第1趟比較中要進行N1次兩兩比較,在第J趟比較中要進行NJ次兩兩比較。,按上面的規(guī)律,要將N個元素排序,其核心代碼表示如下FOR(I1IAJ1{TAJAJAJ1AJ1T}}},程序INCLUDEVOIDMAIN{INTA[10]INTI,J,TPRINTF″INPUT10NUMBERS\N″FORI0I10ISCANF“D“,PRINTF“\N“,FORJ0JA[I1]{TAIAIAI1A[I1]T}PRINTF″THESORTEDNUMBERS\N″FORI0I10IPRINTF″D″,A[I]PRINTF″\N″}/程序結束/,程序運行結果如下INPUT10NUMBERS104812657610045123↙THESORTEDNUMBERS764501481265100123,,,,,,,,,,,,,,,,,,,,,,,
      下載積分: 4 賞幣
      上傳時間:2024-01-06
      頁數(shù): 17
      7人已閱讀
      ( 4 星級)
    • 簡介:第10章編譯預處理,以前程序中見到的以“”號開頭的命令就是預處理命令。如包含命令INCLUDE,宏定義命令DEFINE等。預處理是指在編譯中第一遍掃描詞法掃描和語法分析之前所作的工作。對一個源文件進行編譯時,系統(tǒng)自動引用預處理程序對源程序中的預處理部分作處理,處理完畢后自動進入源程序的編譯。C語言提供了多種預處理功能,如宏定義、文件包含、條件編譯等。101宏102文件包含103條件編譯,退出,101宏,用一個標識符來替換程序中的一個字符串,稱為“宏替換”。這樣可以使程序更簡潔。被定義為“宏”的標識符稱為“宏名”。在編譯預處理時,對程序中所有出現(xiàn)的“宏名”,都用宏定義中的字符串去代換,這稱為“宏展開”。宏展開時不進行語法檢查。宏定義是由源程序中的宏定義命令完成的。宏代換是由預處理程序自動完成的。在C語言中,“宏”分為有參數(shù)和無參數(shù)兩種。,,,1011無參宏定義無參宏的宏名后不帶參數(shù)。其定義的一般形式為DEFINE宏名宏體其中的“”表示這是一條預處理命令。凡是以“”開頭的均為預處理命令。“DEFINE”為宏定義命令。宏名是一個標識符,其中不能有空格,也不能使用引號““括起來。宏體是字符串,可以是常數(shù)、表達式或語句,甚至可以是多個語句。【例101】見課本)1宏替換時并不進行語法檢查宏定義是用宏名來表示一個字符串,宏展開時又以該字符串取代宏名,這只是一種簡單的代換,字符串中可以含任何字符,可以是常數(shù),也可以是表達式,預處理程序對它不作任何檢查。如有錯誤,只能在編譯已被宏展開后的源程序時發(fā)現(xiàn)。,,,2不必加分號宏定義不是說明或語句,在行末不必加分號,如加上分號則連分號也一起置換。3宏定義應在函數(shù)外,引用之前宏定義必須寫在函數(shù)之外,通常在引用之前定義,其作用域為宏定義命令起到源程序結束。4可以撤消宏如要撤消宏,終止其作用域可使用UNDEF命令。【例102】見課本)5宏名不可使用引號對程序中用雙引號括起來的字符串,即使與宏名相同,預處理程序也不對其作宏代換?!纠?03】見課本)【例104】見課本),,,6宏定義允許嵌套,但不能遞歸定義宏定義允許嵌套,在宏定義的字符串中可以使用已經定義的宏名。在宏展開時由預處理程序層層代換?!纠?05】見課本)7使用大寫習慣上宏名用大寫字母表示,以便于與變量區(qū)別。但也允許用小寫字母。8在輸出格式中的應用把“輸出格式”語句作為宏定義,可以減少書寫麻煩?!纠?06】見課本),,,1012帶參數(shù)的宏宏可以帶有參數(shù),可以像函數(shù)那樣,一次定義多次使用。在宏定義中的參數(shù)稱為形式參數(shù),在宏調用中的參數(shù)稱為實際參數(shù)。宏替換只能是字符替換。對帶參數(shù)的宏,在調用中,不僅要宏展開,而且要用實參去代換形參,這種代替是字符代替。帶參宏定義的一般形式為DEFINE宏名形參列表宏體在字符串中含有各個形參?!纠?07】見課本),,,1定義中不能有多余空格帶參宏定義中,宏名和形參表之間不能有空格出現(xiàn)。例如把DEFINEMINA,BABAB。2實參可以是表達式在宏定義中的形參是標識符,而宏調用中的實參可以是表達式?!纠?08】見課本),,,3宏體及各個形參最好用括號括起來在宏定義中,字符串內的形參通常要用括號括起來以避免出錯。【例109】見課本)4宏可以定義多個語句宏定義也可用來定義多個語句,在宏調用時,把這些語句又代換到源程序內?!纠?010】見課本)5帶參的宏與帶參函數(shù)的區(qū)別帶參的宏和帶參函數(shù)很相似,但有本質上的不同。通俗地說,宏不過是“占地方、占位置”,而沒有實際的影響。,,,102文件包含,1021文件包含的概念文件包含是預處理程序的一個重要功能。文件包含就是把另外一個文件的內容包括進來。,,,文件包含命令行的一般形式為INCLUDE“文件名“也可以使用如下格式INCLUDE在前面我們已多次用此命令包含過庫函數(shù)的頭文件。例如INCLUDEINCLUDE在程序設計過程中,一個大的程序可以分為多個模塊,由多個程序員分別編程。有些公用的符號常量或宏定義等可單獨組成一個文件,在其它文件的開頭用包含命令包含該文件即可使用。這樣,可避免在每個文件開頭都去書寫那些公用量,從而節(jié)省時間,并減少出錯。,,,1022文件包含的注意事項對文件包含命令還要說明以下幾個方面。1兩種命令格式的區(qū)別包含命令中的文件名可以用雙引號括起來,也可以用尖括號括起來。這兩種形式的區(qū)別在于查詢文件的方式不同使用尖括號表示在包含文件目錄中去查找包含目錄是由用戶在設置環(huán)境時設置的,而不在源文件目錄去查找;使用雙引號則表示首先在當前的源文件目錄中查找,若未找到才到包含目錄中去查找。,,,2包含的文件數(shù)目一個INCLUDE命令只能指定一個被包含文件,若有多個文件要包含,則需用多個INCLUDE命令。3嵌套文件包含允許嵌套,即在一個被包含的文件中又可以包含另一個文件。,,,103條件編譯,條件編譯就是按不同的條件去編譯不同的程序部分,因而產生不同的目標代碼文件。條件編譯有三種形式,下面分別介紹。,,,1031第一種形式這種形式采用如下格式IFDEF標識符程序段1ELSE程序段2ENDIF它的功能是,如果標識符已被DEFINE命令定義過則對程序段1進行編譯;否則對程序段2進行編譯。如果沒有程序段2它為空,本格式中的ELSE可以沒有,即可以寫為IFDEF標識符程序段ENDIF【例1011】見課本),,,1032第二種形式這種形式采用如下格式IFNDEF標識符程序段1ELSE程序段2ENDIF與第一種形式的區(qū)別是將“IFDEF”改為“IFNDEF”。它的功能是,如果標識符未被DEFINE命令定義過則對“程序段1”進行編譯,否則對“程序段2”進行編譯。這與第一種形式的功能正相反。,,,1033第三種形式這種形式采用如下格式IF常量表達式程序段1ELSE程序段2ENDIF它的功能是,如常量表達式的值為真非0,則對程序段1進行編譯,否則對程序段2進行編譯。因此可以使程序在不同條件下,完成不同的功能。條件編譯當然也可以用條件語句來實現(xiàn)。但是用條件語句將會對整個源程序進行編譯,生成的目標代碼程序很長;而采用條件編譯,則根據(jù)條件只編譯其中的程序段1或程序段2,生成的目標程序較短。如果條件選擇的程序段很長,采用條件編譯的方法是十分必要的。,,,
      下載積分: 4 賞幣
      上傳時間:2024-01-07
      頁數(shù): 16
      9人已閱讀
      ( 4 星級)
    • 簡介:C語言程序設計,第四章函數(shù)41庫函數(shù)42自定義函數(shù)43函數(shù)的參數(shù)傳遞與返回值44遞歸函數(shù)45局部變量、全局變量與變量作用域46函數(shù)綜合應用,學習目標理解函數(shù)在程序設計中的作用和地位掌握函數(shù)的定義、原型聲明和調用方法熟練掌握函數(shù)的參數(shù)傳遞與返回值理解局部變量、全局變量、靜態(tài)變量和變量的作用域掌握遞歸函數(shù)的編寫技術理解和掌握結構設計和模塊化程序設計方法了解地址和指針的概念,了解地址做函數(shù)參數(shù)的特點和作用,為什么要用函數(shù),問題如果程序的功能比較多,規(guī)模比較大,把所有代碼都寫在MAIN函數(shù)中,就會使主函數(shù)變得龐雜、頭緒不清,閱讀和維護變得困難有時程序中要多次實現(xiàn)某一功能,就需要多次重復編寫實現(xiàn)此功能的程序代碼,這使程序冗長,不精煉,解決的方法用模塊化程序設計的思路采用“組裝”的辦法簡化程序設計的過程可以使用庫函數(shù)事先編好一批實現(xiàn)各種不同功能的函數(shù),把它們保存在函數(shù)庫中,需要時直接用可以使用自己編寫的函數(shù)在設計一個較大的程序時,往往把它分為若干個程序模塊,每一個模塊包括一個或多個函數(shù),每個函數(shù)實現(xiàn)一個特定的功能,函數(shù)的名字應反映其代表的功能C程序可由一個主函數(shù)和若干個其他函數(shù)構成,主函數(shù)調用其他函數(shù),其他函數(shù)也可以互相調用,同一個函數(shù)可以被一個或多個函數(shù)調用任意多次在程序設計中要善于利用函數(shù),可以減少重復編寫程序段的工作量,同時可以方便地實現(xiàn)模塊化的程序設計,,導例平方根表1.問題描述輸出100以內整數(shù)的平方根表,要求每行輸出10個。2.問題分析C語言提供了一個庫函數(shù)SQRT,使用時直接調用該庫函數(shù)就可以計算出平方根值。,,3.算法描述(1)定義兩個整型變量M,N。(2)輸出平方根表時,要注意格式。首先輸出表頭,輸出0~9的整數(shù)。(3)然后按照格式要求輸出平方根表,M為行數(shù)0~9,N為列數(shù)0~9,則表內對應第M行第N列的表值為SQRTM10N,每行10個。,1,1,INCLUDEINCLUDE//數(shù)學類頭文件INTMAIN{INTM,N,FORN0NYZXELSEZYRETURNZ},定義函數(shù)時,形參調用函數(shù)時,實參,函數(shù)的調用,函數(shù)調用的形式,對于實現(xiàn)計算功能的函數(shù),函數(shù)調用通常出現(xiàn)在兩種情況賦值語句VOLUMECYLINDERRADIUS,HEIGHT輸出函數(shù)的實參PRINTF“F”,CYLINDERRADIUS,HEIGHT,函數(shù)調用的過程,計算機在執(zhí)行程序時,從主函數(shù)MAIN開始執(zhí)行,如果遇到某個函數(shù)調用,主函數(shù)被暫停執(zhí)行,轉而執(zhí)行相應的函數(shù),該函數(shù)執(zhí)行完后,將返回主函數(shù),然后再從原先暫停的位置繼續(xù)執(zhí)行。函數(shù)遇RETURN返回主函數(shù),分析函數(shù)調用的過程,INCLUDEINTMAINVOID{DOUBLEHEIGHT,RADIUS,VOLUMEDOUBLECYLINDERDOUBLER,DOUBLEHPRINTF“ENTERRADIUSANDHEIGHT“SCANF“LFLF“,VOLUMECYLINDERRADIUS,HEIGHTPRINTF“VOLUME3F\N“,VOLUMERETURN0}DOUBLECYLINDERDOUBLER,DOUBLEH{DOUBLERESULTRESULT31415926RRHRETURNRESULT},調用函數(shù),,,實參?形參,執(zhí)行函數(shù)中的語句,返回調用它的地方,,,,,參數(shù)傳遞,函數(shù)定義時的參數(shù)被稱為形式參數(shù)(簡稱形參)DOUBLECYLINDERDOUBLER,DOUBLEH;函數(shù)調用時的參數(shù)被稱為實際參數(shù)(簡稱實參)VOLUMECYLINDERRADIUS,HEIGHT參數(shù)傳遞實參?形參在參數(shù)傳遞過程中,實參把值復制給形參。形參和實參一一對應數(shù)量一致,類型一致,順序一致形參變量,用于接受實參傳遞過來的值實參常量、變量或表達式,單向傳遞,函數(shù)結果返回,完成確定的運算,將運算結果返回給主調函數(shù)。函數(shù)結果返回的形式RETURN表達式;RETURN表達式;,,,,,在執(zhí)行函數(shù)調用時,實參把值計算出來,拷貝給相應位置的形參;函數(shù)執(zhí)行完后,通過RETURN,可返回一個結果值。實參與形參有多個實參時形參的改變個數(shù)相同、類型一致后面的先計算不影響實參變量的值只能返回一個結果,類型與函數(shù)定義時一致,,,要調用函數(shù),必須先要聲明,,,小結,43函數(shù)的參數(shù)傳遞與返回值431導例爬動的蠕蟲432導例日K蠟燭圖433函數(shù)的參數(shù)傳遞434函數(shù)的返回值,從函數(shù)是否有參數(shù)和返回值的角度,可以將函數(shù)分為①有參數(shù)有返回值函數(shù)②有參數(shù)無返回值函數(shù)③無參數(shù)有返回值函數(shù)④無參數(shù)無返回值函數(shù),導例判斷素數(shù)的函數(shù),求100以內的全部素數(shù),每行輸出10個。素數(shù)就是只能被1和自身整除的正整數(shù),1不是素數(shù),2是素數(shù)。要求定義和調用函數(shù)PRIMEM判斷M是否為素數(shù),當M為素數(shù)時返回1,否則返回0。算法描述對2~100之間的每個數(shù)進行判斷,若是素數(shù),則輸出該數(shù)。FORM2M1,,采用非遞歸方法,程序片段如下FIRST1,SECOND1SCANF“D“,FORI0I1FACTNNFACTN1遞歸公式,,,,實現(xiàn)階乘遞歸算法的遞歸函數(shù)LONGFACTINTN{IFN0RETURN1ELSERETURNNFACTN1},YFACT3,遞歸函數(shù)的調用過程,,遞歸程序的內部執(zhí)行過程函數(shù)的遞歸調用類似于多個函數(shù)的嵌套調用,只不過調用函數(shù)和被調用函數(shù)是同一個函數(shù)。遞歸調用的內部執(zhí)行過程如下①運行開始時,系統(tǒng)設立工作棧來保存每次調用的運行環(huán)境,包括形參、局部變量和返回地址;②遞歸調用前,將調用函數(shù)的形參、局部變量以及調用后的返回地址進棧;③調用結束后,將棧頂數(shù)據(jù)出棧,恢復調用前的運行環(huán)境,使相應的形參和局部變量恢復為調用前的值,然后從返回地址指定的位置繼續(xù)執(zhí)行調用函數(shù)。,,444遞歸函數(shù)的效率分析遞歸函數(shù)如果很緩慢地逼近到遞歸結束條件,會使性能大大下降。遞歸增加了系統(tǒng)開銷,時間上,執(zhí)行調用與返回的額外工作要占用CPU時間??臻g上,隨著每遞歸一次,棧內存就多占一塊,即要分配相應的存儲空間,并完成參數(shù)的傳遞、函數(shù)的返回等,在程序的執(zhí)行效率和所消耗的存儲空間上,和非遞歸相比沒有任何優(yōu)勢。一般的遞歸都可以通過相應的方法轉化為非遞歸的,所以不推薦使用遞歸,特別是不推薦使用遞歸層次較多的遞歸。,45C局部變量、全局變量與變量作用域451導例富翁與騙子452導例簡易庫存存取貨管理453局部變量和全局變量454變量的作用域和生存期,分別輸入2個復數(shù)的實部與虛部,用函數(shù)實現(xiàn)計算2個復數(shù)之和與之積。,分析若2個復數(shù)分別為C1X1Y1I,C2X2Y2I,則C1C2X1X2Y1Y2IC1C2X1X2Y1Y2X1Y2X2Y1I,復數(shù)運算,INCLUDEFLOATRESULT_REAL,RESULT_IMAG/全局變量,用于存放函數(shù)結果/INTMAINVOID{FLOATIMAG1,IMAG2,REAL1,REAL2/兩個復數(shù)的實、虛部變量//函數(shù)聲明/VOIDCOMPLEX_PRODFLOATREAL1,FLOATIMAG1,FLOATREAL2,FLOATIMAG2VOIDCOMPLEX_ADDFLOATREAL1,FLOATIMAG1,FLOATREAL2,FLOATIMAG2PRINTF“ENTER1STCOMPLEXNUMBERREALANDIMAGINARY“SCANF“FF“,/輸入第一個復數(shù)/PRINTF“ENTER2NDCOMPLEXNUMBERREALANDIMAGINARY“SCANF“FF“,/輸入第兩個復數(shù)/COMPLEX_ADDREAL1,IMAG1,REAL2,IMAG2/求復數(shù)之和/PRINTF“ADDITIONOFCOMPLEXISFFI\N“,RESULT_REAL,RESULT_IMAGCOMPLEX_PRODREAL1,IMAG1,REAL2,IMAG2/求復數(shù)之積/PRINTF“PRODUCTOFCOMPLEXISFFI\N“,RESULT_REAL,RESULT_IMAGRETURN0},運行結果ENTER1STCOMPLEXNUMBERREALANDIMAGINARY11ENTER2NDCOMPLEXNUMBERREALANDIMAGINARY23ADDITIONOFCOMPLEXIS10000004000000IPRODUCTOFCOMPLEXIS50000001000000I,VOIDCOMPLEX_ADDFLOATREAL1,FLOATIMAG1,FLOATREAL2,FLOATIMAG2{RESULT_REALREAL1REAL2RESULT_IMAGIMAG1IMAG2},VOIDCOMPLEX_PRODFLOATREAL1,FLOATIMAG1,FLOATREAL2,FLOATIMAG2{RESULT_REALREAL1REAL2IMAG1IMAG2RESULT_IMAGREAL1IMAG2REAL2IMAG1},局部變量在函數(shù)內定義的變量(包括形參)作用范圍本函數(shù)內部定義在復合語句內的變量作用范圍復合語句內部全局變量在函數(shù)以外定義的變量,不從屬于任一函數(shù)。作用范圍從定義處到源文件結束(包括各函數(shù)),453局部變量和全局變量,在復合語句中定義局部變量,INCLUDEINTMAINVOID{INTAA1{/復合語句開始/INTB2BABAAB}/復合語句結束/PRINTF“D“,ARETURN0},B小范圍內的臨時變量,,,輸出4,改成B會如何,全局變量定義,INCLUDE“STDIOH“INTX/定義全局變量X/INTF{INTX4/X為局部變量/RETURNX}INTMAINVOID{INTA1XA/對全局變量X賦值/AF/A的值為4/{INTB2BAB/B的值為6/XXB/全局變量運算/}PRINTF“DD“,A,XRETURN0},若局部變量與全局變量同名,局部變量優(yōu)先,,,,,輸出4,7,變量作用范圍示例,INTX1VOIDMAIN{INTA2{INTB3}F}INTT4VOIDF{INTX5,B6}INTA7,XAB,B,X5B6T4A沒定義,,,,,,,XBTA,用函數(shù)實現(xiàn)財務現(xiàn)金記賬。先輸入操作類型1收入,2支出,0結束,再輸入操作金額,計算現(xiàn)金剩余額,經多次操作直到輸入操作為0結束。要求定義并調用函數(shù),其中現(xiàn)金收入與現(xiàn)金支出分別用不同函數(shù)實現(xiàn)。分析設變量CASH保存現(xiàn)金余額值,由于它被主函數(shù)、現(xiàn)金收入與現(xiàn)金支出函數(shù)共用,任意使用場合其意義與數(shù)值都是明確和唯一的,因此令其為全局變量。,財務現(xiàn)金記賬,INCLUDEFLOATCASH/定義全局變量,保存現(xiàn)金余額/INTMAINVOID{INTCHOICEFLOATVALUEVOIDINCOMEFLOATNUMBER,EXPENDFLOATNUMBER/函數(shù)聲明/CASH0/初始金額0/PRINTF“ENTEROPERATECHOICE0END,1INCOME,2EXPEND“SCANF“D“,/輸入操作類型/WHILECHOICE0{/若輸入類型為0,循環(huán)結束/IFCHOICE1||CHOICE2{PRINTF“ENTERCASHVALUE“/輸入操作現(xiàn)金額/SCANF“F“,IFCHOICE1INCOMEVALUE/函數(shù)調用,計算現(xiàn)金收入/ELSEEXPENDVALUE/函數(shù)調用,計算現(xiàn)金支出/PRINTF“CURRENTCASH2F\N“,CASH}PRINTF“ENTEROPERATECHOICE0END,1INCOME,2EXPEND“SCANF“D“,/繼續(xù)輸入操作類型/}RETURN0},
      下載積分: 4 賞幣
      上傳時間:2024-01-07
      頁數(shù): 97
      11人已閱讀
      ( 4 星級)
    • 簡介:面向南疆地區(qū)面向南疆地區(qū)C語言程序設計教學改革實踐語言程序設計教學改革實踐由于南疆大多數(shù)民族學生英語基礎薄弱,C語言授課過程中,民族學生會本能的有一種抵觸情緒,因此遇到C語言關鍵字等英語單詞,先給學生統(tǒng)一翻譯、誦讀一遍。然后讓學生以小組為單位課后整理課堂上學過的計算機專業(yè)英語詞匯,下次上課讓學生聽寫專業(yè)詞匯,以此擴展民族學生英語詞匯量,為民族學生進一步學習高級程序設計課程打下堅實基礎。從而提高民族學生學習C語言課程的積極性。3以機考代替筆試改進考核方式南疆地區(qū)學生數(shù)學、英語基礎普遍薄弱,C語言的學習對數(shù)學基礎和英語有一定的要求,教學中,應以培養(yǎng)學生的實踐能力為目標。教學考評是衡量教學效果的重要措施,是促進教學的一種有效手段。以往的C語言課程考試同其他傳統(tǒng)科目考試方式相同,均為閉卷考試。而C語言課程是強調實際操作能力的,以往的考核方式不能真正考查學生的動手能力,學生可能在閉卷考試中成績優(yōu)秀,語法掌握得很好,可是獨立設計算法和動手編程能力卻并不強,在上機解決實際問題時依然舉步維艱6。因此,對C語言課程考核評價的改革采用了以下評分方法總成績10上課回答問題得分20實踐課程項目完成情況10課后作業(yè)完成情況10上課出勤率得分50期末上機考試成績(見表1)。上機考試成績10選擇題30程序天空50編程題(見表2)。重點考察學生對C語言核心知識點的靈活運用及編程能力。而最后的考試題目難易程度,需要根據(jù)課程中學生的學習情況進行相應的調整,做到既可以考察學生掌握的基礎知識,又可以把學生的掌握程度最大化展現(xiàn)出來。這樣經過兩大部分的考核成績綜合評定,就可以最大限度地激發(fā)學生的學習熱情和積極性,保證課程教學的質量。4結束語通過一段時間的實踐,以培養(yǎng)學生實踐能力為導向的“C語言程序設計”課程教學改革取得了一定的成效,學生學習熱情逐步回歸,特別是民族學生C語言學習更加積極主動,更多地民族學生參與到暑期軟件公司實習項目中,程序設計能力明顯提高。教師在C語言教授過程中,根據(jù)企業(yè)反饋的意見,進一步優(yōu)化課程實施方式、不斷更新教學理念、鼓勵學生進一步參與到老師實際項目中,這種應用人才培養(yǎng)模式也會逐步在其他課程中推廣使用,進一步加強C語言課程實踐型、應用型課堂教學方法研究,盡其所能,把學生培養(yǎng)成新疆信息化發(fā)展道路上需要的合格人才。
      下載積分: 3 賞幣
      上傳時間:2024-03-14
      頁數(shù): 2
      4人已閱讀
      ( 4 星級)
    • 簡介:富交互型富交互型C語言在線課程的設計與實現(xiàn)語言在線課程的設計與實現(xiàn)當前,隨著在線教育的興起,在線編程學習平臺也得以蓬勃發(fā)展,其形式多樣、內容新穎、體驗良好,解決了班級授課及課內實驗教育模式的一些缺陷,吸引了不少學生參與1。在線編程學習平臺,提供在線知識講解、編輯代碼、即時編譯等功能,國外以CODECADEMY為代表,口號正是“以交互的方式學習編程”,提供了JAVRIPT、PHP、PYTHON、RUBY等腳本編程語言的課程2。國內的“計蒜客”課程學習形式與CODECADEMY類似,提供C、C、PYTHON、數(shù)據(jù)結構、操作系統(tǒng)、數(shù)據(jù)庫等互動式的在線課程。國內的“實驗樓”,基于虛擬化技術提供IT技術實訓平臺,提供在線編程環(huán)境來進行“在線實驗”。CODECOMBAT創(chuàng)造性地將在線游戲與學習編程(COFFEE腳本語言)相結合,驅動用戶在游戲中編碼實現(xiàn)一定功能來渡過關卡,趣味性很強,思路新穎??傮w來講,在線編程學習平臺課程以用戶練習為核心,通常是任務驅動的,而且注重循序漸進。然而,由于需要提供平臺化服務,其練習模式相對單一。另外,課程的引導提示相對單調,編程練習較多而講解偏少。在線編程學習平臺課程的設計思路和表現(xiàn)形式值得借鑒,課程本身的特點和學生的學習需求還要進一步挖掘,以進一步完善在線課程,促進課堂教育和在線教育的互補融合,提高教學效率。1富交互型C語言在線課程的設計與實現(xiàn)握課程進度。在線課程的版塊形式如下⑴演示示例可交互圖形展示課程引入案例、數(shù)據(jù)運算過程、代碼執(zhí)行過程、數(shù)據(jù)存儲機制等。將已有知識經驗遷移到課程新內容,或者從C語言的底層軟硬件基礎設施如匯編語言、編譯原理、計算機體系結構等視角剖析C語言,加深對C語言及程序運行的理解。演示示例如圖1所示,單擊右側的流程圖虛線框,可以推進流程圖并選中左側的相應代碼行。⑵在線簡單練習形式多樣,包括抄寫代碼、運行代碼、調試代碼、改動代碼、模仿編程、引導編程、獨立練習任務等5,由易到難循序漸進提高初學者編程技能。⑶在線測評通過在線選擇題、填空題、判斷題等對知識點進行測評,通過對題目進行深入解析,幫助學生區(qū)分易混淆知識,避免常見錯誤。⑷在線視頻關鍵知識點制作短視頻,進行關鍵知識點的精講及總結,或者進行思維開拓。⑸在線綜合練習提供項目驅動的綜合練習,可對綜合練習的解決方案進行展示,并允許同學們留言討論。另外,提前對項目進行分解6,進行針對性練習。設計富交互型在線課程時,知識講解和編程練習居于同樣重要的地位,而且兩者的難度增加曲線非常平緩,充分考慮了初學者的特殊情況。13富交互頁面的關鍵技術
      下載積分: 5 賞幣
      上傳時間:2024-03-10
      頁數(shù): 5
      8人已閱讀
      ( 4 星級)
    • 簡介:基于創(chuàng)新人才培養(yǎng)的基于創(chuàng)新人才培養(yǎng)的C語言探究式學習研究語言探究式學習研究C語言程序設計是高等院校理工科本科生普遍開設的計算機程序設計類課程,很多院校都將C語言作為大學新生的第一門程序設計課程。學生普遍反映C語言概念多、用法活,知識點難度較大。針對C語言的課程特點和創(chuàng)新班教學具體情況,從教學模式、學生考核和課外延伸等各方面進行了一系列的探討和改進,提出一種基于創(chuàng)新人才培養(yǎng)的探究式學習模式,培養(yǎng)學生綜合運用所學知識解決問題的能力,對學生進行科學研究基本功的訓練,增強創(chuàng)新能力的培養(yǎng),促進學生全面發(fā)展,提升人才培養(yǎng)質量。1理論基礎11創(chuàng)新人才培養(yǎng)2010年7月公布的國家中長期教育改革和發(fā)展規(guī)劃綱要(20102020年)中指出高等教育的培養(yǎng)目標重點放在著力培養(yǎng)信念執(zhí)著、品德優(yōu)良、知識豐富、本領過硬的高素質專門人才和拔尖創(chuàng)新人才1。2015年5月4日國務院辦公廳關于深化高等學校創(chuàng)新創(chuàng)業(yè)教育改革的實施意見中指出“到2020年建立健全課堂教學、自主學習、結合實踐、指導幫扶、文化引領融為一體的高校創(chuàng)新創(chuàng)業(yè)教育體系,人才培養(yǎng)質量顯著提升,學生的創(chuàng)新精神、創(chuàng)業(yè)意識和創(chuàng)新創(chuàng)業(yè)能力明顯增強,投身創(chuàng)業(yè)實踐的學生顯著增加2?!眲?chuàng)新人才培養(yǎng)主要包括素質結構、知識結構和能力結構等三方取向、人文精神和創(chuàng)新思維等各種素質的綜合培養(yǎng)。然而,C語言在對學生進行價值觀方面的培養(yǎng)并不占優(yōu)勢,這就要求通過教師的言傳身教,如對教學科研工作的敬業(yè),對同學的熱情友善等行為傳遞積極向上的價值理念,結合當前社會熱點,篩選適合的例子引導學生。如對于2017年10月ALPHAZERO完勝ALPHAGO,教師可以介紹DEEPMIND的創(chuàng)始人DEMISHASSABIS因為興趣而努力并取得成功,鼓勵學生找到自己的興趣并為之奮斗。還有,對于同學都關注的NBA比賽,給大家介紹科比“凌晨四點的洛杉磯”,激勵同學為了自己的夢想堅持努力。同時,給學生提供一些國內外優(yōu)秀的網絡資源比如TED和網易公開課等,學生通過多聽多看優(yōu)秀的視頻,不僅提高了英語水平、開闊視野,還有助于更好的定位自己。22探究式學習探究式學習是C語言教學實踐中創(chuàng)新人才的知識結構和能力結構培養(yǎng)的重要組成部分。結合C語言教學內容和我校實際,將創(chuàng)新人才培養(yǎng)模式主要分為三個部分進行一部分是課內的探究式學習;另一部分是以學科競賽、科技創(chuàng)新等形式開展的課外探究式學習;第三部分是在學生掌握一定的專業(yè)理論基礎和研究能力之后的綜合探究式學習,即深入拓展研究課程在專業(yè)中的相關應用。221課內探究式學習在教學實踐中,首先,教師引導學生逐漸喜歡C語言課程,通過網上搜索最新的TIOBE編程語言排行榜,讓學生了解C語言在實際編程中的應用,演示C語言編寫的程序激發(fā)學生的學習興趣,
      下載積分: 6 賞幣
      上傳時間:2024-03-10
      頁數(shù): 8
      7人已閱讀
      ( 4 星級)
    • 簡介:基于遺傳算法的基于遺傳算法的C語言考試系統(tǒng)組卷算法的實現(xiàn)語言考試系統(tǒng)組卷算法的實現(xiàn)李今花摘要本系統(tǒng)將組卷算法和試題題庫相結合,將改進的遺傳算法應用于高校的智能組卷系統(tǒng)中,主要是從算法的染色體編碼、初始種群的生成、適應度評價函數(shù)、遺傳算子和終止判斷條件這幾個方面進行改進,從而得到滿足約束條件的最優(yōu)試卷,實現(xiàn)教考分離。【關鍵詞】題庫智能組卷遺傳算法組卷是一個考試系統(tǒng)的核心部分,通過組卷來決定試卷的題量、試卷的知識點分布、試卷類型及試卷中試題難易程度的分布。一個合理而嚴密的組卷規(guī)則是實現(xiàn)考試規(guī)范化、公平化、合理化的重要途徑,一個良好的組卷規(guī)則應該能夠保證每一套試卷在試題范圍、難度等方面保持一致性,從而保證整個試卷的信度和試卷的效度。1試卷屬性及組卷約束條件一份試卷應具有的屬性,一般為試卷的總分、答題總時間、試卷的題型、知識點分數(shù)分布、試卷難度、試卷區(qū)分度等屬性。11試卷的總分試卷總分()其中K代表試卷中的總題數(shù),SN為第N道題的2組卷策略的設計傳統(tǒng)遺傳算法中首先是產生初始群體。初始群體是采用隨機方法產生,這樣產生的初始群體可以提高組卷速率。本文設置的約束條件為根據(jù)用戶的需求設置每個題型的題量,這樣就保證了在試卷總分為用戶需求的前提下,每個試題所包含的知識點都在考試范圍即考試大綱要求內。C語言程序設計基礎課程試卷題型包含五種,分別使用A,B,C,D,E代表每種題型A類題型有X個,B類題型有Y個,C類題型有Z個,D類題型有W個,E類題型有V個,編碼方法如表L所示。同一列代表一個題型下的若干試題,在這一段編碼中不存在兩個或兩個以上相同的試題;不同的題型可以采用相同的基因編碼,從而保證同一份試卷不存在重題。根據(jù)上面討論的組卷約束條件,可以用一個矩陣T表達。本文討論的試卷約束條件為題型、分值、單題作答時間、所屬知識點、試題難度和試題區(qū)分度。則獲得矩陣TL矩陣的每一列代表約束條件的一個屬性,這里共有6個屬性第1列代表題型,第2列代表分值,第3列代表單題作答時間,第4列代表所屬知識點,第5列代表試題難度,第6列代表試題區(qū)分度。題型、分值、單題作答時間、所屬知識點、試題難度和試題區(qū)分度這6個屬性約束每一道題。矩陣一行代表一道試題。以一套C語言程序設計基礎課程試卷為例。試卷卷面分值100分,該試卷擁有的題型為單選、填空、程序設計、程序改
      下載積分: 5 賞幣
      上傳時間:2024-03-10
      頁數(shù): 4
      7人已閱讀
      ( 4 星級)
    • 簡介:C語言實驗教學新方法的探討語言實驗教學新方法的探討C語言是國內外廣泛使用的計算機語言。目前全國各高等院校面向計算機相關專業(yè)和非計算機理工科專業(yè)普遍開設了C語言作為基礎必修課程。論文檢測。作為計算機類專業(yè)基礎課,C語言是掌握計算機程序設計基本方法、形成正確的程序設計思想的入門課程,為后續(xù)專業(yè)課程的學習和拓展打下編程基礎;作為非計算機類的公共基礎課,C語言課程是激發(fā)學生邏輯思維的課程,為后續(xù)專業(yè)理論深入研究提供了有利的計算機方法和應用工具。同時隨著全國計算機等級考試(二級)的全面展開,C語言課程成為全國計算機等級考試(二級)的重點課程之一。雖然C語言課程越來越普遍,越來越重要,但是由于授課對象都是初次接觸程序設計的大學低年級學生,其豐富的語法、復雜的結構層次、新穎的思維模式讓學生會逐漸產生畏難情緒。因此,采用何種教學方法來激發(fā)學生的思維,從而提高學生的編程能力,是這門課程對我們教師的教學提出了更高的要求。通常,課堂教學以PPT或板書形式強調語言本身的語法教學,雖然學生掌握了不少語法知識,但是在面對實際問題時,卻不知如何下手,不能靈活運用,甚至學完了這門課程還不會上機調試程序、解決問題并最終實現(xiàn)目標程序。而實驗教學不同于課堂教學,它的主要任務是培養(yǎng)學生運用綜合知識的能力。因此,加強對實驗教學重要性的認識,不僅是提高學生學習效率的有效手段,也是提高C語言教學效果的重要環(huán)節(jié)。以一道例題為例MAININTIJI010J10PRINTFDDIJ在學習完數(shù)據(jù)類型和表達式章節(jié)和輸入輸出章節(jié)后,設置這道輸出程序結果的選擇題。論文檢測。學生在做這道習題時,一致認為習題給出的答案是錯誤的,同學熱烈討論過后,問老師題目答案是不是出錯了,這時老師才提示大家忽略了一個細節(jié),并告知答案沒有錯,這道題目不僅需要學生掌握自增、自減操作符的應用,還需要掌握常量的知識要點。這樣當個別同學領悟到整數(shù)常量八進制形式的這個知識點時,會留下深刻的印象。論文檢測。隨后在習題上,老師再次將這道習題作為典型例題向所有學生進行講解,如此下來,學生遇到類似的題目,會比較小心并且能深刻理解常量方面的知識點。在每屆學生學習C語言的過程中,計算機考試軟件中的題庫可以隨時根據(jù)計算機二級考試大綱進行更新,這樣既考慮到C語言課程的教學質量,同時又和二級考試緊密銜接在一起。22后期綜合性實驗經過前期基礎性實驗教學,學生慢慢適應C語言的總體結構
      下載積分: 5 賞幣
      上傳時間:2024-03-14
      頁數(shù): 5
      9人已閱讀
      ( 4 星級)
    關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯(lián)系我們

    機械圖紙源碼,實習報告等文檔下載

    備案號:浙ICP備20018660號