




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程的主要內(nèi)容(5)程序設(shè)計基本概念計算機的工作模型(依曼體系結(jié)構(gòu)、硬件與)程序設(shè)計泛型(過程式、對象式、)程序設(shè)計步驟程序設(shè)計語言C與C+的常見不同之處09:43南京大學(xué)計算機科學(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+的常見不同之處1、對面向?qū)ο蟮闹С諧:很難支持 結(jié)構(gòu)、聯(lián)合C+:比較好
3、地支持 類庫2、I/O方式C: 庫函數(shù)C+: 庫函數(shù) 基于類庫的臺I/O,eg. cout、cin等對象, endl等操縱符常用輸入輸出庫函數(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);(向終端輸出一個字符) 如:char a = 'k'putchar(a); 或putchar('k');getchar( );(從終端輸入一個字符,接受空格、回車鍵) 如:char c;c = getchar( );puts(char *s);(向標(biāo)準(zhǔn)輸出文件輸出一個字符串) 如:char *str = "nanjing"puts(str);gets(char *s);(從標(biāo)準(zhǔn)輸入文件以回車鍵作為輸入的結(jié)束)如:char str100;gets(str);一個字符串,接受空格,getchar( )的應(yīng)用在Dev
5、 C+、Turbo c等環(huán)境中,正常情況下,輯、編譯完、,屏幕都是停留在編輯窗口,而運行結(jié)果是顯示在用戶窗口的,為了看到運行后的顯示結(jié)果,要程序員切換到用戶窗口。如果在程序的最后加一句getchar( );則程序執(zhí)行到這里時,會停留在用戶窗口,等待用戶輸入一字符,這時就可以順便看到前面程序執(zhí)行的顯示結(jié)果,輸入一個鍵后,程序。畢,屏幕又停留在編輯窗口getchar( )的應(yīng)用有些場合需要把字符輸入作為一個子表getchar()更方便。,這時候用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)輸出文件輸出若干個任意類型的數(shù)據(jù)參數(shù)1是一個字符串,字符串中可以是格式說明字符, 也可以是要原樣輸出的字符,還可以是轉(zhuǎn)義字符;參數(shù)2參數(shù)n是輸出項格式說明字符串:%正負(fù)號0輸出占位總長度.小數(shù)部分或字符串輸出長度l<形式字母>輸出項格式說明普通字符printf("a=%d b=%d", a, b);形式字母形式字母輸出格式d10進制整數(shù)x16進制整數(shù)o8進制整數(shù)u無符號10進制整數(shù)c單字符s字符串e指數(shù)形式的浮點數(shù)f小數(shù)形式的浮點數(shù)ge和f中較短的一種符號“”本身
7、%printf(%d)原樣輸出printf("Today is sunny.");Today is sunny.%d(按十進制整數(shù)的實際長度輸出)int a=3, b=12345;printf("%d", a);3printf("a=%d, b=%d", a, b); a=3, b=12345%0md(按長度m輸出整數(shù);不足m的printf("a=%03d, b=%3d", a, b);%-md(不足m的右補空格,其他同上) printf("a=%-3d, b=%3d", a, b);%ld(輸
8、出長整型數(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(按長度m輸出字符串;不足m的空格,其它同上)printf("%3s", " printf("%3s", "OK&
9、quot;);");OK%-m.ns(按長度m輸出字符串;只取字符串左端n個字符; 不足m的右補空格,多于m或省略m的,自動取m=n)printf("%-7.1s, %-1.2s, %-.1s", "C", ", CH, C", "");printf(%f)%f(以小數(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ù)占6位,指數(shù)占5位,共13位)float z=123.456 ;printf("%e", z); 1.234560e+002scanf(參數(shù)1,參數(shù)2,參數(shù)n)從標(biāo)準(zhǔn)輸入文件輸入若干個任意類型的數(shù)據(jù)參數(shù)1是一個字符串,字符串中可以是格式說明字符, 也可以是要原樣輸入的字符;參數(shù)2參數(shù)n是地址表列,是&變量名、數(shù)組名或指針變量名格式說明字符串:% 輸入數(shù)據(jù)的長度lh*<形式字母>形式字母有d、o、x、c、s、f、e 帶*的輸入項不賦給
11、相應(yīng)的變量l用于輸入長整型或雙精度型數(shù)據(jù),h用于輸入短整型數(shù)據(jù)輸入數(shù)據(jù)時,以一個或多個空為間隔,也可以用回tab,不能用逗號分隔;對%c不需要分隔車鍵、跳符;遇到回車或字符則認(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為一無意義值scanf("%2d%*3d%2d", &a, &b);數(shù)據(jù)間輸入2個空格,一個匹配格式串中的空格,另一個分隔兩個數(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)不接收空格,以回車鍵作為輸入的結(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或回車分隔,如: 輸入2.5 3,則a為2,b為? 輸入213o9,則a為213,b為?scanf("%d%c%d", &
14、;a, &b, &c);輸入兩個整數(shù)之間的分隔符被b接收 輸入3 4,則a、b、c為3、空格、4 輸入3(回車)4,則a、b、c為3、回車、4 輸入q,則a、b、c為?其他常用庫函數(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)對于三角函數(shù),應(yīng)注意log10(x): 返回log10x的值fabs(x): 返回x的絕對值isalpha(ch): 檢查c
15、h是否字母isdigit(ch): 檢查ch是否數(shù)字(09) islower(ch): 檢查ch是否小寫字母isupper(ch): 檢查ch是否大寫字母字符函數(shù)(ctype.h)字符串函數(shù)(string.h)動態(tài)分配函數(shù)(stdlib.h/malloc.h)C與C+的常見不同之處3、變量定義的位置不同:C: C89:在復(fù)合語句的開頭定義好本復(fù)合語句需要用到的變量;(一些編譯器只支持在函數(shù)的開頭定義變量) 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語句的循環(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+的常見不同之處5、const關(guān)鍵字C
19、: C89沒有 C99有C+: 有C與C+的常見不同之處6、基本類型C:弱類型語言 C89:沒有邏輯類型 C99:有邏輯類型,關(guān)鍵字是_BoolC+:強類型語言 有邏輯類型,關(guān)鍵字是 boolC與C+的常見不同之處7、名空間:C: 有名空間(namespace)的概念(邏輯上相關(guān)的標(biāo)識符放在同一個名空間里,所以結(jié)構(gòu)類型名與其它普通變量名可以重名),但用戶不可 以指定名空間C+: 有名空間(namespace)的概念 用戶可以指定名空間ü using namespaceü 作用域運算符 :C與C+的常見不同之處8、內(nèi)聯(lián)函數(shù):C: C89:不支持 C99:支持,inlineC+
20、: 支持,inlineC與C+的常見不同之處9、函數(shù)名重載:C: 不支持C+: 支持p sqrt()C與C+的常見不同之處10、數(shù)組的長度:C: C89:常量(比如TC) C99:可以是變量(比如GCC)C+: 常量(比如VC6、VS2008) DevC+例外C與C+的常見不同之處11、C: 無C+: 有類型:C與C+的常見不同之處12、申請動態(tài)空間方式:C: 用庫函數(shù)malloc/C+: 用庫函數(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 4892-4:2024 EN Plastics - Methods of exposure to laboratory light sources - Part 4: Open-flame carbon-arc lamps
- 【正版授權(quán)】 ISO 21068-4:2024 EN Chemical analysis of raw materials and refractory products containing silicon-carbide,silicon-nitride,silicon-oxynitride and sialon - Part 4: XRD metho
- 【正版授權(quán)】 ISO 13506-1:2024 EN Protective clothing against heat and flame - Part 1: Test method for complete garments - Measurement of transferred energy using an instrumented manikin
- 2025年度嬰幼兒保育員職業(yè)資格認(rèn)證聘用合同
- 2025年度茶葉出口退稅代理服務(wù)合同-@-3
- 2025年度防盜門安裝工程安全生產(chǎn)責(zé)任合同
- 2025年度農(nóng)村土地征收補償安置協(xié)議
- 2025年度董事任期考核及聘任合同
- 2025年陳設(shè)藝術(shù)陶瓷制品項目發(fā)展計劃
- 動手實踐小班農(nóng)業(yè)勞動體驗計劃
- 部編版語文一年級下冊第一單元教材解讀
- 護士臨床護理組長
- 2025保安部年度工作計劃
- 土建、裝飾、維修改造等零星工程施工組織設(shè)計技術(shù)標(biāo)
- 寵物貓護理教學(xué)
- 高速公路養(yǎng)護作業(yè)安全培訓(xùn)內(nèi)容
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫
- 《大白菜種植栽培技》課件
- 北京工業(yè)大學(xué)《數(shù)據(jù)挖掘》2023-2024學(xué)年第一學(xué)期期末試卷
- 圖書借閱登記表
- 標(biāo)準(zhǔn)化機房改造方案
評論
0/150
提交評論