版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
COUMwMOUIniceoMnacArttmCMMWCUMMTVBpomANOntieoti
重慶市計算機二級等級考試
C語言程序設計
內(nèi)
部
培
訓
教
材
2010年10月
目錄
第一部分考試大綱..............................................1
第二部分考綱精解...............................................1
一、C程序基礎...............................................1
LC程序的基本結(jié)構(gòu)........................................1
2.c語言的基本數(shù)據(jù)類型...................................2
3.C語言中的表達式運算...................................6
4.不同類型數(shù)據(jù)混合運算及數(shù)據(jù)轉(zhuǎn)換........................9
5.C程序的輸出----最基本的輸出函數(shù)(printf,putchar)..10
6.C程序的輸入--最基本的輸出函數(shù)(scanf,getchar)....11
7.常用數(shù)學類標準庫函數(shù)的簡單應用.......................12
C程序基礎練習題目.......................................12
二、C程序的基本控制結(jié)構(gòu)....................................25
1.C程序控制結(jié)構(gòu)中的條件表示方法.......................25
2.分支結(jié)構(gòu)程序設計....................................26
3、循環(huán)結(jié)構(gòu)程序設計.....................................29
4.c語言種的其他簡單控制結(jié)構(gòu)...........................32
5.c語言控制結(jié)構(gòu)應用舉例..............................32
C程序的基本控制結(jié)構(gòu)練習題...............................33
12^、函數(shù)與程序結(jié)構(gòu).??*???????????????????????????????????45
1.函數(shù)的定義與調(diào)用...................................45
2.C程序結(jié)構(gòu)與變量的作用域和生存期.....................48
3.編譯預處理.........................................51
函數(shù)與程序結(jié)構(gòu)練習題..................................52
四、指針與函數(shù).............................................62
1.指針變量的定義和引用................................62
2.指針變量做函數(shù)的參數(shù)................................64
3.函數(shù)的指針..........................................64
指針和函數(shù)練習題........................................65
五、數(shù)組及簡單應用..........................................78
1、一維數(shù)組.............................................78
2、二維數(shù)組和多維數(shù)組(以二維數(shù)組為主).................80
3.數(shù)組的簡單應用........................................81
數(shù)組及簡單應用練習題....................................83
六、字符數(shù)據(jù)、字符串(字符數(shù)組)數(shù)據(jù)及其簡單應用............95
1.C語言字符串的表示方法.................................95
2、字符串的常用處理方法..................................96
3.常用字符和字符串處理標準庫函數(shù)........................98
七、指針與數(shù)組.............................................99
1、多級指針的定義和使用方法.............................99
2、一維數(shù)組和指針的關(guān)系及簡單應用.......................99
3、二維數(shù)組與指針的關(guān)系和簡單應用.......................101
4、指針數(shù)組與命令行參數(shù).................................102
字符數(shù)據(jù)、字符串及指針與數(shù)組練習題.....................104
八、結(jié)構(gòu)體數(shù)據(jù)類型的應用...................................110
◎;*總有培/身握a/稔
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC?*O(nUOnUCtM二級輔導
I.結(jié)構(gòu)體數(shù)據(jù)類型的基本概念.............................110
2、結(jié)構(gòu)體數(shù)組(只要求一維結(jié)構(gòu)體數(shù)組)..................114
3、結(jié)構(gòu)體數(shù)據(jù)類型的簡單應用.............................116
九、聯(lián)合體數(shù)據(jù)類型的應用...................................120
1.聯(lián)合體數(shù)據(jù)類型的定義和變量的引用方法................120
結(jié)構(gòu)體聯(lián)合體(共用體)練習題............................121
十、位運算與枚舉類型.......................................130
1、位運算..............................................130
2.枚舉................................................131
位運算及枚舉類型練習題.................................132
十一、文件概念及簡單應用...................................134
1.C語言中文件處理的基本概念.........................134
2.文件處理...........................................136
3.文件的簡單應用.....................................139
文件練習題.............................................140
第三部分C語言常用經(jīng)典算法舉例...............................146
2
第一部分考試大綱
一、C程序基礎
1.C程序的基本結(jié)構(gòu)
1)C源程序的組成部分(主函數(shù)的重要性);
2)C語言的基本結(jié)構(gòu)(字符集、標識符、保留字等);
3)注釋語句的作用和用法;
2.C語言的基本數(shù)據(jù)類型
1)基本數(shù)據(jù)類型(內(nèi)置數(shù)據(jù)類型)常量的表示方法;
2)變量的定義和初始化;
3.C語言中的表達式運算
1)運算符優(yōu)先級別和結(jié)合性規(guī)則;
2)算術(shù)運算符和算術(shù)表達式;
3)賦值運算符和賦值表達式;
4)自反運算符;
5)自增、自減運算符;
6)逗號運算符和逗號表達式;
7)Sizeof運算符;
4.不同類型數(shù)據(jù)混合運算及數(shù)據(jù)轉(zhuǎn)換
1)不同數(shù)據(jù)類型隱式轉(zhuǎn)換;
2)不同數(shù)據(jù)類型顯式轉(zhuǎn)換;
5.C程序的輸出-最基本的輸出函數(shù)(printf、putchar);
6.C程序的輸入-最基本的輸入函數(shù)(scanf、getchar)
7.常用數(shù)學類標準庫函數(shù)的簡單應用
包括:abs,fabs,fmod,sin,cos,tan,exp,pow,log,Igo10,sqrt;
二、c程序的基本控制結(jié)構(gòu)
I.c程序控制結(jié)構(gòu)中的條件表達式
1)關(guān)系運算符和關(guān)系表達式運算;
2)邏輯運算符和邏輯表達式運算;
2.分支結(jié)構(gòu)程序設計
1)if語句與程序的單分支結(jié)構(gòu);
2)ifelse語句與程序的雙分支結(jié)構(gòu);
3)條件運算符與條件表達式;
4)復合語句及其在程序中的使用;
5)if語句的嵌套與程序的多分支結(jié)構(gòu):
6)switch語句與程序的多分支結(jié)構(gòu);
3.循環(huán)結(jié)構(gòu)程序設計
1)While型循環(huán)結(jié)構(gòu);
2)dowhile型循環(huán)結(jié)構(gòu);
3)for型循環(huán)結(jié)構(gòu);
4)空語句及其在程序中的使用;
5)循環(huán)的嵌套;
4.C語言中的其他簡單控制結(jié)構(gòu)
1)break語句的使用方法:
2)continue語句的使用方法;
OOSOKC<MlWCtOKCtUOtKICCMc語言二級輔導
5.C語言控制結(jié)構(gòu)舉例
1)累加、累乘、最大公約數(shù)、最小公倍數(shù)、階乘、素數(shù)等簡單問題求解方法;
2)窮舉思想及程序?qū)崿F(xiàn);
3)迭代思想及程序?qū)崿F(xiàn)(其中包括:一元高階方程求根的二分迭代解法);
三、函數(shù)與程序結(jié)構(gòu)
1.函數(shù)的定義與調(diào)用;
1)函數(shù)的定義、函數(shù)的聲明、函數(shù)的調(diào)用和函數(shù)的返回值(包括基本類型、空類型);
2)函數(shù)調(diào)用時的值參數(shù)傳遞;
3)函數(shù)的嵌套調(diào)用;
4)函數(shù)的遞歸調(diào)用;
5)簡單問題的遞歸函數(shù)設計(例如:階乘、Fibonacci數(shù)列、整形數(shù)據(jù)的數(shù)字拆分處理等);
2.C程序結(jié)構(gòu)與變量的作用域和生存期
1)C程序的一般結(jié)構(gòu);
2)變量的作用域(全局變量的定義和使用、局部變量的定義和使用);
3)變量的生存期(存儲類別符extern和static對全局變量的作用;存儲類別符auto和static對局
部變量的作用);
3.編譯預處理
1)宏定義預處理語句的概念和簡單應用(包括帶參和不帶參宏定義);
2)文件包含預處理語句的使用方法。;
四、指針和函數(shù)
1.指針變量的定義和引用
1)指針變量的定義、初始化和賦值;
2)指針變量的引用;
3)C語言中的地址運算;
2.執(zhí)指針變量做函數(shù)的參數(shù)
1)函數(shù)調(diào)用時的地址值參數(shù)傳遞;
2)指針變量與被指針指向變量的區(qū)別;
3.函數(shù)的指針
1)指向函數(shù)指針變量的定義;
2)用指向函數(shù)的指針變量來調(diào)用函數(shù);
3)指向函數(shù)的指針變量做函數(shù)參數(shù);
4)返回指針值的函數(shù);
五、數(shù)組及簡單應用
1.一維數(shù)組
1)一維數(shù)組的定義方法;
2)?維數(shù)組的初始化方法;
3)一維數(shù)組元素的引用方法;
4)一維數(shù)組做函數(shù)的參數(shù);
2.二維數(shù)組和多維數(shù)組(以二維數(shù)組為主)
1)二維數(shù)組、多維數(shù)組的定義方法;
2)二維數(shù)組、多維數(shù)組的初始化方法;
3)二維數(shù)組、多維數(shù)組元素的引用方法:
4)二維數(shù)組做函數(shù)的參數(shù);
3.數(shù)組的簡單應用
1)數(shù)組元素值的隨機生成方法(標準庫函數(shù)srand、rand和time的使用方法):
2
修身握自身鼠
COMMVHOMIHIKDMMK1IBMOCMOMB■?????C*MCIUOIMKMfj*-jXA/-|[t|vT
2)常用排序方法(冒泡排序法和選擇排序法);
3)常用查找方法(直接查找法和二分查找法);
六、字符數(shù)據(jù)、字符串(字符數(shù)組)數(shù)據(jù)及其簡單應用
LC語言字符串的表示方法
1)字符串(字符數(shù)組)的定義和初始化方法;
2)字符串數(shù)據(jù)的輸入方法(Scanf函數(shù)和gets函數(shù)的使用);
3)字符串數(shù)據(jù)的輸出方法(Printf函數(shù)和Puts函數(shù)的使用);
2.字符串的常用處理方法
1)字符類別的判斷方法和大小寫字母的轉(zhuǎn)換方法:
2)字符串中的有效字符的統(tǒng)計方法;
3)字符串的復制方法;
4)字符串的連接方法;
5)字符串中字符的查找、插入和刪除方法;
6)字符串中子串的查找、插入和刪除方法;
3.常用字符和字符串處理標準庫函數(shù)
包括:isalpha,isdigit,isalnum,isspace,isupper,islower,toupper,tolower,strlen,strcpy,
strcat,strcmp,strchr,strstr,atoi,atol,atof;
七、指針與數(shù)組
1、多級指針的定義和使用方法
2、一維數(shù)組和指針的關(guān)系及簡單應用
1)用指向一維數(shù)組的指針變量表示數(shù)組元素地址和數(shù)組元素值的方法;
2)一維數(shù)組簡單應用的指針變量表示和處理方法(常用的排序和查找方法);
3、二維數(shù)組與指針的關(guān)系和簡單應用
1)用指向二維數(shù)組的指針變量表示數(shù)組元素地址和數(shù)組元素值的方法;
2)指向若干元素構(gòu)成數(shù)組的指針變量定義方法和簡單使用;
4、指針數(shù)組與命令行參數(shù)
1)指針數(shù)組的定義、初始化和簡單應用;
2)命令行參數(shù)的概念和簡單應用;
八、結(jié)構(gòu)體數(shù)據(jù)類型的應用
1.結(jié)構(gòu)體數(shù)據(jù)類型的基本概念
1)結(jié)構(gòu)體類型的定義方法;
2)關(guān)鍵字typedef的簡單應用;
3)結(jié)構(gòu)體變量的引用和輸入輸出方法;
4)結(jié)構(gòu)體變量做函數(shù)參數(shù)的使用方法;
5)結(jié)構(gòu)體作函數(shù)的返回值類型;
6)結(jié)構(gòu)體類型變量與指針的關(guān)系和通過指針變量處理結(jié)構(gòu)體類型數(shù)據(jù)的方法;
2、結(jié)構(gòu)體數(shù)組(只要求一維結(jié)構(gòu)體數(shù)組)
1)結(jié)構(gòu)體數(shù)組的定義和數(shù)組元素引用;
2)結(jié)構(gòu)體數(shù)組做函數(shù)的參數(shù);
3)結(jié)構(gòu)體類型數(shù)組與指針的關(guān)系和通過指針變量處理結(jié)構(gòu)體類型數(shù)組的方法;
3、結(jié)構(gòu)體數(shù)據(jù)類型的簡單應用
1)用于存儲分配的標準庫函數(shù)(包括:malloc,realloc,free);
2)單鏈表的概念和創(chuàng)建;
3)單鏈表的遍歷方法;
4)單鏈表中結(jié)點的插入方法;
3
I糠*家4培*身握自身鼠
COMMVHOMIHIKDMMK1IBMOCMOMBMMH?tC?M?nUOIMKMC1S"S-S
-5)單鏈表中結(jié)點的刪除方法;
九、聯(lián)合體數(shù)據(jù)類型的應用
1.聯(lián)合體數(shù)據(jù)類型的定義和變量的引用方法
2.聯(lián)合體類型與結(jié)構(gòu)體類型的區(qū)別
十、位運算與枚舉類型
1、位運算
1)位運算的概念和位運算符;
2)位運算應用;
3)位段的概念、定義方法和位段變量的引用方法;
2.枚舉
1)枚舉的概念、枚舉變量的定義方法;
2)枚舉數(shù)據(jù)的簡單應用;
十一、文件概念及簡單應用
1.C語言中文件處理的基本概念
1)文件的概念和文件類型指針;
2)文件的打開與關(guān)閉的概念和方法(fopen函數(shù)和fclose函數(shù)的使用方法);
2.文件處理
3)文件內(nèi)部記錄指針(讀寫指針)的概念和文件尾的判別方法(Eof和Feof函數(shù)的使用);
4)文件中單個字符的讀寫操作(fgetc函數(shù)和fputc函數(shù)的使用);
5)文件中字符串讀寫操作(fgets函數(shù)和fputs函數(shù)的使用);
6)文件中的格式化讀寫操作(fscanf函數(shù)和Fprintf函數(shù)的使用);
7)文件中的數(shù)據(jù)塊讀寫操作(fread函數(shù)和fwrite函數(shù)的使用);
8)文件內(nèi)部記錄指針(讀寫指針)的移動和定位(fseek函數(shù)和ftell函數(shù)的使用);
3.文件的簡單應用
9)文件的隨機讀寫;
10)文件內(nèi)容按指定要求進行合并的方法;
11)文件內(nèi)容拷貝的處理方法;
12)文件內(nèi)容比較的處理方法;
4
第二部分考綱精解
一、C程序基礎
1.C程序的基本結(jié)構(gòu)
1)C源程序的組成成分
我們首先看一個例子:
/*example1.1calculatethesumofaandb*/
#include<stdio.h>/*Thisisthemainprogram*/
main()
{inta,b,sum;
a=10;
b=24;
sum=add(a,b);
printf("sum=%d\nn,sum);
)
/*Thisfunctioncalculatesthesumofxandy*/
intadd(intx,inty)
{intz;
z=x+y;retum(z);
)
不難看出,這個程序的功能主要完成兩個整數(shù)的累加。從這個例子中我們要總結(jié)的是:★程序由
?個或多個函數(shù)組成,至少包含main函數(shù),當然主函數(shù)可以是什么都不做的空函數(shù)。
★必須有且只能有一個主函數(shù)main(),這里需要注意的是,無論這個C工程有多少個C源文件
組成,在所有的源文件中,有且僅有一個main函數(shù)。
★程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。無論main函數(shù)的初
始位置在哪里。
★include稱為文件包含命令,.源程序中可以有預處理命令(include命令僅為其中的一種),預處
理命令通常應放在源文件或源程序的最前面。
★擴展名為.h的文件稱為頭文件
★每一個說明,每一個語句都必須以分號結(jié)尾。但預處理命令,函數(shù)頭和花括號“}”之后不能加
分號。
★c程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句可以寫在多行上。注意c語言沒有續(xù)行
符。
書寫應遵循的規(guī)則
從書寫清晰,便于閱讀,理解,維護的角度出發(fā),在書寫程序時應遵循以下規(guī)則:
★?個說明或一個語句占一行。
★用{}括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)。{}一般與該結(jié)構(gòu)語句的第一個字母對齊,
并單獨占一行。
★低一層次的語句或說明可比高一層次的語句或說明縮進若干格后書寫。以便看起來更加清晰,增
I蹴彳露布今之身“上身鼠
caiKtvMOMUmim-itirrmOCMCOM?Ma?ve?ra(niM>nucoaC語言二級輔導
加程序的可讀性。
在編程時應力求遵循這些規(guī)則,以養(yǎng)成良好的編程風格。
2)c語言的基本元素
1.標識符
在程序中使用的變量名、符號常量名、文件名、函數(shù)名、數(shù)組名、類型名等統(tǒng)稱為標識符。除庫函
數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C規(guī)定,標識符只能是字母(A?Z,a?z)、數(shù)字(。?
9)、下劃線組成的字符串,并且其第一個字符必須是字母或下劃線。
以下標識符是合法的:
a,x,x3,BOOK_1,sum5
以下標識符是非法的:
3s以數(shù)字開頭
s*T出現(xiàn)非法字符*
-3x以減號開頭
bowy-1出現(xiàn)非法字符-(減號)
在使用標識符時還必須注意以下兒點:
(1)標準C不限制標識符的長度,但它受各種版本的C語言編譯系統(tǒng)限制,同時也受到具體機器的
限制。例如在某版本C中規(guī)定標識符前八位有效,當兩個標識符前八位相同時,則被認為是同一個標
識符。
(2)在標識符中,大小寫是有區(qū)別的。例如BOOK和book是兩個不同的標識符。
(3)標識符雖然可由程序員隨意定義,但標識符是用于標識某個量的符號。因此,命名應盡量有相應
的意義,以便于閱讀理解,作到“顧名思義”。
2.關(guān)鍵字
32個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)
autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloat
forgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedef
unsignedunionvoidvolatilewhile
在命名標識符的時候不要跟關(guān)鍵字重名,也不要跟常用的庫函數(shù)重名,例如:printf,scanf等
3.注釋語句的作用和用法
行注釋:〃注釋內(nèi)容為從//開始到本行語句結(jié)束
塊注釋:/*...........*/可以注釋多行語句
注釋例:/*Thisisthemain/*ofexample1.1*/*/本行有錯
/**/為注釋,不能嵌套
注釋不產(chǎn)生編譯代碼
2.c語言的基本數(shù)據(jù)類型
1)基本數(shù)據(jù)類型、常量的表示方法
C語言中的數(shù)據(jù)類型如下圖所示:
2
fe/總有培/身握為身跣
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC?*O(nUOnUCtMC語言二級輔導
整形
字符型
<r單精度型
基本數(shù)據(jù)類型實型1
、[雙精度型
枚舉類型
r數(shù)組類型
數(shù)據(jù)類型X構(gòu)造數(shù)據(jù)類型J結(jié)構(gòu)體類型
共用體類型
指針類型
I空類型
基本數(shù)據(jù)類型包括:
類型說明符字節(jié)數(shù)值范圍
字符型char1c字符集
基本整型int2-32768?32767
短整型shortint2■32768?32767
長整型longint4
無符號型unsigned20-65535
無符號長整型unsignedlong4
單精度實型float4
雙精度實型double8
要求常用的基本數(shù)據(jù)類型符、字節(jié)數(shù)、數(shù)值范圍一定要牢記!
常量的定義:
程序運行時其值不能改變的量稱為常量,常量包括:符號常量和直接常量,符號常量一般通過預
定義來表示的常量,其一般形式為:#define標識符常量。直接常量又包括如下四種類型的常量:
整型常量
十進制常量:數(shù)字的有效范圍0-9;
八進制常量:數(shù)字的有效范圍:0-7?數(shù)字必須以。開頭如:012,067等。
十六進制常量:數(shù)字的有效范圍:0-f,必須以Ox開頭,如:0x123,0x456等。
二進制與八進制與十六進制之間的高效轉(zhuǎn)換。
實型常量
十進制數(shù)形式:由數(shù)碼0~9和小數(shù)點組成。例如:0.0,.25,5.789,0.13,5.0,300.,
-267.8230等均為合法的實數(shù)。
指數(shù)形式:
由十進制數(shù),加階碼標志“e”或"E”以及階碼(只能為整數(shù),可以帶符號)
組成。其一般形式為aEn(a為十進制數(shù),n為十進制整數(shù))。
以下不是合法的實數(shù)345(無小數(shù)點)E7(階碼標志E之前無數(shù)字)
-5(無階碼標志)53.-E3(負號位置不對)2.7E(無階碼)
字符常量
3
ocatoM?ramut>c語言二級輔導
字符常量有以下特點:
字符常量只能用單引號括起來,不能用雙引號或其它括號。
字符常量只能是單個字符,不能是字符串。
字符串常量
字符常量由單引號括起來,字符串常量由雙引號括起來。
字符常量只能是單個字符,字符串常量則可以含一個或多個字符。
可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符
變量。在c語言中沒有相應的字符串變量。這是與BASIC語言不同的。但
是可以用一個字符數(shù)組來存放一個字符串常量.在數(shù)組一章內(nèi)予以介紹。
字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)
數(shù)加1?增加的一個字節(jié)中存放字符"\0"(ASCII碼為0)。這是字符串結(jié)束的
方]:志a
2)變量的定義和初始化
概念:其值可以改變的量。變量名實際上是一個物理地址的名稱,而變量值是該地址的存儲
值。
變量定義的一般格式:
數(shù)據(jù)類型變量H,變量2,…,變量n];
變量初始化:定義時賦初值
變量的使用:先定義,后使用
變量定義位置:一般放在函數(shù)開頭〃函數(shù)局部變量,涉及知識點變量的作用范圍
變量的分類包括:
整形變量:
分類:
類型說明符數(shù)的范圍字節(jié)數(shù)
int■32768?32767即-26~(2,5-1)2
unsignedint0?65535即0~(216-1)2
shortint-32768-32767即-2”~(2|5-1)2
unsignedshortint0?65535即0~(216-1)2
longint-2147483648?2147483647即一2^:(231-1)4
unsignedlong0?4294967295即0~(232-1)4
變量占字節(jié)數(shù)隨機器不同而不同,一般占一個機器字,?般shortWintWlong,變量的存儲范圍,隨
其占用的字節(jié)數(shù)變大而增大??捎胹izeof(類型標識符)測量在某種c環(huán)境下該類型變量所占用的字節(jié)數(shù)。
例:
unsignb=32768;
inta=b;
printf("%d",a);
實型變量
float:占4字節(jié),提供7位有效數(shù)字
double:占8字節(jié),提供15~16位有效數(shù)字
longdouble:占16個字節(jié)。
例1:
inta=2;floatb=2.0;
printf("%f%f\a,b);輸出a,b的結(jié)果。
例2:
4
修身切^融
COMMc*attoimicn-wKirrmOCMOMMMWtc?M?nuoIUKMfjj刃攵4’由一后
main()
(
floata;
doubleb;
a=33333.33333;
b=33333.33333333333333;
printf("%An%f\n",a,b);
)
解析:
?從本例可以看出,由于a是單精度浮點型,有效位數(shù)只有七位。而整數(shù)已占五位,故小數(shù)二
位后之后均為無效數(shù)字。
?b是雙精度型,有效位為十六位。但TurboC規(guī)定小數(shù)后最多保留六位,其余部分四舍五入。
字符型變量
字符變量存放字符ASCH碼,占一個字節(jié),只能存放0-255范圍內(nèi)的整數(shù)。
char與int數(shù)據(jù)間可進行算術(shù)運算
例:
chara='65';
a+=l:
printfa);
程序的輸出結(jié)果為B;
注意:沒有字符串變量,字符串用字符數(shù)組存放,字符串常量是用“”括起的字符序列,字符串
長度表示字符串中所包含的字符的個數(shù),字符串所占內(nèi)存長度,是指字符串在內(nèi)存中所占字節(jié)數(shù)
的長度,它等于字符串長度+1。
字符串的初始化一般為chara[]="adfasb”;
例:
chara[5]="adsdd”;
printf("%s”,a);此時的輸出結(jié)果為?
轉(zhuǎn)義字符:
常用的轉(zhuǎn)義字符及其含義
轉(zhuǎn)義字符轉(zhuǎn)義字符的意義ASCII代碼
\n回車換行10
\t橫向跳到下一制表位置9
\b退格8
\r回車13原行回車
\f走紙換頁12
\\反斜線符92
V單引號符39
雙引號符34
\a鳴鈴7
\ddd1?3位八進制數(shù)所代表的字符
\xhh1?2位十六進制數(shù)所代表的字符
例:
#include<stdio.h>
voidmain()
inta,b,c;
a=5;b=6;c=7;
printf("abc\tde\rf\n^^);
printf("hijk\tL\bM\n");
5
◎;*總有培/身握a/稔
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC?*O(nUOnUCtMC語言二級輔導
3.C語言中的表達式運算
1)運算符優(yōu)先級別和結(jié)合性規(guī)則
優(yōu)先級運算符結(jié)合規(guī)則
1[]()->.從左至右
2!?++???*&sizeof從右至左
3*/%從左至右
4+-從左至右
5??從左至右
6<<=>>=從左至右
7—.一從左至右
8&從左至右
9A從左至右
101從左至右
11&&從左至右
12II從左至右
139.從右至左
14=+=-=*=/=%=&=從右至左
A=1=?=?=
15從左至右
2)算術(shù)運算符和算術(shù)表達式
算術(shù)運算符
用于各類數(shù)值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(-)共七
種。
注意除(/)運算符。除運算符包含了整除與浮點除,具體采用哪種除法,與除數(shù)和被除數(shù)的以及用于保存
結(jié)果的變量的類型有關(guān)。如果為浮點除,則結(jié)果為雙精度型。
例:
#include<stdio.h>
voidmain(){
printf(H\n\n%d,%d\nn,20/7,-20/7);
printf(H%f,%f\nH,20.0/7,-20.0/7);
}
雙目運算具有左結(jié)合性。參與運算量均為整型時,結(jié)果也為整型,舍去小數(shù)。如果運算量中有一個是
實型,則結(jié)果為雙精度實型。printf("\n\n%d,%d\n",20/7,-20/7);
printf("%f,%f\n",20.0/7,-20.0/7);
本例中,20/7,-20/7的結(jié)果均為整型,小數(shù)全部舍去。而20.0/7和-20.0/7由于有實數(shù)參與運算,因此
結(jié)果也為實型。
6
◎;*總有培/身握a/稔
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC?*O(nUOnUCtMc語言二級輔導
算術(shù)表達式是由算術(shù)運算符和括號連接起來的式子
34種運算符
關(guān)系運算符:<<==-->>=!=
邏輯運算符:!&&II
位運算符:<<>>~I八&
賦值運算符:=及其擴展
條件運算符:?:
逗號運算符:,
指針運算符:*&
求字節(jié)數(shù):sizeof
強制類型轉(zhuǎn)換:(類型)
分量運算符:.->
下標運算符:U
其它:()-
3)賦值運算符和賦值表達式
簡單賦值運算符
符號:=
格式:變量標識符=表達式
作用:將一個數(shù)據(jù)(常量或表達式)賦給一個變量
復合賦值運算符
種類:+=-=*=/=%=《=》=&=A=1=
含義:explop=exp2相當于expl=explopexp2
說明I:
結(jié)合方向:自右向左
優(yōu)先級:14
左側(cè)必須是變量,不能是常量或表達式
賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型
a=b=c=5〃表達式值為5,a,b,c值為5
a=(b=5)//b=5;a=5
a=5+(c=6)〃表達式值11,c=6,a=l1
a=(b=4)+(c=6)〃表達式值10,a=10,b=4,c=6
a=(b=10)/(c=2)//表達式值5>a=5,b=10,c=2
說明2:
結(jié)合方向:自右向左
優(yōu)先級:12
左側(cè)必須是變量,不能是常量或表達式
賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型,賦值表達式的值與變量值相
等,且可嵌套
例
a=12;
a+=a-=a*a//a=-264等價于a=a+(a=a-(a*a))
賦值類型不同轉(zhuǎn)換規(guī)則
如果賦值運算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動進行類型轉(zhuǎn)換,即把賦值號右邊的類型換成左邊
的類型。具體規(guī)定如下:
7
聶布培/身握4身稔
auKtoWMiiiiicoMMK?>KMO<aa>MMMa?vc?ranuonuaaiC語言二級輔導
1.實型賦予整型,舍去小數(shù)部分。
2.整型賦予實型,數(shù)值不變,但將以浮點形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。
3.字符型賦予整型,由于字符型為一個字節(jié),而整型為二個字節(jié),故將字符的ASCII碼值放到整型量
的低八位中,高八位為0。
4.整型賦予字符型,只把低八位賦予字符量。
4)自反運算符
為單目運算符時,右結(jié)合性
5)自增、自減運算符
作用:使變量值加1或減1
種類:
前置++i,-i(先執(zhí)行i+1或i-1,再使用i值)
后置i++,i-(先使用i值,再執(zhí)行i+1或i-1)
例j=3;k=++j;//k=4,j=4
j=3;k=j++;//k=3,j=4
j=3;printf("%d”,++j);//4
j=3;printf("%d”,j++);//3
a=3;b=5;c=(++a)*b;//c=20,a=4
a=3;b=5;c=(a++)*b;//c=15,a=4
說明:
++—不能用于常量和表達式,如5++,(a+b)++
++??結(jié)合方向:自右向左
優(yōu)先級:?++.....>*/%?????>+?
(2)(3)(4)
例:
#include<stdio.h>
voidmain{
inti=8;
printf("%d\n",++i);
printf("%d\nM,-i);
printf(M%d\nn,i++);
printf(n%d\nM,i-);
printf(',%d\n',,-i++);
printf(M%d\nn,-i-);
J
講解:i的初值為8,第2行i加1后輸出故為9;第3行減1后輸出故為8;第4行輸出i為8之后再
加1(為9);第5行輸出i為9之后再減1(為8);第6行輸出-8之后再加1(為9),第7行輸出.9之后
再減1(為8)o
例:
#include<stdio.h>
voidmain()
inti=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
8
修身切^融
COMMc*attoimicn-wKirrmOCMOMMMWtc?M?nuoIUKMfjj刃攵4’由一后
printf("%d,%d,%d,%d",p,q,ij);
)
講解:
這個程序中,對P=(i++)+(i++)+(i++)應理解為三個i相加,故P值為15。然后i再自增1三次相當于
加3故i的最后值為8。而對于q的值則不然,q=(++j)+(++j)+(++j)應理解為q先自增1,再參與運算,
由于q自增1三次后值為8,三個8相加的和為24,j的最后值仍為8。
6)逗號運算符和表達式
形式:表達式1,表達式2,......表達式n
結(jié)合性:從左向右
優(yōu)先級:15
逗號表達式的值:等于表達式n的值
用途:常用于循環(huán)for語句中
例:
#include<stdio.h>
voidmain()
{intx,y=7;
floatz=4;
x=(y=y+6,y/z);
printf("x=%d\n",x);
)
運行結(jié)果:x=3
7)sizeof運算符
求取變量類型所占用的字節(jié)數(shù),多用于數(shù)組做參數(shù)的函數(shù)傳遞中
4.不同類型數(shù)據(jù)混合運算及數(shù)據(jù)轉(zhuǎn)換
1)不同數(shù)據(jù)類型隱式轉(zhuǎn)換
隱式轉(zhuǎn)換
什么情況下發(fā)生?
運算轉(zhuǎn)換---不同類型數(shù)據(jù)混合運算時
賦值轉(zhuǎn)換---把一個值賦給與其類型不同的變量時
輸出轉(zhuǎn)換---輸出時轉(zhuǎn)換成指定的輸出格式
函數(shù)調(diào)用轉(zhuǎn)換…一實參與形參類型不一致時轉(zhuǎn)換
運算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運算時先自動轉(zhuǎn)換成同一類型
charshort->int->unsigned->long->double由低字節(jié)向高字節(jié)轉(zhuǎn)換。
2)不同數(shù)據(jù)類型顯示轉(zhuǎn)換
一般形式:(類型名)(表達式)
例:(int)(x+y)
9
聶布培/身握a身稔
auKtoWMiiiiicoMMK?>KMO<aa>MMMa?vc?ranuonuaaiC語言二級輔導
(int)x+y
(double)(3/2)
(int)3.6
說明:強制轉(zhuǎn)換得到所需類型的中間變量,原變量類型值保持不變
5.C程序的輸出----最基本的輸出函數(shù)(printf,putchar)
格式putchar(c)
參數(shù)C為字符常量、變量或表達式
功能把字符C輸出到顯示器上
返值正常,為顯示的代碼值;出錯,為EOF(-l)
C可以為
整型變量
字符型變量
整型常量
字符型常量
例:
#include<stdio.h>
voidmain()
{charc;intd;
c=B';d=67;
putchar(d);
putchar(c);
putchar(\n');
putchar(67);
putchar(,B,);
}
格式輸出函數(shù)printf函數(shù)
printf函數(shù)調(diào)用的一般形式為:
printf。'格式控制字符串”,輸出表列)
功能:按指定格式向顯示器輸出數(shù)據(jù)
返值:正常,返回輸出字節(jié)數(shù);出錯,返回EOF(-l)
輸出表:要輸出的數(shù)據(jù)(可以沒有,多個時以分隔)
格式控制串:包含兩種信息
格式說明:%[修飾符]格式字符,用于指定輸出格式
普通字符或轉(zhuǎn)義序列:原樣輸出
格式字符
10
◎;*總有培/身握a/稔
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC?*O(nUOnUCtM
字符涵義示例結(jié)果
<1,1上進制整數(shù)inta=567;printf(,,%d*\a);567
x,X1六進制無符號整數(shù)inta=255;printf(M%X'\a);(%x)FF(H)
O八進制無符號整數(shù)inta=65:printf(,,%o,\a):101
U不帶符號上進制整數(shù)int<i=567;print567
C單一字符,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全新化糞池供貨合同下載
- 2025年度老舊小區(qū)綠化改造與提升承包合同2篇
- 二零二五年度高端設備承包裝卸及維護合同3篇
- 2025年建筑工程分包居間合同2篇
- 2024秋二年級語文上冊第一單元3植物媽媽有辦法教材解讀素材新人教版
- 二零二五年度馬術(shù)青少年培訓與發(fā)展合同
- 二零二五年度駕校入股與交通安全教育項目合同
- 二零二五年度高校與科研機構(gòu)自主實習合作協(xié)議
- 二零二五年度網(wǎng)絡安全保密技術(shù)合作框架協(xié)議3篇
- 二零二五年度高空作業(yè)人員安全檢查人員雇傭責任免除合同
- 電梯銷售入門知識培訓課件
- 胃鏡室護士崗前培訓
- JBT 14857-2023 氧化鋁焙燒煙氣脫硝裝置 (正式版)
- 閩教版2023版3-6年級全8冊英語單詞表
- 膽管結(jié)石的健康宣教課件
- 客戶服務活動方案
- 臨床檢驗血液學配套試題及答案2-13及臨床路徑試題
- 初中新人教版地理課本(4本)-七年級上冊地理
- 班組長薪酬體系設計方案
- ZJ50DBS鉆機-01使用說明書
- 管理學原理教材-大學適用
評論
0/150
提交評論