C語言基礎知識實例講解和C語言籍貫信息記錄程序設計_第1頁
C語言基礎知識實例講解和C語言籍貫信息記錄程序設計_第2頁
C語言基礎知識實例講解和C語言籍貫信息記錄程序設計_第3頁
C語言基礎知識實例講解和C語言籍貫信息記錄程序設計_第4頁
C語言基礎知識實例講解和C語言籍貫信息記錄程序設計_第5頁
已閱讀5頁,還剩27頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言基礎知識:實例講解這篇文章旨在讓各位對C有個總體的認識,有看不懂的地方請不必太在意,只要記住就可以了,繼續往下學下去就會明白的。首先請看下面這個簡單的C程序,猜猜它會做些什么。猜不出來也沒關系,后面會有詳細的解說。#include<stdio.h>intmain(void)/*一個簡單的程序*/{intnum;/*聲明一個名叫num的變量*/num=1;/*將1賦值給num*/printf("ThisisasimpleCprogram.");/*調用printf函數*/printf("Myfavoritenumberis%dbecauseitisfirst.",num);return0;}在對這個程序進行詳細說明之前,我想先請您用編譯器把它編譯成可執行文件,并且運行,看看運行結果和您的猜想是否一致。如果不懂如何進行編譯,請參考以下文章:下面,我將分兩步對這個程序進行詳細的講解。第一步是概要說明,也就是對程序中每一行代碼的含義作簡單講解,以幫助您對這個程序有一個大致的理解。第二步是詳細說明,也就是程序中的每一行代碼進行詳細的講解,以加深您的理解。一、概要說明#include<stdio.h><-把另外一個文件包含進來這行代碼命令編譯器把頭文件(.h文件)stdio.h中的內容包含到我們的程序中。stdio.h是C語言的標準頭文件之一,提供對鍵盤輸入和顯示輸出等的支持。要使用printf函數,就應該包含這個頭文件。順帶一提,stdio代表standardinput/output,也就是標準輸入輸出的意思。intmain(void)<-函數頭C程序由一個或多個函數組成。我們的這個程序只有一個函數:main函數。圓括號()表明main是一個函數;int表明main函數返回一個整數;void表明main函數不接受任何參數。在此,請您緊記,intmain(void)是ISO/ANSIC標準中定義的main函數定義方法之一。/*asimpleprogram*/<-注釋/*和*/用于對程序進行注釋說明,幫助讀者更快更好地理解程序。編譯器會忽略/*和*/之間的內容(包括/*和*/),不會對它們進行編譯。{<-函數體的開端這個開大括弧{標志著函數體開始。函數體以閉大括弧}結束。在{和}之間的語句都屬于這個函數。intnum;<-聲明變量num這個語句表明我們聲明了一個名叫num的變量。int表明這個變量為整型變量。num=1;<-賦值語句這個語句將1賦值給變量num。執行這個語句后,num的值等于1。printf("ThisisasimpleCprogram.");<-函數調用語句printf函數是C語言標準函數庫里的函數。這個語句調用printf函數在屏幕上顯示“ThisisasimpleCprogram.”,并且換行。是換行符,它提示printf開始新的一行,也就是將光標移動到下一行的開端。如果上面的語句中沒有,那就不會換行,而且光標會緊跟在“Thisisasimpleprogram.”后面。printf("Myfavoritenumberis%dbecauseitisfirst.",num);%d告訴printf用num的值替換掉%d,并且以整數形式顯示num的值。因為num的值為1,所以這個語句在屏幕上顯示“Myfavoritenumberis1becauseitisfirst.”,并且換行。return0;<-返回語句C程序應該返回一個數值給它的調用者。0代表程序無誤退出;而其它數字的含義則由系統決定。通常,非零(如-1)代表程序運行中遇到某種錯誤而退出。}<-函數體結束函數體以閉大括弧}結束。二、詳細說明現在,讓我們進一步來了解每一行代碼的含義。下面的內容很基礎,也很重要,必須認真弄懂,牢牢掌握。1.#include預處理指令和頭文件在編譯器對我們寫的源程序進行編譯之前,預處理器會對我們的寫的源代碼進行必要的處理,稱為預處理。#include就是一個預處理指令,它命令預處理器進行的預處理是:把特定的頭文件包含到我們的源代碼里。#include<stdio.h>的作用是將頭文件stdio.h里的內容包含進我們的程序,產生的結果是將stdio.h里的內容一字不漏地插入#include<stdio.h>出現的地方,并且刪除#include<stdio.h>。換句話說,就是用stdio.h里的內容替換#include<stdio.h>。這個過程是在預處理階段完成的。C語言的這種包含文件的機制為多個程序共享相同信息提供了極大的方便。stdio.h是C語言標準中定義了的頭文件,它包含著輸入輸出函數的信息。所有C編譯器都應該有這個頭文件,這是ANSI/ISOC標準中規定的。當然,ANSI/ISOC規定的編譯器必須提供的頭文件可不止這么一個。標準還規定了許多別的頭文件,那些我們會在以后慢慢學到。有些程序需要包含stdio.h,而有些不需要。如果上面這個例子中沒有使用printf函數,那就不需要包含stdio.h。頭文件中包含著編譯器進行編譯時所需的信息。頭文件中可能指明了函數名和函數調用方法,但是這些函數的實現代碼并不在頭文件中,而是在預先編譯好了的庫文件里。鏈接器負責在庫文件中尋找我們的程序所需的代碼,并且把那些代碼和我們寫的程序進行鏈接,從而將我的寫的程序鏈接成可執行文件。一句話,頭文件用于指導編譯器正確地將我們寫的源程序編譯成可執行文件。2.main函數在C語言中,main函數是主函數。每個C程序都必須有且只能有一個main函數(主函數)!C程序從main函數開始執行,并且在main函數中結束。int是main函數的返回值類型,它表明main函數應該返回一個整數給程序的調用者(如操作系統)。如果您想了解更多關于main函數的東西,請點擊下面的鏈接:C/C++誤區一:voidmain3.注釋/*asimpleprogram*//**/之間的內容都是注釋。對程序進行適當的注釋可以幫助讀者(包括您自己)更快更好地理解您寫的代碼。注釋可以在源程序中的任何地方書寫。/*和*/之間的任何內容(包括/*和*/)都會被編譯器忽略掉。注意:/和*必須緊挨在一起,它們之間不能有空格。/*我是注釋*//*我是跨行注釋*//*我也是注釋*/以上的注釋都是合法的;但下面的注釋是非法的,因為沒寫注釋結束標記*/。/*非法,沒有注釋結束標記下面這個注釋可能會出乎你的意料:/*我是注釋開始標記/*哦哦,我不是注釋開始標記我是注釋結束標記,我和第一個/*匹配,而不是和第二個/*匹配。*/上面這個注釋中,注釋結束標記*/和第一個/*匹配,它們之間的內容都被視為注釋。C99中增加了另外一種注釋方式,這種注釋方式使用//作為注釋符,和//處于同一行,并且在//右邊的內容都被當作注釋。/和/之間不能有空格。//我是注釋intrigue;//注釋放在這里也是合法的上面的注釋在C99中是合法的,但是在C89中是非法的。也就是說,老舊的編譯器可能不支持//注釋符。VC6支持//,TC2不支持。4.大括號與函數體C語言中,所有函數都以大括弧({})作為界定符。函數體從開大括弧{開始,以閉大括弧}結束。在后續教程中,我會對函數進行更詳細的講解。5.intnum;這個語句聲明了變量num。這一行末尾的分號(;)表明這一行是一個語句。;是語句的一部分,單獨一個;也是一個合法的C語句。int是C語言中的一個關鍵字,它代表C語言里的一種基本數據類型:整型。關鍵字是語言的保留字,不能用作其它用途。例如:我們不能關鍵字來做變量名或者函數名。標識符是指我們為變量或函數等取的名字。在這個語句中,num就是標識符。C語言中,所有變量在使用前都必須聲明。C89中,變量的聲明必須位于函數體或者程序塊的開端。例如:intmain(void)/*C89*/{/*函數體開始*/intdoors;intdogs;doors=5;dogs=3;{/*程序塊開始*/intdig;intdug;dig=6;dug=8;}/*程序塊結束*/return0;}/*函數體結束*/而在C99中,聲明可以位于函數體或者程序塊的任何地方。但是,變量仍然需要在聲明之后才可使用。例如:intmain(void)/*C99*/{/*函數體開始*/intdoors;doors=5;{/*程序塊開始*/intdig;dig=6;intdug;dug=8;}/*程序塊結束*/intdogs;dogs=3;return0;}/*函數體結束*/上面的程序在C99中是合法的,但是在C89中卻是非法的。當前支持C99的編譯器不多,所以上面的代碼您的編譯器很有可能編譯不了。故而,為了使我們的代碼具有良好的可移植性,我們應該盡可能少用,甚至不用C99中的新特性。6.賦值num=1;賦值是C語言中的一種基本操作。上面的語句是一個賦值語句,它的含義是:將1賦值給變量num。賦值操作完成后,num的值等于1。7.printf函數printf("ThisisasimpleCprogram.");printf("Myfavoritenumberis%dbecauseitisfirst.",num);這兩行代碼都調用了printf函數。printf是一個標準C函數,也就是說,它是C語言標準函數庫里定義了的函數。圓括號()表明printf是一個函數,圓括號里的內容會被傳遞給printf函數。例如,上面第一行代碼把“ThisisasimpleCprogram.”(不包括雙引號)傳遞給printf函數,然后由printf函數把這些信息顯示于顯示器。是換行符,它提示printf開始新的一行。正因為是換行符,所以不會顯示出來,而是進行了換行。如果上面的語句中沒有,那就不會換行。上面代碼第二行中的%d告訴printf用num的值替換掉%d,并且以整數形式顯示num的值。%d被稱為占位符,它告訴printf應該在什么地方顯示num的值。%用于提醒printf在此處顯示一個變量的值(本例中是num的值);d告訴printf以十進制整數的形式顯示num的值。8.return(返回)語句return0;這個return語句是我們程序中的最后一個語句。intmain(void)中的int表示main函數應該返回一個整數,所以我們要使用return語句來返回一個整數。如果您想了解更多關于返回值的東西,請點擊下面鏈接,查看文章的第四點。C/C++誤區一:voidmain上面所說的某些內容您暫時可能還不太理解,但是不用害怕,牢牢地把它們記住,然后繼續往下學吧!隨著學習的深入,就會逐漸搞明白。現階段只要有這個概念就足夠了。C語言程序實例講解(二)首先請看以下代碼,并且和我們的第一個C程序比較比較,看看這個程序新增了什么知識點。/*meter2centimeters.c--以厘米為單位來表示兩米*/#include<stdio.h>intmain(void){intmeters,centimeters;meters=2;centimeters=100*meters;/*100乘以meters*/printf("%d-meterisequalto%dcentimeters.",meters,centimeters);printf("Yes,Isaid%dcentimeters!",100*meters);return0;}下面我們來仔細分析這個小程序。1.文檔這段代碼頭部的注釋標明了文件名和程序的作用,我們把這些注釋稱為文檔。寫文檔是一個很好的習慣,可以幫助我們了解程序的作用。在由多個源文件組成的程序中,文檔顯得更為重要。由于我們目前為止所寫的都是很簡單的程序,您也許還不覺得寫文檔有多大的作用,甚至還覺得浪費時間。但是我們應該養成寫文檔的習慣,這對我們以后寫復雜的程序很有幫助。對于復雜程序,我們應該盡可能把文檔寫得更詳盡。可以參考以下格式:/****************************************************文件名:meter2centimeters.c*作者:Antiglossat*編寫日期:05-9-90:00*最后修改日期:05-9-90:00*功能:以厘米為單位來表示兩米*算法:1米=100厘米**************************************************/2.多重聲明intmeters,centimeters;上面那句聲明語句聲明了兩個變量。我們可以在一句聲明語句中聲明任意數目的變量,只要變量名之間用逗號(,)隔開就可以了。例如下面這個語句聲明了4個變量。inta,b,c,d;3.乘法運算C語言中,*是乘法運算符,所以centimeters=100*meters;的意思是:用100乘以變量meters的值(本例中為2),然后把相乘的結果賦值給變量centimeters。4.printf函數printf("%d-meterisequalto%dcentimeters.",meters,centimeters);上面這個語句中占位符%d出現了兩次。第一個%d由變量meters的值替換;而第二個%d則由centimeters的值替換。注意:每個變量由逗號(,)隔開;"%d-meterisequalto%dcentimeters."中的雙引號是必須的,而且必須是英文的雙引號,不能是中文的雙引號。printf("Yes,Isaid%dcentimeters!",100*meters);上面這個語句表明,用于替換占位符的不僅僅可以是變量,也可以是表達式(100*meters是一個乘法表達式)。桂林理工大學博文管理學院實習報告實習名稱:C語言課程設計專業班級:通信學生姓名:學號:指導老師:實習時間:20XX年6月6日至20XX年6月17日目錄1設計目的 42功能描述 42.1模塊功能 42.1.1添加功能 42.1.2刪除功能 42.1.3查詢功能 43總體設計 103.1功能模塊設計 103.1.1添加功能設計 103.1.2刪除功能設計 113.1.3查詢功能設計 113.2數據結構設計 113.3函數功能描述 113.3.1#include<stdio.h> 113.3.2#include<ctype.h> 113.3.3#include<string.h> 113.3.4#include<stdlib.h> 123.3.5各功能描述 124程序實現 124.2運行結果 135總結 17

C語言課程設計學生籍貫信息記錄設計要求:基本功能可以存儲學生信息;按學號和姓名查找該學生的籍貫;按籍貫可以查詢所有學生的信息;可以對學生的信息加以修改;可以刪除學生的信息;拓展功能寫入文件讀取文件創新(自擬)功能:程序實現的其它功能由個人自擬。設計要求具體說明學生籍貫信息包括:學號、姓名、省份,縣市名稱。試設計一學生籍貫信息管理,使之能提供以下功能:1)系統以菜單方式工作(用鍵盤輸入1~8之間的數來選擇功能,其中8為退出);2)學生籍貫信息錄入功能(包括學號、姓名、省份、縣市名稱);3)學生籍貫信息整體瀏覽功能;4)按學號查詢學生籍貫信息;5)按省份查詢統計學生人數信息;6)按照學號查詢修改學生信息;7)按照輸入的學號信息的刪除學生籍貫記錄信息。8)根據“省份”由小到大排序。題目要求按分析、設計、編碼、調試和測試的軟件開發過程完成這個應用程序。2)為各項操作功能設計一個菜單。應用程序運行后,先顯示這個菜單,然后用戶通過菜單項選擇希望進行的操作項目。3)界面應友好,操作應流暢。輸入要求應用程序運行后,在屏幕上顯示一個菜單。用戶可以根據需求,選定相應的操作項目。進入每個操作后,一般應有相應的子菜單,或有相應的提示信息,根據提示信息的要求,從鍵盤或文件輸入相應的信息。輸出要求應用程序運行后,要在屏幕上顯示一個菜單。2)要求用戶輸入數據時,要給出清晰、明確的提示信息,包括輸入的數據內容、格式及結束方式等。提示設計一個結構體類型和一維數組類型,用來存放學生籍貫記錄信息。1設計目的1.鞏固和加深學生對C語言課程的基本知識的理解和掌握;2.掌握C語言編程和程序調試的基本技能;3.利用C語言進行基本的軟件設計;4.掌握書寫程序設計說明文檔的能力5.提高運用C語言解決實際問題的能力2功能描述2.1模塊功能2.1.1添加功能添加學生基本信息中可以輸入學生學號,學生姓名和學生班級。添加學生成績可以輸入學生的學號、姓名、省份,縣市。并且可以判斷輸入數據的合法性。2.1.2刪除功能能夠刪除輸入錯誤或者不想要的陳舊信息。2.1.3查詢功能能查詢學生基本信息開始開始提示輸入檢查學的合法性放入結構體數組中YN結束圖2添加(學生籍貫信息)開始開始提示輸入姓名檢查姓名的合法性輸入學號檢查學號合法性輸入籍貫檢查籍貫的合法性記錄放入結構體數組中結束YNYNYN圖3添加(學生成績)開始開始提示輸入檢查調出學生籍貫信息刪除結束YN圖4刪除(學生籍貫信息)開始開始提示輸入檢查刪除結束YN圖5刪除(學生籍貫信息)開始開始輸入查詢的姓名判斷姓名是否存在Y輸出籍貫信息結束N圖6查詢(學生籍貫信息查詢)開始開始輸入查詢的學號n判斷學生存在輸出該學生籍貫信息結束YN圖7查詢(學生籍貫信息)3總體設計3.1功能模塊設計3.1.1添加功能設計

添加分為兩部分添加學生基本信息學號。添加學生基本信息中要求輸入學號、姓名、省份,縣市。添加學生成績要求輸入學生的課學號、姓名、省份,縣市。其中用結構體來建立輸入的學生信息的形式。兩個結構體間用靜態鏈表連接,使其聯系起來。3.1.2刪除功能設計刪除也分為兩部分刪除學生基本信息。刪除用后一個來覆蓋前一個原理進行操作。3.1.3查詢功能設計查詢學生成績可以用3種方法來進行。學號、姓名、省份,縣市。班級查詢,可輸入課程代號,可得班平均分。3.2數據結構設計先建立兩個結構體studen1,student2。再設立全局變量,建立循環以驗證輸入的合法性,全局變量累加,全局變量累減。3.3函數功能描述3.3.1#include<stdio.h>在使用標準函數庫中的輸入輸出函數時,編譯系統要求程序提供有關的信息(例如對這些輸入輸出函數的聲明),#include<stdio.h>的作用就是用來提供這些信息的,stdio.h是C編譯系統提供的一個文件名,stdio是“standardinput&output”的縮寫,即有關標準輸入輸出的信息。在程序中用到系統提供的標準函數庫中的輸入輸出函數時,應在程序的開頭寫上一行:#include"stdio.h"或者是#include<stdio.h>,這樣才能調用庫函數3.3.2#include<ctype.h>#include<ctype.h>是在調用字符函數時,在源文件中包含的頭文件。字符函數如:intisspace(intch);檢查ch是否為空格制表或換行字符。“ctype”中c為字符型char的縮寫,type為類型。3.3.3#include<string.h>string.h是個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論