程序設(shè)計(jì)基礎(chǔ)ch5補(bǔ)充下new_第1頁(yè)
程序設(shè)計(jì)基礎(chǔ)ch5補(bǔ)充下new_第2頁(yè)
程序設(shè)計(jì)基礎(chǔ)ch5補(bǔ)充下new_第3頁(yè)
程序設(shè)計(jì)基礎(chǔ)ch5補(bǔ)充下new_第4頁(yè)
程序設(shè)計(jì)基礎(chǔ)ch5補(bǔ)充下new_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程的主要內(nèi)容(5)程序設(shè)計(jì)基本概念計(jì)算機(jī)的工作模型(依曼體系結(jié)構(gòu)、硬件與)程序設(shè)計(jì)泛型(過(guò)程式、對(duì)象式、)程序設(shè)計(jì)步驟程序設(shè)計(jì)語(yǔ)言C與C+的常見(jiàn)不同之處09:43南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系1#include <stdio.h> #include <math.h> int main(void)int sum=0, i;printf("This is a C programm.n");for(i=0; i<10; i+)sum = sum + i;#include #include<iostream><cmath>usin

2、g namespace std;int main( )printf("sum=%dn", sqrt(sum cout << "This is a C+ programm. " << endl; int sum=0;for(int i=0; i<10; i+)return 0;sum = sum + i;cout << "sum=" << sqrt(sum) << endl; return 0;C與C+的常見(jiàn)不同之處1、對(duì)面向?qū)ο蟮闹С諧:很難支持 結(jié)構(gòu)、聯(lián)合C+:比較好

3、地支持 類(lèi)庫(kù)2、I/O方式C: 庫(kù)函數(shù)C+: 庫(kù)函數(shù) 基于類(lèi)庫(kù)的臺(tái)I/O,eg. cout、cin等對(duì)象, endl等操縱符常用輸入輸出庫(kù)函數(shù)printf( )、scanf( ) putchar( )、getchar( ) puts( )、gets( )C:# include "stdio.h" 或 # include <stdio.h>C+:# include "cstdio" 或 # include <cstdio>ppC+把C的stdio.h中的內(nèi)容加入cstdio的std名空間中(C+把C的*.h中的內(nèi)容都加入c*的std

4、名空間中)putchar(c);(向終端輸出一個(gè)字符) 如:char a = 'k'putchar(a); 或putchar('k');getchar( );(從終端輸入一個(gè)字符,接受空格、回車(chē)鍵) 如:char c;c = getchar( );puts(char *s);(向標(biāo)準(zhǔn)輸出文件輸出一個(gè)字符串) 如:char *str = "nanjing"puts(str);gets(char *s);(從標(biāo)準(zhǔn)輸入文件以回車(chē)鍵作為輸入的結(jié)束)如:char str100;gets(str);一個(gè)字符串,接受空格,getchar( )的應(yīng)用在Dev

5、 C+、Turbo c等環(huán)境中,正常情況下,輯、編譯完、,屏幕都是停留在編輯窗口,而運(yùn)行結(jié)果是顯示在用戶窗口的,為了看到運(yùn)行后的顯示結(jié)果,要程序員切換到用戶窗口。如果在程序的最后加一句getchar( );則程序執(zhí)行到這里時(shí),會(huì)停留在用戶窗口,等待用戶輸入一字符,這時(shí)就可以順便看到前面程序執(zhí)行的顯示結(jié)果,輸入一個(gè)鍵后,程序。畢,屏幕又停留在編輯窗口getchar( )的應(yīng)用有些場(chǎng)合需要把字符輸入作為一個(gè)子表getchar()更方便。,這時(shí)候用while ( (grade = getchar() != 'X') while ( (cin >> grade) != &#

6、39;X') /?如:printf(參數(shù)1,參數(shù)2,參數(shù)n) 輸出結(jié)果:a=3 b=4向標(biāo)準(zhǔn)輸出文件輸出若干個(gè)任意類(lèi)型的數(shù)據(jù)參數(shù)1是一個(gè)字符串,字符串中可以是格式說(shuō)明字符, 也可以是要原樣輸出的字符,還可以是轉(zhuǎn)義字符;參數(shù)2參數(shù)n是輸出項(xiàng)格式說(shuō)明字符串:%正負(fù)號(hào)0輸出占位總長(zhǎng)度.小數(shù)部分或字符串輸出長(zhǎng)度l<形式字母>輸出項(xiàng)格式說(shuō)明普通字符printf("a=%d b=%d", a, b);形式字母形式字母輸出格式d10進(jìn)制整數(shù)x16進(jìn)制整數(shù)o8進(jìn)制整數(shù)u無(wú)符號(hào)10進(jìn)制整數(shù)c單字符s字符串e指數(shù)形式的浮點(diǎn)數(shù)f小數(shù)形式的浮點(diǎn)數(shù)ge和f中較短的一種符號(hào)“”本身

7、%printf(%d)原樣輸出printf("Today is sunny.");Today is sunny.%d(按十進(jìn)制整數(shù)的實(shí)際長(zhǎng)度輸出)int a=3, b=12345;printf("%d", a);3printf("a=%d, b=%d", a, b); a=3, b=12345%0md(按長(zhǎng)度m輸出整數(shù);不足m的printf("a=%03d, b=%3d", a, b);%-md(不足m的右補(bǔ)空格,其他同上) printf("a=%-3d, b=%3d", a, b);%ld(輸

8、出長(zhǎng)整型數(shù)) long c=135790;0,其他同上)a=003, b=12345a=3, b=12345printf("c=%ld", c);c=135790printf(%c、%s)%c(輸出字符)char ch = 'a' ;printf("%c", ch);%s(輸出字符串) printf("%s", "a");%ms(按長(zhǎng)度m輸出字符串;不足m的空格,其它同上)printf("%3s", " printf("%3s", "OK&

9、quot;);");OK%-m.ns(按長(zhǎng)度m輸出字符串;只取字符串左端n個(gè)字符; 不足m的右補(bǔ)空格,多于m或省略m的,自動(dòng)取m=n)printf("%-7.1s, %-1.2s, %-.1s", "C", ", CH, C", "");printf(%f)%f(以小數(shù)形式輸出實(shí)數(shù);輸出全部整數(shù),并輸出6位小數(shù);一般有7位是有效數(shù)字)float x=111111.111;printf("%f", x);111111.109375%m.nf(輸出全部整數(shù),并輸出n位小數(shù);不足m prin

10、tf("x=%10.2f", x); x= 111111.11空格)%e(以規(guī)范化指數(shù)形式輸出實(shí)數(shù);小數(shù)占6位,指數(shù)占5位,共13位)float z=123.456 ;printf("%e", z); 1.234560e+002scanf(參數(shù)1,參數(shù)2,參數(shù)n)從標(biāo)準(zhǔn)輸入文件輸入若干個(gè)任意類(lèi)型的數(shù)據(jù)參數(shù)1是一個(gè)字符串,字符串中可以是格式說(shuō)明字符, 也可以是要原樣輸入的字符;參數(shù)2參數(shù)n是地址表列,是&變量名、數(shù)組名或指針變量名格式說(shuō)明字符串:% 輸入數(shù)據(jù)的長(zhǎng)度lh*<形式字母>形式字母有d、o、x、c、s、f、e 帶*的輸入項(xiàng)不賦給

11、相應(yīng)的變量l用于輸入長(zhǎng)整型或雙精度型數(shù)據(jù),h用于輸入短整型數(shù)據(jù)輸入數(shù)據(jù)時(shí),以一個(gè)或多個(gè)空為間隔,也可以用回tab,不能用逗號(hào)分隔;對(duì)%c不需要分隔車(chē)鍵、跳符;遇到回車(chē)或字符則認(rèn)為該數(shù)據(jù)輸入結(jié)束scanf(%d)int a, b, c;scanf("%d%d%d", &a, &b, &c);34 5則a,b,c分別為3,4,5scanf("a=%d, b=%d, c=%d", &a, &b, &c); a=8, b=9, c=10則a,b,c分別為8,9,10scanf("%3d%3d",

12、 &a, &b); 123456則a,b分別為123,456scanf(%d、%c)scanf("%d%d", &a, &b); 1234O 45則a為1234,b為一無(wú)意義值scanf("%2d%*3d%2d", &a, &b);數(shù)據(jù)間輸入2個(gè)空格,一個(gè)匹配格式串中的空格,另一個(gè)分隔兩個(gè)數(shù)1234567則a,b分別為12,67char c1,c2,c3;scanf("%c%c%c", &c1, &c2, &c3); a b c則c1,c2,c3分別為a,bsca

13、nf(%s)不接收空格,以回車(chē)鍵作為輸入的結(jié)束char str81; scanf("%s", str);hello則str為"hello"scanf("%c%c", &a, &b);輸入的數(shù)據(jù)被當(dāng)成字符,如: 輸入2.5,則a為2,b為. 輸入2 3,則a為2,b為空格scanf("%d%d", &a, &b);需輸入數(shù)字,用空格、Tab或回車(chē)分隔,如: 輸入2.5 3,則a為2,b為? 輸入213o9,則a為213,b為?scanf("%d%c%d", &

14、;a, &b, &c);輸入兩個(gè)整數(shù)之間的分隔符被b接收 輸入3 4,則a、b、c為3、空格、4 輸入3(回車(chē))4,則a、b、c為3、回車(chē)、4 輸入q,則a、b、c為?其他常用庫(kù)函數(shù)sqrt(x): 求平方根sin(x): 返回以弧度表示的x的正弦值文本屏幕處理函數(shù)(conio清屏clrscr( )cos(x): 返回以弧度表示的x的余弦值pow(x,y): 返回xy的值exp(x): 返回ex的值log(x): 返回logex的值數(shù)學(xué)函數(shù)(math.h)對(duì)于三角函數(shù),應(yīng)注意log10(x): 返回log10x的值fabs(x): 返回x的絕對(duì)值isalpha(ch): 檢查c

15、h是否字母isdigit(ch): 檢查ch是否數(shù)字(09) islower(ch): 檢查ch是否小寫(xiě)字母isupper(ch): 檢查ch是否大寫(xiě)字母字符函數(shù)(ctype.h)字符串函數(shù)(string.h)動(dòng)態(tài)分配函數(shù)(stdlib.h/malloc.h)C與C+的常見(jiàn)不同之處3、變量定義的位置不同:C: C89:在復(fù)合語(yǔ)句的開(kāi)頭定義好本復(fù)合語(yǔ)句需要用到的變量;(一些編譯器只支持在函數(shù)的開(kāi)頭定義變量) C99:可以在函數(shù)的任意位置,隨用隨定義;C+: 可以在函數(shù)的任意位置,隨用隨定義;#include <iostream> using namespace std;int mai

16、n( )cout << "a simple calculation: " << endl; int m, n;cin >> m >> n;cout << m << "+" << n << " = " << m+n << endl; cout << m << "*" << n << " = " << m*n <&l

17、t; endl; return 0;#include <stdio.h>int main(void)int m, n;printf("a simple calculation: n"); scanf("%d%d", &m, &n); printf("%d+%d = %d n", m, n, m+n); printf("%d*%d = %d n", m, n, m*n); return 0;4、for語(yǔ)句的循環(huán)變量int sum=0;for(int i=1; i<=100; i+ )

18、/VC6可以隨處定義sum = sum+i;printf(“sum=%d, i=%d”, sum, i); / VC6可以i(例外)int i, sum=0;/C89 for( i=1; i<=100; i+ )sum = sum+i; printf("sum=%d, i=%d", sum, i);int sum=0;for(int i=1; i<=100; i+ )/C99, C+可以隨處定義sum = sum+i;printf("sum=%d, i=%d", sum, i); / 但是此處不能iC與C+的常見(jiàn)不同之處5、const關(guān)鍵字C

19、: C89沒(méi)有 C99有C+: 有C與C+的常見(jiàn)不同之處6、基本類(lèi)型C:弱類(lèi)型語(yǔ)言 C89:沒(méi)有邏輯類(lèi)型 C99:有邏輯類(lèi)型,關(guān)鍵字是_BoolC+:強(qiáng)類(lèi)型語(yǔ)言 有邏輯類(lèi)型,關(guān)鍵字是 boolC與C+的常見(jiàn)不同之處7、名空間:C: 有名空間(namespace)的概念(邏輯上相關(guān)的標(biāo)識(shí)符放在同一個(gè)名空間里,所以結(jié)構(gòu)類(lèi)型名與其它普通變量名可以重名),但用戶不可 以指定名空間C+: 有名空間(namespace)的概念 用戶可以指定名空間ü using namespaceü 作用域運(yùn)算符 :C與C+的常見(jiàn)不同之處8、內(nèi)聯(lián)函數(shù):C: C89:不支持 C99:支持,inlineC+

20、: 支持,inlineC與C+的常見(jiàn)不同之處9、函數(shù)名重載:C: 不支持C+: 支持p sqrt()C與C+的常見(jiàn)不同之處10、數(shù)組的長(zhǎng)度:C: C89:常量(比如TC) C99:可以是變量(比如GCC)C+: 常量(比如VC6、VS2008) DevC+例外C與C+的常見(jiàn)不同之處11、C: 無(wú)C+: 有類(lèi)型:C與C+的常見(jiàn)不同之處12、申請(qǐng)動(dòng)態(tài)空間方式:C: 用庫(kù)函數(shù)malloc/C+: 用庫(kù)函數(shù)malloc/ 用new/deletestruct Nodeint value; Node * next;int main()Node *h = new Nod h->value = 1;h-

21、>next = NULL;Node *q = new Nod q->value = 100;q->next = h; h = q;for (Node *p=h; p!=cout << p-> cout << endl;delete h, q; return 0;# main()<stdlib.h>Node *h =.Node *q =.printf(" printf("n");(h);(q);.(Node *)malloc(sizeof(Node);(Node *)malloc(si

22、zeof(Node);%d,", p->value);鏈表的反轉(zhuǎn)(循環(huán)法).××××hqp.×××a3a2a1a0a3a2a1a0void reverse(Node *&h)-3hhqpqp.××void reverse(Node *&h)Node *p=h; h = NULL;while (p != NULL)Node *q=p; p = p->next; q->next = h;h = q;a3a2a1a0 void reverse(Node *&h)-2h hqpqp.×void reverse(Node *&h)Node *p=h; h = NULL;while (p != NULL)No

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論