版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)類型基本類型構(gòu)造類型指針類型(*)空類型(void)整型字符型(char)浮點(diǎn)型長(zhǎng)整型(longint)基本整型(int)短整型(shortint)單精度浮點(diǎn)型(float)雙精度浮點(diǎn)型(double)枚舉類型(enum)數(shù)組類型([])結(jié)構(gòu)體類型(struct)共用體類型(union)常量:是指在程序運(yùn)行過(guò)程中其值不能被改變的量。如:整型常量:12、-453、02、0x12
實(shí)型常量:3.14、0.007、6.34e+04
字符常量:‘a(chǎn)’、‘!’、‘\n’、‘\101’
字符串常量:“jkkj”、“5483fd”、“a”
32023/2/63優(yōu)先級(jí)運(yùn)算符結(jié)合規(guī)則1[]()->.從左至右2!~++---
*&sizeof(類型名)從右至左3*/%從左至右4+-從左至右5<<>>從左至右6<<=>>=從左至右7==!=從左至右8&從左至右9^從左至右10|從左至右11&&從左至右12||從左至右13?:從右至左14=+=-=*=/=%=&=^=|=>>=<<=從右至左15,從左至右3.1C語(yǔ)句概述3.2
數(shù)據(jù)輸入/輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn)3.3
字符數(shù)據(jù)的輸入和輸出3.4
格式化輸入與輸出第3章
順序結(jié)構(gòu)的程序設(shè)計(jì)5學(xué)習(xí)重點(diǎn):
1、實(shí)現(xiàn)順序結(jié)構(gòu)的語(yǔ)句。
2、數(shù)據(jù)的輸入和輸出函數(shù)getchar()、putchar()、scanf()、printf()。
學(xué)習(xí)難點(diǎn):
1、格式輸入函數(shù)scanf()的使用。
2、格式輸出函數(shù)printf()的使用。6C語(yǔ)言語(yǔ)句的具體分類如下圖所示:3.1C語(yǔ)句概述73.1C語(yǔ)句概述順序結(jié)構(gòu)程序:就是按語(yǔ)句行書寫的自然順序一條語(yǔ)句一條語(yǔ)句地往后執(zhí)行的程序段。語(yǔ)句1語(yǔ)句28【例3.1】
輸入三角形的三邊長(zhǎng),求三角形面積。算法分析:已知三角形的三邊長(zhǎng)a、b、c,則該三角形的面積公式為:其中s=(a+b+c)/2。#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=%f,b=%f,c=%f,s=%f\n",a,b,c,s); printf("area=%f\n",area);}3.1C語(yǔ)句概述91.說(shuō)明語(yǔ)句說(shuō)明語(yǔ)句是對(duì)變量或被調(diào)函數(shù)的聲明。其作用是描述程序中被處理數(shù)據(jù)(變量或函數(shù))的名稱和類型,供編譯程序使用。說(shuō)明語(yǔ)句可以出現(xiàn)在程序中任何函數(shù)或復(fù)合語(yǔ)句的外面(稱為外部說(shuō)明)或里面(稱為局部說(shuō)明)。3.1C語(yǔ)句概述【例1.5】
求兩個(gè)數(shù)的最大值#include<stdio.h> intmax(intm,intn);
/*函數(shù)說(shuō)明*/voidmain(){
intx,y,z; /*變量說(shuō)明*/ printf("inputtwonumbers:\n"); scanf("%d%d",&x,&y); z=max(x,y); printf("maxmum=%d",z); }intmax(intm,intn){intt;
/*變量說(shuō)明*/ if(m>n) t=m;; else t=n; returnt;}112.空語(yǔ)句
在C語(yǔ)言中,只有一個(gè)分號(hào)就構(gòu)成一個(gè)語(yǔ)句,稱為空語(yǔ)句。
;
空語(yǔ)句在語(yǔ)法上占據(jù)一個(gè)語(yǔ)句的位置,但是它不實(shí)現(xiàn)任何功能??照Z(yǔ)句只用在必須有語(yǔ)句而又不需要進(jìn)行任何操作的位置,空語(yǔ)句常用于條件語(yǔ)句或循環(huán)語(yǔ)句的執(zhí)行部分。3.1C語(yǔ)句概述123.表達(dá)式語(yǔ)句(1)簡(jiǎn)單表達(dá)式語(yǔ)句
表達(dá)式;任何表達(dá)式加上分號(hào)都是一個(gè)語(yǔ)句,例如:
a=3,b=4;i++;3.14*R*R;
以上都是合法的語(yǔ)句。但是3.14*R*R;的結(jié)果并沒(méi)有保存起來(lái),所以這個(gè)語(yǔ)句無(wú)實(shí)際意義。3.1C語(yǔ)句概述13(2)賦值語(yǔ)句
C語(yǔ)言中的賦值語(yǔ)句是由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成,其格式為:
變量=表達(dá)式;
注意:“=”的左側(cè)必須是變量。當(dāng)“=”號(hào)兩側(cè)數(shù)據(jù)類型不一致時(shí),以左側(cè)的為準(zhǔn)進(jìn)行轉(zhuǎn)換。當(dāng)多次給一個(gè)變量賦值時(shí),其值是最后一次賦的值。3.1C語(yǔ)句概述14【例3.2】設(shè)a單元的值為5,b單元的值為10,試編寫一個(gè)程序,把兩單元的內(nèi)容互換。#include<stdio.h>voidmain(){ inta=5,b=10,s; s=a; a=b;b=s; /*s=a,a=b,b=s;*/ printf("a=%d,b=%d\n",a,b);}3.1C語(yǔ)句概述154.函數(shù)調(diào)用語(yǔ)句
函數(shù)名(實(shí)際參數(shù)表);如:scanf(“%d,%d”,&a,&b);printf("a=%d,b=%d\n",a,b);3.1C語(yǔ)句概述165.復(fù)合語(yǔ)句
復(fù)合語(yǔ)句是由花括號(hào)“{}”括起的多個(gè)語(yǔ)句組成,有時(shí)也稱為分程序。其形式為:{
[內(nèi)部數(shù)據(jù)說(shuō)明;]
執(zhí)行語(yǔ)句;}如:{t=a;a=b;b=t;}
復(fù)合語(yǔ)句在語(yǔ)法上等價(jià)于一條語(yǔ)句。
3.1C語(yǔ)句概述17【例】復(fù)合語(yǔ)句舉例。#include<stdio.h>voidmain(){inta=10;printf("a=%d\n",a);
{inta=20;printf("a=%d\n",a);}printf("a=%d\n",a);}3.1C語(yǔ)句概述183.2數(shù)據(jù)輸入/輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn)
C語(yǔ)言中所謂輸入/輸出就是指以計(jì)算機(jī)為主體而言的,C語(yǔ)言本身并不提供輸入/輸出操作的語(yǔ)句,C語(yǔ)言程序中的輸入/輸出操作是通過(guò)調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)來(lái)實(shí)現(xiàn)的。
C語(yǔ)言有很豐富的輸入/輸出庫(kù)函數(shù),有用于鍵盤輸入和顯示器輸出的輸入/輸出庫(kù)函數(shù)、磁盤文件讀寫的輸入/輸出庫(kù)函數(shù)、硬件端口操作的輸入/輸出庫(kù)函數(shù)等(詳見附錄表庫(kù)函數(shù))。本書主要是以鍵盤為主體的輸入終端輸入數(shù)據(jù),以顯示器為主體的輸出終端輸出數(shù)據(jù)。193.2數(shù)據(jù)輸入/輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn)在使用輸入/輸出函數(shù)時(shí),需要注意以下兩個(gè)問(wèn)題:1)當(dāng)需要使用某個(gè)函數(shù)時(shí),要通過(guò)預(yù)編譯命令“#include”,將有關(guān)“頭文件”包含到源文件中。如:#include<stdio.h>
或#include"stdio.h"2)在所有的輸入/輸出庫(kù)函數(shù)使用時(shí),格式與參數(shù)要符合系統(tǒng)要求。例如:inti;scanf("%d",&i);printf("%d",i);下面將詳細(xì)介紹四個(gè)標(biāo)準(zhǔn)輸入/輸出庫(kù)函數(shù)。203.3.1字符輸出函數(shù)putchar()
putchar()函數(shù)的作用是把一個(gè)字符輸出到顯示器或打印機(jī)上,putchar函數(shù)的一般調(diào)用形式為:
putchar(ch);
說(shuō)明:參數(shù)ch可以是一個(gè)整型或字符型的變量,也可以是整型或字符型的常量。3.3字符數(shù)據(jù)的輸入和輸出【例3.4】putchar()函數(shù)的使用舉例。#include"stdio.h"voidmain(){ charch='A'; inti=66; putchar(ch);/*輸出字符型變量ch的值*/ putchar(i); /*輸出整型常量i的值*/ putchar('\t'); putchar('C'); putchar('\x44'); putchar('\n');putchar(67); }223.3.2字符輸入函數(shù)getchar()
getchar()函數(shù)的作用是從鍵盤上讀入一個(gè)字符,其一般調(diào)用形式為:
getchar()3.3字符數(shù)據(jù)的輸入和輸出23【例3.3】輸入一字符B,變量是字符型。#include"stdio.h"voidmain(){charc;c=getchar();putchar(c);}運(yùn)行輸入:
B運(yùn)行結(jié)果:
B3.3字符數(shù)據(jù)的輸入和輸出24【例】輸入一字符B,變量是整型。
#include"stdio.h"voidmain(){inti;i=getchar();putchar(i);}運(yùn)行輸入:
B運(yùn)行結(jié)果:B3.3字符數(shù)據(jù)的輸入和輸出注意:getchar()函數(shù)可以接收任意字符,包括空格、回車或Tab鍵等特殊字符。25【例3.3】通過(guò)鍵盤輸入一個(gè)字符并回顯。#include"stdio.h"voidmain(){putchar(getchar());}#include"stdio.h"voidmain(){getchar();putchar(getchar());}263.4.2格式化輸出函數(shù)printf()1.調(diào)用形式
printf(“格式控制字符串”,輸出值參數(shù)表);功能:在格式控制字符串的控制下,將各參數(shù)轉(zhuǎn)換成指定格式,在標(biāo)準(zhǔn)輸出設(shè)備上顯示或打印。
或者說(shuō)按指定的格式向標(biāo)準(zhǔn)輸出設(shè)備輸出若干個(gè)任意類型的數(shù)據(jù)。3.4格式化輸入與輸出27(1)printf(“Howdoyoudo!”);(2)printf(“%d,%o”,a,b);(3)printf(“a=%f,b=%f\n”,x,y);3.4格式化輸入與輸出28printf(“格式控制字符串”,輸出值參數(shù)表);
普通字符(原樣輸出)
格式說(shuō)明符
%+#
-0m.nhl
格式字符d,符十整o,無(wú)八整x,X無(wú)16整u無(wú)十整c字符s字串f小六e,E指六g,G2.格式控制字符串說(shuō)明數(shù)據(jù)符號(hào)八、十六進(jìn)制前導(dǎo)符正數(shù)空一格,負(fù)數(shù)填-左對(duì)齊左補(bǔ)0最小寬度小數(shù)位數(shù)短整型長(zhǎng)整型或雙精度型
printf()中使用的格式字符格式字符說(shuō)明d以帶符號(hào)的十進(jìn)制形式輸出整數(shù)o以八進(jìn)制無(wú)符號(hào)的形式輸出整數(shù)x,X以十六進(jìn)制無(wú)符號(hào)的形式輸出整數(shù)u以十進(jìn)制無(wú)符號(hào)的形式輸出整數(shù)c以字符形式輸出,只輸出一個(gè)字符s輸出字符串f以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)e,E以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位g,G選用%f或%e格式中輸出寬度較短的一種格式,不輸出無(wú)意義的030
是需要輸出的一些數(shù)據(jù),可以是任意類型的常量、變量、函數(shù)或表達(dá)式,其值被輸出。輸出項(xiàng)的值必須按照格式控制字符串對(duì)應(yīng)的數(shù)據(jù)格式按從左到右的順序一一對(duì)應(yīng)輸出。各輸出項(xiàng)之間以逗號(hào)分隔,例如:
printf("i=%5d,j=%u\n",i,4*j);
3.輸出值參數(shù)表說(shuō)明3.4格式化輸入與輸出【例3.8】printf()函數(shù)的應(yīng)用。#include<stdio.h>voidmain(){ inta=15; floatb=123.1234567; doublec=12345678.1234567; chard='p'; printf("a=%d,%5d,%o,%x\n",a,a,a,a); printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b); printf("c=%lf,%f,%8.4lf\n",c,c,c); printf("d=%c,%8c\n",d,d);}a=15,15,17,fb=123.123459,123.123459,123.1235,1.231235e+002c=12345678.123457,12345678.123457,12345678.1235d=p,p
32復(fù)習(xí)51、舉例說(shuō)明什么是表達(dá)式語(yǔ)句、賦值語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、復(fù)合語(yǔ)句?2、如何交換兩個(gè)變量的值?3、putchar()、getchar()函數(shù)的功能?4、printf()函數(shù)的格式控制字符串包括幾部分?格式說(shuō)明的用途?33
【例3.9】輸出格式舉例。
#include<stdio.h>voidmain(){charc=’a’;charstr[]=“seeyou”;inti=1234;floatx=123.456789;floaty=1.2;printf(“1:%c,%s,%d,%f,%e,%f\n”,c,str,i,x,x,y);printf(“2:%4c,%10s,%06d,%12f,%15e,%10f\n”,c,str,i,x,x,y);printf(“3:%-4c,%-10s,%-6d,%-12f,%-15e,%-10f\n”,c,str,i,x,x,y);printf(“4:%0c,%6s,%3d,%9f,%10e,%2f\n”,c,str,i,x,x,y);printf(“5:%12.2f\n”,x);printf(“6:%.2f\n”,x);printf(“7:%10.4f\n”,y);printf(“8:%8.3s,%8.0s\n”,str,str);printf(“9:%%d:%d\n”,i);}34運(yùn)行結(jié)果:1:a,seeyou,1234,123.456787,1.234568e+002,1.2000002:a,seeyou,001234,123.456787,1.234568e+002,1.2000003:a,seeyou,1234,123.456787,1.234568e+002,1.2000004:a,seeyou,1234,123.456787,1.234568e+002,1.2000005:123.466:123.467:1.20008:see,9:%d:12343.4格式化輸入與輸出35說(shuō)明:(1)要求格式字符用小寫字母,如%d不能寫成%D。(2)如果想輸出字符“%”,則應(yīng)該在格式控制字符串中用連續(xù)兩個(gè)%表示,如:
printf(“%f%%”,1.0/3);輸出0.333333%。3.4格式化輸入與輸出363.4.1格式化輸入函數(shù)scanf()1.調(diào)用形式
scanf(“格式控制字符串”,輸入項(xiàng)地址表);功能:讀入各種類型的數(shù)據(jù),接收從鍵盤按輸入格式輸入的數(shù)據(jù)并存入指定的變量地址中。
3.4格式化輸入與輸出37如:#include<stdio.h>voidmain(){intx,y,z;longb;charc;scanf(“%d,%o,%x,%ld,%c”,&x,&y,&z,&b,&c);printf(“%d,%d,%d,%ld,%c\n”,x,y,z,b,c);}3.4格式化輸入與輸出scanf(“格式控制字符串”,輸入項(xiàng)地址表);
普通字符(原樣輸入)
格式說(shuō)明
%*mhl
格式字符最小寬度短整型不賦值長(zhǎng)整型或雙精度實(shí)型d符十整o無(wú)八整x無(wú)十六整c字符s字串f小六e指六輸入項(xiàng)地址表:是由若干個(gè)地址組成的表列,可以是變量的地址,字符串的首地址。39說(shuō)明1)若在scanf()函數(shù)的輸入控制串中含有其他的字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符。例如:intx,y,z;scanf("%d,%d,%d",&x,&y,&z);輸入數(shù)據(jù)的三種方式是:①10,20,30(回車)
②10,20,
30(回車)③10,
20,
30(回車)又如:intx,y,z;scanf("x=%d,y=%d,z=%d",&x,&y,&z);輸入數(shù)據(jù)的方式是:x=10,y=20,z=30(回車)
3.4格式化輸入與輸出402)在輸入數(shù)值型數(shù)據(jù)時(shí),若在格式控制字符串中每個(gè)格式說(shuō)明之間不加其他符號(hào),在執(zhí)行時(shí),系統(tǒng)規(guī)定由鍵盤輸入數(shù)據(jù)時(shí),數(shù)據(jù)之間可以用一個(gè)或多個(gè)空格、回車、跳格(Tab鍵)來(lái)分隔。例如:intx,y,z;scanf("%d%d%d",&x,&y,&z);假設(shè)輸入的數(shù)據(jù)分別是10、20、30。則輸入可為:①10(空格)20(空格)30②10(回車)20(回車)30(回車)③10(tab)20(tab)30回車3.4格式化輸入與輸出413)在輸入控制字符中,格式說(shuō)明的類型與輸入項(xiàng)的類型應(yīng)該一一對(duì)應(yīng)匹配。如果類型不匹配,系統(tǒng)并不給出出錯(cuò)信息,但不能得到正確的輸入數(shù)據(jù)。當(dāng)輸入長(zhǎng)整型數(shù)據(jù)時(shí),必須使用“%ld”格式,輸入雙精度時(shí),必須使用“%lf”或“%le”,否則不能得到正確數(shù)據(jù)。例如:double
x,y,z;scanf("x=%d,y=%d,z=%d",&x,&y,&z);printf("%f
%f
%f",x,y,z);輸入數(shù)據(jù)的方式是:x=10,y=20,z=30
輸出結(jié)果是:-9255959211743210800000000000000000000000000000000000000000000.000000-9255959211743222200000000000000000000000000000000000000000000.000000-9255959211743233600000000000000000000000000000000000000000000.0000003.4格式化輸入與輸出424)關(guān)于“%c”格式。在用“%c”格式輸入字符時(shí),輸入的數(shù)據(jù)之間不需要分隔符,空格、轉(zhuǎn)義字符和回車符都將作為有效字符讀入。例如:scanf("%c%c%c",&x,&y,&z);輸入方式:abc<回車>如果輸入:abc<回車>3.4格式化輸入與輸出435)在scanf()函數(shù)中的格式字符前可以用一個(gè)整數(shù)指定輸入數(shù)據(jù)所占的寬度,但對(duì)實(shí)型數(shù)據(jù)不能指定小數(shù)的位置。例如:scanf("%2d%2d",&a,&b);
執(zhí)行的輸入是:123456scanf("%6.2f",&f);
3472.3454是不合法的。3.4格式化輸入與輸出446)%后的“*”附加說(shuō)明符是抑制字符,用來(lái)表示跳過(guò)它對(duì)應(yīng)的數(shù)據(jù),例如:
scanf("%2d%*3d%3d",&i,&j);
若輸入20307100↙3.4格式化輸入與輸出457)在輸入控制中,格式說(shuō)明的個(gè)數(shù)與輸入項(xiàng)的個(gè)數(shù)應(yīng)該相等。如果格式說(shuō)明的個(gè)數(shù)少于輸入項(xiàng)的個(gè)數(shù),系統(tǒng)自動(dòng)結(jié)束輸入,多余的數(shù)據(jù)沒(méi)有被讀入,但可以作為下一個(gè)輸入操作的輸入數(shù)據(jù);如
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 特鋼企業(yè)突發(fā)環(huán)境事件應(yīng)急預(yù)案
- 公交站亭基礎(chǔ)及鋪裝施工合同(2篇)
- 商場(chǎng)場(chǎng)地租賃協(xié)議書范本
- 貨車租賃協(xié)議書樣書
- 公租房協(xié)議范本
- 機(jī)器設(shè)備融資租賃合同范本
- 第8課 革命先行者孫中山
- 2024招聘臨時(shí)工聘用條款合同版B版
- 2025年連云港道路貨運(yùn)運(yùn)輸從業(yè)資格證模擬考試
- 2025年昆明貨運(yùn)從業(yè)資格仿真考題
- 石油形成過(guò)程科普知識(shí)講座
- 輔警心理健康知識(shí)講座
- 《棗樹常見病蟲害》課件
- 刑法試題庫(kù)大全
- 燃?xì)獍惭b人員管理制度
- 省份簡(jiǎn)稱課件
- 公民科學(xué)素質(zhì)調(diào)查問(wèn)卷
- 小學(xué)健康教育試題-及答案
- 鋼構(gòu)件應(yīng)力超聲檢測(cè)技術(shù)規(guī)程
- -《多軸數(shù)控加工及工藝》(第二版)教案
- 體 育 課 教 學(xué) 評(píng) 價(jià) 量 表
評(píng)論
0/150
提交評(píng)論