版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022/12/16C程序設(shè)計朱麗高級工程hulietc@2022/12/12C程序設(shè)計朱麗高級工程師2022/12/16第4章最簡單的C程序設(shè)計主要內(nèi)容4.1C語句概述4.2賦值語句4.3數(shù)據(jù)輸入輸出的概念及在c語言中的實現(xiàn)4.4字符數(shù)據(jù)的輸入輸出4.5格式輸入與輸出4.6順序結(jié)構(gòu)程序設(shè)計舉例2022/12/12第4章最簡單的C程序設(shè)計主要內(nèi)容4.1§4.1C語句概述2022/12/16C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令函數(shù)n函數(shù)1數(shù)據(jù)聲明函數(shù)首部函數(shù)體數(shù)據(jù)聲明執(zhí)行語句§4.1C語句概述2022/12/12C程序源程序§4.1C語句概述(續(xù))2022/12/16一個c程序可以有若干個源程序文件組成一個源文件可以有若干個函數(shù)和預(yù)處理命令以及全局變量聲明部分組成一個函數(shù)有函數(shù)首部和函數(shù)體組成函數(shù)體由數(shù)據(jù)聲明和執(zhí)行語句組成C語句分為5類控制語句函數(shù)調(diào)用語句表達(dá)式語句空語句復(fù)合語句§4.1C語句概述(續(xù))2022/12/12一個c
§4.1C語句概述(續(xù))2022/12/16(一)控制語句完成一定的控制功能 1if()~else條件語句6break間斷語句 2for()~循環(huán)語句7switch()開關(guān)語句 3while()~循環(huán)語句8goto轉(zhuǎn)向語句 4do~while();循環(huán)語句9return返回語句 5continue繼續(xù)語句§4.1C語句概述(續(xù))2022/12/12(一)§4.1C語句概述(續(xù))2022/12/16(二)函數(shù)調(diào)用語句有一個函數(shù)調(diào)用加一個分號構(gòu)成一個語句
Printf(“ThisisaCstatement.”);例:§4.1C語句概述(續(xù))2022/12/12(二)函§4.1C語句概述(續(xù))2022/12/16(三)表達(dá)式語句有一個表達(dá)式加一個分號構(gòu)成一個語句
a=3;例:分號賦值表達(dá)式表達(dá)式語句+=§4.1C語句概述(續(xù))2022/12/12(三)表2022/12/16
§4.1C語句概述(續(xù))(四)空語句只有一個分號的語句
(什么也不做)用來做流程的轉(zhuǎn)向點(diǎn)用來作為循環(huán)語句中的循環(huán)體;2022/12/12§4.1C語句概述(續(xù))(四)§4.1C語句概述(續(xù))2022/12/16(五)復(fù)合語句用一對{}括起來的語句
{ z=x+y; t=z/100; printf(“%f”,t); }例:§4.1C語句概述(續(xù))2022/12/12(五)復(fù)§4.2賦值語句2022/12/16賦值語句是由賦值表達(dá)式加上一個分號構(gòu)成例:a=100賦值表達(dá)式a=100;賦值語句條件中不能含有賦值符號,但是賦值表達(dá)式可以包含于條件表達(dá)式中例:if(a=b)t=a;錯誤if((a=b)>0)t=a;正確§4.2賦值語句2022/12/12賦值語句是由賦值§4.2賦值語句(續(xù))2022/12/161:C語言中的賦值號“=”是一個運(yùn)算符,在其他大多數(shù)語言中賦值號不是運(yùn)算符.2:其他大多數(shù)高級語言沒有“賦值表達(dá)式”這一概念.問題:c語言中的賦值語句于其他高級語言的賦值語句有什么不同點(diǎn)?§4.2賦值語句(續(xù))2022/12/121:C語言§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(一).所謂輸入輸出是以計算機(jī)主機(jī)為主體而言的輸出:從計算機(jī)向外部輸出設(shè)備(顯示器,打印機(jī))輸出數(shù)據(jù)輸入:從輸入設(shè)備(鍵盤,鼠標(biāo),掃描儀)向計算機(jī)輸入數(shù)據(jù).2022/12/16§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(一).所§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(二).C語言本身不提供輸入輸出語句,輸入和輸出操作是由C函數(shù)庫中的函數(shù)來實現(xiàn)的例如:字符輸入函數(shù):getchar字符輸出函數(shù):putchar格式輸入函數(shù):scanf格式輸出函數(shù):printf字符串輸入函數(shù):gets字?jǐn)?shù)穿輸出函數(shù):puts2022/12/16§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(二).C§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(三).在使用系統(tǒng)庫函數(shù)時,要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中.例如:在調(diào)用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時,文件開頭應(yīng)該有:
#include“stdio.h”或:#include<stdio.h>2022/12/16頭文件§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(三).在§4.4字符數(shù)據(jù)的輸入輸出(一).字符輸出函數(shù)一般形式:putchar(c)
函數(shù)作用:向終端輸出一個字符
2022/12/16字符型變量整型變量§4.4字符數(shù)據(jù)的輸入輸出(一).字符輸出函數(shù)2022§4.4字符數(shù)據(jù)的輸入輸出(續(xù))2022/12/16例4.1輸出單個字符。
#include<stdio.h>
voidmain()
{
chara,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘\n’);
}
運(yùn)行結(jié)果:BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);運(yùn)行結(jié)果:BOY§4.4字符數(shù)據(jù)的輸入輸出(續(xù))2022/12/12例§4.4字符數(shù)據(jù)的輸入輸出(續(xù))(二).字符輸入函數(shù)一般形式:getchar()
函數(shù)作用:從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符。函數(shù)值:從輸入設(shè)備得到的字符。2022/12/16§4.4字符數(shù)據(jù)的輸入輸出(續(xù))(二).字符輸入函數(shù)2§4.4字符數(shù)據(jù)的輸入輸出(續(xù))2022/12/16例4.2輸入單個字符。
#include<stdio.h>
voidmain()
{
charc;
c=getchar();
putchar(c);
putchar(‘\n’);
}
運(yùn)行程序:
從鍵盤輸入字符‘a(chǎn)’
按Enter鍵
屏幕上將顯示輸出的字符‘a(chǎn)’
a
a§4.4字符數(shù)據(jù)的輸入輸出(續(xù))2022/12/12例§4.5格式輸入與輸出(一).格式輸出函數(shù)函數(shù)作用:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個任意類型的數(shù)據(jù)。一般格式:printf(格式控制,輸出表列)2022/12/16%d:以帶符號的十進(jìn)制形式輸出整數(shù)%o:以八進(jìn)制無符號形式輸出整數(shù)%x:以十六進(jìn)制無符號形式輸出整數(shù)Tobecontinued……§4.5格式輸入與輸出(一).格式輸出函數(shù)2022/1§4.5格式輸入與輸出(續(xù))2022/12/16%u:以無符號十進(jìn)制形式輸出整數(shù)%c:以字符形式輸出,只輸出一個字符%s:輸出字符串%f:以小數(shù)形式輸出單,雙精度數(shù),隱含輸出六位小數(shù)%e:以指數(shù)形式輸出實數(shù)%g:選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0§4.5格式輸入與輸出(續(xù))2022/12/12%u:§4.5格式輸入與輸出(續(xù))2022/12/16幾種常見的格式符的修飾符:L:用于長整型整數(shù),可加在格式符d,o,x,u前面M(代表一個正整數(shù)):數(shù)據(jù)最小寬度N(代表一個正整數(shù)):對實數(shù),表示輸出n位小數(shù);對字符串,表示截取的字符個數(shù)—:輸出的數(shù)字或字符在域內(nèi)向左靠§4.5格式輸入與輸出(續(xù))2022/12/12幾種?!?.5格式輸入與輸出(續(xù))2022/12/16d格式符。用來輸出十進(jìn)制整數(shù)。幾種用法:①%d:按十進(jìn)制整型數(shù)據(jù)的實際長度輸出。②%md:m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實際位數(shù)輸出。例:printf(″%4d,%4d″,a,b);若a=123,d=12345,則輸出結(jié)果為123,12345③%ld:輸出長整型數(shù)據(jù)。例:longa=135790;/*定義a為長整型變量*/printf(″%ld″,a);§4.5格式輸入與輸出(續(xù))2022/12/12d格式§4.5格式輸入與輸出(續(xù))2022/12/16(2)o格式符。以八進(jìn)制整數(shù)形式輸出。輸出的數(shù)值不帶符號,符號位也一起作為八進(jìn)制數(shù)的一部分輸出。例:inta=-1;printf("%d,%o",a,a);-1在內(nèi)存單元中的存放形式(以補(bǔ)碼形式存放)如下:1111111111111111輸出為:-1,177777不會輸出帶負(fù)號的八進(jìn)制整數(shù)。對長整數(shù)(long型)可以用“%lo”格式輸出。還可以指定字段寬度,例:printf("%8o",a);輸出為:177777。(數(shù)字前有2個空格)§4.5格式輸入與輸出(續(xù))2022/12/12(2)§4.5格式輸入與輸出(續(xù))2022/12/16(3)x格式符。以十六進(jìn)制數(shù)形式輸出整數(shù)。同樣不會出現(xiàn)負(fù)的十六進(jìn)制數(shù)。例:inta=-1;printf(″%x,%o,%d″,a,a,a);輸出結(jié)果為:ffff,177777,-1可以用“%lx”輸出長整型數(shù),也可以指定輸出字段的寬度例:
“%12x”§4.5格式輸入與輸出(續(xù))2022/12/12(3)§4.5格式輸入與輸出(續(xù))2022/12/16(4)u格式符,用來輸出unsigned型數(shù)據(jù).一個有符號整數(shù)(int型)也可以用%u格式輸出;一個unsigned型數(shù)據(jù)也可以用%d格式輸出。unsigned型數(shù)據(jù)也可用%o或%x格式輸出。(5)c格式符,用來輸出一個字符。如:chard=′a′;printf(″%c″,d);輸出字符′a′.一個整數(shù),只要它的值在0~255范圍內(nèi),可以用“%c”使之按字符形式輸出,在輸出前,系統(tǒng)會將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符;一個字符數(shù)據(jù)也可以用整數(shù)形式輸出?!?.5格式輸入與輸出(續(xù))2022/12/12(4)§4.5格式輸入與輸出(續(xù))2022/12/16例4.3無符號數(shù)據(jù)的輸出。
#include<stdio.h>
voidmain()
{
unsignedinta=65535;intb=-2;
printf(“a=%d,%o,%x,%u\n”,a,a,a,a);
printf(“b=%d,%o,%x,%u\n”,b,b,b,b);
}
運(yùn)行結(jié)果:
a=-1,177777,ffff,65535
b=-2,177776,fffe,65534§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16例4.4字符數(shù)據(jù)的輸出。
#include<stdio.h>
voidmain()
{
charc=‘a(chǎn)’;
inti=97;
printf(“%c,%d\n”,c,c);
printf(“%c,%d\n”,i,i);
}
運(yùn)行結(jié)果:
a,97
a,97指定輸出字?jǐn)?shù)的寬度,
printf(“%3c”,c);
則輸出:
a§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16(6)s格式符輸出字符串.①%s。例如:printf(″%s″,″CHINA″)輸出字符串“CHINA”(不包括雙引號)。②%ms,輸出的字符串占m列,若串長大于m,則全部輸出,若串長小于m,則左補(bǔ)空格。③%-ms,若串長小于m,字符串向左靠,右補(bǔ)空格。④%m.ns,輸出占m列,只取字符串中左端n個字符,輸出在m列的右側(cè),左補(bǔ)空格。⑤%-m.ns,n個字符輸出在m列的左側(cè),右補(bǔ)空格,若n〉m,m自動取n值?!?.5格式輸入與輸出(續(xù))2022/12/12(6)§4.5格式輸入與輸出(續(xù))2022/12/16例4.5字符串的輸出。
#include<stdio.h>
voidmain()
{
printf(“%3s,%7.2s,%.4s,%-5.3s\n”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);
}
運(yùn)行結(jié)果:
CHINA,CH,CHIN,CHI§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16(7)f格式符。用來以小數(shù)形式輸出實數(shù)(包括單雙精度)有以下幾種用法:①%f。不指定字段寬度,由系統(tǒng)自動指定字段寬度,使整數(shù)部分全部輸出,并輸出6位小數(shù)。應(yīng)當(dāng)注意,在輸出的數(shù)字中并非全部數(shù)字都是有效數(shù)字。單精度實數(shù)的有效位數(shù)一般為7位。②%m.nf。指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,則左端補(bǔ)空格。③%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。
§4.5格式輸入與輸出(續(xù))2022/12/12(7)§4.5格式輸入與輸出(續(xù))2022/12/16例4.6輸出實數(shù)時的有效位數(shù)。
#include<stdio.h>
voidmain()
{floatx,y;
x=111111.111;y=222222.222;
printf(″%f″,x+y);
}
運(yùn)行結(jié)果:
333333.328125
§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16例4.7輸出雙精度數(shù)時的有效位數(shù)。
#include<stdio.h>
voidmain()
{doublex,y;
x=1111111111111.111111111;
y=2222222222222.222222222;
printf(“%f”,x+y);
}
運(yùn)行結(jié)果:
3333333333333.333010§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16例4.8輸出實數(shù)時指定小數(shù)位數(shù)。
#include<stdio.h>
voidmain()
{
floatf=123.456;
printf(“%f%10f%10.2f%.2f%-10.2f\n”,f,f,f,f,f);
}
運(yùn)行結(jié)果:
123.455994123.455994123.46123.46123.46
§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16(8)e格式符,以指數(shù)形式輸出實數(shù)。可用以下形式:①%e。不指定輸出數(shù)據(jù)所占的寬度和數(shù)字部分的小數(shù)位數(shù).例:printf(″%e″,123.456);輸出:1.234560
e+002
6列5列所輸出的實數(shù)共占13列寬度。(注:不同系統(tǒng)的規(guī)定略有不同)
§4.5格式輸入與輸出(續(xù))2022/12/12(8)§4.5格式輸入與輸出(續(xù))2022/12/16②%m.ne和%-m.ne。m、n和“-”字符的含義與前相同。此處n指擬輸出的數(shù)據(jù)的小數(shù)部分(又稱尾數(shù))的小數(shù)位數(shù)。若f=123.456,則:printf("%e%10e%10.2e%.2e%-10.2e",f,f,f,f,f);輸出如下:1.234560e+002
1.234560e+002
1.23e+002
1.23e+002
13列13列10列9列1.23e+00210列說明:未指定n,自動使n=6.超過給定的10列,乃突破10列的限制,按實際長度輸出。第3個數(shù)據(jù)共占10列,小數(shù)部分占2列。只指定n=2,未指定m,自動使m等于數(shù)據(jù)應(yīng)占的長度。第5個數(shù)據(jù)應(yīng)占10列,數(shù)值只有9列,由于是“%-10.2e”,數(shù)值向左靠,右補(bǔ)一個空格。(注:有的C系統(tǒng)的輸出格式與此略有不同)§4.5格式輸入與輸出(續(xù))2022/12/12②%§4.5格式輸入與輸出(續(xù))2022/12/16(9)g格式符,用來輸出實數(shù).它根據(jù)數(shù)值的大小,自動選f格式或e格式(選擇輸出時占寬度較小的一種),且不輸出無意義的零。例:若f=123.468,則printf(″%f%e%g″,f,f,f);輸出如下:123.468000
1.234680e+002
123.46810列13列10列說明:用%f格式輸出占10列,用%e格式輸出占13列,用%g格式時,自動從上面兩種格式中選擇短者(今以%f格式為短)故占10列,并按%f格式用小數(shù)形式輸出,最后3個小數(shù)位為無意義的0,不輸出,因此輸出123.468,然后右補(bǔ)3個空格。%g格式用得較少?!?.5格式輸入與輸出(續(xù))2022/12/12(9)§4.5格式輸入與輸出(續(xù))說明:除了X,E,G外,其他各式字符必須用小寫。可以在printf函數(shù)中的“格式控制”字符串中包含轉(zhuǎn)義字符。一個格式說明必須以“%”開頭,以9個格式字符之一為結(jié)束,中間可以插入附加格式字符。想輸出%,則應(yīng)該在格式控制字符串中用連續(xù)兩個%表示2022/12/16§4.5格式輸入與輸出(續(xù))說明:2022/12/12§4.5格式輸入與輸出(續(xù))(一).格式輸入函數(shù)函數(shù)作用:按照變量在內(nèi)存的地址將變量值存進(jìn)去。一般格式:scanf(格式控制,地址表列)2022/12/16同printf函數(shù)是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址§4.5格式輸入與輸出(續(xù))(一).格式輸入函數(shù)202§4.5格式輸入與輸出(續(xù))2022/12/16例4.9用scanf函數(shù)輸入數(shù)據(jù)。
#include<stdio.h>
voidmain()
{
inta,b,c;
scanf(“%d%d%d”,&a,&b,&c);
printf(“%d,%d,%d\n”,a,b,c);
}
運(yùn)行情況:
345(輸入a,b,c的值)
3,4,5(輸出a,b,c的值)a在內(nèi)存中的地址&是地址運(yùn)算符§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))說明:對unsigned型變量所需要的數(shù)據(jù),可以用%u,%d或%o,%x格式輸入??梢灾付ㄝ斎霐?shù)據(jù)所占的列數(shù),系統(tǒng)自動按它截取所需數(shù)據(jù)。如果在%后有一個“*”附加說明符,表示跳過它指定的列數(shù)。輸入數(shù)據(jù)時不能規(guī)定精度。2022/12/16§4.5格式輸入與輸出(續(xù))說明:2022/12/12§4.5格式輸入與輸出(續(xù))2022/12/16
使用scanf函數(shù)時應(yīng)注意的問題
:(1)scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。(2)如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時在對應(yīng)位置應(yīng)輸入與這些字符相同的字符。(3)在用“%c”格式輸入字符時,空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入(4)在輸入數(shù)據(jù)時,遇以下情況時認(rèn)為該數(shù)據(jù)結(jié)束。①遇空格,或按“回車”或“跳格”(Tab)鍵;②按指定的寬度結(jié)束,如“%3d”,只?。沉?;③遇非法輸入。§4.5格式輸入與輸出(續(xù))2022/12/12使用§4.6順序結(jié)構(gòu)程序設(shè)計舉例2022/12/16例4.10輸入三角形的三邊長,求三角形面積。假設(shè):三個邊長a,b,c能構(gòu)成三角形。已知面積公式:area=s=(a+b+c)*0.5開始輸入三邊長計算s計算面積結(jié)束§4.6順序結(jié)構(gòu)程序設(shè)計舉例2022/12/12例4.1§4.6順序結(jié)構(gòu)程序設(shè)計舉例(續(xù))2022/12/16#include<stdio.h>
#include<math.h>
voidmain()
{floata,b,c,s,area;
scanf(“%f,%f,%f,&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s);
printf(“area=%7.2f\n”,area);}
數(shù)學(xué)函數(shù)庫因為要用到其中的sqrt函數(shù)運(yùn)行情況:
3,4,6
a=3.00,b=4.00,c=6.00,s=6.50
area=5.33§4.6順序結(jié)構(gòu)程序設(shè)計舉例(續(xù))2022/12/12#§4.6順序結(jié)構(gòu)程序設(shè)計舉例(續(xù))2022/12/16例4.11從鍵盤輸入一個大寫字母,要求改用小寫字母輸出。
#include<stdio.h>
voidmain()
{charcl,c2;
cl=getchar();
printf(″%c,%d\n″,cl,cl);
c2=cl+32;
printf(″%c,%d\n″,c2,c2);
}運(yùn)行情況:
A↙
A,65
a,97
§4.6順序結(jié)構(gòu)程序設(shè)計舉例(續(xù))2022/12/12例§4.6順序結(jié)構(gòu)程序設(shè)計舉例(續(xù))2022/12/16例4.12求ax2+bx+c=0方程的根。
a,b,c由鍵盤輸入,設(shè)>0。
眾所周知,一元二次方程式的根為
x1=x2=
可以將上面的分式分為兩項:
p=,q=x1=p+q,x2=p-q§4.6順序結(jié)構(gòu)程序設(shè)計舉例(續(xù))2022/12/12例§4.6順序結(jié)構(gòu)程序設(shè)計舉例(續(xù))2022/12/16#include<stdio.h>
#include<math.h>
voidmain()
{
floata,b,c,disc,x1,x2,p,q;
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;x2=p-q;
printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2);
}運(yùn)行情況:
a=1,b=3,c=2↙
x1=-1.00
x2=-2.00§4.6順序結(jié)構(gòu)程序設(shè)計舉例(續(xù))2022/12/12#2022/12/16謝謝
Thankyou2022/12/12謝謝
Thankyou2022/12/16C程序設(shè)計朱麗高級工程hulietc@2022/12/12C程序設(shè)計朱麗高級工程師2022/12/16第4章最簡單的C程序設(shè)計主要內(nèi)容4.1C語句概述4.2賦值語句4.3數(shù)據(jù)輸入輸出的概念及在c語言中的實現(xiàn)4.4字符數(shù)據(jù)的輸入輸出4.5格式輸入與輸出4.6順序結(jié)構(gòu)程序設(shè)計舉例2022/12/12第4章最簡單的C程序設(shè)計主要內(nèi)容4.1§4.1C語句概述2022/12/16C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令函數(shù)n函數(shù)1數(shù)據(jù)聲明函數(shù)首部函數(shù)體數(shù)據(jù)聲明執(zhí)行語句§4.1C語句概述2022/12/12C程序源程序§4.1C語句概述(續(xù))2022/12/16一個c程序可以有若干個源程序文件組成一個源文件可以有若干個函數(shù)和預(yù)處理命令以及全局變量聲明部分組成一個函數(shù)有函數(shù)首部和函數(shù)體組成函數(shù)體由數(shù)據(jù)聲明和執(zhí)行語句組成C語句分為5類控制語句函數(shù)調(diào)用語句表達(dá)式語句空語句復(fù)合語句§4.1C語句概述(續(xù))2022/12/12一個c
§4.1C語句概述(續(xù))2022/12/16(一)控制語句完成一定的控制功能 1if()~else條件語句6break間斷語句 2for()~循環(huán)語句7switch()開關(guān)語句 3while()~循環(huán)語句8goto轉(zhuǎn)向語句 4do~while();循環(huán)語句9return返回語句 5continue繼續(xù)語句§4.1C語句概述(續(xù))2022/12/12(一)§4.1C語句概述(續(xù))2022/12/16(二)函數(shù)調(diào)用語句有一個函數(shù)調(diào)用加一個分號構(gòu)成一個語句
Printf(“ThisisaCstatement.”);例:§4.1C語句概述(續(xù))2022/12/12(二)函§4.1C語句概述(續(xù))2022/12/16(三)表達(dá)式語句有一個表達(dá)式加一個分號構(gòu)成一個語句
a=3;例:分號賦值表達(dá)式表達(dá)式語句+=§4.1C語句概述(續(xù))2022/12/12(三)表2022/12/16
§4.1C語句概述(續(xù))(四)空語句只有一個分號的語句
(什么也不做)用來做流程的轉(zhuǎn)向點(diǎn)用來作為循環(huán)語句中的循環(huán)體;2022/12/12§4.1C語句概述(續(xù))(四)§4.1C語句概述(續(xù))2022/12/16(五)復(fù)合語句用一對{}括起來的語句
{ z=x+y; t=z/100; printf(“%f”,t); }例:§4.1C語句概述(續(xù))2022/12/12(五)復(fù)§4.2賦值語句2022/12/16賦值語句是由賦值表達(dá)式加上一個分號構(gòu)成例:a=100賦值表達(dá)式a=100;賦值語句條件中不能含有賦值符號,但是賦值表達(dá)式可以包含于條件表達(dá)式中例:if(a=b)t=a;錯誤if((a=b)>0)t=a;正確§4.2賦值語句2022/12/12賦值語句是由賦值§4.2賦值語句(續(xù))2022/12/161:C語言中的賦值號“=”是一個運(yùn)算符,在其他大多數(shù)語言中賦值號不是運(yùn)算符.2:其他大多數(shù)高級語言沒有“賦值表達(dá)式”這一概念.問題:c語言中的賦值語句于其他高級語言的賦值語句有什么不同點(diǎn)?§4.2賦值語句(續(xù))2022/12/121:C語言§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(一).所謂輸入輸出是以計算機(jī)主機(jī)為主體而言的輸出:從計算機(jī)向外部輸出設(shè)備(顯示器,打印機(jī))輸出數(shù)據(jù)輸入:從輸入設(shè)備(鍵盤,鼠標(biāo),掃描儀)向計算機(jī)輸入數(shù)據(jù).2022/12/16§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(一).所§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(二).C語言本身不提供輸入輸出語句,輸入和輸出操作是由C函數(shù)庫中的函數(shù)來實現(xiàn)的例如:字符輸入函數(shù):getchar字符輸出函數(shù):putchar格式輸入函數(shù):scanf格式輸出函數(shù):printf字符串輸入函數(shù):gets字?jǐn)?shù)穿輸出函數(shù):puts2022/12/16§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(二).C§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(三).在使用系統(tǒng)庫函數(shù)時,要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中.例如:在調(diào)用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時,文件開頭應(yīng)該有:
#include“stdio.h”或:#include<stdio.h>2022/12/16頭文件§4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)(三).在§4.4字符數(shù)據(jù)的輸入輸出(一).字符輸出函數(shù)一般形式:putchar(c)
函數(shù)作用:向終端輸出一個字符
2022/12/16字符型變量整型變量§4.4字符數(shù)據(jù)的輸入輸出(一).字符輸出函數(shù)2022§4.4字符數(shù)據(jù)的輸入輸出(續(xù))2022/12/16例4.1輸出單個字符。
#include<stdio.h>
voidmain()
{
chara,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘\n’);
}
運(yùn)行結(jié)果:BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);運(yùn)行結(jié)果:BOY§4.4字符數(shù)據(jù)的輸入輸出(續(xù))2022/12/12例§4.4字符數(shù)據(jù)的輸入輸出(續(xù))(二).字符輸入函數(shù)一般形式:getchar()
函數(shù)作用:從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個字符。函數(shù)值:從輸入設(shè)備得到的字符。2022/12/16§4.4字符數(shù)據(jù)的輸入輸出(續(xù))(二).字符輸入函數(shù)2§4.4字符數(shù)據(jù)的輸入輸出(續(xù))2022/12/16例4.2輸入單個字符。
#include<stdio.h>
voidmain()
{
charc;
c=getchar();
putchar(c);
putchar(‘\n’);
}
運(yùn)行程序:
從鍵盤輸入字符‘a(chǎn)’
按Enter鍵
屏幕上將顯示輸出的字符‘a(chǎn)’
a
a§4.4字符數(shù)據(jù)的輸入輸出(續(xù))2022/12/12例§4.5格式輸入與輸出(一).格式輸出函數(shù)函數(shù)作用:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個任意類型的數(shù)據(jù)。一般格式:printf(格式控制,輸出表列)2022/12/16%d:以帶符號的十進(jìn)制形式輸出整數(shù)%o:以八進(jìn)制無符號形式輸出整數(shù)%x:以十六進(jìn)制無符號形式輸出整數(shù)Tobecontinued……§4.5格式輸入與輸出(一).格式輸出函數(shù)2022/1§4.5格式輸入與輸出(續(xù))2022/12/16%u:以無符號十進(jìn)制形式輸出整數(shù)%c:以字符形式輸出,只輸出一個字符%s:輸出字符串%f:以小數(shù)形式輸出單,雙精度數(shù),隱含輸出六位小數(shù)%e:以指數(shù)形式輸出實數(shù)%g:選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0§4.5格式輸入與輸出(續(xù))2022/12/12%u:§4.5格式輸入與輸出(續(xù))2022/12/16幾種常見的格式符的修飾符:L:用于長整型整數(shù),可加在格式符d,o,x,u前面M(代表一個正整數(shù)):數(shù)據(jù)最小寬度N(代表一個正整數(shù)):對實數(shù),表示輸出n位小數(shù);對字符串,表示截取的字符個數(shù)—:輸出的數(shù)字或字符在域內(nèi)向左靠§4.5格式輸入與輸出(續(xù))2022/12/12幾種?!?.5格式輸入與輸出(續(xù))2022/12/16d格式符。用來輸出十進(jìn)制整數(shù)。幾種用法:①%d:按十進(jìn)制整型數(shù)據(jù)的實際長度輸出。②%md:m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實際位數(shù)輸出。例:printf(″%4d,%4d″,a,b);若a=123,d=12345,則輸出結(jié)果為123,12345③%ld:輸出長整型數(shù)據(jù)。例:longa=135790;/*定義a為長整型變量*/printf(″%ld″,a);§4.5格式輸入與輸出(續(xù))2022/12/12d格式§4.5格式輸入與輸出(續(xù))2022/12/16(2)o格式符。以八進(jìn)制整數(shù)形式輸出。輸出的數(shù)值不帶符號,符號位也一起作為八進(jìn)制數(shù)的一部分輸出。例:inta=-1;printf("%d,%o",a,a);-1在內(nèi)存單元中的存放形式(以補(bǔ)碼形式存放)如下:1111111111111111輸出為:-1,177777不會輸出帶負(fù)號的八進(jìn)制整數(shù)。對長整數(shù)(long型)可以用“%lo”格式輸出。還可以指定字段寬度,例:printf("%8o",a);輸出為:177777。(數(shù)字前有2個空格)§4.5格式輸入與輸出(續(xù))2022/12/12(2)§4.5格式輸入與輸出(續(xù))2022/12/16(3)x格式符。以十六進(jìn)制數(shù)形式輸出整數(shù)。同樣不會出現(xiàn)負(fù)的十六進(jìn)制數(shù)。例:inta=-1;printf(″%x,%o,%d″,a,a,a);輸出結(jié)果為:ffff,177777,-1可以用“%lx”輸出長整型數(shù),也可以指定輸出字段的寬度例:
“%12x”§4.5格式輸入與輸出(續(xù))2022/12/12(3)§4.5格式輸入與輸出(續(xù))2022/12/16(4)u格式符,用來輸出unsigned型數(shù)據(jù).一個有符號整數(shù)(int型)也可以用%u格式輸出;一個unsigned型數(shù)據(jù)也可以用%d格式輸出。unsigned型數(shù)據(jù)也可用%o或%x格式輸出。(5)c格式符,用來輸出一個字符。如:chard=′a′;printf(″%c″,d);輸出字符′a′.一個整數(shù),只要它的值在0~255范圍內(nèi),可以用“%c”使之按字符形式輸出,在輸出前,系統(tǒng)會將該整數(shù)作為ASCII碼轉(zhuǎn)換成相應(yīng)的字符;一個字符數(shù)據(jù)也可以用整數(shù)形式輸出。§4.5格式輸入與輸出(續(xù))2022/12/12(4)§4.5格式輸入與輸出(續(xù))2022/12/16例4.3無符號數(shù)據(jù)的輸出。
#include<stdio.h>
voidmain()
{
unsignedinta=65535;intb=-2;
printf(“a=%d,%o,%x,%u\n”,a,a,a,a);
printf(“b=%d,%o,%x,%u\n”,b,b,b,b);
}
運(yùn)行結(jié)果:
a=-1,177777,ffff,65535
b=-2,177776,fffe,65534§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16例4.4字符數(shù)據(jù)的輸出。
#include<stdio.h>
voidmain()
{
charc=‘a(chǎn)’;
inti=97;
printf(“%c,%d\n”,c,c);
printf(“%c,%d\n”,i,i);
}
運(yùn)行結(jié)果:
a,97
a,97指定輸出字?jǐn)?shù)的寬度,
printf(“%3c”,c);
則輸出:
a§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16(6)s格式符輸出字符串.①%s。例如:printf(″%s″,″CHINA″)輸出字符串“CHINA”(不包括雙引號)。②%ms,輸出的字符串占m列,若串長大于m,則全部輸出,若串長小于m,則左補(bǔ)空格。③%-ms,若串長小于m,字符串向左靠,右補(bǔ)空格。④%m.ns,輸出占m列,只取字符串中左端n個字符,輸出在m列的右側(cè),左補(bǔ)空格。⑤%-m.ns,n個字符輸出在m列的左側(cè),右補(bǔ)空格,若n〉m,m自動取n值?!?.5格式輸入與輸出(續(xù))2022/12/12(6)§4.5格式輸入與輸出(續(xù))2022/12/16例4.5字符串的輸出。
#include<stdio.h>
voidmain()
{
printf(“%3s,%7.2s,%.4s,%-5.3s\n”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);
}
運(yùn)行結(jié)果:
CHINA,CH,CHIN,CHI§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16(7)f格式符。用來以小數(shù)形式輸出實數(shù)(包括單雙精度)有以下幾種用法:①%f。不指定字段寬度,由系統(tǒng)自動指定字段寬度,使整數(shù)部分全部輸出,并輸出6位小數(shù)。應(yīng)當(dāng)注意,在輸出的數(shù)字中并非全部數(shù)字都是有效數(shù)字。單精度實數(shù)的有效位數(shù)一般為7位。②%m.nf。指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,則左端補(bǔ)空格。③%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。
§4.5格式輸入與輸出(續(xù))2022/12/12(7)§4.5格式輸入與輸出(續(xù))2022/12/16例4.6輸出實數(shù)時的有效位數(shù)。
#include<stdio.h>
voidmain()
{floatx,y;
x=111111.111;y=222222.222;
printf(″%f″,x+y);
}
運(yùn)行結(jié)果:
333333.328125
§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16例4.7輸出雙精度數(shù)時的有效位數(shù)。
#include<stdio.h>
voidmain()
{doublex,y;
x=1111111111111.111111111;
y=2222222222222.222222222;
printf(“%f”,x+y);
}
運(yùn)行結(jié)果:
3333333333333.333010§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16例4.8輸出實數(shù)時指定小數(shù)位數(shù)。
#include<stdio.h>
voidmain()
{
floatf=123.456;
printf(“%f%10f%10.2f%.2f%-10.2f\n”,f,f,f,f,f);
}
運(yùn)行結(jié)果:
123.455994123.455994123.46123.46123.46
§4.5格式輸入與輸出(續(xù))2022/12/12例4.§4.5格式輸入與輸出(續(xù))2022/12/16(8)e格式符,以指數(shù)形式輸出實數(shù)??捎靡韵滦问剑孩伲ィ?。不指定輸出數(shù)據(jù)所占的寬度和數(shù)字部分的小數(shù)位數(shù).例:printf(″%e″,123.456);輸出:1.234560
e+002
6列5列所輸出的實數(shù)共占13列寬度。(注:不同系統(tǒng)的規(guī)定略有不同)
§4.5格式輸入與輸出(續(xù))2022/12/12(8)§4.5格式輸入與輸出(續(xù))2022/12/16②%m.ne和%-m.ne。m、n和“-”字符的含義與前相同。此處n指擬輸出的數(shù)據(jù)的小數(shù)部分(又稱尾數(shù))的小數(shù)位數(shù)。若f=123.456,則:printf("%e%10e%10.2e%.2e%-10.2e",f,f,f,f,f);輸出如下:1.234560e+002
1.234560e+002
1.23e+002
1.23e+002
13列13列10列9列1.23e+00210列說明:未指定n,自動使n=6.超過給定的10列,乃突破10列的限制,按實際長度輸出。第3個數(shù)據(jù)共占10列,小數(shù)部分占2列。只指定n=2,未指定m,自動使m等于數(shù)據(jù)應(yīng)占的長度。第5個數(shù)據(jù)應(yīng)占10列,數(shù)值只有9列,由于是“%-10.2e”,數(shù)值向左靠,右補(bǔ)一個空格。(注:有的C系統(tǒng)的輸出格式與此略有不同)§4.5格式輸入與輸出(續(xù))2022/12/12②%§4.5格式輸入與輸出(續(xù))2022/12/16(9)g格式符,用來輸出實數(shù).它根據(jù)數(shù)值的大小,自動選f格式或e格式(選擇輸出時占寬度較小的一種),且不輸出無意義的零。例:若f=123.468,則printf(″%f%e%g″,f,f,f);輸出如下:123.468000
1.234680e+002
123.46810列13列10列說明:用%f格式輸出占10列,用%e格式輸出占13列,用%g格式時,自動從上面兩種格式中選擇短者(今以%f格式為短)故占10列,并按%f格式用小數(shù)形式輸出,最后3個小數(shù)位為無意義的0,不輸出,因此輸出123.468,然后右補(bǔ)3個空格。%g格式用得較少?!?.5格式輸入與輸出(續(xù))2022/12/12(9)§4.5格式輸入與輸出(續(xù))說明:除了X,E,G外,其他各式字符必須用小寫??梢栽趐rintf函數(shù)中的“格式控制”字符串中包含轉(zhuǎn)義字符。一個格式說明必須以“%”開頭,以9個格式字符之一為結(jié)束,中間可以插入附加格式字符。想輸出%,則應(yīng)該在格式控制字符串中用連續(xù)兩個%表示2022/12/16§4.5格式輸入與輸出(續(xù))說明:2022/12/12§4.5格式輸入與輸出(續(xù))(一).格式輸入函數(shù)函數(shù)作用:按照變量在內(nèi)存的地址將變量值存進(jìn)去。一般格式:scanf(格式控制,地址表列)2022/12/16同printf函數(shù)是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址§4.5格式輸入與輸出(續(xù))(一).格式輸入函數(shù)202§4.5格式輸入與輸出(續(xù))2022/12/16例4.9用scanf函數(shù)輸入數(shù)據(jù)。
#include<stdio.h>
voidmain
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版二年級語文上冊識字4《田家四季歌》精美課件
- 優(yōu)翼課件化學(xué)下冊
- 出口日本速凍樹莓檢疫規(guī)程(征求意見稿)
- 山東省安全員B證考試題庫及答案
- 住校初中生學(xué)習(xí)計劃
- 黨課青年說活動方案
- 醫(yī)用伽馬相機(jī)相關(guān)項目實施方案
- 半導(dǎo)體捕魚器相關(guān)項目建議書
- 醫(yī)療用氯解毒劑市場環(huán)境與對策分析
- 機(jī)修電工崗位職責(zé)說明書-企業(yè)管理
- 滬教牛津版英語2024七年級上冊全冊知識清單(記憶版)
- 2024年浙江省單獨(dú)考試招生文化考試語文試卷真題(含答案詳解)
- 2024年廣東惠州市交通投資集團(tuán)招聘筆試參考題庫含答案解析
- 動火作業(yè)審批表
- 空壓機(jī)崗位安全知識試題(附答案)
- HSE管理手冊(DOCX 34頁)
- 環(huán)保、安全、消防、職業(yè)衛(wèi)生專項驗收的內(nèi)容
- 田字格【word字帖模板】【word字帖模板】(共1頁)
- 《鐵路電力牽引供電工程施工質(zhì)量驗收標(biāo)準(zhǔn)》TB10421—XXXX(檢驗批表格)
- 第9章 生物可降解材料-09-2014
- 肛裂臨床路徑表單
評論
0/150
提交評論