

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言程序設計總結一、C語言程序的基本結構#include “stdio.h”void main() 定義變量; 程序實現; 輸出結果; printf二、變量的定義1整型:int a , b, s=0; (可以在定義的同時為變量進行賦值)長整型:long無符號整型(非負整數):unsigned2單精度實型:float x, y, z=1.0 ;3雙精度實型:double l,m;4. 字符型:char c1=A, c2=b;三、變量的賦值1直接賦值:a=10 ; /用賦值號“=”將右側的值賦給左側的變量2賦表達式的值:a=3+7;3. 賦另外一個變量的值:a=s; /把s的值賦給a 變量的輸入
2、:輸入一個變量:scanf(“%d”, &a);輸入多個變量:scanf(“%d%d%d”, &a, &b, &c);int-%d float-%f char-%c double-%lf 字符串-%s變量的輸出:輸出一個提示語句:printf(“xxxxxx”);輸出一個回車:printf(“n”);輸出一個變量:printf(“xxx is %d”, a);輸出多個變量:printf(“xxxx%d, xxxx%d”,a,b);練習:1 輸入圓的半徑,求圓的周長。四、常用流程控制語句分支語句:根據條件執行相應的語句條件的形式:a大于0 寫成 a>0 a小
3、于0 寫成 a<0 a等于0 寫成 a=0 (注意,用兩個=) a大于等于0并且小于等于10 寫成 a>=0 && a<=10 a小于0或者a大于10 寫成 a<0 | a>10(一)單分支if語句(如果滿足某個條件,就做某件事情,不滿足就向下執行。)if(條件) 執行語句; (二)雙分支if語句(如果滿足某個條件,就做某件事情,否則就做另外一件事情。) if(條件) 執行語句1; else執行語句2; (三)多分支if語句(滿足哪一個條件,就做相應的語句。) if(條件1) 執行語句1; else if(條件2)執行語句2; else if(條件
4、3)執行語句3; else if(條件4)執行語句4; else 執行語句5; (四)if的嵌套(根據具體情況對ifelse語句進行靈活的運用) 其格式如下: if(條件1) if(條件2) 執行語句a; else 執行語句b; else if(條件3) 執行語句c; else 執行語句d; (五) 多分支語句 switch(根據switch后的值,執行相對應的case語句,此語句了解即可,因為它的作用完全可以用多分支if來實現)switch (表達式)case 值1:語句1; break; case 值2:語句2; break; case 值3:語句4; break; case 值n:語句n
5、; break; default: 語句n+1;練習:2 某自助餐廳規定,浪費食物在20克以下的,每克罰款2元;如浪費超過20克,則超過的部分每克加罰1元。編程求罰款金額。3 從鍵盤輸入正方形的邊長,如果邊長大于零則求出該正方形的周長和面積,否則提示輸入錯誤。4 輸入3個數x,y,z,求其中的最小值。5 輸入3個數x,y,z,將其中最大值放在x中,最小值放在z中,中間值放在y中,然后輸出x,y,z。循環語句:在條件成立時重復執行一組語句(一)當型循環 whilewhile(條件) 循環體例如:求1+2+3+100int n=1,s=0;while(n<=100)s=s+n;n=n+1;(
6、二)直到型循環dowhiledo 循環體 while(條件);例如:求1+2+3+100int n=1,s=0;dos=s+n;n=n+1; while(n<=100);(三)知起至型循環forfor(循環變量初值;循環變量范圍;步長) 循環體例如:求1+2+3+100int n=1,s=0;for(n=0;n<=100;n+) s=s+n;(四)循環的嵌套for(i=1;i<n;i+) for(j=1;j<m;j+) 說明:1 假設某同學參與“打氣球游戲”,該同學可以打5局,每局可以打10槍。這里的每局10槍就相當于內循環的次數; 5局就相當于5個10槍,也就是外循環
7、的次數。2 這5*10槍不是一次性打完的,而且每一槍都要記是哪一局的哪一槍打出來的成績,哪一局對應的是i,哪一槍對應的是j。(五) 使用break可以強制退出循環,其用法必須配合if來使用: 例如:for(i=0;i<100;i+) if(條件) ;break;練習:1 編程求出公式s=1-1/3 + 1/5- 1/7+1/101 的值并輸出2 編程輸出如下圖形:* * * * * * * * * * *3 編程打印九九乘法表4 編程打印出2016年1月份的日歷注意:1月份的總天數是31天,其中1日是星期五。日歷如下:一二三四五六 日123456789101112131415161718
8、19202122232425262728293031void main()int i,n,d; /i是循環變量,n代表總天數,d代表星期;n=31; /n代表一個月的天數d=5; /d代表星期,星期一為1,星期五為5,星期日為7printf(" 一 二 三 四 五 六 日n"); /一個漢字占兩個字符的位置 for(i=1;i<d;i+) /開始日期之前用空格占位,每個日期對應3個空格 printf(" "); for(i=1;i<=n;i+,d+)printf("%3d",i);if(d%7=0) printf(&quo
9、t;n");5. 在第4題的程序上進行修改,如果輸入任意一個月的總天數及該月第一天的星期(1代表星期日,2代表星期一以此類推),能否打印出該月日歷6. 計算x的n次方(x為雙精度,n為非負整數)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;printf("jieguo is %.2lf",s);四、數組一維數組1. 一維數組:名字相同且帶有下標的一組變
10、量2. 定義形式:類型名 數組名長度例如:int a10 /a數組中包含有10個整型變量,名字分別是a0、a1、a2a9這里每一個an都是一個普通的整數變量3. 一維數組的初始化:定義數組的時候就給每個數組元素賦值 int a5=2,4,6,8,10;4. 對a數組中的每一個元素依次進行操作(訪問)的方法如下: int i; for(i=0;i<9;i+) ai例如:l 通過鍵盤輸入給a數組中的每個元素賦值l 將a數組中每一個元素都擴大2倍l 統計a數組中奇數的個數l 求a數組中的最大值l 把a數組的元素進行逆置l 把a數組中的元素進行右移練習:1 從一維數組中查找x,并返回x所在的位置
11、,否則提示沒有找到。2 求fibonacci數列的第n項。3 求任意一個數的1.21.6倍存入數組。4 數組中存入10個數并進行循環左移二維數組1. 二維數組:名稱相同且帶有2個下標的一堆變量,邏輯上可看成n行m列的二維表格。2. 定義形式:類型名 數組名行長度列長度 例如:int a34 這里a數組中包含有3*4=12個數組元素,這12個元素的名字分別是:a00a01a02a03a10a11a12a13a20a21a22a233. 二維數組的初始化: int a34=1,2,3,4,5,6,7,8,9,10,11,12;4. 對a中數組元素的訪問,需要定義2個下標變量i和j,aij代表第i行
12、第j列的元素。 按行的順序訪問: int i,j; for(i=0;i<3;i+) for(j=0;j<4;j+) aij 按列的順序訪問: int i,j; for(j=0;j<4;j+) for(i=0;i<3;i+) aij例如:l 為二維數組中的每一個元素賦值l 將二維數組轉置輸出(行變列,列變行)l 求每行的平均值l 求每列的總和l 求列上的最小值5. 行列相等的二維數組叫做矩陣,對矩陣的操作有:l 求主對角線的和l 求次對角線的平均值l 輸出該矩陣的上半三角元素練習:1. 對一個3*4的數組,求列上的平均值2. 求一個3*3矩陣的主、次對角線的平均值3. 利
13、用數組輸出以下圖形字符串1. 字符串:字符型的一維數組,可以存儲一串字符,并以0做為結束標志。2字符串的輸入與輸出 char str120,str220,str320; gets(str1); /字符串的輸入 scanf(“%s”,str2); /字符串的輸入 puts(str1); /字符串的輸出; printf(“%s”,str2); /字符串的輸出;3對字符串的訪問:如有char s120; int n; 字符串的長度:n=strlen(s1); 第一個字符:s10; 最后一個字符:s1n-1 0的位置:s1n從第一個字符訪問到最后一個字符:char s120;int i;gets(s1
14、);for(i=0;si!=0;i+)si;從最后一個字符訪問到第一個字符:char s120;int i;gets(s1);for(i= strlen(s1)-1;i>=0;i-)si;4. 字符串常用函數: 注意:用以下函數需要用#include “string.h”引入頭文件。n 連接字符串:strcat(str1,str2)n 比較兩個字符串的大小:strcmp(str1,str2);n 求字符串的長度:strlen(str1);n 在字符串中查找一個字符,并返回其位置:char c=a”; strchr(str1, c);n 復制字符串:strcpy(str3,str1);n
15、在字符串str1中查找字串str2的位置:strstr(str1,str2)5字符串常見操作n 把字符串逆置n 判斷是否為回文五、函數(一)函數的定義:1無返回值、無參函數的定義: void 函數名( )定義變量;實現功能;返回;例:定義一個能夠輸出10個”*”的程序。void f1() int i; for(i=1;i<=10;i+) printf(“*”); return;2. 無返回值、有參函數的定義: void 函數名(參數定義列表)定義變量;實現功能;返回;例:定義一個能夠輸出n個”*”的程序void f2(int n) int i; for(i=1;i<=n;i+) p
16、rintf(“*”); return;例:定義一個能夠輸出n個指定字符的程序。void f3(char c,int n) int i; for(i=1;i<=n;i+) printf(“%c”,c); return;3有返回值有參函數的定義: 類型 函數名(參數定義列表)定義變量;實現功能;返回 計算結果;這里”類型”一定要與”計算結果”一致。例:定義一個計算兩個整數加法的函數。int f4(int x,int y)return (x+y);例:定義一個能判斷奇數的函數int f5(int x)if(x%2=1) return 1;else return 0;(二)函數的調用1無參函數調
17、用:函數名()2有參函數調用:函數名(實參列表) 這里的實參可以是一個具體的值,或者一個已經有值的變量,也可以是一個表達式。3函數的調用可以成為一個獨立的語句,也可以參與到表達式中進行計算。例如:調用f1函數:f1()調用f2函數:f2(5) 或 int n=20; f2(n);調用f3函數:f3(#,10) 或 char cc=$ ;int n=8; f3(cc,n);調用f4函數:int s,a=1,b=2; s=f4(a,b);調用f5函數:int x=7; if(f5(x) printf(“奇數”) else printf(“偶數”);(三)指向一維數組的函數: f1(int a,in
18、t n) int i; for(i=0;i<n;i+) ai;void main() int a10=1,2,3,4,5,6,7,8,9,10; f1(a,10);練習:l 求10個數的和l 求10個數的平均值l 把10個數逆序輸出l 求10個數中的最小值(四)指向字符串的函數:f2(char s)int i;for(i=0;si!=0;i+) si;使用自定義函數的要點:1. 自定義函數要寫在main函數的上方2. 在分析程序的運行時要知道,程序的執行從main函數開始,在main中結束3. 自定義函數可以接收主函數傳遞的多個參數4. 自定義函數每次只能返回一個結果給主函數5. 自定義函數可以通過指針對主函數中的數值進行直接訪問(操作)6. 輸入操作一般交給main函數練習(全都用函數實現,輸入輸出由主函數負責,功能實現由自定義函數負責):l 求任意兩個數的和、差、積(用三個自定義函數實現)l 求任意兩個數的余數,如果輸入的除數為0要輸出警告信息l 交換兩個變量l 計算x的10次方(x為雙精度)l 求等比數列2 4 8 16 32的第n項l 查找字符c在字符串s中第一次出現的位置l 連接兩個字符串/*連接兩個字符串*/#inc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 皮瓣移植患者護理
- 學前教育一日生活
- 大班整合課程:我和我的外婆
- 汽車行業的營銷案
- 2025年中學校青年老師培育實施方案
- 2025年學校五班級上冊音樂教學工作方案
- 2025年行政部工作方案
- 2025年三班級下冊語文教學方案
- 稅務誠信主題教育
- 移動管理制度
- 2024年全國中學生生物學聯賽試題含答案
- 雷鋒叔叔你在哪里評課稿
- 中南大學湘雅醫院進修匯報演示文稿
- 《藝術學概論考研》課件藝術本體論-模仿論
- DB32∕T 3158-2016 內河水上服務區建設標準
- 電廠防腐涂裝培訓ppt課件
- 《汽車座椅制造工藝》PPT課件
- 履帶-輪式爬樓梯電動輪椅設計【帶圖紙】
- 畢業論文小型玉米脫粒機的設計
- 中國歷朝歷代地圖大全
- 水管容量公式計算表
評論
0/150
提交評論