




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上int# include <stdio.h>int main ()return 0;C語言關(guān)鍵字Auto 自動的 break終止 case案件 char const常量 continue繼續(xù) default默認 do做 double雙 Else否則 enum 枚舉 extern額外的 float浮點型 for為了 goto去 if如果 int 整數(shù) long長整型Register寄存器 return返回 short短的 signed有符號的 sizeof運算符 static靜止的 struct結(jié)構(gòu)體 switch開關(guān) typedef定義類型Unsigned
2、無符號整數(shù) union 聯(lián)合 void 空的;無效的 volatile不穩(wěn)定的 易失的 易變的 while當 directive指示符 fatal 致命的 precompiled 預(yù)編譯;先行編譯C語言的特點:優(yōu)點:代碼量小,速度快,功能強大。缺點:危險性高,開發(fā)周期長,相對于java的可移植性不強。C語言的應(yīng)用領(lǐng)域:主要用于系統(tǒng)軟件,很少應(yīng)用于應(yīng)用軟件。學習方法:多上機。C語言的函數(shù)和數(shù)學的函數(shù)沒有太大的函數(shù)第11節(jié) 課一元二次方程求解:首先要把abc三個系數(shù)要保存到計算機了,再求出b的平方減去4倍ac的值。即先要確定解題思路。#include "stdafx.h"#in
3、clude "math.h"int main(int argc, char* argv)int a;int b;int c;float d;float x1;float x2;printf ("請輸入三個值:n"); scanf ("%d %d %d",&a,&b,&c);d = (b*b - 4*a*c);if (d>0)x1 = (-b + sqrt(d)/(2*a);x2 = (-b - sqrt(d)/(2*a);printf ("方程有兩個根分別是:x1=%f x2=%fn"
4、,x1,x2);else if (d = 0)x1=(-b/(2*a);x2 = x1;printf ("方程有兩個一樣的跟:x1=x2=%fn",x1);else printf ("方程沒有實根n");return 0;第十四次課計算機的一些基本知識:1:cpu 內(nèi)存條 硬盤 顯卡 主板顯示器 之間的關(guān)系Cpu不能直接處理硬盤上的文件,通過雙擊鼠標將硬盤上的數(shù)據(jù)調(diào)用到內(nèi)存條上,cpu再去處理內(nèi)存條中的電影數(shù)據(jù),處理的結(jié)果是將某些數(shù)據(jù)變成圖像,通過顯示器。聲音通過聲卡顯示出來。主板上插上硬盤,內(nèi)存條,聲卡,顯卡,通過主板將這些東西聯(lián)系在一起。2:hell
5、oworld 程序如何運行起來的通過編譯鏈接:出現(xiàn)后綴式.exe的文件感嘆號的操作是由我們的軟件會請求操作系統(tǒng)(cpu)來執(zhí)行這個exe的文件3: 什么是數(shù)據(jù)類型把數(shù)據(jù)保存到計算機里面,即是數(shù)據(jù)的存儲。對數(shù)據(jù)進行分類,整數(shù),實數(shù),字符三類基本類型數(shù)據(jù):整數(shù):整型int(4字節(jié)), 短整型short int(2), 長整型long int(8)。定義完之后這個容器只能放提前定義好的數(shù)據(jù)類型。實數(shù)(浮點數(shù),含有小數(shù)點的數(shù)): 單精度浮點數(shù)(空間比較小,float 4個字節(jié),), 雙精度浮點數(shù)(空間比較大,double 8個字節(jié),)。字符: 單個字符(char 一個字節(jié)), 字符串(一系列字符的組合
6、,c語言沒有東西可以直接存放字符串。以后可以通過字符數(shù)組);復(fù)合數(shù)據(jù)類型:結(jié)構(gòu)體 枚舉(把基本類型拼合在一起,最重要的) 共用體 4:什么是變量類似一個容器,可以存放不同類型數(shù)據(jù)。方便對數(shù)據(jù)的存儲。本質(zhì)是就是內(nèi)存中的一段存儲空間。例如:3最終存放在內(nèi)存中,程序運行完后就把內(nèi)存釋放。5:cpu內(nèi)存條vc+6.0操作系統(tǒng)之間的關(guān)系請求操作系統(tǒng)分配一段存儲空間。來存放變量。6:變量為什么必須要初始化所謂初始化就是賦值的意思7:如何定義變量數(shù)據(jù)類型 變量名 = 要付的值等價于 數(shù)據(jù)類型 變量名; 變量名 = 要付的值;Int i ,j ;i = j = 5; 等價于 int i = j = 5; i
7、= 5; j = 5 ;8:什么是進制9:常量在c語言中是如何表示的整數(shù) 十進制 十六進制:前面加0x或0X 把進駐:前面加0,不是字母o浮點數(shù) Float x= 3.2e3; Float x = 123.45e-2字符 單個字符用單引號, 字符串用雙引號。但是“a”代表了a和0的組合10:常量是以什么樣的二進制代碼存儲在我們的計算機中的 用二進制代碼把數(shù)存儲起來的,整數(shù)是以補碼的形式,實數(shù)是以IEEE754,字符和整數(shù)的 存儲的形式差不多。即字符改變成asc2碼,再以補碼表示成二進制。11:代碼規(guī)范化的問題代碼規(guī)范化,有利于以后寫大程序。12:什么是字節(jié)就是存儲數(shù)據(jù)的單位,是硬件所能訪問的最
8、小單位。cpu只能控制字節(jié),控制不到位。一個字節(jié)等于八個位,1k等1024個字節(jié)1m等于1024k1g等于1024m13:不同類型數(shù)據(jù)類型之間賦值的問題暫不考慮14:什么是asc2只能定義字符變量Char ch = A;等價于 char ch ;ch = A;相當于制造出一個容器,再把A放進這個容器中。如果在后面在定義Char ch = B是不允許的,因為不可以同時制造出兩個一樣的容器。 這個代碼不是一個值,而是一種規(guī)定,規(guī)定不同的字符使用那個整數(shù)值去表示它規(guī)定了一個字母對應(yīng)一個整數(shù)15:字符本質(zhì)上于整數(shù)的存儲方式相同基本的輸入輸出函數(shù)的用法Printf ()功能強大,用法靈活。將變量的內(nèi)容輸
9、出到顯示中 1:printf (“字符串n”); 2:printf (“輸出控制符”,輸出參數(shù)); 3:printf (“輸出控制符1 輸出控制符2換行符”,i,j);輸出控制符和輸出參數(shù)的個數(shù)必須一一對應(yīng)。 4:printf (“輸出控制符 非輸出控制符”,輸出參數(shù));輸出控制符包含%d %ld %c %f 的 為什么需要輸出控制符: 1:01組成的代碼可以表示數(shù)據(jù)也可以表示指令。 2:如果01組成的代碼表示的事數(shù)據(jù)的話那么同樣的01代碼以不同的格式輸出就會有不同的輸出結(jié)果。 3# include <stdio.h> Int main(void) Int i = 10:; Pri
10、ntf (“%d”, i); /d是十進制,把二進制代碼以十進制輸出。X是十六進制。%d輸出控制符。 Return 0:標準輸入輸出#include "stdafx.h"int main(int argc, char* argv)int x = 47;printf ("%xn", x );printf ("%Xn", x );printf ("%#Xn", x );/推薦使用return 0;/*輸出結(jié)果是2f2F0X2F*/return 0;2:Scanf (通過鍵盤將數(shù)據(jù)輸入到變量中) 有兩種用法 用法一:sc
11、naf (”輸入控制符“,輸入?yún)?shù)); 功能:將從鍵盤輸入的字符轉(zhuǎn)化為輸入控制符所規(guī)定格式的數(shù)據(jù),然后存入以輸入?yún)?shù)的值為地址的變量中。運算符Scanf (”%d“ &i);&為取地址符號 知識跳躍 數(shù)組:1;為了方便定義大量同類型數(shù)據(jù)的存儲和使用 2:數(shù)組名是數(shù)組第一個元素的地址 3:采用循環(huán)法賦值 例如:int a5=12,11,12,321,123; int b5; int i; for (i = 0;i<5;i+) bi = aj;二維數(shù)組的的初始化 Int a34=,23,,2,2,32嗎,23,,2,32,2,,43,;%-5d表示左對齊,每個字符隔五個字符。
12、二維數(shù)組的輸出:#include "stdafx.h"int main(int argc, char* argv)#include <stdio.h>int main(void)int a23 = 12,34,45,423,2342,24;int i,j;for (i = 0;i<2;+i)for (j = 0;j<3;+j)printf ("%-5d",aij);printf ("n");return 0;二維數(shù)組的輸出,利用兩個for循環(huán)就可以解決。數(shù)組其實并不真實存在內(nèi)存空間中,而是線性分布的。函數(shù):極其
13、重要。(學習c語言的第二個重點。)什么是面向?qū)ο蟮恼Z言。為什么需要函數(shù):避免了重復(fù)性的操作。有利于程序的模塊化。把大問題分解成小問題。 通過函數(shù)來實現(xiàn)細小的問題,體現(xiàn)模塊化的思想。修改某一部分對其他部分沒有太大的影響。體現(xiàn)程序的健壯性。比較兩個數(shù)的大?。?include "stdafx.h"void max (int i ,int j)if (i>j)printf ("%dn",i);elseprintf ("%dn",j);int main(void)/表示該函數(shù)不接收任何值。Int表示返回值為int類型的數(shù)據(jù)。函數(shù)前面的vo
14、id表示不返回值。不能與return連用。 int a,b,c,d,e,f;a = 1,b = 2,c = 3,d = 4,e = 5 ,f = 6;max (a,b);max (c,d);max (e,f);return 0;什么是函數(shù):邏輯上:能夠完成特定功能的獨立的代碼塊 物理上:能夠接收數(shù)據(jù),當然也可以不接收數(shù)據(jù)能夠?qū)邮盏臄?shù)據(jù)進行處理,能夠?qū)?shù)據(jù)處理的結(jié) 果返回。當然也可以不反悔。函數(shù)是個工具,是為了解決大量類似問題而設(shè)計的,函數(shù)可以當成一個黑匣子。只要會用,不需要知道系統(tǒng)如何調(diào)用。經(jīng)典指針程序:互換兩個數(shù)子:#include <stdio.h>#include <
15、stdlib.h>void huhuan(int a,int b) int t; t = a; b = t; return ;int main() int a = 3; int b = 5; huhuan (a,b); printf ("a = %d,b = %dn",a,b); return 0;/這是個經(jīng)典錯誤,函數(shù)只改變了形參的值,沒有改變實參的值。跟主函數(shù)沒有任何關(guān)系。因此不能完成互換功能。#include <stdio.h>#include <stdlib.h>void huhuan(int a,int b) int main() i
16、nt a = 3; int b = 5; huhuan (&a,&b); printf ("a = %d,b = %dn",a,b); return 0;void huhuan(int * a,int * b) int * t;/如果要互換,t必須定義成int*類型。 t = p; p = q; q = t;/這個程序依然不是正確的,因為只是改變了p和q的內(nèi)容對實參依然沒有實際的作用效果。第三個:可以完成#include <stdio.h>#include <stdlib.h>void huhuan(int * p,int * q)i
17、nt main() int a = 3; int b = 5; huhuan (&a,&b); printf ("a = %d,b = %dn",a,b); return 0;void huhuan(int * p,int * q)/p是int類型的變量,*p是int類型變量。 int t;/必須要定義成int類型,否則會出錯。 t = *p; *p = *q; *q = t;如何修改主函數(shù)的值:*號的含義,附注:1、乘法2、定義指針變量 Int * p 定義了一個名字叫p的變量,int* 表示p只能存放int類型數(shù)據(jù)的地址。3、指針運算符,該運算符放在已經(jīng)
18、定義好的指針變量的前面,如果p是一個已經(jīng)定義好的指針變量,則*p表示以p的內(nèi)容位為地址的變量。4、*p在定義好和未定義好的內(nèi)容是不一樣的。 1:使用單個字符用單引號括起來,字符穿用雙引號括起來。int main() int * p;/等價于int *p,等價于int* p。 int i = 5; char ch = 'A' p = &i ;/修改p和i的值互不影響。*p表示以p的內(nèi)容為地址的變量。 *p = 99; printf ("i = %d",i); return 0;#include <stdio.h>#include <s
19、tdlib.h>void swap_1(int i,int j) int t; t = i; i = j; j = t;int main() int a = 3; int b = 5; swap_1(a,b); printf ("a = %d,b = %d",a,b); return 0;互換兩個數(shù):#include <stdio.h>#include <stdlib.h>void f(int *p,int *q) int t; t = *p; *p = *q; *q = t;int main() int i = 6; int j = 7; p
20、rintf ("i = %d,j = %dn",i,j); f(&i,&j); printf ("i = %d,j = %dn",i,j); return 0;指針使函數(shù)返回一個以上的值:通過利用*p和i等效的原理來進行數(shù)組和指針:數(shù)組名:下標和指針的關(guān)系:指針變量的運算:以為數(shù)組名是指針常量,他存放的是一位數(shù)組第一個元素的地址。指針和數(shù)組:界定一個一位數(shù)組需要幾個參數(shù): 一般情況下需要兩個參數(shù),數(shù)組名和數(shù)組長度。# include <stdio.h>void f (int *p,int n)int i;for (i = 0;
21、i < n;i+)printf ("%pn",*(p+i);int main ()int a5 = 1,2,3,4,5;int b6 = 6,78,-1,-45,12,546;int c100 = 1,99,27,33;f(a,5);printf ("n");f(b,6);printf ("n");f(c,100);printf ("n");return 0;通過函數(shù)把數(shù)組的數(shù)組名發(fā)給指針變量p,則有:*(p+1)= a【i】,p【i】=a【i】,*(a+i)= a【i】 = *(p+i)= p【i】個可以等
22、效替換,無任何區(qū)別。# include <stdio.h>void f (int *p ,int len )int i;for (i = 0 ;i < len; i+)*(p+i) = *(p+i)+10;pi = pi*0;pi = *(p+i)+10;*(p+i) = pi*0;printf ("%dn",pi);int main (void)int i;int a6 = 1,3,4,5,566,45;/printf ("%dn",a3);f (a,6);printf ("從這里重新開始。別鬧了,孩子;n");/
23、for (i = 0;i < 6;i+)/printf ("%dn",*(a+i);return 0;指針變量的運算:指針變量不能相加,相乘和相除。只能相減:如果兩個指針變量指向的是同一塊連續(xù)空間的不同存儲單元,則這兩個指針變量可以相減。表示兩個指針變量相隔的個數(shù)。# include <stdio.h>int main (void)int j = 5;int i = 10;int *p = &i ;int *q = &j ; int a5;p = &a1;q = &a4;printf ("%dn",p-q
24、);return 0;一個指針變量到底占幾個字節(jié):假設(shè)P指向char類型的變量 1假設(shè)q指向int類型的變量 4假設(shè)r指向double類型的變量 8預(yù)備知識:Sizeof(數(shù)據(jù)類型)功能:返回值就是該數(shù)據(jù)類型所占的字節(jié)數(shù)。例如:sizeof(int)= 4;# include <stdio.h>int main (void)char ch = 'A'int i = 99;double x = 66.6;char *p = &ch;int *q = &i;double *r = &x; printf ("%d,%d,%dn"
25、,sizeof(p),sizeof(q),sizeof(r);return 0;運行結(jié)果:4,4,4請按任意鍵繼續(xù). . .X變量有8個字節(jié),用首字節(jié)的編號當成x 的編號??偨Y(jié):一個指針變量不論指向什么變量,該指針變量本身都只占四個字節(jié)。一個變量的地址使用該變量的首字節(jié)來表示的。專題:動態(tài)內(nèi)存分配的問題非常非常重要。傳統(tǒng)數(shù)組的缺點:1:數(shù)組長度必須事先制定,并且只能是常指數(shù)。長度不能是變量。2:傳統(tǒng)形式定義的數(shù)組,該數(shù)組的內(nèi)存程序員無法手動編程釋放他。他只能在自己所在函數(shù)運行完之后自動釋放。但是動態(tài)內(nèi)存可以自由釋放。在一個函數(shù)運行期間系統(tǒng)為該函數(shù)中數(shù)組分配的空間就會一直存在,直到該函數(shù)運行完畢
26、。3:數(shù)組的長度不能在函數(shù)運行的過程中動態(tài)的擴充和縮小。數(shù)組的長度一旦定義,其長度就不能夠改變,4:a函數(shù)定義的數(shù)組,在a函數(shù)運行期間可以被其他函數(shù)調(diào)用,但是當a函數(shù)結(jié)束后,就不能被其他函數(shù)調(diào)用。傳統(tǒng)方式定義的數(shù)組不能跨函數(shù)使用。為什么需要動態(tài)內(nèi)存分配:動態(tài)內(nèi)存就像個救世主一樣很好的解決了傳統(tǒng)數(shù)組的缺陷。(靜態(tài)數(shù)組)# include <stdio.h># include <malloc.h> /不能省 void f (int *q) *q = 200;printf ("%dn",*q);int main (void)int i = 5;int *p
27、 = (int *)malloc(4);/一共分配了8個字節(jié) /*1;要是用這個函數(shù)必須添加頭文件 2;malloc函數(shù)只有一個形參,并且形參是整形3;4表示請求系統(tǒng)為本程序分配四個字節(jié)*4;malloc函數(shù)會為我們分配若干字節(jié),只能返回第一個字節(jié)的地址5;8行分配了八個字節(jié),p變量站四個字節(jié),p所指向的內(nèi)存也占四個字節(jié) 6;p本身所占的內(nèi)存是靜態(tài)分配的,p所指向的內(nèi)存是動態(tài)的7;malloc返回的是他所分配的內(nèi)存的第一個字節(jié)的地址8;(int*) ,是強制類型轉(zhuǎn)換,是用來告訴別人這個地址所指向的數(shù)據(jù)時什么類型, */*p = 5;/*p代表的就是一個int變量,只不過*p這個整形變量的內(nèi)存分
28、配方式和第九行i變量的分配方式不同 / free (p); printf ("tong zhi men hao !n");/p本身的內(nèi)存不能被釋放 f(p); return 0;動態(tài)內(nèi)存分配舉例-動態(tài)數(shù)組的構(gòu)造:1:malloc函數(shù)的使用:malloc 是memory內(nèi)存allocate分配)的縮寫。#include<stdio.h>#include <malloc.h>int main ()int *p ;int len ;int i ;printf ("輸入一個數(shù):");scanf ("%dn",&len);p = (int *)malloc(4*len);for (i = 0 ;i < len ;i+)printf ("請輸入Len個數(shù):n");scanf ("%dn",pi);pi = pi+5; for (i = 0;i<len;i+)printf ("一位數(shù)組改為:%dn",pi);return 0; #include <stdio.h>#include <malloc.h>int main ()int *p ;int
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘭州工商學院《文本設(shè)計》2023-2024學年第二學期期末試卷
- 2025年江蘇省淮安市淮陰區(qū)高三第二輪復(fù)習測數(shù)學試題(文理)試卷含解析
- 2025年青島市高中學段校中考全國卷24省1月聯(lián)考丙卷物理試題含解析
- 吉林省長春市一五0中學2024-2025學年高三下學期第二次模擬考試歷史試題文試卷含解析
- 精神科護理核心制度
- 廣西南寧市第十四中學2025年高三下學期沖刺(二)英語試題含解析
- 西安健康工程職業(yè)學院《臨床聽力學實踐》2023-2024學年第二學期期末試卷
- 福建師范大學協(xié)和學院《全媒體運營》2023-2024學年第二學期期末試卷
- 2025年山西省高平市重點達標名校初三質(zhì)量監(jiān)測(四)物理試題含解析
- 崇左幼兒師范高等??茖W校《資產(chǎn)評估實務(wù)與案例分析》2023-2024學年第一學期期末試卷
- 浙江省寧波市鄞州區(qū)2023-2024學年八年級下學期英語期中考試(含答案)
- 2025-2030中國AI教學行業(yè)市場深度調(diào)研及市場前景與投資戰(zhàn)略研究報告
- 慶華初中副校長管理工作績效考核方案試行
- 2025年第三屆天揚杯建筑業(yè)財稅知識競賽題庫附答案(901-1000題)
- 大學信息技術(shù)基礎(chǔ)教程課件 主題2 信息技術(shù)基礎(chǔ)
- 小黑魚閱讀測試題及答案
- 商場改造施工方案范本
- 《鐵路信號基礎(chǔ)(第2版)》全套教學課件
- 2025年安徽池州東至安東投資控股集團有限公司招聘筆試參考題庫附帶答案詳解
- 幼兒園清明節(jié)主題班會課件
- 2025年專升本大學計算機基礎(chǔ)考試大綱
評論
0/150
提交評論