全國計算機等級考試二級c語言培訓(xùn)_第1頁
全國計算機等級考試二級c語言培訓(xùn)_第2頁
全國計算機等級考試二級c語言培訓(xùn)_第3頁
全國計算機等級考試二級c語言培訓(xùn)_第4頁
全國計算機等級考試二級c語言培訓(xùn)_第5頁
已閱讀5頁,還剩255頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

全國計算機等級考試二級c語言培訓(xùn)目錄第1章程序設(shè)計基本概念第2章C程序設(shè)計的初步知識第3章順序結(jié)構(gòu)第4章選擇結(jié)構(gòu)第5章循環(huán)結(jié)構(gòu)第6章字符型數(shù)據(jù)第7章函數(shù)第8章地址和指針第9章數(shù)組第10章字符串第11章對函數(shù)的進一步討論第12章C語言中用戶標識符的作用域和存儲類第13章編譯預(yù)處理和動態(tài)存儲分配第14章結(jié)構(gòu)體、共用體和用戶定義類型第15章位運算第16章文件第17章上機指導(dǎo)1.1程序和程序設(shè)計C語言源程序C語言編譯程序二進制機器指令(目標程序).C.OBJ高級語言機器語言C語言連接程序可執(zhí)行文件.EXE考點算法的基本特征①有窮性、②確定性、③可行性④有零個或多個輸入⑤有一個或多個輸出結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)考點總結(jié):由以上3種基本結(jié)構(gòu)組成的算法可以完成任何復(fù)雜的問題.考點總結(jié):用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出.習(xí)題1.1在環(huán)境中用RUN命令運行一個C程序時,這時所運行的程序的后綴是_________。1.2C語言源程序文件名的后綴是_________;經(jīng)過編譯后,生成文件的后綴是_________;經(jīng)過連接后,生成文件的后綴是_________。1.3結(jié)構(gòu)化程序由_________、_________、_________三種基本結(jié)構(gòu)組成。.exe.c.obj.exe順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)第2章C程序設(shè)計的初步知識2.1簡單C語言程序的構(gòu)成和格式2.2標識符、常量和變量2.3整型數(shù)據(jù)2.4實型數(shù)據(jù)2.5算術(shù)表達式2.6賦值表達式2.7自加、自減運算符和逗號運算符2.1簡單C語言程序的構(gòu)成和格式本節(jié)將通過一個簡單的程序例子,介紹C程序的一些基本構(gòu)成和格式,使大家對C語言程序有一個初步的了解。例

已知矩形的兩條邊長(用a表示寬,b表示長),求矩形的面積(area)。#include<stdio.h>main(){doublea,b,area;a=1.2;b=3.6;area=a*b;printf(“a=%f,b=%f,area=%f\n”,a,b,area);}注意:1.C程序由函數(shù)組成,一個程序必須有一個且只能有一個主函數(shù)(main),C程序總是從主函數(shù)開始執(zhí)行,并且也是從它結(jié)束的。2.函數(shù)體必須放在一對花括號“{}”內(nèi),在函數(shù)體中,通常有定義(說明)語句和執(zhí)行語句,定義語句應(yīng)出現(xiàn)在執(zhí)行語句之前,每條語句后面的分號不可少。多條語句可以寫在同一行上,并且一條語句也可以寫在多行上。3.C程序中的注釋必須放在"/*"和"*/"之間,"/"和"*"之間不允許有空格。"/*"和"*/"之間不允許再插入"/*"或"*/"。注釋可以出現(xiàn)在程序中任意位置。/*包含頭文件*//*主函數(shù),程序的入口*//*聲明部分,定義了3實型個變量*//*給變量a賦值*//*給變量b賦值*//*將a*b的結(jié)果賦值給變量area*//*分別輸出矩形的兩條邊長和面積*/abarea函數(shù)體2.2標識符、常量和變量2.2.1標識符在C語言中,有許多東西都需要命名,如變量名、函數(shù)名、數(shù)組名等,在命名的時候都必須遵守一定的規(guī)則,按此規(guī)則命名的符號稱為標識符。在C語言中,合法的標識符由字母、數(shù)字和下劃線組成。遵守以下規(guī)則命名:必須以字母(大小寫皆可)或下劃線開頭。隨后可跟若干個(包括0個)字母、數(shù)字、下劃線。標識符的長度各個系統(tǒng)不同,最好不要超過8個字符。如:areaPI_inia_arrays1234P101p(合法)456Pcade-yw.wa&b(不合法)注意C語言區(qū)分大小寫,如page、Page是兩個不同的標識符。2.2標識符、常量和變量2.2.1標識符C語言的標識符可以分為以下三類:a)關(guān)鍵字b)預(yù)定義標識符c)用戶標識符關(guān)鍵字:

C語言規(guī)定了一批標識符,它們在程序中都代表著固定的含義,不能另作它用。例如,用來說明變量類型的標識符int、float、double以及if語句中的if、else等都已有專門的用途,它們不能再用作變量名或函數(shù)名。注意,所有的關(guān)鍵字都必須小寫。C語言中的關(guān)鍵字請參考附錄4。預(yù)定義標識符:這些標識符在C語言中也都有特定的含義,如C語言提供的庫函數(shù)的名字(如include)和預(yù)編譯處理命令(如define)等。

用戶標識符:由用戶根據(jù)需要定義的標識符稱為用戶標識符。一般用來給變量、函數(shù)、數(shù)組或文件等命名。如例中的a,b,area三個變量2.2標識符、常量和變量2.2.2常量在程序運行過程中,其值不能被改變的量,稱為常量。

常量整型常量:實型常量(符點型)字符常量:字符串常量:單精度型:雙精度型:由上述可見,常量的類型從字面形式上就可以區(qū)分開來,我們稱此常量為字面常量。12、-1、0‘A’、‘d’”NCRE”、“Beijing”、、、2.2標識符、常量和變量2.2.3符號常量在C語言中,可以用一個符號名來代表一個常量,稱為符號常量。但是這個符號名必須在程序中用(#define)進行特別的“指定"。例

計算圓面積和周長,此程序中將如何教大家使用符號常量。#include“stdio.h”main(){doubler,s,l;r=5.0;s=PI*r*r;l=2*PI*r;printf(“s=%f,l=%f\n”,s,l);}/*包含頭文件*//*定義符號常量,符號常量名為PI,用PI來代表3.14159*//*主函數(shù),程序的入口*//*聲明部分,定義了3實型個變量*//*給變量r賦值*//*計算圓的面積*//*計算圓的周長*//*分別圓的面積和周長*/注意習(xí)慣上,符號常量名用大寫,變量名用小寫,以示區(qū)別函數(shù)體rsl2.2標識符、常量和變量2.2.4變量1.所謂變量是指在程序運行過程中可以改變的量。如下程序:#include<stdio.h>main(){doublea,b;a=1.5;b=2.5;printf(“%f%f\n”,a,b);a=a+1;b=b+1;printf(“%f%f\n”,a,b);}ab2.在程序中,聲明變量就是在計算機內(nèi)存中申請了某個內(nèi)存單元。對變量進行賦值,實質(zhì)上就是把數(shù)據(jù)存入該變量所代表的存儲單元中。語言規(guī)定,程序中所有變量都必須先定義后使用。如程序例、例。內(nèi)存空間ab2.3整型數(shù)據(jù)2.3.1整型常量在C語言中,按整型常量的表示形式可以有三種形式。整型常量由0~9十個數(shù)字組成,如32767、-32768、0等。由0~7八個數(shù)字組成,如010、011、016等。注意,最高位必須用0作引導(dǎo)符,與十進制和十六進制區(qū)分。如:018,為不合法的八進制常量。由0~9十個數(shù)字和a~f(A~F)六個字母組成,如0x10、0Xde、0xf注意,最高位必須用0x(0X)作引導(dǎo)符,與十進制和八進制區(qū)分。如:oxff、0X12H,都為不合法的十六進制常量。在C語言中,按整型常量的表示范圍可以分為四種。在C語言中,八進制數(shù)和十六進制數(shù)只能是正整數(shù)。注意如:-077、-0X11、等,(不合法)短整型基本整型長整型無符號整型三種進制之間的轉(zhuǎn)換十六進制常量:八進制常量:十進制常量:2.3整型數(shù)據(jù)2.2.2整型變量整型變量是用來存放整型常量的工具??梢园颜妥兞砍橄鬄橐粋€盒子。由于整型常量有短整型、基本整型、長整型和無符號整型四種類型,既然整型變量是用來存放整型數(shù)據(jù)的,那整型變量也要分為四種對應(yīng)類型的整型變量,以方便存放不同類型的整型常量。在此我們只介紹基本整型變量。也叫整型變量。在C語言中,整型變量我們需要用一個符號來表示它,即整型變量名。例如:intk;

/*定義k為整型變量,k為變量名*/關(guān)鍵字int是用來說明變量k的類型為整型。又如:inti,j,k;

/*定義i、j、k為整型變量*/inti;intj;intk;相同注意在同一行上使用關(guān)鍵字定義多個變量時,變量之間用逗號隔開。所有定義語句后必須以一個“;”號結(jié)束,表示它是一條語句。2.3整型數(shù)據(jù)2.2.2整型變量在前面已經(jīng)講過,聲明變量就是在計算機內(nèi)存中申請某個內(nèi)存單元。在環(huán)境中,用關(guān)鍵字int聲明變量時,計算機將會為每個變量開辟4字節(jié)(32個二進制位)的內(nèi)存單元。例如,當(dāng)前的某段內(nèi)存空間如右圖所示。有如下程序段。內(nèi)存空間地址2000200120022003200420052006200720112010200920082012inti;intj;i=100;j=200;C語言規(guī)定,可以在定義變量的同時給變量賦初值,該過程稱為變量的初始化。例如:#include<stdio.h>main(){inti=1,j=0,k=2;::}ij100200/*在聲明變量的同時,為三個變量賦值*/2.3整型數(shù)據(jù)2.3.3整型數(shù)據(jù)的分類不同的計算機系統(tǒng)對整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍有不同規(guī)定,下表列出了在中定義的整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍。

類型名稱通常使用簡寫字節(jié)數(shù)數(shù)值范圍[signed]intint4-2147483648~2147483647[signed]short[int]short2-32768~32767[signed]long[int]long4-2147483648~2147483647unsigned[int]unsigned40~4294967295unsignedshort[int]unsignedshort20~65535unsignedlong[int]unsignedlong40~4294967295由于整型數(shù)據(jù)在C語言中分為上述幾類,比如123。它是屬于哪一類型的?int123L、345l、0L、123456L123U、345u、0U、123456U123LU、345lu、0LU、123456LUlongunsignedunsignedlong2.3整型數(shù)據(jù)2.3.4整數(shù)在內(nèi)存中的存儲形式計算機中,內(nèi)存儲器的最小的存儲單位稱為“位(bit)”,每一位中只能存放0或1,因此稱為二進制位。8個二進制位組成一個“字節(jié)”,并給每一個字節(jié)分配一個地址。數(shù)據(jù)在內(nèi)存中是以二進制形式進行存放的。一、正整數(shù)正整數(shù)在內(nèi)存中是以“原碼”形式存放的。如果定義了一個short類型變量i:shorti;i=5;/*聲明i為短整型變量*//*給i賦以整數(shù)5*/十進制數(shù)5的二進制形式為101,在中,由于短整型變量在內(nèi)存中占2個字節(jié),i0000000000000101i符號位:0代表正整數(shù),1代表負整數(shù)二、負整數(shù)負整數(shù)在內(nèi)存中是以“補碼”形式存放的。52.4實型數(shù)據(jù)2.4.1實型常量在C語言中,實型常量的表示形式有兩種。實型常量由數(shù)字和小數(shù)點組成,如、.123、123.、指數(shù)形式:如:x101

0-1注意E(e)前后必須有數(shù)字,并且后面的必須為整型數(shù)。.3e33.0e33.e3(合法)3ee355e0.3(不合法)小數(shù)形式:2.4實型數(shù)據(jù)2.4.2實型變量分類類型名稱字節(jié)數(shù)數(shù)值范圍有效數(shù)字位單精度型float4-1038~10387位雙精度行double8-10308~1030815~16位單精度型變量定義的形式如下:floata,b,c;雙精度型變量定義的形式如下:doublex,y,z;實數(shù)在內(nèi)存中是以“指數(shù)”形式存放的。也可以在定義實型變量的同時,對變量進行初始化。例如:#include<stdio.h>main(){floata=1.5,b=.5,c=0.0;

doublex=1.5,y=.5,z=0.0;:}/*在聲明變量的同時,為三個變量賦值*//*在聲明變量的同時,為三個變量賦值*/2.5算術(shù)表達式2.5.1基本的算術(shù)運算符+(加法運算符,或正值運算符)如:1+2、-(減法運算符,或負值運算符)如:3-4、-54*(乘法運算符)如:、3*4、2*x/(除法運算符)如:5/3、(a+b)/(x+y)單目運算符雙目運算符兩個整數(shù)相除,其值仍然為整數(shù)。如:5/3值為1、1/2值為0。兩個實數(shù)相除,其值仍然為實數(shù)。如:值為。除數(shù)、被除數(shù)只要有一個為實數(shù)時,系統(tǒng)將自動進行類型轉(zhuǎn)換,轉(zhuǎn)換為double型。如:、

最后結(jié)果的類型為double型。%(求余運算符)注意:%運算符的兩側(cè)必須為整型數(shù)據(jù)。如:7%4的結(jié)果為3。-7%4、7%-4、-7%-4的結(jié)果為多少?-33-3結(jié)果的符號和被除數(shù)相同2.5算術(shù)表達式2.5.2運算符的優(yōu)先級、結(jié)合性和算術(shù)表達式一、優(yōu)先級()+-*/%+-單目雙目同級同級同級高低二、結(jié)合性單目運算符的結(jié)合性是從右往左的,即表達式從右往左進行計算,稱為右結(jié)合。其余運算符的結(jié)合性是從左往右的。即表達式從左往右進行計算,稱為左結(jié)合。例如:(5+1)/25+1/25*-25*(-2)三、算術(shù)表達式用算術(shù)運算符和一對圓括號將運算量(或稱操作數(shù))連接起來的、符合C語法的表達式稱為算術(shù)表達式。算術(shù)表達式中,運算對象可以是常量、變量和函數(shù)等。例如:2+sqrt(c)*b。5-1032.5算術(shù)表達式2.5.3強制類型轉(zhuǎn)換表達式表達式的形式如下:(類型名)(表達式)強制類型轉(zhuǎn)換運算符作用:可以利用強制類型轉(zhuǎn)換運算符將一個表達式轉(zhuǎn)換成想要的類型。例如:(double)(10%3)3注意int3.234(錯誤)(double)10%3(錯誤)例:閱讀如下程序,關(guān)于強制類型轉(zhuǎn)換。#include<stdio.h>main(){doublea;intb;a=3.6;b=(int)a;printf(“a=%f,b=%d\n”,a,b);}a=3.600000,b=3ab32.6賦值表達式2.6.1賦值運算符和賦值表達式賦值運算符:=賦值表達式:由賦值運算符組成的表達式稱為賦值表達式,它的形式如下:

變量名=表達式

賦值號的左邊必須是一個代表某一存儲單元的變量名。賦值運算的功能是先求出右邊表達式的值,然后把此值賦給左邊的變量。例如,若a和b都被定義成int類型變量

a=10;

/*把常量10賦給變量a*/

b=a;

/*把a中的值賦給變量b,a中的值不變*/注意1.賦值運算符的優(yōu)先級別只高于逗號運算符,比其它任何運算符的優(yōu)先級都低,且具有自右向左的結(jié)合性。例如:a=2+7/32.賦值運算符的左側(cè)只能是變量不能是常量或表達式。如a+b=c是不合法的賦值表達式。3.賦值號右邊的表達式也可以是一個賦值表達式,如a=b=7+1。4.作為一個表達式,它自己也應(yīng)該有一個值,C語言規(guī)定最左邊變量中所得到的新值就是賦值表達式的值。2.6賦值表達式2.6.2復(fù)合賦值表達式在賦值運算符”=”之前加上其它運算符可以構(gòu)成復(fù)合賦值運算符。+=-=*=/=%=<<=>>=&=^=|=

等價于

n=n+1

等價于

a=a+3

等價于

n=n*(m+3)注意:有括號例2.3已有變量a,初始值為9,計算表達式a+=a-=a+a的值。a表達式如:n+=1a+=3n*=m+3a+=a-=a+a918a+=a-=18a=a-18-9-9a+=-9a=a+-9a=a+(-9)-18-18a+=a-=a+a的值是:-182.6賦值表達式2.6.3賦值運算中的類型轉(zhuǎn)換在賦值運算中,只有在賦值號右側(cè)表達式的類型與左側(cè)變量類型完全一致時,賦值操作才能進行。如:inta;doubleb;a=10;b=3.5;如果賦值運算符兩側(cè)的數(shù)據(jù)類型不一致,在賦值前,系統(tǒng)將自動先把右側(cè)表達式求得的數(shù)值,按賦值號左邊變量的類型進行轉(zhuǎn)換,也可以用強制類型轉(zhuǎn)換的方式,人為地進行轉(zhuǎn)換后賦給賦值號左邊的變量。a10b如:inta;doubleb;a=20.5;b=15;a20b3.在C語言的表達式中(不包括賦值表達式),如果運算符兩邊的數(shù)據(jù)類型不相同,將進行類型之間的轉(zhuǎn)換。轉(zhuǎn)換規(guī)則如下:doublelongunsignedintfloatchar,short低高如:10+97+1.5-8765.1234*98double2.7自加、自減運算符和逗號運算符2.7.1自加運算符“++”和自減運算符“--”++(自加運算符)--(自減運算符)1.++、--運算符是單目運算符,運算對象只能變量,不能是常量和表達式。2.++和--運算符的結(jié)合方向是"自右至左"。i++、++ii--、--ii=i+1i=i-1例如:inti=5;i++;inti=5;++i;inti=5;i--;inti=5;--i;i:表達式:運算規(guī)則運算符在前,先計算,后賦值運算符在后,先賦值,后計算例如:inti=3;

-i++;

inti=3;-(i++);i:表達式:思考:程序示例,自增自減運算#include<stdio.h>main(){inti=0,j;j=i++;printf(“%d,%d\n”,i,j);i=0;

j=++i;printf(“%d,%d\n”,i,j);}上機練習(xí)656645444-32.7自加、自減運算符和逗號運算符2.7.2逗號運算符和逗號表達式,(逗號運算符)用逗號將表達式連接起來的式子稱為逗號表達式。逗號表達式的一般形式為:表達式1,表達式2,…,表達式n表達式之間用逗號進行連接1.逗號運算符的結(jié)合性為從左到右,因此逗號表達式將從左到右進行運算。如:i=3,i++,++i,i+5

i表達式33i表達式43i表達式55i表達式510逗號表達式的值為2.在所有運算符中,逗號運算符的優(yōu)先級別最低。習(xí)題一、選擇題2.1以下選項中正確的整型常量是A12.B-20C1,000D4562.2以下選項中正確的實型常量是2D.8712.3以下選項中不正確的實型常量是A2.607E-1B0.8103e2C-77.77D456e-22.4以下選項中不合法的用戶標識符是Aabc.cBfileCMainDPRINTF2.5以下選項中不合法的用戶標識符是

A_123BprintfCA$DDim2.6C語言中運算對象必須是整型的運算符是A%B/C!D**2.7可在C程序中用作用戶標識符的一組標識符是AvoidBas_b3CForD2cdefine_123-abcDOWORDIfcaseSIGBDBABCAB2.8若變量已正確定義并賦值,符合C語言語法的表達式是Aa=a+7;Ba=7+b+c,a++Cint(12.3%4)Da=a+7=c+b2.9以下中敘述中正確的是Aa是實型變量,C允許進行賦值a=10,但不可以這樣說:實型變量中允許存放整型值B在賦值表達式中,賦值號左邊既可以是變量也可以是任意表達式C執(zhí)行表達式a=b后,在內(nèi)存中a和b存儲單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?D已有a=3,b=5,當(dāng)執(zhí)行了表達式a=b,b=a之后,使a中的值為5,b中的值為32.10以下中敘述中正確的是A在C程序中無論是整數(shù)還是實數(shù),只要在允許的范圍內(nèi)都能準確無誤的表示BC程序由主函數(shù)組成CC程序由若干個函數(shù)組成DC程序中只允許包含一個函數(shù)中int類型變量所占字節(jié)數(shù)是A1B2C3D4習(xí)題BACD習(xí)題2.12合法的八進制數(shù)是2.13不合法的十六進制數(shù)是AoxffB0XabcC0x11D0x19二、填空題2.14若k為int型變量且賦值11.請寫出運算k++后表達式的值____和變量k的值_____.2.15若x為double型變量,請寫出運算x=3.2,++x后表達式的值_____和變量x的值______.2.16函數(shù)體由符號___開始,到符號___結(jié)束.函數(shù)體內(nèi)的前面是_____________部分,后面是___________部分.2.17C語言中的標識符可分為和預(yù)定義標識符三類.2.18在C語言程序中,用關(guān)鍵字____定義基本整型變量,用關(guān)鍵字_____定義單精度實型變量,用關(guān)鍵字_____定義雙精度實型變量.2.19把a1,a2定義成雙精度實型變量,并賦初值1的定義語句是________________.2.20C程序中定義的變量,代表內(nèi)存中的一個_________.1112{}定義和說明語句關(guān)鍵字用戶標識符intfloatdoubledoublea1=1,a2=1;存儲單元AA習(xí)題2.21表達式3.5+1/2的計算結(jié)果是______.2.22對數(shù)學(xué)式axb,寫出三個等價的C語言表達式_______._______.________.c2.23表達式s=10應(yīng)當(dāng)讀做___________________________.三.改錯題#includestdio.h;main();/*mainfunction*/floatr,s;/*/*risradius*/,/*sisareaofcircular*/*/r=5.0;s=3.14159*r*r;printf("%f\n",s)main/*mainfunction*/{floata,b,c,v;/*a,b,caresides,visvolumeofcube*/v=a*b*c;printf("%f\n",v)}(a*b)/ca*b/ca*(b/c)將10賦給變量s第3章順序結(jié)構(gòu)3.1賦值語句3.2數(shù)據(jù)輸出3.3數(shù)據(jù)輸入3.4復(fù)合語句和空語句3.5程序舉例3.1賦值語句在賦值表達式的尾部加上一個“;”號,就構(gòu)成了賦值語句,也稱表達式語句。例如:a=a+b(賦值表達式)a=a+b;(賦值語句)

3.2數(shù)據(jù)輸出3.2.1printf函數(shù)的一般調(diào)用形式首先,我們先來了解一些其它知識。一個程序,一般情況下都包含數(shù)據(jù)輸入、數(shù)據(jù)處理、數(shù)據(jù)輸出三個部分。輸出:把數(shù)據(jù)從計算機內(nèi)部送到計算機的外部設(shè)備上的操作稱為“輸出”。輸入:從計算機外部設(shè)備將數(shù)據(jù)送入計算機內(nèi)部的操作稱為“輸入”。顯示器鍵盤在C語言中,數(shù)據(jù)的輸入和輸出是通過調(diào)用輸入和輸出函數(shù)來實現(xiàn)的。在環(huán)境下,在調(diào)用輸入和輸出的庫函數(shù)之前要求在源程序中出現(xiàn)包含頭文件命令行:

#include<stdio.h>

或#include“stdio.h”1.printf函數(shù)的調(diào)用形式如下:printf(格式控制,輸出項表)

作用:按照指定的格式將輸出項中的值輸出到終端。要輸出的內(nèi)容(常量、變量、表達式等)雙引號括起來的字符串,按照該指定的格式進行輸出3.2數(shù)據(jù)輸出3.2.1printf函數(shù)的一般調(diào)用形式例如:printf(“a=%d,b=%d”,a,b);函數(shù)名格式控制輸出項(實參)在printf函數(shù)調(diào)用的后面加一個分號就構(gòu)成輸出語句。例:對于printf函數(shù)的調(diào)用形式,請見下面的程序示例。#include<stdio.h>main(){inti=2518;doublea=3.1415;printf(“i=%d,a=%f,a*10=%e\n",i,a,a*10);}格式控制輸出項(實參)i=2518,a=3.141500,a*10=3.141500e+001“i=%d,a=%f,a*10=%e\n"原樣輸出%d%f%e%為引導(dǎo)符d、f、e為格式字符轉(zhuǎn)義字符3.2數(shù)據(jù)輸出3.2.1printf函數(shù)的一般調(diào)用形式printf也可以沒有輸出項,函數(shù)的調(diào)用形式將為:

printf(格式控制)比如:printf(“OK!”);OK!3.2數(shù)據(jù)輸出3.2.2printf函數(shù)中常用的格式說明格式字符:

d

以十進制整數(shù)進行輸出

o

以八進制數(shù)進行輸出

x

以十六進制數(shù)進行輸出

f

以小數(shù)形式進行輸出::使用時,以%作為引導(dǎo)符格式字符必須使用小寫如:%d%o%x%f簡單的格式字符形式完整的格式字符形式%

+

-

0

n

l/h

格式字符n

指定輸出的寬度printf(“%6d\n”,k);n1指定輸出的寬度,n2指定輸出的小數(shù)位數(shù)printf(“%12.2f\n”,f);0

輸出的數(shù)據(jù)右對齊,前面補0printf(“%06d\n”,k);-

輸出的數(shù)據(jù)左對齊printf(“%-6d\n”,k);+

輸出的數(shù)據(jù)為正數(shù)時,使前面帶有“+”符號printf(“%+-6d\n”,k);l

輸出整數(shù)時,為長整型;輸出實數(shù)時,為雙精度型printf(“%ld\n”,k);h

輸出整數(shù)時,為短整型printf(“%hd\n”,k);有如下程序段intk;floatf;k=1234;jj1234jjjjjj0012341234jj+1234j123412343.2數(shù)據(jù)輸出3.2.2printf函數(shù)中常用的格式說明下面,將簡單的介紹一些輸出格式形式和輸出結(jié)果:printf(“%f\n”,f);printf(“%12f\n”,f);printf(“%.6f\n”,f);printf(“%12.0f\n”,f);printf(“%e\n”,f);printf(“%13e\n”,f);printf(“%13.8e\n”,f);printf(“%3.8e\n”,f);printf(“%.8e\n”,f);printf(“%13.9e\n”,f);printf(“%13.2e\n”,f);printf(“%g\n”,f);printf(“%10g\n”,f);printf(“%f%%\n”,12.5);jjjjjjjjj1231.234560e+0021.234560e+0021.23456000e+0021.23456000e+0021.23456000e+0021.234560000e+002jjjj1.23e+00212.500000%以指數(shù)形式輸出,輸出時,先以小數(shù)位數(shù)為基準,再考慮輸出的寬度.以原數(shù)的最小寬度進行輸出,指定寬度時,按指定寬度進行輸出3.2數(shù)據(jù)輸出3.2.3使用printf函數(shù)時的注意事項1.在使用輸出函數(shù)時,輸出的數(shù)據(jù)要清晰,視覺感要好。例如:printf(“%d%d%f\n”,k,k,f);printf(“%d,%d,%f\n”,k,k,f);printf(“k=%d,k=%d,f=%f\n”,k,k,f);2.在格式控制串中,格式說明與輸出項從左到右在類型上要一一對應(yīng)匹配。如不匹配,將導(dǎo)致數(shù)據(jù)不能正確輸出,這時,系統(tǒng)并不報錯。最好例如:inta=10;floatb=12.5;printf(“a=%f,b=%d\n”,a,b);a=0.000000,b=1076428800inta=10;floatb=12.5;printf(“a=%d,b=%f\n”,a,b);編譯時能通過,則輸出時為不正確的數(shù)據(jù)輸出時類型一定要一一對應(yīng)1234,1234,123.4560003.2數(shù)據(jù)輸出3.2.3使用printf函數(shù)時的注意事項若格式說明中的個數(shù)少于輸出項的個數(shù)時,則多余的輸出項不予輸出;若格式說明中的個數(shù)多于輸出項的個數(shù)時,則將輸出一些毫無意義的數(shù)字。例如:inta=10,b=20,c=30;printf(“%d,%d\n”,a,b,c);10,20inta=10,b=20,c=30;printf(“%d%d%d%d\n”,a,b,c);10,20,30,23674604.在格式控制串中,除了合法的格式說明外,可以包含任意的合法字符,還可以包括轉(zhuǎn)義字符,這些字符在輸出時將"原樣照印"。例如:printf(“my\tname\tis\tchenhao\n”);mynameischenhao\t為轉(zhuǎn)義字符(制表符)代表八個空格字符5.如果需要輸出百分號%,則應(yīng)該在格式控制串中用兩個連續(xù)的百分號%%來表示。例如:printf(“%d%%”,100);100%6.printf函數(shù)的返回值通常是本次調(diào)用中輸出字符的個數(shù)。思考:printf(“my\tname\tis\tchenhao\n”);函數(shù)的返回值是多少?3.2數(shù)據(jù)輸出3.2.3使用printf函數(shù)時的注意事項7.思考:如:intk=8;

printf(“%d,%d\n”,k,++k);9,98.輸出時,也可以用參數(shù)作為域?qū)挕H纾篿ntm=8,i=10;printf(“%*d”,m,i);jjjjjj10intm=8,n=10;floatf=123.456;printf(“%*.*f”,m,n,f);首先先對應(yīng)匹配,然后再輸出,輸出的過程,是按輸入項從右往左printf(“%8d”,i);printf(“%f”,f);3.3數(shù)據(jù)輸入3.3.1scanf函數(shù)的一般調(diào)用形式scanf(格式控制,輸入項表)1.scanf函數(shù)的調(diào)用形式如下:作用:把從終端設(shè)備(如,鍵盤)上輸入的數(shù)據(jù)傳送給對應(yīng)的輸入項(如變量地址)。雙引號括起來的字符串,按照該指定的格式進行輸入把從鍵盤上輸入的數(shù)據(jù)送到該指定的輸入項中,輸入項中必須為變量的地址例如:intk;floata;doubley;scanf(“%d%f%lf”,&k,&a,&y);函數(shù)名輸入格式控制變量地址(實參)在scanf函數(shù)調(diào)用的后面加一個分號就構(gòu)成輸入語句?!镒兞康刂沸问剑?變量名

3.3數(shù)據(jù)輸入3.3.1scanf函數(shù)的一般調(diào)用形式例:對于scanf函數(shù)的調(diào)用形式,請見下面的程序示例。#include<stdio.h>main(){inta;floatb;scanf(“%d%f”,&a,&b);printf(“%d,%f\n",a,b);}scanf(“%d%f”,&a,&b);比如,想把23賦值給賦值給b,輸入形式為:程序執(zhí)行到此,停止執(zhí)行,等待用戶從鍵盤輸入數(shù)據(jù),等輸入數(shù)據(jù)后,待用戶安回車鍵<CR>后,繼續(xù)向后執(zhí)行。2312.345<CR>ab輸出結(jié)果為:233.3數(shù)據(jù)輸入3.3.2scanf函數(shù)中常用的格式說明scanf函數(shù)中的格式說明字符與輸出函數(shù)中的格式說明字符相同。在使用scanf函數(shù)進行輸入時,應(yīng)該注意以下幾點:

1.在格式控制中,格式說明的類型與輸入項的類型,應(yīng)該一一對應(yīng)匹配。如果類型不匹配,系統(tǒng)并不給出出錯信息,但不可能得到正確的數(shù)據(jù)。2.在輸入項表中,輸入項的個數(shù)要與格式符的個數(shù)相同,且排列順序要一一對應(yīng)。若格式符個數(shù)少于輸入項,scanf函數(shù)按格式符的數(shù)目結(jié)束輸入,多余的輸入項沒有得到新的數(shù)據(jù);若格式符個數(shù)多于輸入項,scanf函數(shù)則按輸入項的數(shù)目結(jié)束輸入,多余的格式符不起作用(作廢)。例如:inta,b,c;scanf(“%d%d”,&a,&b,&c);printf(“%d%d%d\n”,a,b,c);10,20,-858993460比如說,我們從鍵盤讀入:102030<CR>inta,b,c;scanf(“%d%d%d%d”,&a,&b,&c);printf(“%d%d%d\n”,a,b,c);10,20,30比如說,我們從鍵盤讀入:10203040<CR>3.3數(shù)據(jù)輸入3.3.2scanf函數(shù)中常用的格式說明在scanf函數(shù)中的格式字符前可以用一個整數(shù)指定輸入數(shù)據(jù)所占寬度。當(dāng)輸入函數(shù)的格式說明的類型與輸入項的類型一一對應(yīng)匹配時。程序在運行的過程中,當(dāng)我們輸入的數(shù)據(jù)個數(shù)少于輸入項時,運行的程序?qū)⒁恢钡却斎耄钡綕M足要求時才繼續(xù)向下執(zhí)行;當(dāng)我們輸入的數(shù)據(jù)個數(shù)多于輸入項時,多于的數(shù)據(jù)沒有作廢,依然在緩沖區(qū)中等待等待下一個輸入操作語句。5.scanf函數(shù)在調(diào)用結(jié)束后將返回一個函數(shù)值,其值等于得到輸入值的輸入項的個數(shù)。例如:inta;scanf(“%5d”,&a);該輸入函數(shù)正確的輸入形式為:88輸入寬度為5思考:scanf(“%d%d%d%d”,&a,&b,&c);函數(shù)的返回值是多少?3.3數(shù)據(jù)輸入3.3.3通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)1.輸入數(shù)值數(shù)據(jù)例如:intk;floata;doubley;scanf(“%d%f%lf”,&k,&a,&y);若要給k賦值10,a賦值,y賦值,正確的輸入格式如下:1012.31234567.89<CR>1012.31234567.89<CR>10<CR>12.3<CR>1234567.89<CR>輸入的數(shù)據(jù)之間必須用間隔符隔開可以使用的間隔符有:空格、回車符、制表符錯誤的輸入格式:1012.31234567.89<CR>3.3數(shù)據(jù)輸入3.3.3通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)2.指定輸入數(shù)據(jù)所占的寬度例如:intk;floata;doubley;scanf(“%3d%5f%5lf”,&k,&a,&y);若從鍵盤上從第1列開始輸入:123456.789.123<CR>用printf(“k=%da=%fy=%f\n”,k,a,y);輸出的結(jié)果是:kya1233.3數(shù)據(jù)輸入3.3.3通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)3.跳過某個輸入數(shù)據(jù)例如:intx,y,z;scanf(“%d%*d%d%d”,&x,&y,&z);printf(“%d%d%d\n”,x,y,z);若從鍵盤上輸入:12345678<CR>則輸出的結(jié)果是:1256783.3數(shù)據(jù)輸入3.3.3通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)4.在格式控制字符串中插入其他字符又如:intx,y,z;scanf(“%d,%d,%d”,&x,&y,&z);這時從鍵盤上輸入時,一定要向下形式進行輸入:Pleaseinputx,y,z:123456<CR>在格式控制字符中出現(xiàn)了其他字符的語句如下:intx,y,z;scanf(“Pleaseinputx,y,z:%d%d%d”,&x,&y,&z);則正確的輸入形式:12,34,56<CR>12,34,56<CR>12,34,56<CR>錯誤的輸入形式:123456<CR>12,34,56<CR>3.4復(fù)合語句和空語句3.4.1復(fù)合語句復(fù)合語句是用符號"{"和"}"括起來的語句組,也可稱為"語句塊",在語法上被視為一條語句。復(fù)合語句的語句形式如下:{語句1;語句2;…;語句n;}例如:{a++;b*=a;printf("b=%d\",b);}3.4復(fù)合語句和空語句3.4.2空語句空語句由一個分號構(gòu)成,但它是一個C語句,程序執(zhí)行空語句時不產(chǎn)生任何操作。如:main(){;}3.5程序舉例例

以下程序由終端輸入兩個整數(shù)給變量x和y;然后輸出x和y;在交換x和y中的值后,再輸出x和y。驗證兩個變量中的數(shù)是否正確地進行了交換。程序分析:輸入兩個整數(shù)分別給變量x和y。輸出兩個變量。交換兩個變量中的值。再輸出兩個變量。自然語言描述開始輸入x、y輸出x、y交換x和y中的值輸出x、y結(jié)束一般流程圖描述#include<stdio.h>main(){intx,y;printf(“Enterx&y:\n");scanf(“%d%d”,&x,&y);printf(“x=%dy=%d\n",x,y);

printf(“x=%dy=%d\n",x,y);}通過流程圖,編寫出程序xy123456zz=x;x=y;y=z;交換x和y中的值;z=x;x=y;y=z;intz;Enterx&y:123456<CR>x=123y=456x=456y=1233.5程序舉例例

輸入一個double類型的數(shù),使該數(shù)保留小數(shù)點后兩位,對第三位小數(shù)進行四舍五入處理,然后輸出此數(shù),以便驗證處理是否正確。程序分析:輸入一個double類型的數(shù)給變量x。使該數(shù)保留兩位小數(shù),要進行四舍五入。輸出四舍五入后的值。開始輸入x對x進行四舍五入輸出x結(jié)束12346#include<stdio.h>main(){doublex;

printf(“Enterx:\n”);/*輸出的時候進行提示*/scanf("%lf",&x);

printf(“(1)x=%f\n”,x);/*輸出我們剛剛輸入的原始數(shù)據(jù)*/x=x*100;x=x+0.5;x=(int)x;x=x/100;printf("(2)x=%f\n",x);}Enterx:123.4567<CR>習(xí)題一.選擇題3.1若a,b,c,d都是int型變量且初值為0,以下選項中不正確的賦值語句是Aa=b=c=100;Bd++;Cc+b;Dd=(c=22)-(b++);3.2下列選項中不是C語句的是A{inti;i++;printf(“%d\n”i);}B;Ca=5,c=10D{;}3.3合法的C語言賦值語句是Aa=b=58Bk=int(a+b);Ca=58,b=58D--i;3.4有以下程序#include<stdio.h>main(){intx=10,y=3;printf("%d\n",y=x/y);}執(zhí)行后的輸出結(jié)果是A0B1C3D不確定的值3.5若變量已正確定義為int型,要給a,b,c輸入數(shù)據(jù),正確的輸入語句是Aread(a,b,c);Bscanf(“%d%d%d”,a,b,c);Cscanf(“%D%D%D”,&a,%b,%c);Dscanf(“%d%d%d”,&a,&b,&c);CCDCD習(xí)題3.6若變量已正確定義為float類型,要通過輸入語句:scanf(“%f%f%f”,&a,&b,&c);給a賦值11.0,b賦值22.0,c賦值33.0,不正確的輸入形式是A11B11.0,22.0,33.0C11.0D11222222.033.033333.7若變量a,b,t已正確定義,要將a和b中的數(shù)進行交換,以下選項中不正確的語句組是Aa=a+b,b=a-b,a=a-b;Bt=a,a=b,b=t;Ca=t;t=b;b=aDt=b;b=a;a=t;3.8若有正確定義語句

doublex=5.16894;語句printf(“%f\n”,(int)(x*1000+0.5)/(double)1000);的輸出結(jié)果是A輸出格式說明與輸出項不匹配,輸出無定值3.9若有以下程序段:intc1=1,c2=2,c3;c3=c1/c2;printf(“%d\n”,c3);執(zhí)行后的輸出結(jié)果是A0B1/2C0.5D1BCDA習(xí)題3.10若有以下程序段inta=0,b=0,c=0;c=(a-=-5),(a=b,b+3);printf(“%d,%d,%d\n”,a,b,c);執(zhí)行后的輸出結(jié)果是A3,0,-10B0,0,5C-10,3,-10D3,0,3二.填空題3.11若有以下定義,請寫出以下程序段中輸出語句執(zhí)行后的輸出結(jié)果________.inti=-200,j=2500;printf("(1)%d,%d",i,j);printf("(2)i=%d,j=%d\n",i,j);printf("(3)i=%d\nj=%d\n",i,j);3.12變量i,j,k已定義為int類型并均有初值0,用以下語句進行輸入時:scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);從鍵盤輸入:12.3<CR>則變量i,j,k的值分別是______._______._______.3.13復(fù)合語句在語法上被認為是_________.空語句的形式是_________.B(1)-200,2500(2)i=-200,j=2500(3)i=-200j=25001200一條語句;習(xí)題3.14C語句的最后用________結(jié)束.3.15以下程序段要求通過scanf語句給變量賦值,然后輸出變量的值.寫出運行時給k輸入100,給a輸入15.81,給x輸入時的三種可能的輸入形式________.___________.___________.intk;floata;doublex;scanf("%d%f%lf",&k,&a,&x);printf("k=%d,a=%f,x=%f\n",k,a,x);;10015.811.89234<CR>100<CR>15.811.89234<CR>100<CR>15.81<CR>1.89234<CR>習(xí)題3.16以下程序多處有錯誤.若指定必須按下面的形式輸入數(shù)據(jù),并且必須按下面指定的形式輸出數(shù)據(jù),請對該程序做相應(yīng)的修改.main{doublea,b,c,s,v;printf(inputa,b,c:\n);scanf("%d%d%d",a,b,c);s=a*b;v=a*b*c;printf("%d%d%d",a,b,c);printf("s=%f\n",s,"v=%d\n",v);}當(dāng)程序執(zhí)行時,屏幕的顯示和要求輸入形式如下:第4章選擇結(jié)構(gòu)4.1關(guān)系運算和邏輯運算4.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.3條件表達式構(gòu)成的選擇結(jié)構(gòu)4.4switch語句以及用switch和break語句構(gòu)成的選擇結(jié)構(gòu)4.5語句標號和goto語句4.1關(guān)系運算和邏輯運算4.1.1C語言的邏輯值關(guān)系表達式和邏輯表達式的運算結(jié)果是一個邏輯值。邏輯值真假非004.1關(guān)系運算和邏輯運算4.1.2關(guān)系運算符和關(guān)系表達式1.關(guān)系運算:是對兩個量進行“比較運算”。2.關(guān)系運算符:<<=>>===!=高低3.結(jié)合性:自左向右(左結(jié)合)4.和其他運算符進行混合運算時,其運算符之間的優(yōu)先級為:算術(shù)運算符、關(guān)系運算符、賦值運算符、逗號運算符低高關(guān)系表達式:由關(guān)系運算符組成的表達式,稱為關(guān)系表達式。關(guān)系運算符兩邊的運算對象可以是C語言中任意合法的表達式。例如:a>=b(a=3)>(b=4)a>c==c例如:a=10;b=6;c=15;真假假關(guān)系運算的值為“邏輯值”真假101004.1關(guān)系運算和邏輯運算4.1.3邏輯運算符和邏輯表達式1.邏輯運算符:&&(邏輯與)||(邏輯或)!(邏輯非)雙目單目(在運算對象的左邊)3.結(jié)合性:自左向右(左結(jié)合)4.它們的優(yōu)先級由高到低為:!(邏輯非)、&&(邏輯與)、||(邏輯或)。5.和其他運算符進行混合運算時,其運算符之間的優(yōu)先級為:!(邏輯非)、算術(shù)運算符、關(guān)系運算符、&&(邏輯與)、||(邏輯或)、賦值運算符、逗號運算符高低邏輯表達式:由邏輯運算符組成的表達式,稱為邏輯表達式。邏輯運算的運算對象可以是C語言中任意合法的表達式。例如:(a>b)&&(x>y)a!=b||b!=0!a!=b例如:a=10;b=16;x=5;y=8;011其邏輯運算規(guī)則見書中表所示。思考:5>3&&2||!8<4-2的結(jié)果為?4.1關(guān)系運算和邏輯運算4.1.3邏輯運算符和邏輯表達式注意在C語言中,x的值必須要在0和10之間,應(yīng)如何表示?0<=x<=10錯誤的表示方式比如:x=20;上面的表達式也滿足條件。正確的表示方式為:x>=0&&x<=10或0<=x&&x<=106.C語言中,由&&或||構(gòu)成的邏輯表達式,在特定的情況下會產(chǎn)生“短路”現(xiàn)象。例如:a++&&b++若:a=0;b=0;若:a=1;b=1;例如:a++||b++若:a=1;b=1;若:a=0;b=0;0110ab10a2b2ab21a1b14.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.2.1if語句C語言的if語言有兩種形式:if(表達式)語句if(表達式)語句1else

語句2單分支if語句不含else子句雙分支if語句含else子句關(guān)鍵字關(guān)鍵字(b)圖表達式語句1語句2滿足不滿足(a)圖表達式語句滿足不滿足例如:if(a<b){t=a;a=b;b=t;}例如:if(a!=0)printf(“a!=0\n”);elseprintf(“a==0\n”);4.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.2.1if語句例4.1輸入兩個數(shù),分別放入x和y中,若兩數(shù)不相等,則輸出其中的最大數(shù);若兩數(shù)相等,則輸出字符串x==y和x的值。程序分析:輸入兩個整數(shù)分別賦給變量x和y。比較兩個數(shù)不相等相等x大于y(x>y)x小于y(x<y)x等于y(x==y)輸出x輸出y輸出x==y和x開始輸入x、y結(jié)束x>yx<yx==y滿足不滿足滿足滿足不滿足不滿足#include<stdio.h>main(){intx,y;printf("Enterx&y:\n");scanf("%d%d",&x,&y);if(x>y)printf("x=%d\n",x);if(x<y)printf("y=%d\n",y);if(x==y)printf("x==y%d\n",x);}printf("x,y:%d%d\n",x,y);輸出x輸出y輸出x==y和x4.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.2.1if語句例4.2輸入三個整數(shù),分別放在變量a、b、c中,然后把輸入數(shù)據(jù)重新按由小到大的順序放在變量a、b、c中,最后輸出a、b、c中的值。程序分析:輸入三個整數(shù)分別放在變量a、b、c中。把三個整數(shù)由小到大進行排序。

a<b<c③

輸出a、b、c。開始輸入a、b、c結(jié)束輸出a、b、c排序#include<stdio.h>main(){inta,b,c;

printf("inputa,b,c:");scanf("%d%d%d",&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);/*輸出原始數(shù)據(jù)*/

排序過程;

printf("%d,%d,%d\n",a,b,c);}abc302010a>ba>cb>c交換兩個變量中的值交換兩個變量中的值交換兩個變量中的值302020102030if(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;}#include<stdio.h>main(){inta,b,c,t;printf("inputa,b,c:");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",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);}inputa,b,c:302010<CR>a=30,b=20,c=1010,20,304.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.2.1if語句例4.3輸入兩個數(shù),分別賦給x和y,輸出其中的大數(shù)。程序分析:1.輸入兩個數(shù)分別賦給變量x和y。2.輸出其中的最大數(shù):兩數(shù)進行比較判斷。如果x>y,則輸出x;

否則,輸出y。開始輸入x、y結(jié)束x>y輸出x輸出y不滿足滿足#include<stdio.h>main(){intx,y;printf("Enterx&y:");scanf("%d%d",&x,&y);printf("x,y:%d%d\n",x,y);if(x>y) printf("max=x=%d\n",x);else printf("max=y=%d\n",y);printf("**end**\n");}Enterx&y:53<CR>x,y:53max=x=5**end**4.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.2.1if語句例4.4輸入一個數(shù),判別它是否能被3整除。若能被3整除,打印YES;不能被3整除,打印NO。程序分析:1.輸入一個數(shù)賦給一個變量,比如n。2.判斷它是否能被3整除??梢?,則輸出YES;

否則,輸出NO。n%3==0(若能整除,則余數(shù)肯定為0)開始輸入n結(jié)束n%3==0輸出YES輸出yNO不滿足滿足#include<stdio.h>main(){intn;printf("inputn:");scanf("%d",&n);if(n%3==0)/*判斷n能否被3整除*/ printf("YES\n");else printf("NO\n");}inputn:9<CR>YESinputn:5<CR>NO4.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.2.1if語句注意if后面圓括號中的表達式,可以是任意合法的C語言表達式(如:邏輯表達式、關(guān)系表達式、算術(shù)表達式、賦值表達式等),也可以是任意類型的數(shù)據(jù)(如:整型、實型、字符型、指針型等)。無論是否有else子句,if子句中如果只有一條語句,則此語句后的分號不能省略。如:if(x!=0)printf(“%f”,x);elseprintf(“%f”,y);此處的分號不能省略此處的分號也不能省略4.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.2.2嵌套的if語句第一種嵌套形式:if(表達式1)if(表達式2)語句1else語句2else

語句3圖1表達式1語句3不滿足表達式2語句1語句2滿足滿足不滿足4.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.2.2嵌套的if語句第二種嵌套形式:if(表達式1){if(表達式2)語句1}else

語句2圖2表達式1語句2不滿足滿足表達式2語句1滿足不滿足注意在if子句中的一對花括號不可缺少。if(表達式1)if(表達式2)語句1else

語句2

應(yīng)當(dāng)注意if與else的配對關(guān)系。else總是與它

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論