版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言程序設計 C語言程序設計 第1章 基本概念41.1 C語言的產生及發(fā)展史41.2
2、C語言特點6C語言及其程序的基本形式6第2章 數據類型、運算符與表達式72.1 基本數據類型72.2 常量與變量82.3 運算符102.4 表達式112.5 逗號運算符與逗號表達式12第三章 順序結構143.2 數據輸出143.2.1 printf函數的使用143.3 數據輸入173.4 復合語句193.4.1 復合語句193.4.2 空語句203.5 程序舉例20第4章 選擇結構214.1 關系運算與邏輯運算214.1.1 關系運算214.1.2 邏輯運算214.2 if語句224.3 條件表達式254.4 switch選擇結構與break語句26第五章 循環(huán)結構285.1 while 循環(huán)
3、285.2 do while 循環(huán)295.3 for語句和for語句構成的循環(huán)305.4 循環(huán)的嵌套325.5 break 與 continue 在循環(huán)中的應用33第六章 字符型數據356.1 字符型常量356.1.1 字符型常量356.1.2 轉義字符數據的寫法356.1.4 可對字符量進行運算366.2 字符型變量366.3 字符的輸入與輸出366.3.1 用printf與scanf作輸出與讀取366.3.2 用putchar 與 getchar作字符的輸出與讀取37第七章 函數397.1 庫函數397.2 自定義函數397.2.1 函數的書寫方法407.2.2 函數的返回值407.3 函
4、數的調用417.4 函數的說明427.5 調用函數與被調用函數之間的數據傳遞45第八章 地址與指針488.1 變量的地址與指針488.2 指針變量的定義498.3 指針變量賦值498.4 對指針變量操作498.5 移動指針508.6 函數之間的地址傳遞518.7 返回地址的函數叫做指針函數51第九章 數組529.1 一維數的定義與引用529.2 一維數組的訪問529.3 數組的賦值529.5 一維數組與地址539.5 二維數組的定義和二維數組元素的引用579.5.1 二維數組的定義579.5.2 二維數組的訪問589.5.3 二維數組在定義可以賦值589.5.4 可以通過賦值,確定行數589.
5、6 二維數組與指針599.6.1、二維數組實際上是由一維數組構成:599.6.2 二維數組名也是二維數組的首地址599.7 二維數組與函數60第十章 字符串6410.1 用一維數組存放字符串6410.1.1 通過賦初值給一個字符數組賦成字符串6510.1.2在程序執(zhí)行過程中給一維字符數組賦值6610.2 使指針指向一個字符串6610.2.1 可通過賦初值,指一個指針指向字符串6610.2.2 通過賦值運算使指針指向一個字符串6610.3 字符串的輸入與輸出6610.3.1 輸入輸出字符串的必要條件6610.3.2 用格式說明符%s進行整串的輸入與輸出6610.3.3 用gets和puts函數對
6、字符串進行輸入與輸出6610.4 字符串數組6710.5 用于字符串處理的函數67第十一章 遞歸函數70第十二章 C語言中變量的作用域與變量的存儲類型7012.1 局部變量7012.2全局變量7112.3 局部靜態(tài)變量71第十三章 編譯預處理和動態(tài)存儲分配7213.1宏替換7213.2 動態(tài)存儲分配7313.2.1 malloc 函數與 free 函數73第十四章 結構體與共用體7414.1 用typedef說明一個類型7414.2 結構體類型7414.2.1 結構體類型聲明的格式:7514.2.2 結構體型的數組、變量、指針的定義7514.2.3 結構體變量、數組的賦值7614.2.4 引用
7、結構體變量中的數據7714.2.5 對結構體成員賦值7714.2.6 結構體函數之間數據傳遞7814.3 鏈表81 第1章 基本概念本章主要內容 明確C語言的產生及發(fā)展史 了解C語言特點 掌握C語言的表述環(huán)境 明確C語言及其程序的基本形式 1.1 C語言的產生及發(fā)展史 C語言屬于ALGOL語言族系, 產生于1972年. 是編程者設計的一種結構化程序設計語言. 它首先是為了編寫PDP-11型計算機上的UNIX操作系統而產生出來, 但后來發(fā)展成為一種
8、獨立的程序設計語言, 并廣泛地應用在大型, 小型,微型計算機上.1967年英國劍橋大學的Matin Richards對CPL語言做了簡化,推出了BCPL語言。1970年美國貝爾實驗室的Ken Thompson以BCPL語言為基礎,又做了進一步簡化,設計出了很簡單的而且很接近硬件的B語言,并用B語言寫了第一個UNIX操作系統,在PDP-7上實現。1972年至1973年間,貝爾實驗室的D.M.Ritchie在B語言的基礎上設計出了C語言。 C語言的設計者Dennis M. Ritchie 1973年,K.Thompson和D.M.Ritchie兩人合作把UNIX的90以上用C改
9、寫,即UNIX第5版,由此確立了C語言的地位。 Ritchie和Thompson在開發(fā)UNIX C語言的設計者D.M.Ritchie和Unix的設計者Ken Thompson接受美國國家技術勛章 C語言是一種"中級語言", 它介于高級語言(BASIC,FORTRAN .)和低級語言(匯編語言)之間. 它即具有高級語言功能(直接的人-機對話和數學計算),又具有低級語言功能(移位,位處理), 從而使其功能大大地增強, 成為一種先進的程序設計語言.1.2 C語言特點 語言簡煉 使用的關鍵字僅為27個, 而BASIC
10、語言為150多個. 利用符號代替語句,表達簡潔. 許多工作由大量的庫函數完成, 并且?guī)旌瘮悼梢宰远x, 所以C語言的關鍵字及其功能是無限的. 功能強 它集高級語言的特點和低級語言的特點于一身, 即能完成高語言的功能 又能完成低級語言的功能, 是一種強功能的語言. 由它編寫的軟件有: UNIX, dBASE III, C編譯. 模塊化結構 C語言支持各種庫函數和用戶定義的函數(模塊)相互調用構成程序, 完 成功能. 并且, 不允許嵌套定義, 因此, 具有很強的模塊化結構. 移植性好 利用C語言編的程序不加改動或稍加改動, 就可以由一個環(huán)境移植到另一個環(huán)境上. 因為, 不同
11、計算機上的C語言編譯代碼的80%左右相同. C語言及其程序的基本形式 這里介紹幾個簡單的C語言程序,從中明確C語言及其程序的基本形式。例 1.1main ( ) printf (“This is a C program.n); 本程序的作用是輸出以下一行信息,主要說明C語言程序的基本組成部分,C語言程序的具體形式。 例.main ( ) /* 求兩數之和*/ int a,b,sum; /* 這是定義變量*/ a=123; b=456;/* 為變量賦初值*/ sum=a+b; /* 將兩個變量的值相加后賦給另一個變量*/ printf (“sum is
12、 %dn”, sum);/* 輸出相加后的結果*/ 本程序的作用是說明一個較為全面的C語言程序,以及注釋的使用。 第2章 數據類型、運算符與表達式 本章主要內容 理解數據類型引入的目的、意義和具體類型 明確常量與變量 掌握C語言的運算符和表達式表 2.1 基本數據類型 大千世界存在著各種各樣、各種類型的數,人們利用不同類型的數去描述不同的事物。然而,哪些“類型”的數據可以在C語言中使用?C語言中允許使用的“類型”又是什么呢? 3.1.1 數據類型:某一類數據(值)的特征形式(表示意義、取值范圍、符號取向). 基本形:整數(int)、
13、浮點(float)、字符(char)、無值(void)。構造(組合、集合)型:數組、結構(struct)聯合(union)、枚舉(enum)。指針類型空類型 1. 1.整數和整數類型整數在C語言中稱為“整型常量”,因為它即表示了值,又表示了一定的意義。 類型字節(jié)數取值范圍signed int2-32768 - 32767Unsigned int20 - 65535signed shot int2-32768 - 32767Unsigned shot int20 - 65535long int4-2147483648 - 2147483647Unsigned long int
14、40 - 4294967295注:方括弧內的部分是可以省略的。例如:signed shot int 與shot等價,尤其是 signed 是完全多余的,一般都不寫signed。 2. 浮點類型(float)類型字節(jié)數有效數字取值范圍float46 7-3.4X10(-38) - 3.4X10(38)double815 16-1.7X10(-308) - 1.7X10(308)long double1618 - 19-1.2X10(-4932) - 1.2X10(4932) 3. 字符類型(char)類型字節(jié)數意義char1表示一個字符 2.
15、2 常量與變量 在3.1節(jié)學習了幾種數據的類型,可以用它們表示客觀世界中的數值。那么,如果要表示客觀世界中的“事物”(事和物)怎么辦?C語言中使用“量”來表達客觀事物,其中,自身數值不變的量用“常量”表示,自身數值變化的量用“變量”表示。因此,為了全面地表達客觀事物,在C語言中則必須使用(定義)常量和變量(表示事和物)。同時,給出它們的類型(表示數值)。 3.2.1 常量:程序執(zhí)行中其值不變的量。 類型:一般(短整)常量、長整常量、浮點常量、字符常量、字符串常量。符號常量定義式: #define 符號常量名;例: #define PI 3.14 意義: 3.2.2 變量:程
16、序在執(zhí)行過程中其值變化的量。 類型:一般(短整)變量、長整變量、浮點變量、字符變量、字符串變量。定義式: 數據類型 變量名; 例: int k; 意義:定義整型變量k。 3.2.3 變量賦初值在C語言中常需要對變量預先設置初值,可以使用數的三種表示形式:十進制數、八進制數、十六進制數和數據類型為變量賦初值。 例3.1#define PRICE 30main ()int num,total;num=10;total=num*PRICE;printf (“total=%dn”,total); 本程序的作用是說明常量的定義、賦值和使用。
17、;例3.2main ( ) int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf (“a+u=%d,b+u=%dn”,c,d); 本程序的作用是說明整型變量的定義、賦初值、運算和其值的輸出。 例3.3main ( ) char c1,c2; c1=97; c2=98; printf (“%c %cn”,c1,c2);printf (“%d %dn”,c1,c2); 本程序的作用是說明字符型變量的定義、賦初值和輸出。 例3.4main ( ) int a=3; float f
18、=3.1415926;char c=a; printf (“nnn%d %f %cn”,a,f,c); 本程序的作用是說明整型、字符、浮點變量的定義、賦初值和輸出。 注:標識符:由字母、數字和下線符構成,標志和識別一定意義的字符串。 類型:關鍵字、特定字、一般標識符(由用戶設定)。 作用:代表常量、變量、數據類型、函數名字。關鍵字:在C語言中,具有嚴格特定含義的標識符。 見教材 P365 附錄B 2.3 運算符 在客觀事物使用數和量表示完以后,還要對它們進行處理,進行運算,這就要涉及C語言中的運算符。還要表達它們之間的關系,又要
19、用到C語言中的表達式。那么C語言中提供了哪些運算符和表達式讓我們使用呢? 3.3.1 運算符C語言中的運算符分為以下幾類:1. 1.算術運算符 + - * / %2. 2.關系運算符 > < = >= <= !=3. 3.邏輯運算符 && | !4. 4. 位運算符 << >> | &5. 5.賦值運算符 =6. 6.條件運算符 ? :7. 7.逗號運算符 ,8. 8.指針運算符 * &9. 9.求字節(jié)數運算符 sizeof10. 10.強制類型轉換 (類型)11. 11.分量運算符變 . -&
20、gt; 12. 12.下標運算符 13. 13. 其它 函數調用運算符 ( )見教材 P365 附錄C 3.3.2 算術運算符 自增、自減算術運算符+i; -i; 意義:在使用i之前,先使i的值加1(減1)。i+; i-; 意義:在使用i之后,使i的值加1(減1)。 例: int m,n,s,t,k=10; m=+k; n=k+; s=-k; t=k-; 3.3.3 復合運算符 a+=3; 等價于 a=a+3; x*=y+8; 等價于 x=x*(y+8); x%=3; 等價于 x=x%3; 2.4 表達式
21、0;表達式:使用運算符將運算(操作)對象連接起來的、符合C語法規(guī)則的式子。算術表達式、邏輯表達式、字位表達式、強制類型轉換表達式、逗號(順序)表達式、賦值表達式、條件表達式、指針表達式。 例3.5main ( ) int a,b,c; float d,f=3.1415926; a=b=c=9; d=a/f; printf (“nnn%d %d %d %f n”,a,b,c,f);printf (“n%f n”,d); 本程序的作用是說明賦值表達式、算術表達式的使用。 例3.6main ( ) int m=10;n=3; int s,t; s=m/2; t=n%2;
22、 printf (“nnn%d %d n”,s,t); 本程序的作用是說明除法運算符和取余運算符的區(qū)別。 例3.7main ( )int i,j,k,l;i=2,j=3;k=i+;l=-j;printf (“%d %d %d %d”,i,j,k,l); 本程序的作用是說明自加、自減運算符的使用。 例3.8main ()int num=1,total=11;num+=5;total%=num;printf ("n %d %dn",num,total);本程序的作用是說明復合運算符的使用。 例
23、3.9main ( ) float x; int i; x=3.6; i=(int)x; printf (“n x=%f i=%dn”,x,i); 本程序的作用是說明強制類型轉換的問題。 2.5 逗號運算符與逗號表達式 以前我們學過 + - * /(特別) %(特別) = % 要求兩邊的操作數必須是整數如: 5%3 結果為 2 這個運算符通常用作判斷一個數是否能被另一個數整除。這節(jié)課我們學習逗號運算符,我們通過逗號表達式來看一下逗號運算符是怎么回事。逗號表達的定義:用逗號連接的表達式,叫逗號表達式格式: 表達式1, 表達式2, 表達式3, 表達式4,表
24、達式n逗號表達式的運算順序:表達式1à 表達式2à 表達式3à表達式4à表達式n逗號表達式結果:最后一個表達式的結果將作為整個表達式的結果。例1、 例1、看如下程序,寫出結果#include "stdio.h"main()int k;k=(2+3,7,0,88);printf("k=%dn",k); /結果是 88例2、 例2、看如下程序,寫出結果#include "stdio.h"main()int k;k=2+3,7,88;printf("k=%dn",k); /結果是
25、5說明:賦值符號的優(yōu)先級要高于逗號運算符,逗號運算符的優(yōu)先級在所有的運算符當中是最低的。 例3、看如下程序,寫出結果#include "stdio.h"main()int k,i=5;k=(i+,i+,i+5); / k=(i=i+1),(i=i+1),(i+5);printf("k=%dn",k); /結果為 12例4、看如下程序,寫出結果#include "stdio.h"main()int k,i=5;k=i+,i+,i+5; / k=(i=i+1),(i=i+1),(i+5);printf("k=%dn",
26、k); 復習以前的知識運算符+ 和 - - 運算的規(guī)則是一樣的,我們以+為例進行講解。+運算符只能用于單變量身上,如i+, (a+b)+ 這樣寫就不對了。用于單變量身上表示單變量本身自增1。自增運算符有兩種情況,一種作為前綴,別一種作為后綴。一、當+作為前綴或是后綴時,變量執(zhí)行的結果都是一樣的 #include "stdio.h"main()int i=5;i+;printf(" %d n",i); / 6 #include "stdio.h"main()int i=5;+i;printf(" %d n&
27、quot;,i); / 6 說明:無論是前綴還是后綴,i+(或+i) 都是使i自增1(i=i+1) 二、+作為前綴與+作為后綴,表達式的值是不一樣的 #include "stdio.h"main()int k,i=5;k=i+;printf("%d %d n",k,i); /5 6#include "stdio.h"main()int k,i=5;k=+i;printf("%d %d n",k,i); / 6 6
28、說明:在上面的兩個程序中,K存放的都是自增表達式的值,兩個自增表達式的值是不同的。 (1) +i K得到的是i自增后的結果,我們用一句話表示:先運算,后取值。(2) (2)i+K得到的是i自增后前的結果,我們用一句話表示:先取值,后運算??偨Y一下:i+ 和 +i 主要區(qū)別只是表達式的值不同,但是他們功能是一樣的,都是使i自增1.第三章 順序結構在這一章中,我們主要講printf和scanf的使用,若在程序中使用printf和scanf,則應在程序的第一行用#include 將”stdio.h”文件包含進來。3.2 數據輸出3.2.1 printf函數的使用以前我們上講過一個例子:#includ
29、e "stdio.h"main()double a,b;a=1.2;b=1.2;printf("a=%f,b=%f n",a,b);說明:在上面的printf中,存在一個格式符 %f ,%f是專門用來輸出double變量內容,那么上面程序的執(zhí)行結果:printf的使用方法:printf(“字符串”,輸出的變量);說明:1、雙引號中的字符除了格式符(是用來輸出變量的)之外,其它字符是原樣輸出。2、我們主要學習哪些格式符呢?double %f(%lf) float %fint %d long %ld 例1、寫出程序結果#include "
30、stdio.h"main()float x,y;x=33.0; y=66.0;printf("x=%f,y=%f",x,y);例2 寫出程序結果#include "stdio.h"main()int k;int a=11,b=3;k=a%b;printf("k=%d n",k);例3寫出程序結果#include "stdio.h"main()long k;long a=9,b=3;k=a%b;printf("k=%ld n",k);3、printf(“字符串”,輸出的變量); 該格式中
31、第二部分是可以省略,那么就輸出字符串。#include "stdio.h"main()printf("*Hello World*n");4、可以在%d之間加上一個數字,用來指定輸出數所占的寬度,如%5d,則數占5個字符的寬度,字符默認向右對齊。例1、#include "stdio.h"main()int a=3;int b=50;int c=500; printf("%5dn",a);printf("%5dn",b);printf("%5dn",c);例2、#inc
32、lude "stdio.h"main()int a=3; int b=50;int c=500; int d=5000; printf("%5dn",a);printf("%-5dn",b);printf("%dn",c);printf("%3dn",d); 若實際寬度 < 指定的寬度,則%nd數字默認向右對齊若實際寬度 < 指定的寬度,則%-nd 默認向左對齊%d是我們以前的老模式,正常輸出若實際寬度 > 指定的寬度,則正常輸出5、對于輸出(float 或
33、 double ) 的%f,可以在%和f之間,加上m.n ,%m.nfm:是指定整個數所占寬度 n:指定小數位數如:a=3.145678 若想保留兩位小數輸出,則 %4.2f#include "stdio.h"main()double a=3.145678;printf("a=%4.2f n",a); / 3.15有時出題人比較懶,他容易將%4.2f寫成 %.2f,%.2f的意思:小數按兩位輸出,整數部分要原樣輸出的。#include "stdio.h"main()double a=300.145678;printf("a=
34、%.2f n",a); / 300.15 /%1.2f 是先保證小數位輸出,然后整數位原樣輸出3.3 數據輸入如何能過鍵盤給程序中的變量賦值呢?#include "stdio.h"main()double a,b,area;a=1.2;b=1.2;area = a*b;printf("a=%.2f,b=%.2f,area =%.2f n",a,b,area);通過 scanf函數給變量賦值,看一下scanf函數的使用形式:scanf(“字符串”,變量的地址);說明1、給變量賦值也要能過格式符 double %lf float %fint %d
35、long %ld 現在我們舉一個最常見的例子:#include "stdio.h"main()double a,b,area;scanf("%lf%lf",&a,&b);area = a*b;printf("a=%.2f,b=%.2f,area =%.2f n",a,b,area);注意:scanf("%lf%lf",&a,&b); 雙引號內的格式符要挨著,不要加一些其它字符,要賦值的變量前加&2、如何給變量賦值#include "stdio.h"
36、;main()double a,b,c,area;scanf("%lf%lf%lf",&a,&b,&c);area = a*b+c;printf("a=%.2f,b=%.2f,c=%.2f,area =%.2f n",a,b,area);1) 1 2 3 回車2) 1 回車 2 回車 3 回車3) 1 tab 2 3總之:數據之間可以任意加空格,回車,Tab,最后用回車表示數據輸入結束。3、在scanf中,我們可以指定所要讀取數的寬度#include "stdio.h"main()int a,b,c,
37、area;scanf("%3d%2d%4d",&a,&b,&c);area = a*b+c;printf("a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);說明:若在鍵盤中輸入1234567890時,此時%3d讀取了123賦給了a,%2d讀取了45賦給了b,%4d讀取了6789賦給了c,4、用%*d可以是跳過一個數#include "stdio.h"main()int a,b,area;scanf("%d%*d%d",&a,&b);are
38、a = a+b;printf("a=%3d,b=%3d,area =%3d n",a,b,area); /若輸入123 456 789<回車>說明:此時第一個%d讀取了123,遇空格結束,第二%*d會跳過456,第三個%d讀取了789。例1、#include "stdio.h"main()int a,b,area;scanf("%3d%*3d%3d",&a,&b);area = a+b;printf("a=%3d,b=%3d,area =%3d n",a,b,area); /若輸入123
39、 456 789<回車>例2、#include "stdio.h"main()int a,b,area;scanf("%2d%*3d%2d",&a,&b);area = a+b;printf("a=%3d,b=%3d,area =%3d n",a,b,area);輸入1234567890說明:讀取了12送給了a,跳過345,讀取了67賦給了b.最后注意,同學們在上機的時候總愛出現這樣的毛?。?include "stdio.h"main()int a,b,area;scanf("
40、%d,%d,%d",&a,&b,&c);area = a+b+c;printf("a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);同學們千萬要注意:在scanf的雙引號,一定要按著雙引號的字符原樣輸入,這樣才是正確的,如上題:123,456,789#include "stdio.h"main()int a,b,c,area;scanf("please input a,b,c: %d%d%d",&a,&b,&c);area = a+b+c;p
41、rintf("a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);此時正確的輸入方法是:please input a,b,c:123 12 13.4 復合語句3.4.1 復合語句復合語句的概念:就是用 括起來的0個或多個語句叫復合語句。復合語句在C語言語法上來說,是作為一個整體(也可以說作為一條大的語句)如:#include "stdio.h"main()int a,b,c,area;scanf("%d%d%d",&a,&b,&c);area = a+b+c;printf(&q
42、uot;a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);這個C語言程序從上到下一共3條語句。3.4.2 空語句空語句:就是一個單分號,空語句也是一條合法的語句。#include "stdio.h"main()int a,b,c,area;scanf("%d%d%d",&a,&b,&c);area = a+b+c;printf("a=%3d,b=%3d,c=%3d,area =%3d n",a,b,c,area);該程序一共是5條語句,當計算機執(zhí)行到第四條語句(空語
43、句)時,計算機什么也不干。3.5 程序舉例例3.1 從鍵盤輸入兩個整數,給x和y賦值,在程序中使x和y的值交換,然后再輸出交換后的x和y的值。#include "stdio.h"main()int x,y,t;scanf("%d%d",&x,&y);t=x; x=y; y=t;printf("x=%d,y=%d n",x,y);例3.2 輸入一個double 數給n,輸出該數時,要對小數點的第三位進行四舍五入,后輸出n。#include "stdio.h"main()double n;scanf(&
44、quot;%lf",&n);n=n*100;n=n+0.5;n=(int)n;n=n/100;printf("n=%.2f",n);第4章 選擇結構4.1 關系運算與邏輯運算4.1.1 關系運算關系運算主要是由 > >= < <= != =,由關系運算符構成的表達式是關系表達式。這里面講的主要是:是表達式都得有值,關系表達式也有值(當關系成立時,表達式的值為1,不成立關系表達式的值為 0)#include "stdio.h"main()int k;k=1>2;printf(" 1>2 de
45、zhi %dn", k); / 0k=1=2;printf(" 1=2 de zhi %dn", k); / 0k=1!=2;printf(" 1!=2 de zhi %dn", k); /14.1.2 邏輯運算邏輯運算符主要是由 &&(并且)、|(或者)、!(非)等運算符組成?,F在說一下運算規(guī)則: !T 結果為 F!F 結果為 T |T | T T T | F TF | T TF | F F &&T && T T T && F FF && T FF &
46、amp;& F F 例1、(T && T T)#include "stdio.h"main()int k;k=3>2 && 3>1;printf("%d",k);例2、(F && T F)#include "stdio.h"main()int k;k=3>12 && 3>1;printf("%d",k);例3、(T | F T)#include &qu
47、ot;stdio.h"main()int k;k=13>12 | 3>11;printf("%d",k);例4、(!T 結果為 F)#include "stdio.h"main()int k;k=!(13>12);printf("%d",k);說明:在邏輯表達式中,若其中一個表達式是非0的,那么在邏輯判斷中,計算機認為是真#include "stdio.h"main()int k;k=(13>12) && -3;printf("%d",k);4.
48、2 if語句if語句一共和2種基本的使用形式,還有2種嵌套的使用形式,當然考試主要考兩種基本的使用形式,關于嵌套同學們認識一下就可以了。 基本形式1、1、使用形式:if(條件)語句2、執(zhí)行過程:若條件成立,則執(zhí)行if中的語句,否則執(zhí)行if語句后面的語句。3、例1:從鍵盤輸入兩數,輸出最大數:#include "stdio.h"main()int m,n; int max;scanf("%d%d",&m,&n);max=m;if(max<n)max=n;printf("max=%d n",max);例3、
49、 例3、從鍵盤輸入三數給a,b,c變量,再輸出a,b,c變量時,三數是由大到小的順序輸出#include "stdio.h"main()int a,b,c;int t;scanf("%d%d%d",&a,&b,&c);if(a < b)t=a; a=b; b=t;if(a < c)t=a; a=c; c=t;if(b < c)t=b; b=c; c=t;printf("%d %d %d n",a,b,c);#include "stdio.h"main()int a,b,c;
50、int t;scanf("%d%d%d",&a,&b,&c);if(a < b)t=a; a=b; b=t;if(a < c)t=a; a=c; c=t;if(b < c)t=b; b=c; c=t;printf("%d %d %d n",a,b,c); 運行:沒有達到預期,因為if語句中,若條件成立時,同時執(zhí)行多條語句,多條語句必須用括起來,構成復合語句,才可以。上面程序中,if后面的多條語句沒有被括起來,if只與最近的語句搭配。正確的寫法如下:#include "stdio.h"
51、main()int a,b,c;int t;scanf("%d%d%d",&a,&b,&c);if(a < b)t=a; a=b; b=t;if(a < c)t=a; a=c; c=t; if(b < c)t=b; b=c; c=t; printf("%d %d %d n",a,b,c);第二種基本形式:含else的if語句1、使用形式if(條件)語句1else語句22、執(zhí)行過程:若條件成立了,則執(zhí)行語句1,否則執(zhí)行語句23、例:從鍵盤輸入兩數,輸出最大數:#include "stdio.h"
52、main()int m,n; int max;scanf("%d%d",&m,&n);if(m>n)max=m;elsemax=n;printf("max=%d n",max);從鍵盤輸入一個整數,若能被3整除,打印Yes ,否則打印No#include "stdio.h"main()int n;scanf("%d",&n);if(n%3=0)printf("Yes");elseprintf("No");if 語句是一條特殊的語句,所以他可以替換
53、if語句中的語句。嵌套形式一: #include "stdio.h"main()int s; scanf("%d",&s);if(s>=60)if(s>=90)printf("youxiu n");elseprintf("jige n");elseprintf("Faild! n"); if(條件)if(條件)語句1else語句2else語句2 #in
54、clude "stdio.h"main()int s; scanf("%d",&s);if(s<60)printf("Faild! n");elseif(s>=90)printf("youxiu n");elseprintf("jige n"); 嵌套形式二:if(條件)語句2else if(條件)語句1else語句2 例如:輸入一成績到變量S中,根據學生成績的等級分別輸出ABCDE等。#incl
55、ude "stdio.h"main()int s; scanf("%d",&s);if(s>=90)printf("A n");else if(s>=80)printf("B");else if(s>=70)printf("C");else if(s>=60)printf("D");else printf("E");4.3 條件表達式先擇結構呢我們學習了if結構,現在我們還要學習另外一種選擇結構,叫條件表達式。我們首先看一下
56、條件表達式的構成:條件 ? 表達式1 : 表達式2 條件表達式的執(zhí)行過程:若條件成立,則計算機執(zhí)行e1,否則執(zhí)行e2。例1:#include "stdio.h"main()int m,n; scanf("%d%d",&m,&n);int max;m>n?max=m:max=n;printf("max=%dn",max);條件表達式的值:我們通過一個例子來看:例2#include "stdio.h"main()int m,n; scanf("%d%d",&m,&n);int max;max=m>n?m:n; (? : 條件運算符優(yōu)先級高于=)printf("max=%dn",max);若條件成立,則表達式的結果為表達式1,否則表達式的結果為表達式2例3#include "stdio.h"main()int s; scanf("%d",&s);s>60 ? s>=90 ? printf("youxiu n") :
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度儲煤場煤炭交易代理服務合同3篇
- 2025年度金融機構外匯借款合同綠色金融創(chuàng)新實踐
- 二零二五年度碼頭租賃項目環(huán)保驗收及服務合同4篇
- 二零二五年度錄音系統定制開發(fā)與實施合同3篇
- 2025年度蘋果水果產地直供直銷采購合同4篇
- 2025版木工模板租賃與園林景觀設計施工承包合同范本3篇
- 二零二五年度寵物醫(yī)院寵物食品研發(fā)與生產合作協議3篇
- 二零二五年度辦公家具銷售合同(含安裝)2篇
- 二零二五年度天使投資協議書:生物科技研發(fā)項目風險投資合同
- 二零二五年度商標授權及商標市場推廣合同范本2篇
- 2024-2030年中國招標代理行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報告
- 醫(yī)師定期考核 (公共衛(wèi)生)試題庫500題(含答案)
- 基因突變和基因重組(第1課時)高一下學期生物人教版(2019)必修2
- 內科學(醫(yī)學高級):風濕性疾病試題及答案(強化練習)
- 音樂劇好看智慧樹知到期末考試答案2024年
- 辦公設備(電腦、一體機、投影機等)采購 投標方案(技術方案)
- 案卷評查培訓課件模板
- 2024年江蘇省樣卷五年級數學上冊期末試卷及答案
- 人教版初中英語七八九全部單詞(打印版)
- 波浪理論要點圖解完美版
- 金融交易數據分析與風險評估項目環(huán)境敏感性分析
評論
0/150
提交評論