




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.LOG新建項(xiàng)目-win32-選控制臺應(yīng)用程序-選空項(xiàng)目,然后 源文件 右擊,添加新建項(xiàng)默認(rèn)為 源.cpp,可在此寫代碼C語言:32個(gè)關(guān)鍵詞,9種語句,34種運(yùn)算符,可訪問物理地址,可進(jìn)行位操作。生成的目標(biāo)代碼(機(jī)器可只讀的代碼)質(zhì)量高,執(zhí)行效率高10:25 2016/11/21變量是一個(gè)存儲單元,用變量名表示,即變量名訪問該內(nèi)存單元 ,變量名是一個(gè)標(biāo)識符,以字母或下劃線開頭 字符型 char 1個(gè)字節(jié) 'a'、 'A' 、'2' ascii區(qū)分它們整型 int 4個(gè)字節(jié)實(shí)型 float 4個(gè)字節(jié) double 8個(gè)字節(jié)轉(zhuǎn)義字符 開頭 n 表示換
2、行 ddd 表示1到3位8進(jìn)制數(shù)代表的字符 cout << '103'<< endl;會輸出C字符串包含兩個(gè)字節(jié) 字符本身+05/2.0=2.5 而 5/2=2 強(qiáng)制類型轉(zhuǎn)換5/(float)2=2.5%求余運(yùn)算,對于int型。%運(yùn)算和*、/優(yōu)先級相同j=+i ,此時(shí)i先自加,然后復(fù)制給j函數(shù):聲明語句、執(zhí)行語句結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)語句:控制語句、函數(shù)調(diào)用語句、表達(dá)式語句、空語句、復(fù)合語句14:32 2016/11/21for (int i = 1, j = 1; i < 100; i+, j+)if (i % 2 = 0)conti
3、nue; /體會continue 的用法,滿足條件continue后面語句就不做了cout << i << " "if (j%5=0)cout << endl;下一個(gè)for (;)char i;cout << "press any key,Q to quit" << endl;cin >> i ;if (i = 'Q')break; /break可退出循環(huán),徹底退出printf()函數(shù)是格式化輸出函數(shù), 一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。printf()函數(shù)的
4、調(diào)用格式為: printf("<格式化字符串>", <參量表>)。getchar()函數(shù)邏輯運(yùn)算符 與&& 或| 非!解一元二次方程void main()float a, b, c, x1, x2, delta;scanf_s("%f%f%f", &a, &b, &c);delta = b*b - 4 * a*c;if (delta > 0)x1 = (-b + sqrt(delta) / a / 2;x2 = (-b - sqrt(delta) / a / 2;printf(&quo
5、t;x1=%f x2=%f", x1, x2);elseprintf("no root");求指數(shù)函數(shù)void main()float e = 1, x, g;int i = 1;cin >> x;g = x / i;while (g > 0.000001)e += g;i+;g *= (x / i);cout << "e" << x << "=" << e << endl;system("pause");顯示fibonacci
6、數(shù)列void main()long int f1 = 1, f2 = 1;for (int i = 1; i < 20; i+)cout << f1 << " " << f2 << endl;f1 = f1 + f2;f2 = f2 + f1;system("pause");判斷閏年void main()int year, leap=2;cout << "year="cin >> year;if (year%4=0)if (year % 100 = 0)if
7、 (year % 400 = 0)leap = 1;else leap = 0;elseleap = 1;if (leap = 1)cout << year << "is leap year" << endl;elsecout << year << "is not leap year" << endl;system("pause");冒泡排序,兩層循環(huán),外循環(huán)完成一次,則找到當(dāng)前最大的一個(gè)數(shù),大數(shù)沉底$ 批量替換變量名或其他代碼 選中目標(biāo) ctrl+F ,然后會出
8、現(xiàn)編輯框,實(shí)現(xiàn)替換冒泡排序void main()int a = 1, 2, 32, 12, 54, 42, 12, 36, 54, 98, 45, 0 ;int i, j, t, flag;for (i = 0; i < 12; i+)cout << ai << " "for (i = 0; i < 11; i+)flag = 0;for (j = 0; j < 11 - i; j+)if (aj>aj + 1)t = aj+1;aj + 1 = aj; /每個(gè)相鄰都試圖交換aj = t;flag = 1;if (!flag)
9、 break;cout << endl;for (i = 0; i < 12; i+)cout << ai << " "system("pause");一般函數(shù)的定義如果寫在main()函數(shù)后面,則需要在main()函數(shù)里先聲明該函數(shù)才能調(diào)用,或者把該函數(shù)的聲明寫在前面,即不必一定要寫在main()函數(shù)的語句里畫金字塔void printstar(int n)int i, j;for (i = 1; i <= n; i+)cout << endl;for (j = 1; j <= n -
10、i;j+)cout << " "for (j = 1; j <= 2 * i - 1; j+)cout << "*"函數(shù)的形式參數(shù)、函數(shù)內(nèi)定義 變量都是 局部變量定義在函數(shù)外的變量為 全局變量,從定義開始到文件結(jié)束都有效,它前面的函數(shù)訪問它則需要用extern聲明全局變量和函數(shù)中用static聲明的變量是靜態(tài)變量register可聲明寄存器變量,訪問速度最快求階乘long p(int n)long s=1;if (n < 0) return 0; /考慮負(fù)數(shù)情況for (int i = 2; i <= n; i+
11、)s *= i;return s;宏定義void main()#define S(a,b) a*b /注意中間沒有等號cout << S(2, 5);system("pause");指針+函數(shù)實(shí)現(xiàn)變量值交換void sw(int *a, int *b)int c;c = *a;*a = *b;*b = c;void main()int x = 2, y = 3;cout << x << " " << y << endl;sw(&x, &y); /注意實(shí)參的寫法 格式cout &l
12、t;< x << " " << y << endl;system("pause");作為函數(shù)的參數(shù)是指針很重要的一個(gè)用法void main()int a10;int *p;p = a; /數(shù)組名的意義是數(shù)組首地址,等于&a0 ,(a+i)意義為ai的地址for (int i = 0; i < 10; i+)*(a + i) = i;for (; p < a + 10; p+)cout << *p << " "system("pause&qu
13、ot;);第5集開始9:11 2016/11/22投票選舉struct personchar name20;int count;void main()int i, j;person leader3 = "zhang", 0, "li", 0, "wang", 0 ;char name10;for (i = 0; i < 5; i+) /輸一個(gè)名字,比較確認(rèn)一次cin >> name;for (j = 0; j < 3; j+)if (strcmp(name, ) = 0)leaderj.
14、count += 1;cout << endl;for (i = 0; i < 3; i+)cout << << " " << leaderi.count << endl;system("pause");chapter 9.8 鏈表 數(shù)組是一塊連續(xù)的存儲空間,用指針以后也許不需要連續(xù)的存儲空間,只要前一個(gè)數(shù)據(jù)指向下一個(gè)數(shù)據(jù),就能找到下一個(gè)數(shù)據(jù)。只要有這樣的存儲單元 數(shù)據(jù)+下一個(gè)數(shù)據(jù)的地址,就能實(shí)現(xiàn),鏈表單向鏈表(前指后)、雙向鏈表(前后互指)、循環(huán)鏈表(最后一個(gè)指
15、到第一個(gè))動態(tài)存儲的庫函數(shù):void *malloc(size) 分配長度為size的連續(xù)空間,如返回0,則分配未成功。否則返回起始地址void *calloc(n,size) 分配n個(gè)長度為size的空間共用體 union枚舉類型 enum 把所有取值列出來約分void lowterm(int *num, int *den)int n, d, r;n = *num;d = *den;while (d != 0) /輾轉(zhuǎn)相除r = n%d;n = d;d = r;if (n> 1)*num /= n;*den /= n;void free(ptr) 釋放ptr指向的動態(tài)分配的內(nèi)存區(qū)程序=
16、數(shù)據(jù)結(jié)構(gòu)+算法15:14 2016/11/22面向過程 數(shù)據(jù)和數(shù)據(jù)操作是獨(dú)立的。而面向?qū)ο?,關(guān)心的重點(diǎn)是操作的數(shù)據(jù),而不是實(shí)現(xiàn)操作的過程一個(gè)復(fù)數(shù)類class complexprivate:double real;double image;public:complex(double r, double i) /構(gòu)造函數(shù)real = r;image = i;double abscomplex()double t;t = real*real + image*image;return sqrt(t);類是對一組具有共同屬性特征和行為(方法)特征的對象進(jìn)行的抽象封裝 指把數(shù)據(jù)和數(shù)據(jù)操作組成一個(gè)實(shí)體,對外
17、界屏蔽細(xì)節(jié),外界比如main()函數(shù)只能通過接口 即成員函數(shù)來訪問對象的屬性選擇法排序void sortd(int *a, int n)int *p, *q, *maxp, t;for (p = a; p < a + n - 1; p+)maxp = p;for (q = p+1; q < a + n; q+)/兩層循環(huán),外循環(huán)結(jié)束找到當(dāng)前最大的數(shù),放在左端或右端if (*q>*maxp) maxp=q;if (maxp!=p)t = *p; *p = *maxp; *maxp = t;strcat函數(shù)void main()char a10 = "abcde&quo
18、t;, b10 = "qwer"int i, j;i = strlen(a);for (j = 0; bj != '0' j+, i+) /數(shù)組實(shí)現(xiàn),下標(biāo)移動ai = bj;ai = '0'cout << a << endl;system("pause");void main()char a10 = "abcde", b10 = "qwer"char *pa = a, *pb = b;while (*pa != '0') pa+; /指針實(shí)現(xiàn),
19、指針掃描while (*pb!='0')*pa = *pb;pa+;pb+;*pa = '0'cout << a << endl;system("pause");求字符串長度int my_strlen(char *s)int n;for ( n = 0; *s != '0' s+)n+;return n;字符串比較大小函數(shù)int my_strcmp(char *s1, char *s2)for (; *s1 = *s2; s1+, s2+)if (*s1 = '0') return 0;
20、 /相等情況return (*s1 - *s2) > 0 ? 1 : -1;二維數(shù)組是一維數(shù)組的數(shù)組,如a34, a指向a0,a+1指向a1,a+2指向a2 a0指向a00,a0+1指向a01,a0+2指向a02二維數(shù)組求和void main()int a23, (*p)3;p = a; /記得二維指針的初始化,初始指向int sum = 0, i, j;for (i = 0; i < 2; i+)for (j = 0; j < 3; j+)cin>> *(*(p+i) + j);for (i = 0; i < 2; i+)for (j = 0; j <
21、; 3; j+)sum += *(pi + j);cout << sum << endl;system("pause");第7講開始8:33 2016/11/23int sum(int(*p)2, int n)int i, j, sum1 = 0;for (i = 0; i < n; i+,p+) /這里仍需要i+,只有這樣循環(huán)才能結(jié)束。p+表示移位for (j = 0; j < 2; j+)sum1 += *(*p+j);return sum1;數(shù)組顯示print通用函數(shù)void print(int *p, int row, int c
22、ol) /用的一維指針,要傳a0,即第一行的地址值for (int i = 0; i < col*row; i+)if (i%col = 0) cout << endl; /換行,根據(jù)列數(shù)cout << setw(4) << *(p + i); /用setw()函數(shù),頭文件要#include<iomanip>cout << 't'17:52 2016/11/24指針數(shù)組、選擇法排序 實(shí)現(xiàn)名稱排序void main()char *name = "David", "Tom",
23、"Frank", "Leo" ;char *ps;int i, j, k, n = 4;for (i = 0; i < n - 1; i+)k = i;for (j = i + 1; j < n; j+)if (strcmp(namej, namek) < 0)k = j;if (k != i) ps = namei; namei = namek; namek = ps; for (i = 0; i < n; i+)cout << namei << 't'system("pause
24、");指針數(shù)組名都是指向指針的指針一個(gè)函數(shù)被編譯連接后,生成一段二進(jìn)制代碼,該代碼的首地址稱為函數(shù)的入口地址。C+將函數(shù)名的值處理成函數(shù)的入口地址??梢远x一種指針變量,專門用于存放函數(shù)的入口地址,這種變量稱為函數(shù)指針變量函數(shù)指針作為公共接口,調(diào)用三個(gè)函數(shù)。函數(shù)指針在編寫通用函數(shù)方面是很出色的int max(int a, int b)return a > b ? a : b;int min(int a, int b)return a < b ? a : b;int sum(int a, int b)return a + b;int fun(int a, int b, in
25、t(*fun)(int, int)return fun(a, b);void main()int a, b;cout << "enter a,b:"cin >> a >> b;cout << "max=" << fun(a, b, max) << 't' /函數(shù)名做實(shí)參cout << "min=" << fun(a, b, min) << 't'cout << "sum=&q
26、uot; << fun(a, b, sum) << 'n'system("pause");梯形法計(jì)算定積分double integral(double(*f)(double), double a, double b, int n) /函數(shù)指針可作為接口,調(diào)用不同函數(shù)double h,s;h = abs(a - b) / n;s = (f(a) + f(b) / 2;for (int i = 1; i < n; i+)s += f(a + i*h);return s*h;找到字符串中某字符第一次出現(xiàn)的位置,返回地址,指針函數(shù)實(shí)現(xiàn)c
27、har *find(char*s, char ch)while (*s != '0')if (*s = ch) return s;else s+;return NULL;變量才可以定義它的引用,所以數(shù)組名不可以定義它的引用,因?yàn)橐粋€(gè)數(shù)組名是地址常量引用即該變量的別名,無自己的存儲空間,對引用的修改會影響變量的值指向常量的指針 提高程序的安全性const int *p;/可指向一個(gè)變量,唯一要求不可通過它間接修改變量的值指針常量int *const p=&a; /指向的變量值可改,唯一要求不可以改指向指向常量的指針常量const int *const p=&a;
28、/指向不可改,也不可間接修改變量值15:07 2016/11/25動態(tài)數(shù)組分配 new ,deletevoid main()int n, i, *p;cin >> n;cout << endl;p = new intn;for (i = 0; i < n; i+)cin >> pi;for (i = 0; i < n; i+)cout << pi << 't'deletep; /釋放動態(tài)分配空間system("pause");鏈表結(jié)構(gòu)中有一個(gè)指針head指向鏈表首節(jié)點(diǎn),稱為首指針鏈表的建
29、立和數(shù)據(jù)讀取struct nodeint data;node *next;void main()node *head, *p1, *p2;head = new node;p1 = new node;p2 = new node;head->data = 2000; head->next = p1;p1->data = 2004; p1->next = p2;p2->data = 2008; p2->next = NULL; /尾節(jié)點(diǎn)指向nullwhile (head!=NULL)cout << head->data << '
30、;t'p1 = head;head = head->next;delete p1; /釋放前一個(gè)節(jié)點(diǎn)的空間system("pause");18:42 2016/11/25鏈表基本操作struct nodeint data;node *next;node* creat()node *head, *p1, *p2;int a;p2=head = NULL; /賦值空指針,防止一個(gè)元素不給它時(shí),仍有返回值cout << "正在創(chuàng)建一個(gè)無序鏈表。n"cout << "請輸入一個(gè)整數(shù),以-1結(jié)束n"cin
31、>> a;while (a != -1)p1 = new node; /申請一個(gè)空間p1->data = a;if (head = NULL) head = p2 = p1; /處理首節(jié)點(diǎn)elsep2->next = p1; /p2指向當(dāng)前節(jié)點(diǎn)的上一節(jié)點(diǎn)p2 = p1; /結(jié)束讓p2指向當(dāng)前節(jié)點(diǎn)cout << "請輸入一個(gè)整數(shù),以-1結(jié)束n"cin >> a;if (head != NULL) p2->next = NULL; /處理尾節(jié)點(diǎn)return head;void print(const node* head)c
32、onst node*p;p = head;cout << "show datas:"while (p != NULL)cout << setw(3) << p->data;p = p->next;cout << endl;const node* search(const node*head,int x)const node*p;p = head;while (p!=NULL)if (p->data = x) return p;p = p->next;return NULL;node* delete_on
33、e_node(node* head, int x)node* p1, *p2=head;if (head = NULL)cout << "The node is empty.n"return NULL;p1 = head;while (p1->data != x && p1->next != NULL)p2 = p1;p1 = p1->next; /讓p2指在p1的前一位if (p1->data =x)if (p1 = head)head = p1->next;elsep2->next = p1->nex
34、t;delete p1; /如果找到,釋放p1指向的空間cout << x<<" is deleted.n"elsecout << x<<" is not found!n"return head;void delete_chain(node*head)node*p;while (head)p = head;head = head->next;delete p;/*node* sort(node*head)int min;node*p1,*p2;if (head = NULL)cout <<
35、 "The node is empty.n"return NULL;min = p1->data;p1 = head;while (p1)if (p1->data < min) min = p1->data;p2 = p1;p1 = p1->next;*/node* insert(node*head, node*p)node*p1, *p2=NULL;if (head = NULL)head = p;p->next = NULL;return head;p1 = head;if (p->data > p1->data &
36、amp;& p1->next != NULL)p2 = p1;p1 = p1->next;if (p->data <= p1->data)p->next = p1;if (p1 = head) head = p;else p2->next = p;elsep1->next = p;p->next = NULL;return head;node* creat_sort()node*p, *head = NULL;int a;cout << "Now we are creating a new node:"
37、; << "please enter a number" << "end by -1n"cin >> a;while (a != -1)p = new node;p->data = a;head = insert(head, p);cout << "Please enter another number end by -1n"cin >> a;return head;void main()node *head;cout << "Creat a so
38、rted noden "head=creat_sort();print(head);system("pause");20:34 2016/11/27求解第2333個(gè)能被2或3整除的數(shù)void main()int i, j=0;for (i=1; j < 2333;i+)if (i % 2 = 0 | i % 3 = 0) j+;cout << i-1;system("pause");8:31 2016/11/29計(jì)算輸入5個(gè)字符中的空格數(shù)void main()int count = 0;char ch;for (int i =
39、 0; i < 5; i+)cin.get(ch);if (ch = ' ') count+; / 表示空格字符,不可用雙引號cout << count;system("pause");15:11 2016/11/30多態(tài)性:同一個(gè)消息,被不同的對象接收會有不同的效果,即同一接口,不同方法C+支持兩種多態(tài):1-編譯時(shí)多態(tài) 通過函數(shù)重載和運(yùn)算符重載實(shí)現(xiàn)2-運(yùn)行時(shí)的多態(tài) 通過繼承和虛函數(shù)實(shí)現(xiàn)重載面向?qū)ο蟪绦蛟O(shè)計(jì)語言具有的特征:1-支持對象的特征2-對象屬于類3-提供繼承機(jī)制22:31 2016/12/2文本流是一串a(chǎn)scii字符;二進(jìn)制流緩沖的
40、目的是為了解決cpu的運(yùn)行速度和外部設(shè)備操作速度不匹配的矛盾istream類共有繼承ios類,而且ios類是虛基類;istream_withassign類公有繼承istream類,cin是istream_withassign類的一個(gè)對象c+定義了3個(gè)輸出流對象cout、clog、cerr,它們均是ostream_withassign類的對象,前兩者帶緩沖,第3個(gè)不帶緩沖10:16 2016/12/3輸出進(jìn)制、格式等調(diào)整void main()int x = 165, y = 142;cout.setf(ios:oct, ios:basefield);cout << x <<
41、; "," << y << 'n'cout.setf(ios:showbase); /showbase前導(dǎo)符,十進(jìn)制無,八進(jìn)制0,十六進(jìn)制0xcout << x << "," << y << 'n'cout.width(8);/只對后面第一個(gè)輸出有效cout.fill('*'); /*要加,表示是一個(gè)字符cout.setf(ios:left, ios:adjustfield);cout << x << "
42、;," << y << 'n'cout.setf(ios:hex, ios:basefield);cout << x << "," << y << 'n'cout.unsetf(ios:showbase);cout << x << "," << y << 'n'system("pause");獲取回車作為字符void main()char c, s80;int
43、 i = 0;cin >> c;cin.unsetf(ios:skipws); /默認(rèn)ios:skipws置1,會跳過回車。只有把它置0,才能輸入'n'while (c!='n')si+ = c;cin >> c;si = '0'cout << s << endl;system("pause");輸出一個(gè)n行的菱形void main()int i, n, w;cout << "Please input an odd number:"cin >> n;for (i = 0; i < n; i+)if (i < n / 2) w = n / 2 - i;else w = i - n / 2;if (i != n / 2)cout << setfill(' ') << setw(w) << ' '/前導(dǎo)符置空格if (i &l
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 購房合同附加協(xié)議合同范本
- 皮埃爾·喬德洛斯基混合類作品研究
- 面向激光通信應(yīng)用的鋒芒激光大氣傳輸研究
- 給學(xué)生的評語15篇
- 基于激光顯示的顏色管理研究與應(yīng)用
- 2025年金剛石膜熱沉材料項(xiàng)目發(fā)展計(jì)劃
- 基于融合模型與遷移學(xué)習(xí)的音樂自動標(biāo)注研究
- 車商轉(zhuǎn)讓合同范本
- 科技產(chǎn)品的用戶體驗(yàn)優(yōu)化報(bào)告
- 個(gè)人土建合同范本
- 《梅大高速茶陽路段“5·1”塌方災(zāi)害調(diào)查評估報(bào)告》專題警示學(xué)習(xí)
- 2024年06月江蘇昆山鹿城村鎮(zhèn)銀行校園招考筆試歷年參考題庫附帶答案詳解
- 3ds Max動畫制作實(shí)戰(zhàn)訓(xùn)練(第3版)教學(xué)教案
- 艾滋病丙肝梅毒
- 春季安全行車培訓(xùn)資料
- 2024年流感季節(jié)諾如病毒防護(hù)教案分享
- 大型活動突發(fā)公共衛(wèi)生事件應(yīng)急方案
- GB/T 44826-2024生物制造丙交酯
- 《Python程序設(shè)計(jì)》課件-1:Python編程規(guī)范與注釋
- 2023年輔導(dǎo)員職業(yè)技能大賽試題及答案
- 快消品行業(yè)高端水品牌全案策劃案例
評論
0/150
提交評論