C語言程序設(shè)計總結(jié)_第1頁
C語言程序設(shè)計總結(jié)_第2頁
C語言程序設(shè)計總結(jié)_第3頁
C語言程序設(shè)計總結(jié)_第4頁
C語言程序設(shè)計總結(jié)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、C 語言程序設(shè)計總結(jié)一、 C 語言程序的基本結(jié)構(gòu)#include “ stdio.h ”void main()定義變量 ;程序?qū)崿F(xiàn) ;輸出結(jié)果 ; printf、變量的定義1整型: int a , b, s=0; ( 可以在定義的同時為變量進(jìn)行賦值 ) 長整型: long無符號整型(非負(fù)整數(shù)) : unsigned2單精度實型: float x, y, z=1.0 ;3雙精度實型: double l,m;4. 字符型: char c1= ' Ac'2=,'b '三、變量的賦值1直接賦值: a=10 ;/ 用賦值號“ = ”將右側(cè)的值賦給左側(cè)的變量2賦表達(dá)式的值:

2、 a=3+7;3. 賦另外一個變量的值: a=s; / 把 s 的值賦給 a變量的輸入:輸入一個變量: scanf( “% d”, &a);輸入多個變量: scanf( “%d%d%d ”,&a, &b, &c);int-%dfloat-%fchar-%cdouble-%lf字符串 -%s變量的輸出:輸出一個提示語句: printf( “xxxxxx ”); 輸出一個回車: printf( “n ”);輸出一個變量: printf( “xxx is %d ”,a); 輸出多個變量: printf( “xxxx%d, xxxx%d ”,a,b); 練習(xí):1 輸入圓

3、的半徑,求圓的周長。四、常用流程控制語句分支語句:根據(jù)條件執(zhí)行相應(yīng)的語句條件的形式:a大于0寫成a>0a小于0寫成a<0a等于0寫成a=0(注意,用兩個=)a大于等于0并且小于等于10 寫成 a>=0&&a<=10a小于0或者a大于10 寫成a<0 | a>10(一)單分支if語句(如果滿足某個條件,就做某件事情,不滿足就向下執(zhí)行。)if(條件)執(zhí)行語句;(二)雙分支if語句(如果滿足某個條件,就做某件事情,否則就做另外一件事情。)if(條件)執(zhí)行語句1; else執(zhí)行語句2; (三)多分支if語句(滿足哪一個條件,就做相應(yīng)的語句。)if(條

4、件1)執(zhí)行語句1; else if(條件 2)執(zhí)行語句2; else if(條件 3)執(zhí)行語句3;else if(條件 4)執(zhí)行語句4; else執(zhí)行語句5; (四)if的嵌套(根據(jù)具體情況對ifelse語句進(jìn)行靈活的運用)其格式如下:if(條件1)if(條件2)執(zhí)行語句a; else執(zhí)行語句b; elseif(條件3)執(zhí)行語句c; else執(zhí)行語句d; (五) 多分支語句 switch (根據(jù)switch后的值,執(zhí)行相對應(yīng)的case語句,此語句了解即可,因為它的作用完全可以用多分支if來實現(xiàn))switch (表達(dá)式)case 值 1: 語句 1; break;case 值 2: 語句 2;

5、break;case 值 3: 語句 4; break;case 值 n: 語句 n; break;default: 語句 n+1;練習(xí):2. 某自助餐廳規(guī)定,浪費食物在20克以下的,每克罰款2元;如浪費超過20 克,則超過的部分每克加罰1元。編程求罰款金額。3. 從鍵盤輸入正方形的邊長,如果邊長大于零則求出該正方形的周長和面積, 否則提示輸入錯誤。4. 輸入3個數(shù)x,y,z,求其中的最小值。5. 輸入3個數(shù)x,y,z,將其中最大值放在x中,最小值放在z中,中間值放在 y中,然后輸出x,y,z。循環(huán)語句:在條件成立時重復(fù)執(zhí)行一組語句(一)當(dāng)型循環(huán) whilewhile(條件)循環(huán)體例如:求 1

6、+2+3+-100 int n=1,s=0;while( *=100)s=s+n;n=n+1;(二)直到型循環(huán) dowhile例如:求 1+2+3+-100dointn=1,s=0;do循環(huán)體 while(條件);s=s+n;n=n+1; while( n <=100);(三)知起至型循環(huán) for例如:求 1+2+3+-100for(循環(huán)變量初值;循環(huán)變量氾圍;步長)intn=1,s=0;for(n=0 ;n<=100; n+)循環(huán)體s=s+n;(四)循環(huán)的嵌套說明:for(i=1;i< n;i+)1.假設(shè)某冋學(xué)參與“打氣球游戲”,該同學(xué)可以打5局,每局可以打10槍。這里的每

7、局10槍就相當(dāng)于內(nèi)循環(huán)的for(j=1;j<m;j+)次數(shù);5局就相當(dāng)于5個10槍,也就是外循環(huán)的次數(shù)。2.這5*10槍不是一次性打完的,而且每一槍都要記是哪一局的哪一槍打出來的成績,哪一局對應(yīng)的是i,哪一槍對應(yīng)的是j。(五)使用break可以強制退出循環(huán),其用法必須配合if來使用:例如:for(i=0;i<100;i+)if(條件)break;練習(xí):1. 編程求出公式s=1-1/3 + 1/5-1/7+1/101的值并輸出2. 編程輸出如下圖形:3. 編程打印九九乘法表4. 編程打印出2016年1月份的日歷注意:1月份的總天數(shù)是31天,其中1日是星期五。日歷如下:-一-二二三四五

8、六日12345678910111213141516171819202122232425262728293031void mai n() int i,n,d; /i 是循環(huán)變量 ,n 代表總天數(shù) ,d 代表星期 ;n=31; /n 代表一個月的天數(shù)d=5; /d 代表星期,星期一為 1,星期五為 5,星期日為 7printf(" 一 二 三 四 五 六 日 n"); / 一個漢字占兩個字符的位置 for(i=1;i<d;i+) / 開始日期之前用空格占位,每個日期對應(yīng) 3 個空格 printf(" ");for(i=1;i<=n;i+,d+)

9、printf("%3d",i);if(d%7=0)printf("n");5. 在第 4 題的程序上進(jìn)行修改,如果輸入任意一個月的總天數(shù)及該月第一天的 星期(1代表星期日,2代表星期一以此類推),能否打印出該月日歷6. 計算 x 的 n 次方 (x 為雙精度, n 為非負(fù)整數(shù) ) void main()double x,s;unsigned n,i;s=1;printf(" 請輸入 x 和 n: ");scanf("%lf%u",&x,&n);for(i=1;i<=n;i+)s=s*x;pri

10、ntf("jieguo is %.2lf",s);四、數(shù)組一維數(shù)組1. 一維數(shù)組:名字相同且?guī)в邢聵?biāo)的一組變量2. 定義形式:類型名 數(shù)組名長度例如:int a10a數(shù)組中包含有 10個整型變量,名字分別是 a0、a1、a2a9這里每一個an都是一個普通的整數(shù)變量3. 一維數(shù)組的初始化:定義數(shù)組的時候就給每個數(shù)組元素賦值int a5=2,4,6,8,10;4. 對a數(shù)組中的每一個元素依次進(jìn)行操作(訪問)的方法如下:int i;for(i=0;i<9;i+). ai 例如:通過鍵盤輸入給a數(shù)組中的每個元素賦值將a數(shù)組中每一個元素都擴大2倍統(tǒng)計a數(shù)組中奇數(shù)的個數(shù)求a數(shù)組中

11、的最大值把a數(shù)組的元素進(jìn)行逆置把a數(shù)組中的元素進(jìn)行右移練習(xí):1. 從一維數(shù)組中查找 x,并返回x所在的位置,否則提示沒有找到。2. 求fibonacci數(shù)列的第n項。3. 求任意一個數(shù)的1.21.6倍存入數(shù)組。4. 數(shù)組中存入10個數(shù)并進(jìn)行循環(huán)左移二維數(shù)組1. 二維數(shù)組:名稱相同且?guī)в?個下標(biāo)的一堆變量,邏輯上可看成 n行m列的二維表格。2. 定義形式:類型名 數(shù)組名行長度列長度例如:int a34這里a數(shù)組中包含有3*4=12個數(shù)組元素,這12個元素的名字分別是:a00a01a02a03a10a11a12a13a20a21a22a233.二維數(shù)組的初始化:int a34=1,2,3,4,5,

12、6,7,8,9,10,11,12;4.對a中數(shù)組元素的訪問,需要定義2個下標(biāo)變量i和j, aij代表第i行第j列的元素。按行的順序訪問:按列的順序訪問:int i,j;int i,j;for(i=0;i<3;i+)for(j=0;j<4;j+)for(j=0;j<4;j+)for(i=0;i<3;i+)aijaij例如:為二維數(shù)組中的每一個元素賦值將二維數(shù)組轉(zhuǎn)置輸出(行變列,列變行) 求每行的平均值求每列的總和求列上的最小值5行列相等的二維數(shù)組叫做矩陣,對矩陣的操作有:求主對角線的和求次對角線的平均值輸出該矩陣的上半三角元素練習(xí):1. 對一個3*4的數(shù)組,求列上的平均值

13、2. 求一個3*3矩陣的主、次對角線的平均值3. 利用數(shù)組輸出以下圖形22224226622S1282210202010221230403012 2字符串1. 字符串:字符型的一維數(shù)組,可以存儲一串字符,并以0做為結(jié)束標(biāo)志。2 字符串的輸入與輸出char str120,str220,str320;gets(strl);/字符串的輸入scanf( %s”,st;/字符串的輸入puts(strl); /字符串的輸出;printf( %s”,str2);/ 字符串的輸出;3 .對字符串的訪問:如有char s120; int n;字符串的長度:n=strle n( s1);第一個字符:s10;最后一

14、個字符:s1 n-10 '的位置:s1n從第一個字符訪問到最后一個字符:char s120;int i;gets(s1);for(i=0;si!=0;i+)si;從最后一個字符訪問到第一個字符:char s120;int i;gets(s1);for(i= strle n(s1)-1;i>=0;i-)si;4.字符串常用函數(shù):注意:用以下函數(shù)需要用#ineludestring.h "引入頭文件。連接字符串:strcat(str1,str2)比較兩個字符串的大小:strcmp(str1,str2);求字符串的長度:strle n(str1);在字符串中查找一個字符,并返回

15、其位置:char c= 'a”strchr(str1, c);復(fù)制字符串:strcpy(str3,str1);在字符串str1中查找字串str2的位置:strstr(str1,str2)5 字符串常見操作把字符串逆置判斷是否為回文五、函數(shù)(一)函數(shù)的定義:1 無返回值、無參函數(shù)的定義:例:定義一個能夠輸出void f1()int i;for(i=1;i<=10;i+) pri ntf(* ”;return;10個” ”的程序。void 函數(shù)名() 定義變量; 實現(xiàn)功能; 返回;2.無返回值、有參函數(shù)的定義:例:定義一個能夠輸出n個”的程序void 函數(shù)名(參數(shù)定義列表)voidf

16、2(i nt n)定義變量;int i;實現(xiàn)功能;for(i=1;i<=n ;i+)返回;pri ntf( * ”;return;例:定義一個能夠輸出n個指定字符的程序。void f3(char c,i nt n)1int i;for(i=1;i<=n ;i+)printf(%c ”,c);return;3有返回值有參函數(shù)的定義:例:定義一個計算兩個整數(shù)加法的函數(shù)。類型函數(shù)名(參數(shù)定義列表)int f4(i nt x,i nt y)定義變量;實現(xiàn)功能; 返回計算結(jié)果;這里”類型”一定要與”計算結(jié)果”一致。return (x+y);例:疋義一個能判斷奇數(shù)的函數(shù)int f5(i nt

17、x)if(x%2=1)return 1;elsereturn 0;(二) 函數(shù)的調(diào)用1 無參函數(shù)調(diào)用:函數(shù)名 ()2 有參函數(shù)調(diào)用:函數(shù)名(實參列表)這里的實參可以是一個具體的值,或者一個已經(jīng)有值的變量,也可以是一個表達(dá)式。3 函數(shù)的調(diào)用可以成為一個獨立的語句,也可以參與到表達(dá)式中進(jìn)行計算。例如:調(diào)用fl函數(shù):f1()調(diào)用 f2 函數(shù):f2(5) 或 int n=20; f2(n);調(diào)用 f3 函數(shù):f3(,10)或 char cc= ''nt n=8; f3(cc,n);調(diào)用 f4 函數(shù):int s,a=1,b=2;s=f4(a,b);調(diào)用f5函數(shù):int x=7;if(f5

18、(x) printf (奇數(shù)”)else printf(偶數(shù)”);(三) 指向一維數(shù)組的函數(shù):f1(int a,int n)int i;for(i=0;i< n;i+)ai;void mai n()int a10=1,2,3,4,5,6,7,8,9,10;f1(a,10);練習(xí):求10個數(shù)的和求10個數(shù)的平均值把10個數(shù)逆序輸出求10個數(shù)中的最小值(四)指向字符串的函數(shù):f2(char s) int i; for(i=0;si!=0;i+)si;使用自定義函數(shù)的要點:1. 自定義函數(shù)要寫在 main 函數(shù)的上方2. 在分析程序的運行時要知道,程序的執(zhí)行從 main 函數(shù)開始,在 main

19、 中結(jié)束3. 自定義函數(shù)可以接收主函數(shù)傳遞的多個參數(shù)4. 自定義函數(shù)每次只能返回一個結(jié)果給主函數(shù)5. 自定義函數(shù)可以通過指針對主函數(shù)中的數(shù)值進(jìn)行直接訪問(操作)6. 輸入操作一般交給 main 函數(shù)練習(xí) (全都用函數(shù)實現(xiàn),輸入輸出由主函數(shù)負(fù)責(zé),功能實現(xiàn)由自定義函數(shù)負(fù)責(zé)):求任意兩個數(shù)的和、差、積(用三個自定義函數(shù)實現(xiàn)) 求任意兩個數(shù)的余數(shù),如果輸入的除數(shù)為 0 要輸出警告信息 交換兩個變量計算 x 的 10 次方( x 為雙精度) 求等比數(shù)列 2 4 8 16 32 的第 n 項 查找字符 c 在字符串 s 中第一次出現(xiàn)的位置 連接兩個字符串/* 連接兩個字符串 */#include "std

溫馨提示

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

評論

0/150

提交評論