C語言程序設(shè)計講解_第1頁
C語言程序設(shè)計講解_第2頁
C語言程序設(shè)計講解_第3頁
C語言程序設(shè)計講解_第4頁
C語言程序設(shè)計講解_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

注意:編譯系統(tǒng)將大寫字母和小寫字母認為是兩個不同的字符。例如:Class和class是兩個不同的變量名。

建議變量名的長度最好不要超過8個字符。在選擇變量名和其它標識符時,應(yīng)注意做到“見名知意”,即選有含義的英文單詞(或其縮寫)作標識符。C語言程序設(shè)計講解全文共23頁,當前為第1頁。(1)整型數(shù)據(jù)在內(nèi)存中的存放形式

數(shù)據(jù)在內(nèi)存中是以二進制補碼形式存放的。

如:inti;/*定義為整型變量*/i=10;/*給i賦以整數(shù)10*/

圖3-2100000000000001010ii2

整型變量十進制數(shù)10的二進制形式為1010,TurboC2.0和TurboC++3.0為整型變量分配2個字節(jié)的內(nèi)存存儲單元。C語言程序設(shè)計講解全文共23頁,當前為第2頁。不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不相同的,

TurboC2.0和TurboC++3.0為整型變量分配2個字節(jié)內(nèi)存存儲單元,VC++6.0則分配4個字節(jié)。數(shù)值是以補碼(complement)表示的。一個正整數(shù)的補碼和該數(shù)的原碼(即該數(shù)的二進制形式)相同。而一個負數(shù)的補碼是:將該數(shù)的絕對值的原碼,按位取反再加1。例如i=-10時:說明:-101111111111110110iiC語言程序設(shè)計講解全文共23頁,當前為第3頁。如果在程序中定義a和b兩個變量:

inta;

unsignedintb;

則變量a的數(shù)值范圍為-32768(-215)~32767(215-1),而變量b的數(shù)值范圍為0~65535(216-1)。1111111111111111有符號整型變量a0111111111111111無符號整型變量b符號位代表數(shù)據(jù)的第1位=32767(215-1)=65535(216-1)C語言程序設(shè)計講解全文共23頁,當前為第4頁。整數(shù)類型的有關(guān)數(shù)據(jù):

類型類型說明符長度數(shù)的范圍基本型int

2字節(jié)

-32768~32767(215-1)

短整型short

2字節(jié)

-215~215-1

長整型long4字節(jié)

-231~231-1

無符號整型unsigned2字節(jié)

0~65535(216-1)

無符號短整型unsignedshort2字節(jié)

0~65535

無符號長整型unsignedlong4字節(jié)

0~(232-1)C語言程序設(shè)計講解全文共23頁,當前為第5頁。(3)整型變量的定義

C語言規(guī)定在程序中所有用到的變量都必須在程序中定義,即“強制類型定義”。

變量的定義一般放在一個函數(shù)的開頭的聲明部分。

例如:

inta,b;(指定變量a、b為整型)

unsignedshortc,d;(指定變量c、d為無符號短整型)longe,f;

(指定變量e、f為長整型)

C語言程序設(shè)計講解全文共23頁,當前為第6頁。例3.2整型變量的定義與使用

#include<stdio.h>

voidmain()

inta,b,c,d;/*指定a、b、c、d為整型變量*/

unsignedu;/*指定u為無符號整型變量*/

a=12;b=-24;u=10;

c=a+u;d=b+u;

printf(“a+u=%d,b+u=%d\n”,c,d);

}說明:可以看到不同種類的整型數(shù)據(jù)可以進行算術(shù)運算。本例中是int型數(shù)據(jù)與unsignedint型數(shù)據(jù)進行加減運算。

運行結(jié)果:

a+u=22,b+u=-14

C語言程序設(shè)計講解全文共23頁,當前為第7頁。(4)整型變量的溢出

在TurboC和TurboC++中,一個int型變量的最大允許值為32767,如果再加1,會出現(xiàn)什么情況呢?C語言程序設(shè)計講解全文共23頁,當前為第8頁。例3整型數(shù)據(jù)的溢出

#include<stdio.h>

voidmain()

{

inta,b;

a=32767;

b=a+1;

printf(“%d,%d\n”,a,b);

}

說明:數(shù)值是以補碼表示的。一個整型變量只能容納-32768~32767范圍內(nèi)的數(shù),無法表示大于32767或小于-32768的數(shù)。遇此情況就發(fā)生“溢出”。運行結(jié)果:

32767,-327680111111111111111100000000000000032767-32768abC語言程序設(shè)計講解全文共23頁,當前為第9頁。(1)浮點型數(shù)據(jù)在內(nèi)存中的存放形式

浮點型數(shù)據(jù)在內(nèi)存中按照指數(shù)形式存儲。系統(tǒng)把一個浮點型數(shù)據(jù)分成小數(shù)和指數(shù)部分分別存放。一個浮點型數(shù)據(jù)一般在內(nèi)存中占4個字節(jié)(32位)。4個字節(jié)(32位)中,多少位來表示小數(shù)部分,多少位表示指數(shù)部分,由編譯系統(tǒng)自定。不少C語言編譯系統(tǒng)以24位表示小數(shù)部分,以8位表示指數(shù)部分。2

浮點型變量C語言程序設(shè)計講解全文共23頁,當前為第10頁。小數(shù)部分占的位數(shù)越多,數(shù)的有效數(shù)字越多,精度也就越高。指數(shù)部分占的位數(shù)越多,則能表示的數(shù)值范圍越大。

實數(shù)3.14159在內(nèi)存中的存放形式用圖表示為:圖3-7+.314159+1數(shù)符小數(shù)部分指數(shù)+.314159×1013.14159C語言程序設(shè)計講解全文共23頁,當前為第11頁。類型位數(shù)數(shù)的范圍有效數(shù)字float32

-3.4×10-38~3.4×1038

6~7位double型64

-1.7×10-308~1.7×1030815~16位longdouble128-1.2×10-4932~1.2×104932

18~19位(2)浮點型變量的分類

浮點型變量分為單精度(float型)、雙精度(double型)和長雙精度型(longdouble)三類形式。C語言程序設(shè)計講解全文共23頁,當前為第12頁。例4浮點型數(shù)據(jù)的舍入誤差

#include<stdio.h>

voidmain()

{

floata,b;

a=123456.789e5;

b=a+20;

printf(“%f,%f\n”,a,b);

}

說明:一個單精度浮點型變量的有效數(shù)字是7位,后面的數(shù)字是無意義的。因此應(yīng)當避免將一個很大的數(shù)和一個很小的數(shù)直接相加或相減,否則就會“丟失”小的數(shù)。與此類似,用程序計算1.0/3.0×3的結(jié)果并不等于1。運行結(jié)果:12345678848.000000,12345678848.000000(3)浮點型數(shù)據(jù)的舍入誤差C語言程序設(shè)計講解全文共23頁,當前為第13頁。

C編譯系統(tǒng)將浮點型常量作為雙精度來處理。

例如:floatf;

f=2.45678*4523.65;

系統(tǒng)把2.45678和4523.65作為雙精度數(shù)(64位)進行相乘的運算,得到的乘也是一個雙精度數(shù)。最后取其前7位賦給單精度浮點型變量f。如果在數(shù)的后面加字母f或F(如1.65f,654.87F),編譯系統(tǒng)就會把它們按單精度(32位)處理。浮點型常量的類型C語言程序設(shè)計講解全文共23頁,當前為第14頁。一個浮點型常量可以賦給一個float型、double型或longdouble型變量,根據(jù)變量的類型截取常量中相應(yīng)的有效位數(shù)字。

假如指定a為單精度浮點型變量:

floata;a=111111.111;

由于float型變量只能接收7位有效數(shù)字,因此最后兩位小數(shù)不起作用。如果a改為double型,則能全部接收上述9位數(shù)字并存儲在變量a中。C語言程序設(shè)計講解全文共23頁,當前為第15頁。\ddd

1到3位八進制數(shù)所代表的字符注意:八進制數(shù)代表的是字符的ASCII碼。例如:“\101”代表大寫字母‘A’,八進制101相當于十進制的65,從附錄A可以查到ASCII碼為65的字符是大寫字母‘A’。

“\0”或“\000”代表ASCII碼為0的控制字符,即“空操作字符”,它常用在字符串中。\xhh

hh表示1到2位十六進制數(shù)所代表的字符C語言程序設(shè)計講解全文共23頁,當前為第16頁。例5轉(zhuǎn)義字符的使用

#include<stdio.h>

voidmain()

{

printf(“abc\tde\rf\tg\n”);

printf(“h\ti\b\bjk\n”);

程序運行時輸出以下結(jié)果:fabcgdehjik顯示屏上的運行結(jié)果:fgdehjk說明:

實際上,屏幕上完全按程序要求輸出了全部的字符,只是因為在輸出前面的字符后很快又輸出后面的字符,在人們還未看清楚之前,新的已取代了舊的,所以誤以為未輸出應(yīng)輸出的字符。而在打印機輸出時,不像顯示屏那樣會“抹掉”原字符,能真正反映輸出的結(jié)果。C語言程序設(shè)計講解全文共23頁,當前為第17頁。字符型變量用來存放字符常量,注意只能放單個字符。字符變量的定義形式如下:

charc1,c2;

/*c1、c2為字符型變量,各可以放一個字符*/定義后就可以用下面語句對c1,c2賦值:

c1=‘a(chǎn)’;c2=‘b’

;在所有編譯系統(tǒng)中都規(guī)定以一個字節(jié)來存放一個字符,或者說一個字符變量在內(nèi)存中占一個字節(jié)。

2

字符變量C語言程序設(shè)計講解全文共23頁,當前為第18頁。將一個字符常量放到一個字符變量中,實際上并不是存放字符本身,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中。(附錄A)

例如:charc1,c2;

c1=‘a(chǎn)’;c2=‘b’;因此一個字符數(shù)據(jù)既可以以整數(shù)形式輸出(直接輸出其ASCII碼),也可以以字符形式輸出(將ASCII碼轉(zhuǎn)換成相應(yīng)字符然后輸出)。圖3-8011000019798c1c2c1c201100010字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法C語言程序設(shè)計講解全文共23頁,當前為第19頁。例6向字符變量賦以整數(shù)。

#include<stdio.h>

voidmain()

{

charc1,c2;

c1=97;

c2=98;

printf(“%c

%c\n”,c1,c2);

printf(“%d%d\n”,c1,c2);

說明:在第5和第6行中,將整數(shù)97和98分別賦給c1和c2,它的作用相當于兩個賦值語句:c1=‘a(chǎn)’;c2=‘b’;因為‘a(chǎn)’和‘b’的ASCII碼為97和98。程序的第5和第6行是把97和98兩個整數(shù)直接存放到c1和c2的內(nèi)存單元中,而c1=‘a(chǎn)’和c2=‘b’則是先將字符化成ASCII碼,再放到內(nèi)存單元中。二者的結(jié)果是相同的。運行結(jié)果:ab

9798C語言程序設(shè)計講解全文共23頁,當前為第20頁。一個字符型數(shù)據(jù)既可以以字符形式輸出(%c),也可以以整數(shù)形式輸出(%d)。

溫馨提示

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

評論

0/150

提交評論