




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一章:計算機基礎(chǔ)知識一、 計算機系統(tǒng)的組成1、 組成2、 軟、硬件之間的關(guān)系二、 計算機中用到的數(shù)制1、 數(shù)制2、 為什麼用二進制?3、 進制間的轉(zhuǎn)換三、 計算機的解題過程(圖)四、 計算機的語言系統(tǒng)1、 語言的分類2、 翻譯方式3、 常用語言簡介五、 磁盤操作系統(tǒng)DOS1、 組成2、 啟動3、 文件4、 目錄5、 通配符6、 常用DOS命令第二章:C語言概述一、 C語言的產(chǎn)生及發(fā)展簡介ALGOL60(1960) CPL(1963) BCPL(1967) B(1970) C(1973) ALGOL60語言 面向問題、離硬件遠、不宜編寫系統(tǒng)軟件CPL語言 離硬件近一點、規(guī)模較大、難以實現(xiàn)BCP
2、L語言 簡化的CPLB語言 接近硬件、簡單、第一個UNIX系統(tǒng)由B語言編寫、功能有限C語言 多次改進、75年UNIX6版公布后C語言的優(yōu)點才引起注意、77年出現(xiàn)不依賴于具體機器的C編譯可用來編寫系統(tǒng)軟件、應(yīng)用軟件UNIX系統(tǒng)用C語言編寫,隨著UNIX的發(fā)展C語言也迅速得到推廣 二、 C語言的特點:1、 語言簡潔、緊湊、使用方便、靈活(32個關(guān)鍵字、9種控制語句)2、 運算符豐富(34種運算符 將括號、賦值、強制類型、轉(zhuǎn)換作為運算符等等)3、數(shù)據(jù)結(jié)構(gòu)豐富(標準類型、構(gòu)成類型)4、具有結(jié)構(gòu)化的控制語句。用函數(shù)作為程序模塊以實現(xiàn)程序的模塊化。5、語法限制不太嚴格、程序設(shè)計自由度大。(限制與靈活是一對
3、矛盾)6、C語言可以直接訪問物理地址。能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作。7目標代碼質(zhì)量高,程序執(zhí)行效率高。8程序可移植性好。三、 程序的組成結(jié)構(gòu)及特性:1、 程序結(jié)構(gòu):下面給出幾段簡單的C程序,從中分析一下程序的結(jié)構(gòu)及特征:程序一:main()printf(“This is a c program. n”);程序二: # include <stdio.h>main() /*求兩數(shù)之和*/int a,b,sum; /*定義變量*/ a=123;b=456; sum=a+b; printf(“sum is %dn”,sum); 程序三: main() /*主函數(shù)*/
4、int a,b,c; /*定義變量*/scanf(“%d,%d”,&a,&b); /*輸入變量a、b 的值*/c=max(a,b); /*調(diào)用 max函數(shù),將得到的值賦給c*/printf(“max=%d”,c); /*輸出c的值*/int max(x,y) /* 定義max函數(shù),函數(shù)值為整型,x,y為形式參數(shù) */int x,y; /* 對形參x,y作類型定義 */int z; /* max函數(shù)中用到的變量z定義 */ if (x>y) z=x; else z=y;return(z); /* 將z的值返回,通過max帶回調(diào)用處 */2、 C語言程序的結(jié)構(gòu)特性:(1)、一
5、個C源程序可以由一個或多個源文件組成。(2)、每個C源程序可以由一個或多個函數(shù)組成。函數(shù)是C程序的基本單位。C是函數(shù)式的語言。(3)、一個C源程序不論由多少個文件組成,有且僅有一個main函數(shù)??偸且詍ain函數(shù)開始執(zhí)行,而不論main函數(shù)設(shè)置在什麼位置。(4)、源程序中可以有預(yù)處理命令,通常放在源文件/程序的最前面。(5)、每一個說明/語句以分號結(jié)尾。但預(yù)處理命令、函數(shù)頭、和符號“”之后不能加分號。(6)、標識符、關(guān)鍵字之間必須至少加一個空格以示間隔。(7)、一個函數(shù)由兩部分組成: 函數(shù)的說明部分:函數(shù)名后必須有一對圓括號 函 數(shù) 體:變量定義 執(zhí)行部分(8)、C程序書寫格式自由。一行內(nèi)可以
6、寫幾個語句,一個語句也可以分寫在幾行內(nèi)。(9)、C語言本身沒有輸入、輸出語句,而是用庫函數(shù)scanf、 printf(10)、可以用/*.*/對C程序做注解。四、 C語言的字符集:字符是組成語言的最基本的元素。C語言的字符集由字母、數(shù)字、空格、標點及特殊符號組成。在字符常量、字符串常量和注解中還可以使用漢字或其它可表示的圖形符號。(1) 字母:A-Z (26個) a-z (26個)(2)、數(shù)字: 0-9 (10個)(3)、空白符: 空格符、制表符、換行符均稱為“空白符”??瞻追辉谧址A亢妥址A恐衅鹱饔谩T谄渌胤匠霈F(xiàn)時,只起間隔作用。(4)、標點和特殊字符:五、 C語言詞匯:C語言中使
7、用的詞匯分為六類:標識符、關(guān)鍵字、運算符、常量、注釋符等等。(1)、標識符: 在程序中使用的變量名、函數(shù)名、標號等統(tǒng)稱為標識符。標識符只能是字母、數(shù)字、下劃線組成的字符串,并且其第一個字符必須是字母或下劃線。使用標識符時需注意: 標準C不限制標識符長度,但受版本及機器的限制,一般標識符長度不超過8個字符。字母的大小寫有區(qū)別。如:BOOK與book是兩個不同的標識符為便于使用,標識符的命名應(yīng)盡量有相應(yīng)意義。(2)關(guān)鍵字:關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標識符不應(yīng)與關(guān)鍵字相同,關(guān)鍵字分為如下幾類: 類型說明符:用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結(jié)構(gòu)的類型 語
8、句定義符:用于表示一個語句的功能 預(yù)處理命令字:用于表示一個預(yù)處理命令 (3)、運算符: C語言中含有相當豐富的運算符,運算符由一個或多個字符組成。 (4)、分隔符: 在C語言中采用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數(shù)參數(shù)表中??崭穸嘤糜谡Z句各單詞之間作為間隔符。(5)、常量: C語言中有數(shù)字、字符、字符串、符號常量及轉(zhuǎn)義字符等多種。(6)、注釋符: 幫助閱讀程序,不參加編譯。六、 書寫程序應(yīng)遵循的規(guī)則:(1)、一個說明或一個語句占一行。(2)、用“ ”括起的部分,通常表示了程序的某一個層次結(jié)構(gòu)?!?”應(yīng)與該結(jié)構(gòu)語句的第一個字母對齊,并獨占一行。(3)、低一層次的語句或說明,可
9、比高一層次的語句或說明縮進若干格后書寫。第三章:數(shù)據(jù)類型、運算符和表達式程序中使用的變量都需要先說明,后使用。對變量的說明包括三個方面的內(nèi)容:l 數(shù)據(jù)類型l 存儲類型l 作用域數(shù)據(jù)類型可分為:l 基本數(shù)據(jù)類型特點:其值不可再分,是自我說明的。l 構(gòu)造數(shù)據(jù)類型根據(jù)已定義的一個或多個數(shù)據(jù)類型用構(gòu)造的方法來定義的。一個構(gòu)造類型的值可以分為多個“成員”(元素),每個元素可以是基本類型,也可以是構(gòu)造類型。幾種構(gòu)造類型:數(shù)組、結(jié)構(gòu)、共用等l 指針類型是一種特殊的類型。值表示一個量在內(nèi)存中的地址。l 空類型 函數(shù)調(diào)用后,不需要向調(diào)用者返回任何值,則可將該函數(shù)定為空類型。§ 31 常量與變量對于基本
10、數(shù)據(jù)類型又可分為常量和變量。常量在程序運行中值不改變.。變量在程序運行中值發(fā)生改變。一、常量: 常量區(qū)分為不同類型1、 整型常量: 由數(shù)字串組成2、 實型常量: 由數(shù)字串、小數(shù)點、指數(shù)組成3、 字符常量: 用單引號引起的單個字符。如 A用雙引號引起的一串字符。如 “HHFDJJ“用反斜線開頭的一串字符。如 “n“4、 符號常量: 用一個標識符來代表一個常量 例: # define PI 3.1415main()float r;s,v;scanf(“%fn”,&r);s=2*pi*r;v=pi*r*r;printf(“s=%f,v=%fn”,s,v);注意:符號常量使用之前必須先定義。符
11、號常量不是變量,其值在整個作用域中不可再賦值。二、變量: 變量名(標識符) 由數(shù)字、字母、下劃線組成。第一個字符必須是字母或下劃線,大小寫不同。例:sum Lotus_1_2_3 basic BASIC M.D.John $123 a>bC語言中要求對所有用到的變量作強制性定義。即為“先定義,后使用“。目的是: 1、保證程序中變量名使用正確。 2、每一個變量被指定為一個確定的類型,在編譯時就能為其分配相應(yīng)的存儲單元。 3、每一個變量屬于一個類型便于在編譯時據(jù)此檢查該量所進行的運算是否合法。 § 32 整型數(shù)據(jù):一、 整型常量:整型常量的幾種形式:(前、后綴表示)整型、長整型、無
12、符號整型1、十進制數(shù) 123 456 09數(shù)字 十進制長整型數(shù) 123L2、八進制數(shù) 0123 0456 0開頭 07數(shù)字八進制長整型數(shù) O12433L3、十六進制數(shù) 0X123 0X開頭 09及AF十六進制長整型數(shù) 0X12DFL4、無符號整型數(shù) 2642635790U前、后綴可同時表示各種類型的數(shù)。二、 整型變量整型變量分為:基本型、短整型、長整型、無符號整型類型說明 數(shù)的范圍 分配字節(jié)數(shù)INT -3276832767 2SHORT INT : 2UNSIGNED INT 065535 2LONG INT -2147483648 2147483647 4UNSIGNED LONG 0429
13、4967295 4不同類型的量可以參與運算并相互賦值,類型轉(zhuǎn)換是由編譯系統(tǒng)自動完成的。§ 33 實型數(shù)據(jù):一、 實型常量:實數(shù)在C語言中又稱為浮點數(shù)。兩種表現(xiàn)形式:1、十進制數(shù)形式 09數(shù)字及小數(shù)點組成 如 123.4562、指數(shù)形式 E指數(shù)符號,字母E之前必須有數(shù)字,E后面的指數(shù)必為整數(shù)。 如: 1.234E12二、 實型變量:實型變量分為:1、單精度 float 3.4E-383.4E38 4字節(jié) 2、雙精度 double 1.7E-3081.7E308 8字節(jié) 實型常量不分單、雙精度,它是根據(jù)變量類型截取實型常量中相應(yīng)的有效位數(shù)字。§ 34 字符型數(shù)據(jù):一、 字符常量
14、1、 字符常量是用 括起來的字符。(單個字符)2、 特殊形式的字符常量(轉(zhuǎn)義字符)以反斜線開頭的字符串,任何一個字符均可以用轉(zhuǎn)義字符表示。二、 字符變量 一個字符變量只能存放一個字符。 定義形式: Char 變量名表; 字符型變量占 1 個字節(jié)三、 字符數(shù)據(jù)在內(nèi)存中的存儲形式及使用方法字符型變量的存儲單元中,存儲的不是字符,而是該字符對應(yīng)的ASCII碼值。優(yōu)點:1、可以字符形式或數(shù)值(整數(shù))形式輸出 2、可以參與運算。四、 字符串常量用雙引號 “ ” 引起的一串字符。五、 字符常量與字符串常量的區(qū)別:字符常量 字符串常量 1、 單引號 雙引號2、 1個字符 多個字符3、 字符變量 字符數(shù)組4、
15、 一個字節(jié) 字符串中字節(jié)數(shù)+1(0結(jié)束標志)例如: a “a” 不同 1個字節(jié) 2個字節(jié)§ 35 變量賦初值 可以在定義變量的同時使變量初始化。不可以連續(xù)賦值。 例如: : int a=3; int a,b,c=5; int a=b=c=3; x int a=3,b=3,c=3;§ 36 各類數(shù)據(jù)間的混合運算 變量的數(shù)據(jù)類型是可以轉(zhuǎn)換的:自動轉(zhuǎn)換 強制轉(zhuǎn)換 轉(zhuǎn)換規(guī)則:1、 不同類型數(shù)據(jù)運算,先轉(zhuǎn)為同一類型,再進行轉(zhuǎn)換2、 轉(zhuǎn)換按數(shù)據(jù)類型長度增加的方向進行(低高、小大)3、 浮點運算都以雙精度進行4、 CHAR及SHOTR型參與運算,均先轉(zhuǎn)為INT型5、 賦值運算時,以左邊為
16、準,右邊高于左邊,則進行四舍五入,精度降低。強制轉(zhuǎn)換:是通過類型轉(zhuǎn)換運算來實現(xiàn)的。 格式: (類型說明符)(表達式) 例: (float)a (int)(x+y)注意:1、類型說明符及表達式均加圓括號。 2、無論是強制轉(zhuǎn)換,還是自動轉(zhuǎn)換,都是為了本次運算的需要對變量進行的臨時性轉(zhuǎn)換,而不改變數(shù)據(jù)說明時對該變量定義的類型。例: main() float f=5.75; printf(“(int)f = %d,f=%fn”,(int)f,f ); 運行結(jié)果: 5 5.75§ 37 C運算符 C語言的運算符種類多。使用時注意優(yōu)先級別及結(jié)合性。一、 算術(shù)運算符(7種)1、基本算術(shù)運算符 +、
17、*、/、% 均為雙目運算 % 余除 要求參與運算的量均為整型2、優(yōu)先級與結(jié)合性左結(jié)合性 數(shù)據(jù)類型不同先轉(zhuǎn)換后計算3、自增、自減運算符功能:使變量的值增1或減1單目運算,右結(jié)合性。幾種形式如下: +I 自增1后參與運算 -I 自減1后參與運算 I+ 參與運算后I值自增1 I- 參與運算后I值自減1例: 說明:(1)只能用于變量,不能用于常量或表達式。 (2)不同于算術(shù)運算,采用右結(jié)合。 如: -I+ 應(yīng)為右結(jié)合 -(I+) (3)常用于循環(huán)變量自動加 1 (4)表達式中使用自加或自減運算時,需注意 如:I=3 K=I+ 則 K=3 I=4 (I+)+(I+)+(I+) 值=9 K=(+I)+(+
18、I)+(+I)值=18 (5)表達式中運算符的組合,盡可能左結(jié)合 如:I+J (I+)+J (6)調(diào)用函數(shù)時,實參的求值順序為右到左 如:printf(“%d,%dn”,I,I+); 輸出: 4,3 二、 賦值運算和賦值表達式 1、“=”為賦值運算符 作用:將一個數(shù)據(jù)賦給一個變量。 右結(jié)合性如:A=B=C=5 可為: A=(B=(C=5)C規(guī)定:任何表達式在末尾加上分號就構(gòu)成語句。如:A=B+C 表達式 A=B+C;語句2、“=”號兩端數(shù)據(jù)類型不同時進行轉(zhuǎn)換 轉(zhuǎn)換是系統(tǒng)自動進行的,右邊轉(zhuǎn)換為左邊類型。規(guī)則如下: (1)整型=實型 舍去小數(shù)部分 (2)實型=整型 值不變,以浮點形式存放 (3)整
19、型=字符型 值放低8位,高8位為0 (4)字符型=整型 僅將低8位存入例:3、復(fù)合的賦值運算及表達式 在“=”號前面加上其它運算符就構(gòu)成復(fù)合運算符。 如: A+=3 A=A+3 X*=Y+8 X=X*(Y+8) 可使用的10種賦值運算: +=、-=、*=、/=、%=、=,=、&=、=、|=復(fù)合的賦值運算的作用: 簡化程序,提高編譯效率。例:計算A+=A-=A*A 設(shè) A=12三、 逗號運算符與逗號表達式(順序求值運算符)作用:把表達式連接起來組成一個表達式。一般形式:表達式1,表達式2功能:分別求值,以表達式2的值作為整個表達式的值。例:說明:1、逗號表達式可以嵌套,則變化為: 表達式
20、1,表達式2,.表達式n 結(jié)果仍為表達式n的值(最后一個)2、注意說明語句中“,”與逗號表達式的區(qū)別。四、 關(guān)系運算(比較運算)1、 運算符(6種) 、= 、 、 = 、 = 、 != 2、 優(yōu)先順序 雙目運算、左結(jié)合 、=、=優(yōu)先于=和!= 關(guān)系運算級別低于算術(shù)運算,高于賦值運算3、 關(guān)系表達式 用關(guān)系運算符連接起來的式子。值為邏輯型。(1,0) 例:設(shè)A=3,B=2,C=1 則:A>B 值為1 (A>B)=C 值為1D=A>B 值為1 F=A>B>C 值為0五、 邏輯運算1、 運算符:(3種) && 邏輯與 | 邏輯或 ! 邏輯非 如: A&a
21、mp;&B A|B !A 2、 優(yōu)先級:(1) !>&&|(2) 混合運算中: ! 高 算術(shù)運算 關(guān)系運算 &&、| 賦值運算 低3、 邏輯表達式:(1) 運算結(jié)果為邏輯值(2) 編譯系統(tǒng)以非0、0判定邏輯值真、假(3) 邏輯表達式中作為參加邏輯運算的運算對象可以是0或非0數(shù)值。但要區(qū)分運算對象。 例:5>3&&2|8<4-!0 值為 1(4) 表達式中并不是所有的邏輯運算都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算時,才能求出表達式的解時,才執(zhí)行該運算符。例1:A&&B&&C 、(M=A>
22、;B)&&(N=C>D) 例2:寫出一個能判別閏年的表達式:閏年的條件:* 能被4整除但不能被100整除* 能被4整除但又能被400整除六、 條件運算:根據(jù)條件確定某個表達式結(jié)果的值。(C語言中唯一的一個三目運算)1、 運算符:?、:2、 條件表達式形式:表達式1?表達式2:表達式33、 執(zhí)行過程: 說明:(1)條件運算優(yōu)先于賦值運算如:max=a>b ? a:b 將條件表達式的值賦給變量(2)結(jié)合方向為“右到左”例:設(shè)a,b,c,d的值為1、2、3、4求下述表達式的值max=a>b ? a:(c>d ? c:d)結(jié)果為:(3)條件表達式中,各表達式類型
23、可不同例:x ? a:b 若 x為0則值為b,否則值為ax>y ? 1:1.5 若x<=y則值為1.5,否則值為1.0表達式值的類型為兩者中較高類型(整變實)練習(xí):輸入一個字符,判斷它是否為大寫字母,如果是轉(zhuǎn)換為小寫,然后輸出該變量的值。七、 一元變換 & 取地址 * 取內(nèi)容 sizeof( ) 測試數(shù)據(jù)占用存儲空間長度(字節(jié))八、 位式運算(二進制位的運算)& 按位與 按位取反| 按位或 >>右移 按位異或 <<左移九、 特殊運算符() . 第四章:順序結(jié)構(gòu)程序設(shè)計§41 程序設(shè)計基礎(chǔ)知識一、 算法的概念1、 什麼是算法:解決實際
24、問題確定的、有限的操作步驟。一個程序是由以下幾個方面組成的:算法、數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計方法、語言工具和環(huán)境其中:算法是程序的靈魂,語句是算法的體現(xiàn)。2、 算法的特性:(1) 有窮性(2) 確定性(3) 有零個或多個輸入(4) 有零個或多個輸出(5) 有效性3、 算法的表示:(1) 自然語言表示法(2) 流程圖表示法傳統(tǒng)流程圖(4。1圖)NS圖(3) 偽代碼表示法二、基本的程序結(jié)構(gòu)1、順序結(jié)構(gòu)2、分支結(jié)構(gòu)(選擇結(jié)構(gòu))3、循環(huán)結(jié)構(gòu)三種結(jié)構(gòu)的流程圖為:(p48)三構(gòu)化程序設(shè)計方法基本思想:把一個復(fù)雜問題的解決過程分為幾個部分進行,每個問題都控制在人們最容易理解和處理的范圍內(nèi)。具體方法:1、自上而下2、
25、逐步細化3、模塊化設(shè)計4、結(jié)構(gòu)化編碼四C語句C語言中只有可執(zhí)行語句,沒有非執(zhí)行語句。函數(shù)1預(yù)編譯命令mingling 函數(shù)nC程序源程序1源程序2源程序n執(zhí)行部分說明部分1、 程序的一般結(jié)構(gòu):語句2、語句分類:(1) 控制語句(9種)if()else for()while() dowhile()continue break switch goto return其中:()表示是一個條件,表示是內(nèi)嵌的語句(2) 函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個分號構(gòu)成一個語句。如:printf(“ ”); 函數(shù) 分號(3)表達式語句(C語言的特色)由一個表達式組成一個語句。典型的為賦值。例:a=3 表達式 a=3
26、;語句一個語句的最后一定是“;”號,任何表達式都可以加上“;”成為語句。C語言中大多數(shù)語句是表達式語句,因此有人把C稱為表達式語言。(4) 空語句僅有一個分號的語句。作用:轉(zhuǎn)向點、循環(huán)體(空循環(huán))(5) 復(fù)合語句用一對 號括起來的語句。例:z=x+y;t=z/100;printf(“%f”,t); 不可省略§42賦值語句應(yīng)用十分普遍,具有其它語言賦值語句的一切特點和功能,但也需注意它們的不同之處。注意:“=”為賦值號,不同于數(shù)學(xué)中的等號。例:if(a=b)>0) t=a; if(a=b;)>0) t=a;§43數(shù)據(jù)輸出C語言中沒有專門的輸入輸出語句。兩個最基本的
27、輸出函數(shù):字符輸出、格式輸出。一、 字符輸出函數(shù):作用:向終端輸出一個字符。格式:putchar(c); (輸出變量C的值)其中:C可以是字符或整型變量。例:#include “stdio.h” 預(yù)處理命令main()char a=B,b=o,c=k;putchar(a);putchar(b);putchar(b);putchar(c);putchar(t);putchar(a);putchar(b);putchar(n);putchar(b);putchar(c);運行結(jié)果:Book Bo ok注意:使用putchar()函數(shù)前一定使用#include“stdio.h”二、 格式輸出函數(shù):作
28、用:向終端輸出若干個任意類型的數(shù)據(jù)。格式:printf(“格式控制字符串“,輸出表列)其中:1、格式控制是用雙引號括起來的字符串。它包括兩種信息:(1)格式說明:由%加格式字符組成(2) 普通字符:原樣輸出的字符2、 輸出表列:用逗號分開的輸出項??蔀楸磉_式。例: printf(“%d” , b);格式說明 參數(shù)printf(“%d,%d,%d”,a,b,c);參數(shù)分隔符printf(“%d,%d,%d”,(a,b,c),b,c);逗號表達式設(shè):a=3 b=4printf(“a=%d b=%d”,a,b);結(jié)果為:a=3 b=4由以上幾種形式可將printf()函數(shù)表示為:printf(參數(shù)1
29、,參數(shù)2,參數(shù)3,參數(shù)n)參數(shù)的作用:將參數(shù)2參數(shù)n的內(nèi)容按參數(shù)1給定的格式輸出。三、 格式控制字符:1、一般格式:標志輸出最小寬度.精度長度<類型>2、 格式說明:(1) 中的內(nèi)容為可選項(2)類型為輸出數(shù)據(jù)的類型.格式符及含義如下:格式字符 含義d 以十進制形式輸出帶符號整數(shù)o 以八進制形式輸出無符號整數(shù)x 以十六進制形式輸出無符號整數(shù)u 以十進制形式輸出無符號整數(shù)f 以小數(shù)形式輸出單、雙精度實數(shù)e 以指數(shù)形式輸出單、雙精度實數(shù)g 以%f、%e中較短輸出寬度輸出單、雙精度實數(shù)c 輸出單個字符s 輸出字符串(3)標志標志字符為-、+、#三種,含義如下: 結(jié)果左對齊+ 輸出符號(+
30、、-)# 對c、s、d、u無影響,對o類輸出時加前綴0對x類輸出時加前綴0x,對e、g、f類當結(jié)果有小數(shù)時才給出小數(shù)點。(4)輸出最小寬度:用十進制數(shù)來表示輸出的最少位數(shù)。若實際位數(shù)多于定義寬度,則按實際位數(shù)輸出;若實際位數(shù)少于定義寬度,則補以空格或0。(5)精度:精度格式符以“.”開頭,后跟十進制的整數(shù)。若輸出數(shù)字,則表示小數(shù)的位數(shù);若輸出字符,則表示輸出字符的個數(shù);若實際位數(shù)大于所定義的精度數(shù),則截去超過的部分。(6)長度:長度格式符為h、l兩種,h表示按短整型量輸出,l表示按長整型量輸出。四、使用printf()函數(shù)的幾點說明:1、格式字符要小寫。2、可在格式控制字符串中包含轉(zhuǎn)意。字符3
31、、格式控制字符串中可插入附加字符。4、若輸出字符“%”,則應(yīng)在字符串中連續(xù)兩個“%”號。五、實例說明:1、設(shè)a=123,b=1234則:printf(“%4d,%4d”,a,b);輸出為:_123,123452、設(shè)long a=135790;則:printf(“%ld,%d”,a,a);輸出為:135790,4718注意:長整型數(shù)據(jù)不可用d格式輸出。3、設(shè)有以下語句:printf(“%3s,%7.2s,%.4s,%-5.3s”,”china”,”china”,china”,”china”);則輸出為:china,_ch,chin,chi_4、設(shè):x=111111.123,y=222222.32
32、1則:printf(“%10.2f,%e”,x+y); 輸出為:333333.44,3.33333e+05小數(shù)位一般可保留6位5、有printf(“%f%“,1.0/3);則輸出為:0.333333%6、有如下程序段:main()char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%cb%ctc%c abcn”,c1,c2,c3);printf(“tb%c%c”,c4,c5);運行結(jié)果為:aabb cc abcAN§44數(shù)據(jù)輸入C語言中的數(shù)據(jù)輸入也是由函數(shù)來完成的。本節(jié)介紹二個從標準輸入設(shè)備鍵盤上輸入數(shù)據(jù)的函數(shù)。(scanf()與getchar())
33、一、字符輸入函數(shù):作用:由鍵盤輸入一個字符。格式:putchar();通常把輸入的字符賦予一個字符變量,構(gòu)成賦值語句。如:char ch;ch=getchar();使用getchar()函數(shù)需要注意:1getchar()函數(shù)只能接收單個字符。輸入數(shù)字也按字符處理;輸入多個字符僅接收第一個字符。2、使用本函數(shù)必須包含文件“stdio.h”。3、函數(shù)執(zhí)行時暫停程序運行,等待用戶輸入數(shù)據(jù)。二、格式輸入函數(shù):scanf()稱為格式輸入函數(shù)。是一個標準的庫函數(shù),函數(shù)原形在“stdio.h”文件中。其作用是由終端輸入若干個任意類型的數(shù)據(jù),送給相應(yīng)的變量。格式:scanf(“格式控制字符串“,地址表列)其中
34、:1、格式控制字符串的作用與printf()函數(shù)相同。但不可顯示非格式字符(不能顯示提示信息)。2、地址表列中要給出各變量的地址。地址是由地址運算符”&”加上變量名組成的。3、注意區(qū)分變量的值和變量的地址這兩個不同的概念。三、格式控制字符:1、一般格式:%*輸入數(shù)據(jù)寬度長度<類型>1、 格式說明:(1)類型輸入數(shù)據(jù)的類型.格式符及含義如下:格式字符 含義d 以十進制整數(shù)形式輸入o 以八進制整數(shù)形式輸入x 以十六進制整數(shù)形式輸入u 以十進制無符號整數(shù)形式輸入f/e 以型實數(shù)形式輸入c 輸入單個字符s 輸入字符串(2)“*”號用以表示該輸入項讀入后,不賦予相應(yīng)的變量,即跳過該輸
35、入值。如:scanf(%d%d%d”,&a,&b);當輸入1 2 3時1>a 3>b,2被跳過(3)寬度用十進制整數(shù)指定輸入的寬度。如:scanf(“%5d”,&a); 輸入12345678后僅把12345賦予a,其余截去。又如:scanf(“%4d%4d”,&a,&b); 輸入12345678后1234賦予a,5678賦予b,按寬度自動截取。(4)長度長度格式符為l、h,l表示長整型和雙精度浮點數(shù),h表示短整型數(shù)據(jù)。3、使用scanf()函數(shù)需注意:(1)scanf()函數(shù)中沒有精度控制。如:scanf(“%4.2f”,&a);是非
36、法的(2) scanf()函數(shù)中一定給出變量地址,不可是變量名,否則出錯。如:scanf(“%d”,a); 錯 scanf(“%d”,&a); 對(3)輸入多個數(shù)據(jù)時,格式控制串中沒有非格式字符,則輸入時數(shù)據(jù)間的分隔符可用空格、TAB鍵、回車鍵。(4)輸入字符數(shù)據(jù)時,若格式控制符中無非格式符,則認為所有輸入的字符均為有效字符。如:scanf(“%c%c%c”,&a,&b,&c);printf(“a=%c,b=%c,c=%c”,a,b,c);輸入:A,B,C輸出:a=A,b=,c=B,(5)如果格式控制字符串中有非格式字符,則輸入時也要輸入非格式字符。如:scan
37、f(“%d,%d,%d”,&a,&b,&c);輸入應(yīng)為:5,6,7若為:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);輸入應(yīng)為:a=5,b=6,c=7(6)輸入、輸出格式符不相符,則輸出數(shù)據(jù)錯誤。練習(xí)1、 語句 scanf(“%d%c%f“,&A,&B,&C);A=1234 B=a C=123.000000輸入:1234a123o.26請寫出:A=? B=? C=?2、寫出下列程序的運行結(jié)果并進行比較:程序1: main() int i=8;printf("%dn%dn%dn%dn%dn%dn
38、",+i,-i,i+,i-,-i+,-i-); 程序2:main()int i=8;printf("%dn",+i); printf("%dn",-i);printf("%dn",i+); printf("%dn",i-);printf("%dn",-i+); printf("%dn",-i-);_程序1的結(jié)果 程序2的結(jié)果8 97 87 88 97 88 93、判斷下列語句或程序段是否正確,若有誤請說明原因并改正:(1)int num; (2)main() num
39、=89101; x=3;y=6; printf(“%d”,num); printf(“%dn”,x+y);(3)a=3;b=4.5; (4)a=3 printf(“%f %dn”,a,b); b=4(5)scanf(“%d%d”,a,b)(6)有輸入語句:scanf(“%d %d”,&a,&b);請判斷下列幾種輸入方式是否正確? 輸入:3,4 輸入:3 4 輸入: 3 輸入:3 4 4第五章:選擇與循環(huán)結(jié)構(gòu)程序設(shè)計§51選擇結(jié)構(gòu)程序設(shè)計(分支)關(guān)系運算:(1)6個運算符:>、>=、<、<=、=、!= 優(yōu)先級(2)雙目運算 左結(jié)合 (3)關(guān)系表達
40、式的值為邏輯型真/假(1、0)應(yīng)用舉例: void main() char c='k' int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%dn",'a'+5<c,-i-2*j>=k+1); printf("%d,%dn",1<j<5,x-5.25<=x+y); printf("%d,%dn",i+j+k=-2*j,k=j=i+5); 邏輯運算:(1)3個運算符:!、&&、| 優(yōu)先級(2)&&、
41、|為雙目運算,!為單目運算 左結(jié)合 (3)邏輯表達式的值為邏輯型真/假(1、0)應(yīng)用舉例:void main() char c='k' int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%dn",!x*!y,!x); printf("%d,%dn",x|i&&j-3,i<j&&x<y); printf("%d,%dn",i=5&&c&&(j=8),x+y|i+j+k); 一、if語句:用if語句可
42、以構(gòu)成分支結(jié)構(gòu)。作用:判斷所給定的條件滿足與否,根據(jù)結(jié)果決定程序的流向。分支結(jié)構(gòu)的三種基本形式:1、簡單分支(單分支)格式:if (表達式) 語句;工作過程圖: 例1:if (x>y) printf(“%d”,x);例2:(if1.c)main()int a,b,max; printf("n input two numbers: "); scanf("%d%d",&a,&b); max=a; if (max<b) max=b; printf("max=%d",max); 2、雙分支格式:if (表達式) 語
43、句1;else 語句2;工作過程圖:例1:if (x>y) printf(“%d”,x); else printf(“%d”,y);例2:(if2.c)main()int a, b; printf("input two numbers: "); scanf("%d%d",&a,&b); if (a>b) printf("max=%dn",a); else printf("max=%dn",b); 3、多分支:格式:if (表達式1) 語句1;else if (表達式2) 語句2;else
44、 if (表達式m) 語句m;else 語句n;工作過程圖:例1: if (num>500) cost=.15;else if (num>300) cost=.10;else if (num>100) cost=.075;else if (num>50) cost=.05;else cost=0; 例2:(if3.c)#include "stdio.h" main()char c; printf("input a character: "); c=getchar(); if(c<32) printf("This i
45、s a control charactern"); else if(c>='0'&&c<='9') printf("This is a digitn"); else if(c>='A'&&c<='Z') printf("This is a capital lettern"); else if(c>='a'&&c<='z') printf("This is a
46、 small lettern"); else printf("This is an other charactern"); 4、使用if語句時注意:(1)三種形式的if語句中,if關(guān)鍵詞后面均為表達式。通常為關(guān)系表達式或邏輯表達式。也可以是其它表達式,如賦值表達式,甚至也可以是一個變量。例1:if (a=5) 語句;或 if (b) 語句;均為合法用法例2:if (a=b) printf(“a=%d”,a);else printf(“a=0”);(2)if后的條件判斷表達式一定用圓括號括起來,語句之后一定要用分號。(3)三種形式中,所有語句應(yīng)為單個語句,若為一組語
47、句一定用 括起來,組成復(fù)合語句。但需注意后不可用“;”號。例如:if (a>b) a+; b+;else a=0;b=10;二、if語句的嵌套:if語句中又含有if語句的形式稱為if語句的嵌套。一般形式:if (表達式1)if (表達式2) 語句1 內(nèi)嵌else 語句 2 if語句elseif (表達式3) 語句3 內(nèi)嵌else 語句4 if語句說明:(1)每一個if可能與else相匹配,也可能不與else相匹配;但是每一個else必須與一個if相匹配。Else與if匹配的原則是:else總是與它上面最近的if配對。(2)多分支及分支嵌套應(yīng)采用縮排方式,以增加程序的可讀性。分析如下程序段
48、:if (n>6) if (n<12)printf(“12>n>6n”);elseprintf(“n<=6n”);例:main() int a,b,max; printf("n input two numbers: "); scanf("%d%d",&a,&b); max=a; if (max<b) max=b; printf("max=%d",max); main() int a,b; printf("input two numbers: "); scanf(&
49、quot;%d%d",&a,&b); if(a>b) printf("max=%dn",a); else printf("max=%dn",b); void main() int a,b; printf("please input A,B: "); scanf("%d%d",&a,&b); if(a=b) printf("A=Bn"); else if(a>b) printf("A>Bn"); else printf("A<Bn"); main()int a,b,c;a=7;b=8;c=9;if(a>b) a=b,b=c;c=a; printf("a=%d b=%d c=%dn",a,b,c); main() int a,b,c; printf("input number(a,b,c): n"); scanf(&qu
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘肅省武威市第二十三中學(xué)2024年中考適應(yīng)性考試數(shù)學(xué)試題含解析
- 廣東省廣州市天河區(qū)暨南大附中2024年中考數(shù)學(xué)猜題卷含解析
- 2025年部門級安全培訓(xùn)考試試題含答案(考試直接用)
- 2024-2025新入職員工安全培訓(xùn)考試試題答案
- 2025員工安全培訓(xùn)考試試題及答案一套
- 2025年項目部管理人員安全培訓(xùn)考試試題含答案【輕巧奪冠】
- 2024-2025公司職工安全培訓(xùn)考試試題(5A)
- 25年企業(yè)員工崗前安全培訓(xùn)考試試題帶答案(培優(yōu)A卷)
- 2025新進廠職工安全培訓(xùn)考試試題帶答案(模擬題)
- 2025年中國腕表行業(yè)市場規(guī)模及未來投資方向研究報告
- GB/T 5709-2025紡織品非織造布術(shù)語
- DBJ33-T?1152-2025 《建筑工程建筑面積計算和竣工綜合測量技術(shù)規(guī)程》
- 人教版(PEP)2025春季五下英語期中試卷(含答案含聽力原文無音頻)
- Unit 3 Learning better Part B 【知識精研】人教PEP版英語三年級下冊
- 2025年保安證考試簡易參考試題及答案
- 膀胱沖洗臨床指南
- 2025年舌診能力測試題及答案
- YY/T 0294.1-2024外科器械材料第1部分:金屬材料
- 老年衰弱的護理措施
- 2025年江蘇省糧食集團有限責任公司招聘筆試參考題庫含答案解析
- 展覽行業(yè)中的數(shù)據(jù)驅(qū)動營銷策略研究
評論
0/150
提交評論