第二章語言程序基礎_第1頁
第二章語言程序基礎_第2頁
第二章語言程序基礎_第3頁
第二章語言程序基礎_第4頁
第二章語言程序基礎_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1C語言程序設計第二章C語言程序基礎控制與計算機工程學院2第二章C語言程序基礎

(由例1-2提出問題引入本章要學習的內容)2.1C程序的基本結構2.2C語言基本語法成分2.3C語言數(shù)據類型2.4C語句2.5C語言的格式輸出函數(shù)printf2.6C語言的格式輸入函數(shù)scanf3學習目標掌握C程序的基本結構及C語言基本語法成分理解C語言數(shù)據類型的概念,掌握整形、浮點型、字符型數(shù)據的存儲形式、取值范圍、表示形式及基本運算掌握格式輸入輸出函數(shù)的使用,理解輸入輸出格式字符串與輸入輸出數(shù)據間的匹配關系通過模仿和改寫例題,學習簡單的程序設計方法42.1C程序的基本結構C語言程序的基本結構如下:編譯預處理命令voidmain(void){

聲明部分執(zhí)行部分}類型子函數(shù)名(形參表){

聲明部分執(zhí)行部分}執(zhí)行部分一般形式如下:

數(shù)據輸入數(shù)據處理數(shù)據輸出52.1C程序的基本結構C語言程序的基本結構如下(分析例1-2):編譯預處理命令voidmain(void){

聲明部分執(zhí)行部分}類型子函數(shù)名(形參表){

聲明部分執(zhí)行部分}執(zhí)行部分一般形式如下:

數(shù)據輸入數(shù)據處理數(shù)據輸出聲明部分對執(zhí)行部分中引用的變量和函數(shù)進行定義

6

標識符

標識符用來標識變量名、符號常量名、函數(shù)名、數(shù)組名、類型名等。標識符命名規(guī)則:只能是字母(A~Z,a~z)、數(shù)字(0~9)、下劃線組成

第一個字符必須是字母或下劃線。例如,a,i,sum,average,al,c_2,DAY,student,p26,_no是合法的標識符5a,M.for,$123,3D64,a-b是不合法的標識符。7標識符在使用標識符時必須注意以下幾點:大小寫敏感標識符不能與“關鍵字”同名,也不能與系統(tǒng)預先定義的“標準標識符”同名,如main、printf等。取名原則:“簡潔明了”,“見名知義”。如sum、avg、area、score、name等ANSIC沒有限制標識符長度,但各個編譯系統(tǒng)都有自己的規(guī)定和限制。8關鍵字

關鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。C語言包括32個個關鍵字:autobreakcasecharconstcontinuedefaultdodoubleelseenumextemfloatforgotoif

intlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile注意:C語言的關鍵字都是小寫。2.2.4運算符

運算符表示各種運算功能。運算符由一個或多個字符組成

如:+、-、*、/等??梢越M成以下表達式式: a+b; 2*2.1415926*r;

9問題:下面選項中,均是合法的標識符的選項是(A)a1b!12_e (B)minf121x (C)aifPI(D)x2m_nsummin

10分隔符

C語言中,分隔符有逗號、空格、Tab和回車等。

逗號:主要用于在類型說明和函數(shù)參數(shù)表中分隔各個變量;空格、Tab和和回車多用于語句和各單詞之間的間隔符。注意:在關鍵字或標識符之間必須要有一個以上的例如把inta,b;寫成inta,b;C編譯器會把inta當成一個標識符處理,其結果必然出錯。

11【庫函數(shù)】庫函數(shù)不是C語言本身的組成成分,它是由C編譯系統(tǒng)提供的可以直接使用的函數(shù)庫函數(shù)放在庫文件中,同時這些函數(shù)的聲明和宏定義等信息存放在相應的頭文件中使用方法#include<頭文件名>或#include“頭文件名”例如:絕對值、三角函數(shù)等數(shù)學類的函數(shù)需將頭文件math.h包含進來122.3C語言數(shù)據類型C數(shù)據類型指針類型空類型void定義類型typedef基本類型字符類型char數(shù)值類型整型短整型short長整型long整型int浮點型單精度型float雙精度型double構造類型枚舉類型enum數(shù)組結構體struct共用體union13常量和變量常量在程序執(zhí)行過程中,常量的值不能由程序改變變量在程序執(zhí)行過程中,變量的值可以由程序改變

常量與變量常量定義:

在程序運行過程中,其值不能改變的量><一、常量變量符號常量:用標識符代表一個常量#define

PI

3.14main(){floatr1,r2,len1,len2,s1,s2;r1=10;r2=20;len1=2*PI*r1;s1=PI*r1*r1;printf(“l(fā)en1=%f

s1=%f\n",len1,s1);len2=2*PI*r2;s2=PI*r2*r2;printf("len2=%f□s2=%f\n",len2,s2);}

符號常量定義符號常量使用注意:符號常量名用大寫,變量名用小寫><使用符號常量的優(yōu)點含義清楚一改全改350><#define

PI

3.14main(){floatr1,r2,len1,len2,s1,s2;r1=10;r2=20;len1=2*PI*r1;s1=PI*r1*r1;printf("len1=%f□s1=%f\n",len1,s1);len2=2*PI*r2;s2=PI*r2*r2;printf("len2=%f□s2=%f\n",len2,s2);}

3.1415926定義:在程序運行過程中,其值可以改變的量。變量使用規(guī)則:先定義,后使用變量的定義:intsum;

sum=0;sum0

sum=1;1><內存單元變量名變量值類型說明符變量列表;intsum;floatx,y,z;二、變量變量對應著內存中一個存儲單元,在存儲單元中存放著該變量的值,每個變量都有一個名字。不同類型數(shù)據所占存儲單元的大小也不同整型數(shù)據整型變量整型變量在內存中的存放形式——以補碼

形式存放shortinti=10;shortintj=-10;10ij-1000000000000010101111111111110110><19原碼、補碼及反碼原碼:將真值x的正、負號分別換成0、1,即得到x的原碼[x]原。例如:x=,[x]原=01001011x=-1100111,[x]原=11100111

><20正數(shù)的反碼等于原碼負數(shù)的反碼等于其原碼除符號位外,其余各位按位求反

[X1]原=01001001,[X2]原=11001001

[X1]反=01001001,[X2]反=10110110反碼21補碼的作用:能夠將減法運算轉換成加法運算補碼的計算方法:正數(shù)的補碼等于原碼

負數(shù)的補碼=反碼+1><補碼22[X1]原=01001011[X1]補=[X1]原=01001011[X2]原

=11100111[X2]補

=10011000+1=10011001整型變量分類

基本類型:int

根據數(shù)值的范圍分為:int,short,long

根據有無符號(singed/unsigned)及范圍可分為:類型簡寫比特數(shù)取值范圍[signed]

intint32-231~(231-1)unsigned

[int]unsigned320

~(232-1)[signed]

short

[int]short16-215~(215-1)unsignedshort

[int]unsignedshort160

~(216-1)[signed]

long

[int]long32-231~(231-1)unsingedlong

[int]unsingedlong320

~(232-1)><整型變量分類

基本類型:int

根據數(shù)值的范圍分為:int,short,long

根據有無符號(singed/unsigned)及范圍可分為:類型簡寫比特數(shù)取值范圍[signed]

intint32-2147483648~2147483647unsigned

[int]unsigned320~[signed]

short

[int]short16-32768~32767unsignedshort

[int]unsignedshort160

~65535[signed]

long

[int]long32-231~(231-1)unsingedlong

[int]unsingedlong320

~(232-1)><整型變量定義類型說明符變量列表;例如:inti,j;longk,m;

shorts1,s2;

unsignedshortage;Compilingc:\ex3-2.cError..5:Expressionsyntaxinfunc…Error..6:Undefinedsymbolcinfunc…Error..7:Undefinedsymboldinfunc……><main(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“c=%d,d=%d”,c,d);}main(){inta,b;unsignedu;a=12;b=-24;u=10;

intc,d;c=a+u;d=b+u;printf(“c=%d,d=%d,c,d);}c=22,d=-14

整型變量定義

注意:變量定義放在函數(shù)開頭部分的聲明部分或者函數(shù)中某一分程序開頭的聲明部分。

【例2-1】整型數(shù)據溢出一個int型變量最大允許值為32767,如果再加3會怎樣【例2-2】voidmain(){shortinta,b,c;a=32767;b=3;c=a+b;printf(“%d,%d,%d”,a,b,c);}0111111111111111a0000000000000011b32767,3,-327661000000000000010c><【例2-2】修改

28#include<stdio.h>voidmain(){shortinta,b,c;/*inta,b,c;*//*longa,b,c;*//*a=2147483647;*/a=32767;b=3;c=a+b;printf("%d,%d,%d\n",a,b,c);}常數(shù)后加u或U表示unsignedint型如:56u,345U

常數(shù)后加字母l或L,表示longint型如:123L,0L,432l

。><整型常量的表示方式和類型整型常量表示方式十進制如:123,-123,0八進制(以0開頭)如:-0123表示十進制數(shù)-83十六進制(以0x開頭)如:0x123表示十進制數(shù)291實型常量表示方式十進制小數(shù)形式:

整數(shù)部分.小數(shù)部分

1.01.+12.0-12.0.789指數(shù)形式:

尾數(shù)部分e/E

指數(shù)部分指數(shù)部分必須為整數(shù)。

用來表示數(shù)值特別大或數(shù)值特別小的數(shù)。

1e31.8e-3-123e-6-.1e-3><實型數(shù)據實型數(shù)據占有4個字節(jié)的存儲空間取值范圍為±(2.4×10-38~2.4×1038)1、實型變量的分類類型字節(jié)數(shù)有效數(shù)字最小取值范圍float46~7-2.4*10-38~2.4*1038double815~16-1.7*10-308~1.7*103082、實型數(shù)據的舍入誤差實型數(shù)據的有效數(shù)據是有限的,有效數(shù)據以外的數(shù)字將被舍去。因此會產生誤差?!纠?-3】12345678848.000000,12345678848.000000main(){floata,b;a=123456.789e5;b=a+20;printf(“%f,%f“,a,b);}><12345678900.012345678920.0實型變量字符型常量表示方式以單撇號括起來的一個字符。如’a’,’

’,’!’,’7’,’+’><字符型數(shù)據

字符數(shù)據的存儲方式

一個字節(jié)存儲一個字符數(shù)據字節(jié)中存儲的是字符的ASCII碼01100001‘a’9700100000‘’32字符變量用來存放字符常量,即一個單個字符。字符變量的定義形式:charc1,c2;字符變量的賦值:

字符常量整型常量如:c1=‘a’;c2=97;c2=c1; ><字符變量數(shù)據類型變量名=變量初值;

變量賦初值

變量定義的同時使變量初始化,完成賦初值.變量賦初值基本格式inta=3,b,l;floatf=3.14;charc=‘a’;><C語句的分類函數(shù)調用語句

由一次函數(shù)調用加一個分號構成一個語句。

printf(“%d%d%d”,i,j,k);控制語句:9種表達式語句:表達式加分號構成。p=n*n+n+41;2+3;C語句最簡單的C語句:

;/*空語句*/復合語句

用{}括起來的若干語句,叫做復合語句。main(){…

{b=2*a;printf(“%d,%d”,a,b);}

…}格式字符確定了輸出形式:d

十進制整數(shù)x

十六進制整數(shù)o

八進制整數(shù)u

不帶符號的十進制整數(shù)c

單個字符s

字符串f

小數(shù)形式的浮點小數(shù)e

指數(shù)形式的浮點小數(shù)gf和e格式中較短的一種

printf(“格式字符串”,輸出列表);輸出格式說明:

%±0m.nl格式字符(d,f)標記符號指定輸出位置空位是否填零輸出寬度指定輸出精度輸出形式+:指定在有符號數(shù)的正數(shù)前顯示正號。+23,23-:輸出左對齊。125__省略,輸出右對齊。__125輸出數(shù)值時,不使用的位置自動填零。(僅限于左側)00123

在格式字符d、x、o、u前面加l時,輸出為32bit

(long型)。在

f前加

l時,輸出為64位(double型)。

指定輸出寬度:(最小寬度)整數(shù):%md,m指定占用字符位置個數(shù)。輸出實數(shù):%m.nf%6.2f

m指定輸出數(shù)的總長度,

n指定小數(shù)部分的長度。輸出字符串:%m.ns%8.4s

m指定占用的位數(shù),

n指定實際輸出位數(shù)。____abcd

c語言的格式輸出printf函數(shù)38

c語言的格式輸出printf函數(shù)形式:

printf("格式控制字符串",輸出表列)格式字符串為:

%[標志]

[輸出最小寬度]

[.精度]

[長度]類型1.類型:

格式字符

意義d以十進制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)o以八進制形式輸出無符號整數(shù)(不輸出前綴0)x,X以十六進制形式輸出無符號整數(shù)(不輸出前綴Ox)u以十進制形式輸出無符號整數(shù)f以小數(shù)形式輸出單、雙精度實數(shù)e,E以指數(shù)形式輸出單、雙精度實數(shù)g,G以%f或%e中較短的輸出寬度輸出單、雙精度實數(shù)c輸出單個字符s輸出字符串39C語言的格式輸出printf函數(shù)2.標志:標志字符為-.+.#.空格四種標志意義-結果左對齊,右邊填空格+輸出符號(正號或負號)空格負時輸出,正號不輸出#對c,s,d,u類無影響;對o類,在輸出時加前綴o;對x類,在輸出時加前綴0x;對e,g,f類當結果有小數(shù)時才給出小數(shù)點40C語言的格式輸出printf函數(shù)2.標志:標志字符為-.+.#.空格四種標志意義-結果左對齊,右邊填空格+輸出符號(正號或負號)空格負時輸出,正號不輸出#對c,s,d,u類無影響;對o類,在輸出時加前綴o;對x類,在輸出時加前綴0x;對e,g,f類當結果有小數(shù)時才給出小數(shù)點41C語言的格式輸出printf函數(shù)3.輸出最小寬度:若實際位數(shù)多于定義的寬度,則按實際位數(shù)輸出,若實際位數(shù)少于定義的寬度則補以空格或0。4.精度:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的個數(shù);若實際位數(shù)大于所定義的精度數(shù),則四舍五入截去超過的部分。5.長度:長度格式符為h和l兩種,h表示按短整型量輸出,l表示按長整型量輸出。

42C語言的格式輸出printf函數(shù)格式符與輸出項匹配實例?!纠?-4】#include<stdio.h>voidmain(){

inta=97;

floatb=56.748; printf("a=%d,b=%f\n

",a,b); printf("%c,%d,%o,%x,%f\n",a,a,a,a,a); printf("%f,%e,%d,%o,%x\n",b,b,b,b);}a=97,

b=56.748001a,

97,

141,

61,

0.00000056.748001,

5.674800e+001,

-2147483648,

10023057676,

8000000043C語言的格式輸出printf函數(shù)輸出寬度與精度實例。【例2-5】#include<stdio.h>voidmain(){inta=66;floatb=122.1234567;

doublec=1234567890.1234567;

printf("a=%d,%-5d,%5d,%5c\n",a,a,a,a);printf("b=%f,%lf,%5.4f,%.4e,%10.2f\n",b,b,b,b,b);printf("c=%lf,%f,%8.4lf\n",c,c,c);}a=66,66

,

66,Bb=122.123459,122.123459,122.1235,1.2312e+002,

122.12c=1234567890.123457,1234567890.123457,1234567890.123544字符型(char)數(shù)據字符變量賦值與輸出?!纠?-6】#include<stdio.h>voidmain(){

charc;

intx;

c=97;

x='b';

printf("%c,%d\n",c,c);

printf("%d,%c\n",x,x);}a,

9798,

b聲明字符變量字符變量賦值輸出字符變量的值【例2-6】修改#include<stdio.h>voidmain(){charc;intx;c=97;x='b';

/*x=‘2';*/printf("%c,%d\n",c,c);printf("%d,%c\n",x,x);}4546C語言的格式輸出printf函數(shù)注意:1、C語言編譯器不會檢測格式符與輸出項的數(shù)量是否相匹配,若輸出項多余格式符,printf函數(shù)則正確的顯示前面匹配的輸出項,后面多余的不輸出。例如printf("%d",i,j);2、若輸出項少于格式符,printf函數(shù)則正確的顯示匹配的輸出項,后面多余的格式符因為沒有匹配的輸出項,將輸出沒有任何意義的隨機數(shù)。例如printf("%d,%d",i);

3、C語言編譯器也不會檢測格式符與輸出項的數(shù)據類型是否匹配,若不匹配則輸出無意義的數(shù)值。4、小數(shù)部分,精度按四舍五入截取。5、輸出數(shù)值位數(shù)小于輸出最小寬度,用空格補齊,“-”指定左對齊,默認為右對齊。6、輸出數(shù)值位數(shù)大于輸出最小寬度,按實際位數(shù)輸出。7、flaot類型和double類型的輸出項“%f”和“%lf”格式的輸出相同。47C語言的格式輸入scanf函數(shù)scanf函數(shù)形式:

scanf("格式控制字符串",地址表列);

輸入時缺省的分隔符

空格

回車Tab格式符與輸入變量匹配實例【例2-7】#include<stdio.h>voidmain(){inta,b,c;printf("inputa,b,c\n");scanf("%d%d%d",&a,&b,&c);

printf("a=%d,b=%d,c=%d\n",a,b,c);}

inputa,b,c258a=2,b=5,c=8Pressanykeytocontinueinputa,b,c258a=2,b=5,c=8Pressanykeytocontinueinputa,b,c258a=2,b=5,c=8Pressanykeytocontinueinputa,b,c2,5,8a=2,b=-858993460,c=-858993460地址是由地址運算符“&”后跟變量名組成【例2-7】修改#include<stdio.h>voidmain(){inta,b,c;printf("inputa,b,c\n");/*scanf("%d%d%d",&a,&b,&c);*/scanf("%d,%d,%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);}4849C語言的格式輸入scanf函數(shù)3.格式字符串

形式為:

%

[*]

[輸入數(shù)據寬度]類型(1)類型格式字符意義d輸入十進制整數(shù)o輸入八進制整數(shù)x輸入十六進制整數(shù)u輸入無符號十進制整數(shù)f或e輸入實型數(shù)(用小數(shù)形式或指數(shù)形式)c輸入單個字符s輸入字符串50C語言的格式輸入scanf函數(shù)(2)*“*”符:用以表示該輸入項,讀入后不賦予相應的變量,即跳過該輸入值。 例如:scanf("%d%*d%d",&a,&b); 當輸入為:123時,把1賦予a,2被跳過,3賦予b。(3)寬度例如:scanf("%2d%3d",&a,&b);輸入:12345678將把12賦予a,而把345賦予b,其余的字符無效,所以輸入后a=12,b=345。51C語言的格式輸入scanf函數(shù)2.格式字符串中的普通字符空格:當在格式控制字符串遇到一個或多個空格時,scanf函數(shù)從輸入數(shù)據中重復讀空白字符直到遇到一個非空字符為止。其它字符:當在格式控制字符串中遇到一個非空字符時,scanf函數(shù)將它與輸入字符進行比較,若兩個字符相等,繼續(xù)下一個輸入,否則終止scanf函數(shù)的執(zhí)行?!纠?-8】輸入時指定的分隔符【例2-15】格式字符串中具有普通字符和指定的分隔符#include<stdio.h>voidmain(){

inta,b,c;

printf("inputa,b,c\n");

scanf(“%d,%d,%d”,&a,&b,&c);

printf("a=%d,b=%d,c=%d\n",a,b,c);}inputa,b,c2,6,4a=2,b=6,c=4Pressanykeytocontinueinputa,b,c264a=2,b=-858993460,c=-85899346052C語言的格式輸入scanf函數(shù)4.字符變量的輸入在輸入字符數(shù)據時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。例如:scanf("%c%c%c",&a,&b,&c);輸入:def則把'd'賦予a,''賦予b,'e'賦予c。輸入為:def則把'd'賦于a,'e'賦予b,'f'賦予c?!纠?-9】#include<stdio.h>voidmain(){/*inta,b,c;*/

chara,b,c;printf("inputa,b,c\n");/*scanf("%d%d%d",&a,&b,&c);*/

scanf("%c%c%c",&a,&b,&c); /*printf("a=%d,b=%d,c=%d\n",a,b,c);*/ printf("a=%c,b=%c,c=%c\n",a,b,c);}53542.6C語言的格式輸入scanf函數(shù)注意:1、scanf函數(shù)中沒有精度控制。例如:scanf(“%5.2f”,&a);是非法的。2、scanf中要求給出變量地址,如給出變量名則會出錯。例如:scanf(“%d”,a);是錯誤的,應改為scnaf("%d",&a);。3、在輸入多個數(shù)值數(shù)據時,若格式控制串中沒有非格式字符作為輸入數(shù)據之間的間隔,則可用空格、TAB或回車作為間隔。4、在輸入字符數(shù)據時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。5、在使用double型數(shù)據輸入時,一定要注意格式控制說明是%lf,如果寫成%f,那么將導致輸入錯誤。字符輸出函數(shù)一、putchar函數(shù)(字符輸出函數(shù))

1.形式:putchar(c);2.功能:向終端輸出一個字符。

3.說明

1)c可以是字符變量或整型變量。

2)c可以是轉義字符。

3)#include"stdio.h“

#include<stdio.h>

【例2-10】#include"stdio.h"main(){inti=65;charch=‘B’;putchar(i);putchar(ch);putchar('\n');} ABCD二、getchar函數(shù)(字符輸入函數(shù))1.形式:getchar()/*無參數(shù)*/2.作用:從終端輸入一個字符。3.說明:

1)函數(shù)只能接收一個字符。

2)其函數(shù)值可以賦給一個

字符變量或整型變量。

3)可作為表達式的一部分。字符輸入函數(shù)【例2-11】#include“stdio.h”main(){charc;c=getchar();putchar(c+3);}a

d算術運算符和算術表達式基本的算術運算符+-*/%結合方向:從左向右優(yōu)先級:-

*/%

+-

(2)

(3)

(4)說明:“-”為單目運算符(負號運算符)時,右結合性-a除法運算“/”結果為商,運算“%”結果為余數(shù)><

算術運算符和算術表達式基本的算術運算符+-*/%說明:整數(shù)的算術運算結果仍為整數(shù)。算術運算中有一個數(shù)是實數(shù),則結果為實數(shù)?!?”只能進行整數(shù)的取模運算,且余數(shù)與被除數(shù)的符號

相同。例例5/2=2-5/2.0=-

2.5-5%2=-1

5%-2=11%10=15%1=05.5%2=()賦值運算符和賦值表達式簡單賦值運算符符號:=賦值表達式:變量=表達式作用:將一個數(shù)據(常量或表達式)賦給一個變量說明:優(yōu)先級:14(優(yōu)先級很低)結合方向:自右向左左側必須是變量,不能是常量或表達式賦值轉換規(guī)則:使賦值號右邊表達式值自動轉換成其左邊變量的類型3=x-2*y;

a+b=3;

例a=(b=5) a=5+(c=6) a=b=5→

a=(b=5)

賦值表達式可以嵌套變量=表達式

inta,b;a=3;

b=a+12;賦值運算符和賦值表達式復合賦值運算符種類:+=-=*=/=%=含義:

var1op=exp1var1=var1op(exp1)a+=3a=a+(3)x*=y+8

x=x*(y+8)x%=3

x=x%(3)><說明:賦值表達式可以嵌套

a=(b=5)a=b=5><例

a=12;a+=a-=a*a

a+=(a-=a*a)

a+=(a=a-a*a)

a+=(a=12-144)

a+=(a=-132)(a=-132)

a+=(-132)

a=a+(-132)

結果a=-264例

j=3;k=++j;

j=3;k=j++;

j=3;printf(“%d”,++j);

j=3;printf(“%d”,j++);

a=3;b=5;c=(++a)*b;

a=3;b=5;c=(a++)*b;作用:使變量值加1減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)

后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)自增、自減運算符++--

j=j+1;k=j;結果:k=4,j=4k=j;j=j+1;結果:k=3,j=4

j=j+1;printf(“%d”,j)結果:4

printf(“%d”,j);j=j+1;

結果:3a=a+1;c=a*b結果:c=20,a=4

c=a*b;a=a+1;結果c=15,a=4><

說明:++--只能用于變量,不能用于常量和表達式,如--5,

(a+b)++優(yōu)先級:-++--

*/%

+-

(2)

(3)(4)數(shù)值型數(shù)據混合運算

混合運算的規(guī)則

2.5+10不同類型數(shù)據混合運算,先轉化為同一類型。轉化規(guī)則><floatchar,shortdoublelongunsignedint

float型一律轉化為double型

char,short型轉化為int型精度低類型轉化為精度高類型例:

3.0+4/2

表達式的值?5.0

例:

int

i=3

;

long

e=4;

float

f=1.5;

doubled=1.0;

10+‘a’+i*f-d/e

107+i*f-d/e

107+3.0*1.5-d/e

107.0+4.5-d/e

111.5-d/e

111.5-0.25

111.253.0+23.0+2.0><強制類型轉換運算符作用:將一個表達式的值轉換成所需類型。形式:(類型名)(表達式)在進行強制轉換時,得到一個所需類型的中間變量,原來變量的類型并沒有發(fā)生變化

說明:

表達式應用括號括起來(double)a(int)(x+y)(float)(5%3)(int)x+y(int)(x+y)66

1966年,Bohra和Jacopini提出了程序中需要的三

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論