




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
必備知識函數在C語言中,函數的使用步驟一般應遵循“先聲明,再定義,然后調用”的原則。聲明格式數據類型標識符
函數名(形式參數列表);定義格式數據類型標識符
函數名(形式參數列表){函數體}函
數在C語言中,函數的使用步驟一般應遵循“先聲明,再定義,然后調用”的原則。調用格式函數名
(實際參數列表);調用方式單獨調用賦值調用在表達式中作為一個運算對象在函數調用時作為一個實際參數函
數參數的概念形參是函數聲明、定義時作為函數的入口所定義的變量,在函數體的代碼中使用以完成函數的功能。實參是函數調用時,從主函數傳入的值,實現實參與形參之間的數據傳遞。函數的參數函數的調用過程在函數的定義中,雖然形參是變量定義的列表,但是在未出現函數調用時,形參不占用內存中的存儲單元當函數發生調用時,形參臨時分配到內存的存儲單元,主調函數將實參的值傳遞到對應的形參形參獲得初值,參與到函數體的執行若函數有返回值,則通過return語句將返回值帶回到主調函數調用結束后,形參在內存中的存儲單元被釋放函數的參數作用將函數的返回值帶回給主調函數,并結束調用結束函數的調用return語句普通變量做形參由于函數調用的時候只是實參向形參傳遞了數據,它們之間互相不受影響。那么,普通變量做形參的時候,其變化不會影響到形參的值。函數的參數2024/7/30 1程序設計高階宏定義《程序設計基礎》2024/7/30 22#definePI
3.14159宏定義int
r=10doublearea=10*3.14159intr=10double
area=10*PI宏定義講解宏定義是高級語言編譯器提供的常用語法,目的是利用某一標識符標識某個文本字符串,優點是程序簡潔,可讀性好,而且當需要修改這些相同的程序片段時,只需要修改宏定義中的字符串即可,無需修改多處。2024/7/30 33當作常量使用當作函數使用編譯預處理宏怎么用宏有三種用法。2024/7/30 44預定義宏作用FILE表示當前源文件LINE當前所在文件的行號DATE文件被編譯的日期TIME文件被編譯的時間預定義宏#include
<stdio.h>intmain()
{printf("%s\n",
FILE
);
//當前源文件printf("%s\n",
DATE
);
//文件被編譯的日期}宏定義常量2024/7/30 55宏的第二種用法是當函數使用,其實就是帶參數的宏#define
標識符(參數...)
代碼#include<stdio.h>#defineareasquare(r)((r)*(r))intmain()
{printf("%d\n",areasquare(10));}帶參數的宏2024/7/30 66前面我們用到的是帶值的宏,有時我們也會使用沒有值的宏,這種宏用于條件編譯,如#ifdef等他的作用是檢查宏是否被定義過。#include
<stdio.h>#define
TESTint
main(){#ifdefTESTprintf("yes\n");#elseprintf("no\n");#endif}輸出結果為yes編譯預處理必備知識指針變量定義格式數據類型標識符
*指針變量名;指針變量的概念在計算機的內存中,有大量的存儲單元,計算機系統為便于管理,每一個存儲單元都有一個唯一的編號,這個編號就是存儲單元的地址。變量根據不同的數據類型被分配了相應字節的存儲單元用于存儲變量的值,這些存儲單元的首地址就成了該變量的地址,一個變量的地址就是該變量的指針,而一個變量存放著另一個變量的地址,則稱為指針變量。指針變量賦值格式指針變量名
=
&變量名;指針變量名
=
數組名;初始化格式數據類型標識符
*指針變量名
=
&變量名;引用格式引用指針變量引用指針變量指向的變量指針變量定義指針變量指向指針變量的指針變量是將一個指針變量的地址賦值給另一個指針變量。格式數據類型標識符
*
*指針變量名;指針數組指針數組的概念若一個數組,它的元素都是指針變量,則稱為指針數組。也就是說,指針數組的每一個元素都可以存放一個地址。定義一維指針數組格式數據類型標識符
*數組名[常量表達式];描述學生基本信息學生和班級信息組織(C)結構體結構體成員訪問任務介紹必備知識任務拓展任務實現學生的基本信息涉及學號、姓名、出生日期、手機號碼、性別、籍貫、三門課程成績等,其中涉及整型、實型、字符型數據,也涉及字符串,如何將這些不同數據類型的變量、字符串理解成描述一個學生基本信息,以便提高程序的可讀性。請先思考和了解以下問題。C語言能否建立由不同類型數據的組合型的數據集合?一個學生的基本信息在C語言中用哪些基本的數據類型描述?任務介紹
【任務導引】3針對這樣一個集合,如何去操作集合里面的數據?1 2在實際應用中,某個事物常常需要由不同數據類型的、相互關聯的一組數據描述(如我國需要各不同民族的大團結),如果獨立的定義變量、數組,會很難反映出它們之間的內在聯系,會影響到程序的可讀性,也更容易產生錯誤。C語言允許用戶自定義一種數據類型將這些數據有機的結合起來用一個量表示,這就是結構體。結構體結構體成員訪問任務介紹
【知識目標】什么是結構體結構體作為不同類型數據的集合,首先需要定義一個結構體類型,形式如下。可以是指針變量、變量、數組等可以是整型、實型、字符型的各種類型及自定義的結構體類型中華民族{漢族;蒙古族;回族;藏族;維吾爾族;苗族;彝族;壯族;布依族;朝鮮族;滿族;侗族;瑤族;白族;土家族;哈尼族;哈薩克族;傣族;黎族;僳僳族;佤族;畬族;高山族;拉祜族;水族;東鄉族;納西族;景頗族;柯爾克孜族;土族;達斡爾族;仫佬族;羌族;布朗族;撒拉族;毛南族;仡佬族;錫伯族;阿昌族;普米族;塔吉克族;怒族;烏孜別克族;俄羅斯族;鄂溫克族;德昂族;保安族;裕固族;京族;塔塔爾族;獨龍族;鄂倫春族;赫哲族;門巴族;珞巴族;基諾族};結構
體結構體定義例子結構
體結構體變量的定義結構體類型定義后,程序中就多了一種新的數據類型。自定義結構體數據類型并沒有分配內存空間,只有利用它聲明了結構體類型的變量后,才會分配存儲空間。在定義了結構體類型后,利用它定義結構體變量。struct
結構體類型名
結構體變量名;structstudent
stu1;結構體變量的定義也可以在定義結構體類型的同時定義。struct
結構體類型名{成員列表}變量名1,變量名2;單獨定義和結構體類型同時定義結構
體結構體變量的初始化結構體變量的初始化是指在聲明結構體變量的同時就給變量賦初始值。struct
結構體類型名
結構體變量名={初始值列表};結構
體描述學生基本信息學生和班級信息組織(C)結構體結構體成員訪問任務介紹必備知識任務拓展任務實現結構體成員訪問有了結構體變量,接著就要考慮對結構體成員的引用,既可以對結構體變量進行整體引用,也可以對結構體變量內部成員進行引用;結構體變量在整體引用時,只局限在兩個同類型的結構體變量之間進行賦值,也就是把一個結構體變量的各成員賦給另外一個結構體變量的對應成員。structstudentstu1,stu2;stu1=stu2;格式:結構體變量名.成員名結構體成員訪問整體引用成員變量引用描述班級基本信息學生和班級信息組織(C)結構體數組結構體的嵌套使用任務介紹必備知識任務拓展任務實現為何要嵌套在定義一個結構體類型時,需要有成員的列表,這些成員都是特定數據類型的變量、數組、指針變量等,其中也允許其成員是另一個結構體類型的變量、數組、指針變量,這就是結構體的嵌套使用;結構體的嵌套使用描述班級基本信息學生和班級信息組織(C)結構體數組結構體的嵌套使用任務介紹必備知識任務拓展任務實現結構體作為一種數據類型,除了定義變量,也可以定義數組、指針變量,也可以將結構體變量作為另一個結構體類型的成員。結構體數組任務介紹
【知識目標】定義用結構體變量可以表示一個學生的信息,如果要對全班所有同學的信息進行處理,就可以使用結構體數組。形式如下:struct結構體類型名 結構體數組名[常量表達式]結構體數組單獨定義和結構體一起定義初始化結構體數組也能在定義時進行初始化,形式為:struct
結構體類型名
結構體數組名[常量表達式]={初值列表};結構體數組元素的引用和元素的成員訪問結構體數組元素的引用只需要利用數組元素的下標,形式為:結構體數組名[下標表達式];若要訪問數組元素內的成員,形式為:結構體數組名[下標表達式].成員名;結構體數組結構體指針變量聲明結構體類型的變量時,系統會分配連續的內存存儲單元,這些存儲單元的首地址就是該結構體的地址,也就是指向該結構體變量的指針。結構體指針變量是存放該首地址的變量。struct
結構體類型名
*結構體指針變量名稱;我們可以將另一個結構體變量的地址賦值給指針變量:結構體指針變量名=&結構體變量名;結構體數組指針變量的成員訪問在結構體指針變量已經被賦值的前提下,需要通過結構體指針變量訪問成員(*結構體指針變量名).成員(*結構體指針變量名[下標]).成員結構體指針變量名->成員結構體指針變量名[下標]->成員結構體數組結構體數組程序設計高階文件輸入輸出《程序設計基礎》“文件”一般指存儲在外部介質上數據的集合。C語言中主要用到兩種文件程序文件和數據文件。文件相關概念程序文件文件標識數據文件文件緩沖區文件相關概念下面介紹一些有關文件的基本概念。程序文件包括源程序文件(后綴為.c)、目標文件(后綴為.obj)、可執行文件(后綴為.exe)等,這種文件的內容是程序代碼。數據文件的內容不是程序,而是供程序運行時讀寫的數據,其根據數據的組織形式可分為文本文件和二進制文件。文件相關概念要訪問文件首先要獲得文件標識也就是文件名,文件標識包含3部分,文件路徑、文件名主干和文件后綴。在C語言中采用“緩沖文件系統”處理數據文件。系統自動地在內存區為程序中每一個正在使用的文件開辟一個文件緩沖區,在向文件輸出數據時,它就作為輸出緩沖區,數據“裝滿”緩沖區后一起送到磁盤。在從文件輸入數據時,它就作為輸入緩沖區,從磁盤讀出一批數據,送到緩沖區,最后送到程序。定義文件指針格式FILE
*指針名;文件指針C程序通過文件的指針并加上一些函數然后對文件進行操作的。這個指針是用來存放文件的首地址。這個指針是專門用來指向文件的。可以用fopen函數來打開和關閉文件。語法格式:fopen(文件名,使用文件方式)例如:fopen("a1","r");fopen函數的返回值是指向a1文件的指針變量(即a1文件信息區的起始地址)。通常將fopen函數的返回值賦給一個指向文件的指針變量。如FILE*fp;fp=fopen("a1","r");參數值說明r只讀w只寫a追加+可讀可寫b以二進制方式打開t以文本方式打開打開文件函數調用形式說明fgetcfgetc(fp)從fp指向的文件讀入一個字符,讀成功帶回所讀字符,失敗返回EOFfputcfputc(ch,fp)把字符ch寫到文件指針變量fp所指向的文件中,成功返回輸出的字符,失敗則返回EOFfgetsfgets(str,n,fp)從fp指向的文件讀入一個長度為(n-1)的字符串,存放到字符數組str中,返回值為地址str或NULL,如果讀完字符串之前遇到’\n’或EOF,讀入結束,’\n’也作為一個字符讀入。fputsfputs(str,fp)把str所指向的字符串寫到文件指針變量fp所指向的文件中。輸出成功返回0,否則返回非0值。順序讀寫數據文件對文本文件讀入或輸出一個字符的函數。函數調用形式樣例fprintffprintf(文件指針,格式化字符串,輸出表列)fprintf(fp,"%d,%6.2f",i,f)fscanffscanf(文件指針,格式化字符串,輸入表列)fscanf(fp,"%d,%f",&i,&f);用二進制方式向文件讀寫一組數據。函數調用形式說明freadfread(buffer,size,count,fp)從文件讀入count個size大小的數據項,放在地址buffer中。fwritefwrite(buffer,size,count,fp)把從地址buffer開始的存儲區中的數據向文件輸出。順序讀寫數據文件用格式化的方式讀寫文本文件。關閉文件的目的是防止結束程序時數據丟失。因為向文件寫數據時,是先將數據輸出到緩沖區,待緩沖區充滿后才正式輸出給文件,當數據未充滿緩沖區時程序結束運行,有可能使緩沖區的數據丟失。用fclose函數關閉數據文件用法:fclose(文件指針),如fclose(fp);fclose函數也帶回一個值,當成功的執行了關閉操作,則返回為0,否則返回EOF(-1)。關閉文件程序設計高階位運算《程序設計基礎》位運算符功能舉例~按位取反~a對變量a的全部位取反<<左移a<<n將變量a的各位左移n位,高位丟失低位補0>>右移a>>n將變量a的各位右移n位,高位補0低位丟失&按位與a&b對a和b的各對應位進行“按位與”運算|按位或a|b對a和b的各對應位進行“按位或”運算^按位異或a^b對a和b的各對應位進行“按位異或”運算位運算符C語言有一個重要特點就是可以直接對二進制位進行操作,即位運算。通過a
&
1
來統計當前
a的最低位是否為
1,同時每次直接對
a進行右移并高位補
0。按位運算在算法設計中的使用統計二進制數中1的個數給一個從0~n的連續整數數組,找出數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南司法警官職業學院《園林設計初步》2023-2024學年第一學期期末試卷
- 浙江省紹興縣楊汛橋鎮中學2024年七上數學期末復習檢測試題含解析
- 廣州工商學院《雙語食品工程原理》2023-2024學年第一學期期末試卷
- 電工維修試題及答案
- 檔案職稱考試試題及答案
- 北京航空航天大學北海學院《影視文學與評論》2023-2024學年第一學期期末試卷
- 70道面試題及答案大全
- 沈陽航空航天大學北方科技學院《古代文學3》2023-2024學年第一學期期末試卷
- 云南師范大學《食品調味與感官分析》2023-2024學年第一學期期末試卷
- 吉林交通職業技術學院《藥物分析家庭安全合理用藥》2023-2024學年第一學期期末試卷
- 園林工程分部(子分部)工程、分項工程劃分
- 【MOOC】人像攝影-中國傳媒大學 中國大學慕課MOOC答案
- 派出所應對校園突發事件應急預案
- 燃氣管道防火防爆安全方案
- 網絡安全漏洞挖掘與報告
- 埋地消防管滲漏整改工程施工方案
- 裝飾裝修施工人員安全知識培訓考試試卷及答案
- 2023年上海市普通高中學業水平合格性考試地理試題及答案
- 宿舍消防安全培訓課件
- 2024版小學一年級下冊綜合實踐活動模擬試卷
- 江蘇2024年江蘇省美術館招聘筆試歷年典型考題及考點附答案解析
評論
0/150
提交評論