



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.C 語言程序設計總結一、 C 語言程序的基本結構#include“ stdio.h”void main()定義變量 ;程序實現 ;輸出結果 ; printf二、變量的定義1 整型 :inta , b, s=0;(可以在定義的同時為變量進行賦值)長整型 : long無符號整型 (非負整數 ): unsigned2 單精度實型 : floatx, y, z=1.0 ;3 雙精度實型 : doublel,m;4. 字符型 : charc1= Ac2=,; b 三、變量的賦值1 直接賦值 : a=10 ;/ 用賦值號 “ =將”右側的值賦給左側的變量.專業專注.2 賦表達式的值:a=3+7;3. 賦
2、另外一個變量的值: 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);練習:1輸入圓的半徑 ,求圓的周長 。
3、.專業專注.四、常用流程控制語句分支語句 :根據條件執行相應的語句條件的形式 : 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 語句 (如果滿足某個條件,就做某件事情,不滿足就向下執行。)if( 條件 )執行語句 ; (二)雙分支 if 語句 (如果滿足某個條件,就做某件事情,否則就做另外一件事情。)if( 條件 )執行語句 1; else執行語句 2; (三)多
4、分支 if 語句 (滿足哪一個條件,就做相應的語句。)if( 條件 1)執行語句 1; elseif( 條件 2)執行語句2; .專業專注.elseif( 條件 3)執行語句3; elseif( 條件 4)執行語句4; else執行語句5; (四) if 的嵌套 (根據具體情況對ifelse 語句進行靈活的運用)其格式如下 :if( 條件 1)if( 條件 2) 執行語句 a; else 執行語句b; elseif(條件 3) 執行語句 c; else 執行語句 d; (五 ) 多分支語句switch (根據switch后的值 ,執行相對應的case 語句 ,此語句了解即可,因為它的作用完全可
5、以用多分支if 來實現 )switch ( 表達式 ).專業專注.case 值 1:語句 1; break;case 值 2:語句 2; break;case 值 3:語句 4; break;case 值 n: 語句 n; break;default: 語句 n+1;練習:2某自助餐廳規定 ,浪費食物在20 克以下的 ,每克罰款2 元;如浪費超過20 克,則超過的部分每克加罰1 元。 編程求罰款金額 。3從鍵盤輸入正方形的邊長,如果邊長大于零則求出該正方形的周長和面積,否則提示輸入錯誤 。4輸入 3 個數 x,y,z,求其中的最小值 。5輸入 3 個數 x,y,z,將其中最大值放在 x 中,最
6、小值放在 z 中,中間值放在 y 中,然后輸出 x,y,z。循環語句 :在條件成立時重復執行一組語句(一)當型循環while例如 :求 1+2+3+ 100while( 條件 )intn=1,s=0;while(n<=100)循環體s=s+n;.專業專注. . .n=n+1;(二)直到型循環 dowhile例如 :求 1+2+3+ 100dointn=1,s=0;do循環體 while( 條件 );s=s+n;n=n+1; while(n<=100);(三)知起至型循環 for例如 :求 1+2+3+ 100for( 循環變量初值 ;循環變量范圍 ;步長 )intn=1,s=0;f
7、or(n=0;n<=100;n+)循環體s=s+n;(四)循環的嵌套說明 :for(i=1;i<n;i+)1假設某同學參與“打氣球游戲 ”,該同學可以打5 局,每局可以打10 槍 。這里的每局10 槍就相當于內循環的.專業專注.for( j=1;j<m;j+)次數; 5局就相當于 5個10槍,也就是外循環的次數 。2這 5*10 槍不是一次性打完的,而且每一槍都要記是哪一局的哪一槍打出來的成績 ,哪一局對應的是i,哪一槍對應的是 j。(五 ) 使用 break 可以強制退出循環,其用法必須配合if 來使用 :例如 : for(i=0;i<100;i+)if( 條件 );
8、break;練習:1編程求出公式 s=1-1/3 + 1/5-1/7+ 1/101的值并輸出2編程輸出如下圖形 :.專業專注.* * * *3編程打印九九乘法表4編程打印出 2016 年 1 月份的日歷注意:1 月份的總天數是31 天,其中 1 日是星期五 。日歷如下 :一二三四五六日12345678910111213141516171819202122232425262728293031void main()int i,n,d;/i 是循環變量 ,n 代表總天數 ,d 代表星期 ;n=31;/n 代表一個月的天數d=5;/d 代表星期 ,星期一為 1,星期五為 5,星期日為 7printf(
9、"一 二 三 四 五 六 日n");/ 一個漢字占兩個字符的位置.專業專注.for(i=1;i<d;i+)/ 開始日期之前用空格占位,每個日期對應 3 個空格printf("");for(i=1;i<=n;i+,d+)printf("%3d",i);if(d%7=0)printf("n");5. 在第 4 題的程序上進行修改 ,如果輸入任意一個月的總天數及該月第一天的星期 (1 代表星期日 ,2 代表星期一 以此類推 ),能否打印出該月日歷6. 計算 x 的 n 次方 (x 為雙精度 ,n 為非負整數
10、)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. 一維數組 :名字相同且帶有下標的一組變量2. 定義形式 :類型名數組名 長度 例如 : inta10/a數組中包含有10個整型變量,名字分別是a0 、 a1 、a2 a9這里每一個an 都是一個普通的整數
11、變量3. 一維數組的初始化 :定義數組的時候就給每個數組元素賦值int a5=2,4,6,8,10;4. 對 a 數組中的每一個元素依次進行操作(訪問 )的方法如下 :int i;for(i=0;i<9;i+) ai例如 :通過鍵盤輸入給a 數組中的每個元素賦值將 a 數組中每一個元素都擴大2 倍統計 a 數組中奇數的個數求 a 數組中的最大值把 a 數組的元素進行逆置把 a 數組中的元素進行右移.專業專注.練習 :1從一維數組中查找x,并返回 x 所在的位置 ,否則提示沒有找到。2求 fibonacci數列的第 n 項。3求任意一個數的1.21.6 倍存入數組 。4數組中存入10 個數
12、并進行循環左移二維數組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 行第 j 列的元素 。按行的順序訪問 :按列的順序訪問 :int i,
13、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+) aij aij.專業專注.例如 :為二維數組中的每一個元素賦值將二維數組轉置輸出(行變列 ,列變行 )求每行的平均值求每列的總和求列上的最小值5. 行列相等的二維數組叫做矩陣 ,對矩陣的操作有 :求主對角線的和求次對角線的平均值輸出該矩陣的上半三角元素練習 :1. 對一個 3*4 的數組 ,求列上的平均值2. 求一個 3*3 矩陣的主 、次對角線的平均值3. 利用數組輸出以下圖形字符串1. 字符串 :字符型的一維數組 ,可以存儲一
14、串字符 ,并以 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-10 的位置 :s1n從第一個字符訪問到最后一個字符:從最后一個字符訪問到第一個字符:char s120;char s120;int i;i
15、nt i;gets(s1);gets(s1);for(i=0;si!=0;i+)for(i= strlen(s1)-1;i>=0;i-)si ;si ;4. 字符串常用函數 :注意 :用以下函數需要用#includestring“.h ”引入頭文件 。連接字符串 : strcat(str1,str2).專業專注.比較兩個字符串的大小: strcmp(str1,str2);求字符串的長度: strlen(str1);在字符串中查找一個字符,并返回其位置 : char c= a”; strchr(str1, c);復制字符串 : strcpy(str3,str1);在字符串str1 中查找字
16、串str2 的位置 : strstr(str1,str2)5 字符串常見操作把字符串逆置判斷是否為回文五、函數(一)函數的定義 :1 無返回值 、無參函數的定義:例:定義一個能夠輸出10 個 ”*”的程序 。void函數名 ( )voidf1()定義變量 ;int i;實現功能 ;for(i=1;i<=10;i+)返回 ;printf( “*”);return;2. 無返回值 、有參函數的定義:例:定義一個能夠輸出n 個”*”的程序void函數名 (參數定義列表)voidf2(int n)定義變量 ;int i;.專業專注.實現功能 ;for(i=1;i<=n;i+)返回 ;pri
17、ntf( “*”);return;例:定義一個能夠輸出n 個指定字符的程序。voidf3(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;elsereturn 0;(二)函數的調用
18、1 無參函數調用:函數名 ()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 ( “奇數 ”)elseprintf( “偶數 ”)
19、;(三)指向一維數組的函數:f1(int a,int 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);練習 :求 10 個數的和求 10 個數的平均值把 10 個數逆序輸出求 10 個數中的最小值(四)指向字符串的函數:f2(chars)int i;.專業專注.for(i=0;si!=0;i+)si ;使用自定義函數的要點:1. 自定義函數要寫在 main 函數的上方2.在分析程序的運行時要知道,程序的執行從main 函數開始 ,在 main 中結束3. 自定義函數可以接收主函數傳遞的多個參數4. 自定義函數每次只能返回一個結果給主函數5.自定義函數可以通過指針對主函數中的數值進行直接訪問(操作 )6. 輸入操作一般交給 main 函數練習 (全都用函數實現,輸入輸出由主函數負責,功能實現由自定義函數負責):求任意兩個數的和、差、積(用三個自定義函數實現)求任意兩個數的余數,如果輸入的除數為0 要輸出警告信息交換兩個變量計算 x 的 10 次方 ( x 為雙精度 )求等比數列2 4 8 16 32的第 n 項查找字符 c 在字符串 s 中第一次出現的位置連接兩個字符串/* 連接兩個字符串*/#include &quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石化化工行業6月看好鉀肥、阿洛酮糖、制冷劑、農藥、生物柴油的投資方向
- 制造業供應鏈數字化協同管理在2025年的綠色制造與環保技術應用
- 2025年能源行業報告:碳捕獲與封存技術應用前景預測與解析
- 工業互聯網平臺NFV在智能城市智慧旅游中的應用實踐報告
- 直播電商行業主播個人品牌價值評估與市場分析報告
- 2025年音樂流媒體平臺版權運營與數字音樂版權市場發展趨勢與挑戰分析報告
- 城市生活垃圾分類處理公眾參與與社區環保活動策劃研究報告
- 醫療美容行業消費者心理與服務質量改進策略深度報告
- 評課萬能評課稿集合12篇
- 施工成本控制管理制度
- 潘祖仁版高分子化學(第五版)課后習題答案.24401
- 投標密封條格式大全
- 搭橋手術配合改
- 《愛的教育》課外閱讀指導課課件
- 奧林匹克精神
- 10以內序數(課堂)課件
- 2021年安徽省農業信貸融資擔保有限公司招聘筆試試題及答案解析
- 精選芭蕾舞男女演員之間的潛規則匯總
- Q∕SY 1770.6-2014 連續管常規修井作業規程 第6部分:速度管柱作業
- 大型污泥脫水離心機機組安裝及調試工法
- 國家重點保護野生植物(Ⅱ級)采集申請表
評論
0/150
提交評論