c语言%3c与 的优先级,C语言程序设计第3章顺序程序设计.ppt
C語言程序設計,主講:王奇志,,4 課時,第3章 順序程序設計,《C語言程序設計》,導航目錄,知識點、重點、難點,知識點: 數據的存儲 C中常見的類型 變量和常量 運算符和表達式 重 點: C中常見的類型 變量和常量 運算符和表達式 難 點: 數據在計算機內部的存儲 運算符的優先級和結合性,算法是程序的靈魂,一、算法是程序的靈魂 1.算法與數據結構 一個程序應包括以下兩方面內容: 數據結構(data structure):對數據的描述,在程序中要指定數據的類型和數據的組織形式。 算法(algorithm): 對操作的描述。即操作步驟, “數據是原料,算法是工藝,程序是產品” 計算機科學家沃思(Nikiklaus Wirth)提出一個公式 數據結構 + 算法 = 程序 算法與語言無關,數據結構與語言有關。 算法可以分為兩大類別:數值運算算法和非數值運算算法。,算法是程序的靈魂-續1,2 .算法的表示 (1)自然語言 [舉例]求1+2+3+…+100的和并輸出 ①i=1,s=0 ②s=s+i ③i=i+1 ④如果i不大于100,則到②,否則到⑤ ⑤輸出s的值 (2)流程圖(傳統),算法是程序的靈魂-續2,[舉例]求1+2+3+…+100的和并輸出 (3)N-S流程圖 [舉例]求1+2+3+…+100的和并輸出,算法是程序的靈魂-續3,(4)使用偽代碼表示 [舉例]求1+2+3+…+100的和并輸出 i=1 s=0 while i=100 s=s+I i=i+1 end while print s,程序的三種基本結構,二、程序的三種基本結構 1.順序結構 2.分之結構 3.循環結構,C語句總述,三、C語句綜述 嚴格意義上的語句是用來向計算機系統發出操作指令,語句經編譯后產生若干條機器指令,c語句都是用來完成一定操作任務的。聲明部分的內容不應稱為語句。如:int a; 不是一個c語句,它不產生機器操作,而只是對變量的聲明。 一個函數包含聲明部分和執行部分,執行部分即由語句組成。 程序應該包括數據描述(由聲明部分來實現)和數據操作(由語句來實現)。數據描述主要定義數據結構(用數據類型表示)和數據初值。數據操作的任務是對已提供的數據進行加工。,C語句總述-續1,1.C語句分類 (1) 控制語句 完成一定的控制功能。C只有9種控制語句: ① if()~else~ (條件語句) ② for()~ (循環語句) ③ while()~ (循環語句) ④ do~while() (循環語句) ⑤ continue (結束本次循環語句) ⑥ break (中止執行switch或循環語句) ⑦ switch (多分支選擇語句) ⑧ goto (轉向語句) ⑨ return (從函數返回語句),C語句總述-續2,(2)函數調用語句 由一次函數調用加一個分號構成一個語句,例如:printf(“this is a c statement.”); (3) 表達式語句 由一個表達式構成一個語句,最典型的是,由賦值表達式構成一個賦值語句。 a=3 /*賦值表達式*/ a=3;/*賦值語句*/ 任何表達式都可以加上分號而成為語句,例如i++;,,有人把c語言稱作“表達式語言”。,C語句總述-續3,(4) 空語句 下面是一個空語句: ; 即只有一個分號的語句,它什么也不做。有時用來做被轉向點,或循環語句中的循環體(循環體是空語句,表示循環體什么也不做)。 (5)復合語句 可以用 {}把一些語句括起來成為復合語句,又稱分程序。如下面是一個復合語句。 { z=x+y; t=z/100; printf(“%f“,t); },賦值表達式和賦值語句,四、賦值表達式和賦值語句 1.賦值運算符 “=”是一個賦值運算符,其他大多數語言中賦值號不是運算符。 “賦值表達式”的概念,例如: if((a=b)>0)t=a; *復合的賦值運算符 a+=4 (a=a+4) x*=y+8 ( x=x*(y+8)) += -= *= /= %= 2.賦值表達式 格式: 變量名=表達式,賦值表達式和賦值語句-續1,理解下列表達式: a=3 b=a+3 c=b=a=10 a=5+(c=6) a=(b=4)+(c=6) a=3*4=c 3.賦值中的類型轉換 變量 i 表達式 int = double float float = double int = char char = int long short signed = unsigned unsigned = signed,賦值表達式和賦值語句-續2,4.賦值語句 a=3; a=b=c=4; if ((a=3;)0) t=a 5.變量賦初值 int a=3; char c1=‘a’,c2; [思考]如果變量不賦值,是否可用,可有默認值?,數據的輸入與輸出,五、數據的輸入與輸出 1. 輸入/輸出的概念 C語言本身不提供輸入輸出語句,輸入和輸出操作是由函數來實現的。 C標準函數庫中提供printf函數和scanf函數,用于格式化輸入輸出,使用他們,應包含”stdio.h”頭文件,數據的輸入與輸出-續1,2.字符數據的輸入輸出 (1)putchar函數(字符輸出函數) putchar函數的作用是向終端輸出一個字符 例如: putchar(c) 例子:輸出字符 運行結果: b o y,#include main() { char a,b,c; a='b';b='o';c='y'; putchar(a);putchar(‘\n’); putchar(b);putchar(‘\n’); putchar(c); },數據的輸入與輸出-續2,(2)getchar函數(字符輸入函數) 此函數的作用是從終端(或系統隱含指定的輸入設備)輸入一個字符。getchar函數沒有參數,其一般形式為 getchar() 函數的值就是從輸入設備得到的字符。例如: 例 輸入單個字符 getchar()只能接收一個字符, getchar函數得到的字符可以賦給一個字符變量或整型變量,也可以不賦給任何變量,作為表達式的一部分,#include main() {char c; c=getchar(); putchar(c); },數據的輸入與輸出-續3,[演示] 簡單的打字練習程序,直到按”/”結束(add3-1.c)[查看] 3.簡單的格式輸入輸出 (1)printf函數 格式: printf(格式控制,輸出表列) “格式控制”是用雙引號括起來的字符串,也稱“轉換控制字符串”,它包括兩種信息:,#include “stdio.h“ main() { char c; while((c=getchar())!='/') { putchar(c);} },數據的輸入與輸出-續4,① 格式說明,由“%”和格式字符組成,如%d,%f等。它的作用是將輸出的數據轉換為指定的格式輸出。格式說明總是由“%”字符開始的。 ② 普通字符,即需要原樣輸出的字符。例如上面printf函數中雙引號內的逗號、空格和換行符。 “輸出表列”是需要輸出的一些數據,可以是表達式。 (2) 格式字符 ① d格式符 按十進制整型數據的實際長度輸出,可以使用“%md” 指定的輸出字段的寬度。如果數據的位數小于m,則左端補以空格,若大于m,則按實際位數輸出。 如 printf(“%4d,%4d“,a,b); 若a=123,b=12345,則輸出結果為: 123,12345,數據的輸入與輸出-續5,② %i 作用同%d,少用。 ③%c 用來輸出一個字符。 char ch=‘A’; printf(“%c”,ch); 注意:整數也可以以%c格式來輸出。 [演示] 輸出ASCII表中的可見字符(add3-2.c)[查看] ④%s 用來輸出一個字符串。 ⑤%f 用來輸出實數(單、雙精度)。 [演示] 輸出實數時的有效位數(3-5.c)[查看],數據的輸入與輸出-續6,[演示] 輸出雙精度時的有效位數(3-2.c)[查看] ⑥%e 以指數形式輸出實數 printf(“%e“ ,123.456); 輸出為: 1.234560e+002 (2)scanf函數 格式: scanf(格式控制,地址表列) “格式控制”的含義和printf中格式控制含義基本一致。地址列表是有若干個變量的地址或字符串的首地址組成的列表。 [演示] 使用scanf函數輸入數據(3-3.c)[查看],數據的輸入與輸出-續7,說明: ①對unsigned型變量,可用%u、%d、%o,%x格式 ②可以指定輸入數據所占列數,系統自動按它截取所需數據。 如,scanf(“%3d%3d“,&a,&b); 輸入: 123456 系統自動將123賦給a,456賦給b。此方法也可用于字符型: 如:scanf(“%3c“,&ch); 如果從鍵盤連續輸入3個字符abc,由于ch只能容納一個字符,系統就把第一個字符‘a’賦給ch。 ③ 如果在%后有一個“*”附加說明符,表示跳過它指定的列數。 如:scanf(“%2d %*3d %2d”,&a,&b);,數據的輸入與輸出-續8,如果輸入如下信息: 12 345 67 將12賦給a,%*3d表示讀入3位整數但不賦給任何變量。然后再讀入2位整數67賦給b。 也就是說第2個數據“345”被跳過。在利用現成的一批數據時,有時不需要其中某些數據,可用此法“跳過”它們。 ④輸入數據時不能規定精度,例如, scanf(“%7.2f“,&a); 是不合法的,不能企圖用這樣的scanf函數并輸入1234567而使a的值為12345.67,scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); /*如何正確輸入?*/,數據的輸入與輸出-續8,⑤在用“%c”格式輸入字符時,空格字符和“轉義字符”都作為有效字符輸入: scanf(“%c%c%c“,&c1,&c2,&c3); 如輸入 a b c 字符‘a’送給c1,字符‘ ’送給c2,字符‘b’送給c3,因為%c只要求讀入一個字符,后面不需要用空格作為兩個字符的間隔,因此‘ ’作為下一個字符送給c2。 ⑥在輸入數據時,遇以下情況時該數據認為結束。 遇空格,或按“回車”或“跳格”(tab)鍵。 按指定的寬度結束,如“%3d”,只取3列。 遇非法輸入。,提高部分,1.有符號整數賦值給長度相同的無符號整型變量 按字節原樣傳送 [分析] P77頁例3.10 2.無符號整數賦值給長度相同的有符號整數整型變量 按字節原樣傳送 [分析] P77頁例3.11 3.復雜格式的輸出 4.復雜格式的輸入 5.C++的輸入輸出 cinabc; cout“a=“a“,b=“b“,c=“c; #include “iostream.h“ [演示] C++的輸入/輸出(add3-3.c)[查看],順序結構程序設計舉例,[演示] P73例3.7[查看] [演示] P74例3.8[查看] [演示] P75例3.9[查看],課堂小結,本章介紹的是C程序設計的一些基礎,語句、三種基本結構、C中如何實現輸入、輸出,格式化的輸入、輸出是難點,希望通過實踐來掌握。,作業,課后作業: 1. 復習本講內容 2. P87-88習題 3 . 預習第4章 上機作業: 1. 上機調試課件的例題 2. 《指導》實驗3,完成實驗報告,csharp-blog.blog.163.com,
展開閱讀全文
總結
以上是生活随笔為你收集整理的c语言%3c与 的优先级,C语言程序设计第3章顺序程序设计.ppt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DSP:6678开发板NDK网口通信完整
- 下一篇: 6678EVM调试K1_STK_v1.1