C程式語言授課項目_第1頁
C程式語言授課項目_第2頁
C程式語言授課項目_第3頁
C程式語言授課項目_第4頁
C程式語言授課項目_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C程式語言授課項目2.1 變數(shù)名稱使用Sum Variable_1Dir_x Dir_y Dir_zState_of_art StateOfArt2.2 變數(shù)宣告int i,j,k;double sum;double K1, K2, K3;CString string;FILE *fp;Char Temp80; 2.3 基本資料型態(tài)int整數(shù)char字元float浮點單精度double浮點雙精度CString字串整數(shù)資料型態(tài)及所佔記憶體位元:int 16 bits-32768 32768 (+-/2e15)unsigned int160 65535signed int16-32768 3276

2、7unsigned short int 160 65535signed short int16-32768 32767long int32-2147483648 2147483647signed long int32-2147483648 2147483647unsigned long int320 4294967295字元資料型態(tài)及所佔記憶體位元:char8256文字浮點數(shù)資料型態(tài)及所佔記憶體位元:float 32bits3.4(10e-38) 3.4(10e38)double641.7(10e-308) 1.7(10e308)long double643.4(10e-4932) 1.1(1

3、0e4932)2.4 常數(shù)表達int i;char t30;float k;CString str;i=5;k=3.14159;t=”Hello”;str=”Hello”+” everyone”;2.5 基本運算數(shù)sum=a+b;sum=a-b;s=a*b;s=1/b;s=a*b%c;2.6 型別轉換float s, t;int ii;s=(float)ii * t;s=(float) a / (float) b;s=(int) a / (int) b;2.7 特殊運算j+; j=j+1;j-; j=j-1;+j;j=j+1; (少用)-j;j=j-1; (少用)a+=b;a=a+b;a/=b

4、;a=a/b;a*=b;a=a * b;a%=ba=a%b;n=sizeof(char)n=1m=sizeof(int);mm=sizeof(double);3.0 開檔設定FILE *fp;fp=fopen("C:temp","w"); FILE *fp1;fp1=fopen("C:temp","r");3.1 fprintf()FILE *fp;fp=fopen("C:temp","w");fprintf(fp,”This is the first example”);f

5、printf(fp,”%sn”,”This is the first example”);3.1.1 3.1.4 控制字元n, %d %f %s %lfCString str;str=”This is the first example”;fprintf(fp,”%sn”,str);int j;j=3;fprintf(fp,”%dn”,j);double pi=3.14159;fprintf(fp,”%fn”,pi);double pi, pi2, pi3;pi=3.14159;pi2=2*pi;pi3=3*pi;fprintf(fp,”%f %f %fn”,pi,pi2,pi3);FILE

6、*fp;int jj;double a, b, c;CString str=”C:temp","w"fp=fopen(str,”w”);a=3.0;b=5.0;c=a+b;fprintf(fp,”The sum of %lf and %lf is equal to %lf .”,a,b,c);fclose(fp);fprintf(fp,”%fn”,k1); fprintf(fp,”%fn”,k2);fprintf(fp,”%f”,k1); fprintf(fp,”%f”,k2);n換列%d整數(shù)%s字串%f實數(shù)%lf雙精度實數(shù)%e 科學計數(shù)%c 字元%o8進位整數(shù)%

7、x16進位整數(shù)3.2 fscanf()FILE *fp1;int jj;char t80;fp1=fopen("C:temp","r");fscanf(fp1,”%dn”,&jj);fscanf(fp1,”%sn”,t);int var1, var2;fscanf(fp1,”%d %dn,&var1, &var2); &:位址符號第四章 程式流程控制4.1 關係運算子與邏輯運算子1. > >=<<=a> b;a>=b;a<b;a<=b;2. =!=a=b;a=b;Correc

8、t:Int a=3;Int b=5;if(a=b)AfxMessageBox(“Case: true”);elseAfxMessageBox(“Case: false”);if(a!=b)AfxMessageBox(“Case: TRUE”);wrong:if(a=b)! not!= not equala!=b;if(a!=b)else3. &&|!BOOL A,B,C;C=A&B;if(a=b) && (c=d)elseA=false;B=false;C=A|Bint a=4, b=3;int c=2, d=4;If(a=b) | (c=d)elseC

9、=!A;FILE *fp;fp=fopen(“”,”w”);double p1,p2,q1,q2;p1=0;q1=0;p2=3;q2=2;for(int i=0;i<5;i+)p1+=i;q1=i;if(p1>p2) if(q1>q2)o2.Format("%f > %f and %f > %f",p1,p2,q1,q2);AfxMessageBox(o2);else if(q1=q2)o2.Format("%f > %f and %f = %f",p1,p2,q1,q2);AfxMessageBox(o2);else

10、o2.Format("%f > %f and %f < %f",p1,p2,q1,q2);AfxMessageBox(o2);else if(p1=p2)if(q1>q2)o2.Format("%f = %f and %f > %f",p1,p2,q1,q2);AfxMessageBox(o2);else if(q1=q2)o2.Format("%f = %f and %f = %f",p1,p2,q1,q2);AfxMessageBox(o2);elseo2.Format("%f = %f and

11、%f < %f",p1,p2,q1,q2);AfxMessageBox(o2);elseif(q1>q2)o2.Format("%f < %f and %f > %f",p1,p2,q1,q2);AfxMessageBox(o2);else if(q1=q2)o2.Format("%f < %f and %f = %f",p1,p2,q1,q2);AfxMessageBox(o2);elseo2.Format("%f < %f and %f < %f",p1,p2,q1,q2);Af

12、xMessageBox(o2);fprintf(fp,”%sn”,o2);fclose(fp);4. 優(yōu)先順序(a) !-(negative) +-(b) */%(c)+-(add)(d)<<=>>=(e) =!=(f) &&(g) |4.2 for敘述int i;for (i=0;i<10;i+)int i;for (i=0;i<10;i+);for (int i=0;i<10;i+)sum=sum+i;sun+=i;for(j=0;j<n;j+) fprintf(fp,”%d”,j+n);for(j=0;j<n;j+)

13、fprintf(fp,”%d”,j+n); for(j=0;j<n;j+) fprintf(fp,”%d”,j+n); for(j=0;j<n;j+) fprintf(fp,”%d”,j+n); fprintf(fp,”%d”,j+n+1);int i,j,n1,n2;for(i=0;i<n1;i+)for(j=0;j<n2;j+)k=i+j;int n1;n1=10;int i;for(i=0;i<n1;i+)j=I+jdlsf=i+hjdjshdfor(k=0;k<m;k+)int sum,step; for(j1=0;j1<n1;j1+)sum=

14、i+j;for(j2=0;j2<n2;j2+)step=sqrt(i*j);4.3 while 敘述BOOL factor=false;/factor=false;while (factor!=true)factor=true;j=0;while (j<=10)j+;while ( )while ( )4.4 do while敘述int j;j=0;doj+;while (j<=10)4.5 if敘述if(i>10)elseif(j>10 | j<20)if(I<10)if(j>10)else if (j>=11 && j&

15、lt;20)else 4.8 Switch敘述int I;switch (i)case 1: fprintf();break;case 2: fprintf();break;case 3: fprintf();break;default:fprintf();4.9 breakfor(j=0;j<10;j+)if(j>5)break;4.11 gotobegin:if(i>j)goto stop;goto begin;stop:return;int j,k;start:j+=1;if(j>10) goto stop;goto start;stop:第五章 陣列和指標5.1

16、 一維陣列int score10;score0 score9double value5;value0 value4float average100;average0 average99score0=1;score1=2;score3=score1+score2;5.2 二維陣列int num34;num00 num01 num02 num03num10 num11 num12 num13num20 num21 num22 num23for(int I=0;I<3;I+)for(int j=0;j<4;j+)numIj=I+j;double f100100f00f099f990,f9

17、9995.3 變數(shù)位元(bit)長度char: 8位元: 一個位元組int 16 位元: 兩個位元組float 32位元: 四個位元組double 64 位元: 八個位元組一個位元組=8 位元5.4 指標變數(shù)任何一變數(shù)內所存放的數(shù)值有兩種:數(shù)值及記憶體位址(address)*: (指標變數(shù))設定為指標變數(shù)&: (取址變數(shù))傳回運算元之位址可設定為指標變數(shù)的資料型態(tài): char, int, double, floatint *pt; 該變數(shù)含有一記憶體位址fscanf(fp,”%dn”,&lue);- fscanf的功能為將檔案內數(shù)值存入記憶體內,因此要設定給變數(shù)value時,需

18、要前面加”&”,將該數(shù)值存入value所相對的記憶體內.Ex:Void main()int *ptr, I, val;*ptr: 設定成存放位址的變數(shù)I=20;ptr=&I;*ptr內記錄I之位址Val=*ptr;val設定為ptr所指到位址內的數(shù)值fprintf(“%dn”,val);結果為20int *k;k=(int *)malloc(10*sizeof(int);double *factor;int num;num=100;factor=(double *)malloc(num*sizeof(double);5.5 指標與陣列應用int *ptr;ptr=ptr+;指向

19、ptr所含位址加二位元組之位址.ptr=ptr-; 指向ptr所含位址減二位元組之位址.Ptr=ptr+7; 指向ptr所含位址加(2*7)位元組之位址Ex: pp. 5-22pp. 5-31*EXAMPLESMalloc Example:一維陣列double M10;double *N;int num;num=10;N=(double *)malloc(num*sizeof(double);free(N);num=100;N=(double *)malloc(num*sizeof(double);free(N);U=(int *)malloc(DrawU*sizeof(int);Free(U

20、);NU=(double *)malloc(cur.PtNum*sizeof(double);N=(double *)malloc(x*cur.Order*sizeof(double);二維陣列double *Pt1_indexu;Pt1_indexu=(double *)malloc(num*sizeof(double *);for(j=0;j<num;j+)Pt1_indexuj=(double *)malloc(num*sizeof(double); for(i=num-1;i>=0;i-) /2000/11/21 free(Pt1_indexui); free(Pt1_in

21、dexu); Pt1_indexu=NULL;Pt1_indexv=(double *)malloc(num*sizeof(double *);for(j=0;j<num;j+)Pt1_indexvj=(double *)malloc(num*sizeof(double); for(i=num-1;i>=0;i-) /2000/11/21 free(Pt1_indexvi); free(Pt1_indexv); Pt1_indexv=NULL;Pt1=(XYZPoint *)malloc(num*sizeof(XYZPoint *);for(j=0;j<num;j+)Pt1j

22、=(XYZPoint *)malloc(num*sizeof(XYZPoint); for(i=num-1;i>=0;i-) /2000/11/21 free(Pt1i); free(Pt1); Pt1=NULL;第七章 變數(shù)的等級1. auto: 區(qū)域變數(shù)宣告 (壽命最短, 以堆疊存放,該區(qū)段執(zhí)行結束即被釋放)void main()int I;2. static: 靜態(tài)變數(shù)宣告 (也是區(qū)域變數(shù)宣告,但以固定位址存放,程式執(zhí)行該變數(shù)一直有效)void main()static int I;3. external: 外在變數(shù)宣告 (指定於程式外部的變數(shù),所有其它區(qū)段及函數(shù)均可使用此變數(shù)),

23、此一變數(shù)可該許多檔案使用- 在C+中可宣告於*.h檔,或放於*.cpp檔之前面.- 若宣告於*.h內,放在Public內時,可供其它檔案include4. static external: 靜態(tài)外在變數(shù)宣告(指定於程式外部的變數(shù),所有其它區(qū)段及函數(shù)均可使用此變數(shù)),此一變數(shù)只可供宣告該變數(shù)的檔案使用- -在C+中可宣告於*.h檔,或放於*.cpp檔之前面.- 若宣告於*.h內,放在Protected內時,只可供該*.cpp檔案使用第八章 C語言前端處理程式8.1 巨集#define指令使用於: - 常數(shù)代換- 字串代換- 定義簡易函數(shù)Ex:float a;a=pi*10;#definefmt“

24、x is %dn”FILE *fp;fp=.fprintf(fp,fmt,x);#define TRUE1#defineFALSE0int again=1;while(again)again=TRUE;(or again=FALSE) #defineMAX(a,b)(a>b) ? a:bvoid main()int x,y,max;x=5;y=10;max=MAX(x,y);. . .8.2 #include 功能- 將某一檔案包含在目前檔案下工作.- #include <檔案名稱>到視窗option欄位,Directories公能項Include Directories指定

25、的子目錄內找尋該檔.- #include “檔案名”在目前工作目錄下者尋該檔.8.3 條件式編譯- 使用於較大的程式區(qū)塊中#if (運算式)#endif#if #else#endif#ifdef 識別字#endif#ifndef#undef第九章 使用者自訂資料結構9.1 typedef- 將某一識別字定義為一種資料型態(tài)- 此一識別字以該項資料型態(tài)使用Ex:typedef int length;length inch, meter;typedef float average;average ave1, ave2;typedef float tmp;void main()tmp f,c;9.2

26、結構資料型態(tài)- 將一些相關但不同的資料型態(tài),組織成一個新的資料型態(tài).Ex:Struct Scoreint math;int english;int computer;score;score A;struct TagRevPointdouble X;double Y;double Z;RevPoint;RevPoint Pt1, Pt2;Pt1.X=Pt1.Y=Pt1.Z=.Pt2.X=Pt2.Y=Pt2.Z=9.3 資料結構與陣列struct Tagscoreint math;int English;int computer;score;score test50;test1.math=test

27、5.English=puter=9.4 巢狀資料結構struct TagRevPointdouble X;double Y;double Z; RevPoint;struct TagTriangularRevPoint P1;RevPoint P2;RevPoint P3;Triangular;9.5 結構資料與函數(shù)struct TagScoreint math;int english;int computer;score;score hung;sum(hung.math);第十章 字串剖析/*CString strFile1= "C:TempRevTemp1.M

28、EA"/*CString tiger;int m_Num;int dog=0;if(dog=0)tiger.Format(" 請選取座標固定組之第 %d參考值.",m_Num+2);elsetiger.Format(" Please select the %d nd(rd) reference sphere on the cloud data with fixed coordinate.",m_Num+2);AfxMessageBox(tiger);/*char Temp128;fp7=fopen(strFile1,"r")

29、;int OldCurName;while(fscanf(fp7,"%s",Temp)!=EOF)OldCurName=atoi(Temp);for(int i=0;I<OldCurNmae;I+). . ./*FILE *fp;char Temp128; int Order,PtNum,i;/ 開啟CUR曲線資料檔if(fp=fopen(strFile2,"r")=NULL)CString dog;dog.Format("開啟檔案 %s 失敗!",strFile2);AfxMessageBox(dog);return;if(f

30、scanf(fp,"%s",Temp)=EOF) / "u_degree"/* cstrTemp=fPath.Right(4); if(cstrTemp.Mid(0,1)!=".") OnFileSaveAs(); return; ;Cstring cstrTemp;cstrTemp.MakeUpper();/*/cstrTemp2=cstrTemp2.Mid(temp+1),(temp2-1); /File Name/cstrTemp3=cstrTemp2.Mid(0,(temp3-1); /File Title輸出格式:Cstri

31、ng o2;fprintf(fp,”%s”,o2);fprintf(fp,”%10s”,o2);fprintf(fp,”%-10s”,o2);補充:函數(shù)範例/ */ 向量外積/ */ PResult=Pt1xPt2/ *void CrossProduct(RevPoint& Pt1, RevPoint& Pt2, RevPoint& PResult)/2000/11/25 RevPoint dog; double length; / 考慮Pt1與PResult有可能是同一點,要分開做 dog.X=Pt1.Y*Pt2.Z-Pt1.Z*Pt2.Y; dog.Y=Pt1.Z*

32、Pt2.X-Pt1.X*Pt2.Z; dog.Z=Pt1.X*Pt2.Y-Pt1.Y*Pt2.X; length=sqrt(dog.X*dog.X+dog.Y*dog.Y+dog.Z*dog.Z); if(length!=0) /2001/03/14 PResult.X=dog.X/length;PResult.Y=dog.Y/length;PResult.Z=dog.Z/length; else PResult.X=0;PResult.Y=0;PResult.Z=0; ;/ */ 直線單位向量 2001/02/19 JY/ */ PResult=ABS(Pt2-Pt1)/ *double LineNormal(RevPoint& Pt1, RevPoint& Pt2, RevPoint& PUnitNormal) RevPoint dog; double length; dog.X=Pt2.X-Pt1.X; dog.Y=Pt2.Y-Pt1.Y; dog.Z=Pt2.Z-Pt1.Z; length=sqrt(dog.X*dog.X+dog.Y*dog.Y+dog.Z*dog.Z); if(length!=0) PUnitNormal.X=dog.X/length; PUnitNormal.Y=dog.Y/length; PUnitNormal.Z=dog.

溫馨提示

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

評論

0/150

提交評論