C語言基本語法元素清華大學(xué)_第1頁
C語言基本語法元素清華大學(xué)_第2頁
C語言基本語法元素清華大學(xué)_第3頁
C語言基本語法元素清華大學(xué)_第4頁
C語言基本語法元素清華大學(xué)_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機程序設(shè)計基礎(chǔ)第1章C語言基本語法元素【提綱】1.1數(shù)據(jù)型式1.2量與表達(dá)式1.3語句1.4基本輸入輸出1.5程序設(shè)計風(fēng)格2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系2【提綱】1.1數(shù)據(jù)型式1.2量與表達(dá)式1.3語句1.4基本輸入輸出1.5程序設(shè)計風(fēng)格2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系3【數(shù)據(jù)型式】整數(shù)型式:int定義整型數(shù)據(jù)對象有取值范圍,僅能表示特定區(qū)間內(nèi)整數(shù)值浮點數(shù)型式:double或float表示小數(shù),同樣具有取值范圍首選double字符串型式字符序列以整體形式作為數(shù)據(jù)對象使用配套zylib庫中的STRING型式和CSTRING型式表示字符串2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系4【1.1】【數(shù)據(jù)型式】整數(shù)型式定義a為整數(shù):inta;整數(shù)符號:確定是否表示負(fù)數(shù)signed、unsigned定義b為無符號整數(shù):unsignedintb;整數(shù)長短:確定整數(shù)取值范圍的大小long、short定義c為短整數(shù):shortintc;2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系5【1.1】【浮點數(shù)型式】例1.1編寫程序,求用戶輸入的兩個浮點數(shù)之和。2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系6#include<stdio.h>intmain(){doublea,b,sum;printf("Theprogramaddstworealnumbers.\n");printf("Thefirstrealnumber:");scanf("%lf",&a);printf("Thesecondrealnumber:");scanf("%lf",&b);sum=a+b;printf("%lf+%lf=%lf\n",a,b,sum);return0;}【1.1】【浮點數(shù)型式】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系7【1.1】【浮點數(shù)型式】例1.1編寫程序,求用戶輸入的兩個浮點數(shù)之和。2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系8#include<stdio.h>intmain(){floata,b,sum;printf("Theprogramaddstworealnumbers.\n");printf("Thefirstrealnumber:");scanf("%f",&a);printf("Thesecondrealnumber:");scanf("%f",&b);sum=a+b;printf("%f+%f=%f\n",a,b,sum);return0;}【1.1】【字符串型式】例1.2接受用戶輸入的用戶名,向用戶問好。2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系9#include<stdio.h>#include"zylib.h"http://使用雙引號包含配套庫intmain(){STRINGname;//定義于“zylib.h”庫中printf("Theprogramgivesagreetingtouser.\n");printf("Yourname:");//配套庫已實現(xiàn),獲取用戶輸入字符串,以文本行為單位name=GetStringFromKeyboard();//使用“%s”輸出字符串printf("Hello,%s\n",name);return0;}【1.1】【字符串型式】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系10【1.1】【工程項目設(shè)置】基本步驟步驟1:創(chuàng)建新工程,設(shè)置好工程項目的目錄步驟2:編寫程序代碼,將文件保存在該目錄下步驟3:將文件“zylib.h”與“zylib.c”拷貝到該目錄步驟4:在工程項目中添加上述兩個文件步驟5:在程序文件中使用雙引號包含頭文件“zylib.h”工程項目意義將程序組織成一個項目整體進行開發(fā)和管理一般需要創(chuàng)建獨立的工程項目才能開發(fā)程序特別說明:不同編譯器的工程項目設(shè)置并不相同2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系11【1.1】【工程項目設(shè)置】避免多次拷貝庫文件的方法為全部練習(xí)題創(chuàng)建總目錄,如“CExercises”在“CExercises”目錄下創(chuàng)建子目錄“zylib”,將文件“zylib.h”與“zylib.c”拷貝到“zylib”目錄下創(chuàng)建新工程時,為每道練習(xí)題在“CExercises”目錄下創(chuàng)建單獨子目錄(注意不要使用多級目錄),如“Ex0101”與“Ex0102”,編寫的程序文件都保存在該目錄下在工程項目中添加“zylib”子目錄下的庫文件“zylib.h”與“zylib.c”在程序中使用相對路徑包含頭文件“../zylib/zylib.h”(Linux和OSX)或者“..\zylib\zylib.h”(Windows,單雙反斜杠均可)2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系12【1.1】【提綱】1.1數(shù)據(jù)型式1.2量與表達(dá)式1.3語句1.4基本輸入輸出1.5程序設(shè)計風(fēng)格2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系13【量與表達(dá)式】表達(dá)式變量文字與常量賦值與初始化操作符與操作數(shù)混合運算與型式轉(zhuǎn)換2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系14【1.2】【表達(dá)式】表達(dá)式定義操作數(shù)與操作符序列,表達(dá)運算過程操作數(shù):文字、量、函數(shù)調(diào)用、括號操作符:運算邏輯表達(dá)式值:運算結(jié)果表達(dá)式求值:計算表達(dá)式值的過程按普通四則運算理解表達(dá)式求值過程,逐一計算表達(dá)式中所有操作符,直至完成2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系15【1.2】【變量】先定義再使用定義格式:變量型式變量名稱[,變量名稱];變量名稱應(yīng)具有唯一性:不允許重名變量四大基本特征(VANT)變量總是具有值(value)變量總是與內(nèi)存中地址(address)相對應(yīng)變量總是具有名稱(name)變量總是具有確定型式(type)2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系16【1.2】【文字】定義:程序中單獨出現(xiàn)的值例:3.14、100等整數(shù)型式文字十進制、十六進制、八進制浮點型式文字字符串型式文字2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系17【1.2】【整型文字】十進制表示:普通整數(shù)表示十六進制表示:逢十六進一,無正負(fù)號以“0x”或“0X”開頭的0~9、A/a~F/f序列例:0x55、0X1F、0x2a(0x5516=8510)八進制表示:逢八進一,無正負(fù)號以“0”開頭的0~7序列例:055(0558=4510)注意不要與十進制混淆2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系18【1.2】【浮點型文字】一般形式:小數(shù)表示法由整數(shù)部分、小數(shù)點與小數(shù)部分組成例:3.1416、-2.718281828指數(shù)形式:科學(xué)計數(shù)法由尾數(shù)部分、字符‘E’/‘e’與指數(shù)部分組成例:3.1416e3(3.14103)例:-2.718281828E-2(-2.71828182810-2)2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系19【1.2】【字符串型文字】雙引號引起來的字符序列例:"ProgramminginC"、"HelloWorld!\n"雙引號是字符串文字界定符,非字符串內(nèi)容轉(zhuǎn)義序列字符串不僅可以包含可打印字符,也可以包含表示特殊活動的特殊字符用反斜杠開始轉(zhuǎn)義序列,后跟一個或多個字符轉(zhuǎn)義序列整體作為單個字符處理,格式固定例:"\n"、"\\"2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系20【1.2】轉(zhuǎn)義序列功能與意義\a響鈴\b退格\f換頁\n換行\(zhòng)r返回到當(dāng)前行首\t水平制表鍵\v垂直制表鍵\0ASCII碼0\\反斜杠字符自身\'單引號字符(僅在字符常數(shù)中需要使用此方式)\"雙引號字符(僅在字符串常數(shù)中需要使用此方式)\ddd“ddd”表示八進制的該字符ASCII碼值\xhh“hh”表示十六進制的字符ASCII碼值,x為十六進制標(biāo)志【預(yù)定義轉(zhuǎn)義序列】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系21【1.2】【常量】常量的定義:程序運行期間值不可改變的量格式:const數(shù)據(jù)型式常量名稱=初始值;例:constintzero=0;常量的意義解決直接出現(xiàn)的文字無法解釋其意義的問題文字?魔數(shù)也!常量與變量常量不可改變值,其他與變量同定義常量時必須進行初始化常量初始值必須能夠在編譯期間計算出來2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系22【1.2】【賦值與初始化】賦值表達(dá)式格式:變量名稱=表達(dá)式例:a=0賦值語句:賦值表達(dá)式加分號格式:變量名稱=表達(dá)式;例:a=b+c;變量初始化在定義變量時直接設(shè)定初始值例:inta=0;2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系23【1.2】【賦值流程】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系24absummain()【1.2】【賦值流程】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系251absummain()a=1;【1.2】【賦值流程】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系2612absummain()a=1;b=2;【1.2】【賦值流程】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系27123absummain()a=1;b=2;sum=a+b;【1.2】【操作符與操作數(shù)】操作符分類一元操作符:只有單個操作數(shù),例如負(fù)號二元操作符:帶有兩個操作數(shù),例如加減乘除等三元操作符:帶有三個操作數(shù),例如條件表達(dá)式操作符優(yōu)先級與結(jié)合性優(yōu)先級確定計算順序,結(jié)合性確定計算方向操作符優(yōu)先級僅具有參考價值,C語言對于特殊表達(dá)式的計算有特別規(guī)定,并不完全遵照該規(guī)則如果拿不準(zhǔn),使勁加括號2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系28【1.2】【混合運算與型式轉(zhuǎn)換】例1.3編寫程序,詢問用戶姓名,向用戶問好,然后將用戶輸入的整數(shù)和實數(shù)相加,輸出結(jié)果。2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系29【1.2】#include<stdio.h>//#include"zylib.h"http://使用雙引號包含配套庫#include"../zylib/zylib.h"http://單獨庫目錄,Linux或OSX//#include"..\zylib\zylib.h"http://單獨庫目錄,Windowsintmain(){intn;doubled,sum;STRINGname;printf("Theprogramgivesagreetingtouser.\n");printf("andaddsanintegerandarealnumber.\n");printf("Yourname:");//獲取用戶輸入的單行字符串name=GetStringFromKeyboard();printf("Hello,%s\n",name);printf("Pleaseinputaninteger:");//獲取用戶輸入的一個整數(shù)n=GetIntegerFromKeyboard();printf("Pleaseinputarealnumber:");//獲取用戶輸入的一個實數(shù)d=GetRealFromKeyboard();sum=n+d;printf("%d+%lf=%lf\n",n,d,sum);return0;}【混合運算與型式轉(zhuǎn)換】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系30【1.2】【混合運算與型式轉(zhuǎn)換】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系31【1.2】【混合運算與型式轉(zhuǎn)換】隱式型式轉(zhuǎn)換:自動進行,程序員無法干預(yù)轉(zhuǎn)換原則:一般以不損失精度為前提賦值:右邊表達(dá)式的值先轉(zhuǎn)換為目標(biāo)型式后賦值顯式型式轉(zhuǎn)換:程序員手工進行的型式轉(zhuǎn)換格式:(轉(zhuǎn)換后的目標(biāo)型式)原表達(dá)式例:inta;doubleg=9.80665;a=g;//隱式型式轉(zhuǎn)換,小數(shù)部分舍棄,a值9a=(int)g*4;//顯式型式轉(zhuǎn)換,a值36a=(int)(g*4);//顯式型式轉(zhuǎn)換,a值392025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系32【1.2】【提綱】1.1數(shù)據(jù)型式1.2量與表達(dá)式1.3語句1.4基本輸入輸出1.5程序設(shè)計風(fēng)格2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系33【語句】簡單語句:表達(dá)式后跟分號例一:sum=n+d;例二:n=GetIntegerFromKeyboard();例三:printf("%d+%lf=%lf\n",n,d,sum);復(fù)合語句:花括號對封裝的語句序列例:{a=1;b=a+1;}空語句:單獨出現(xiàn)的分號滿足程序特定語法規(guī)則的要求作為未來添加程序代碼的占位標(biāo)記2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系34【1.3】【提綱】1.1數(shù)據(jù)型式1.2量與表達(dá)式1.3語句1.4基本輸入輸出1.5程序設(shè)計風(fēng)格2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系35【基本輸入輸出】基本事實輸入輸出是語言與算法必備功能C語言本身沒有輸入輸出語句或命令輸入輸出需使用標(biāo)準(zhǔn)庫函數(shù)輸入輸出函數(shù)原型位于頭文件“stdio.h”中典型輸入輸出函數(shù)格式化輸出函數(shù)printf()格式化輸入函數(shù)scanf()2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系36【1.4】【格式化輸出】格式化輸出函數(shù)printf()調(diào)用格式格式:printf("輸出格式規(guī)約字符串",輸出項列表);例一:printf("Helloworld!\n");例二:printf("Hello,%s.\n",name);例三:printf("%f+%f=%f\n",a,b,sum);例四:printf("%d+%lf=%lf\n",n,d,sum);%y:格式描述符%d:十進制整數(shù);%u:無符號整數(shù)%f:float型式浮點數(shù);%lf:double型式浮點數(shù)%c:單個字符;%s:字符串2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系37【1.4】【格式化輸出】例1.4編寫程序,按照下列格式輸出下述部分省市統(tǒng)計數(shù)據(jù)。2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系38【1.4】場寬精度左右對齊【場寬?精度?對齊】輸出格式%[對齊標(biāo)志][場寬][.精度]格式描述符對齊標(biāo)志:確定每列左側(cè)還是右側(cè)對齊缺省右對齊,左對齊使用“-”例:“%-d”表示按照左對齊格式輸出整數(shù)場寬:確定每列占用多少字符寬度,數(shù)據(jù)輸出一般不會截斷確定輸出最小寬度,超出部分照常輸出例:“%3d”表示按照右對齊、占三位格式輸出整數(shù),若整數(shù)長度超出三位,則照常輸出數(shù)據(jù)2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系39【1.4】【場寬?精度?對齊】精度:確定輸出多少位數(shù)據(jù)以保證其精度精度數(shù)字前有小數(shù)點標(biāo)志,在場寬中占用1位例:“%-5.2f”表示按照左對齊,整體占5位,且小數(shù)點后2位的格式輸出浮點數(shù)數(shù)據(jù)截斷例一:按“%-5.2f”格式輸出12.3456,結(jié)果為12.35,注意四舍五入例二:按“%-5.2f”格式輸出123.456,結(jié)果為123.46,注意截斷后的數(shù)據(jù)仍然超出場寬限制,照常輸出字符串截斷輸出特例:“%13.13s”表示字符串為13位寬,多余部分截斷2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系40【1.4】#include<stdio.h>//#include"zylib.h"http://使用雙引號包含配套庫#include"../zylib/zylib.h"http://單獨庫目錄,Linux或OSX//#include"..\zylib\zylib.h"http://單獨庫目錄,Windowsintmain(){STRINGpro1,pro2,pro3,pro4,pro5;doublearea1,area2,area3,area4,area5;doublepop1,pop2,pop3,pop4,pop5;pro1="Anhui";area1=139600;pop1=6461;pro2="Beijing";area2=16410.54;pop2=1180.70;pro3="Chongqing";area3=82400;pop3=3144.23;pro4="Shanghai";area4=6340.50;pop4=1360.26;pro5="Zhejiang";area5=101800;pop5=4894;【格式化輸出示例代碼】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系41【1.4】printf("-------------------------------------------\n");printf("ProvinceArea(km2)Population(10K)\n");printf("-------------------------------------------\n");printf("%-13.13s%9.2lf%-.2lf\n",pro1,area1,pop1);printf("%-13.13s%9.2lf%-.2lf\n",pro2,area2,pop2);printf("%-13.13s%9.2lf%-.2lf\n",pro3,area3,pop3);printf("%-13.13s%9.2lf%-.2lf\n",pro4,area4,pop4);printf("%-13.13s%9.2lf%-.2lf\n",pro5,area5,pop5);printf("-------------------------------------------\n");return0;}【格式化輸出示例代碼】2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系42【1.4】【格式化輸入】格式化輸入函數(shù)scanf()調(diào)用格式格式:scanf("輸入格式規(guī)約字符串",輸入項列表);例:scanf("%d,%d",&a,&b);特別說明輸入格式碼與輸出格式碼基本相同用戶在終端輸入的數(shù)據(jù)逐一存放到輸入項列表中變量所在的地址空間;普通變量的名稱前需有取址操作符“&”輸入項之外的其他字符:格式描述串中其他字符需在輸入數(shù)據(jù)時一并輸入,不能遺漏、省略或不一致2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系43【1.4】【格式化輸入】特別說明輸入項的分隔:無分隔字符的相連項在輸入時使用空格、Tab鍵或回車鍵分隔盡量不用scanf()使用zylib庫中的三個函數(shù)代替整數(shù)輸入:GetIntegerFromKeyboard()浮點數(shù)輸入:GetRealFromKeyboard()字符串輸入:GetStringFromKeyboard()2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系44【1.4】【提綱】1.1數(shù)據(jù)型式1.2量與表達(dá)式1.3語句1.4基本輸入輸出1.5程序設(shè)計風(fēng)格2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系45【程序設(shè)計風(fēng)格】注釋命名規(guī)范宏與常量賦值語句簡寫形式源代碼排版2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系46【1.5】【注釋】注釋目的:增強程序可讀性、可維護性注釋格式格式一:“/*”與“*/”對,注釋其中的部分,可出現(xiàn)在程序任意位置例一:int/*此處內(nèi)容為注釋*/a;格式二:“//”,注釋從此直至文本行結(jié)束例二:inta;//此處內(nèi)容為注釋特別說明同一種注釋標(biāo)記不可以嵌套“//”不跨行,“/*”與“*/”對可跨行2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系47【1.5】【命名規(guī)范】字符集:ASCII字符集大小寫英文字母、數(shù)字、部分特殊符號標(biāo)識符以下劃線或字母開頭,由下劃線、字母、數(shù)字組成,表示常量、變量、函數(shù)、型式等名稱,區(qū)分大小寫關(guān)鍵字:系統(tǒng)專用的具有特定意義的標(biāo)識符預(yù)定義標(biāo)識符:編譯命令與庫函數(shù)名,具有特定意義,一般不能重新定義用戶定義標(biāo)識符:用戶根據(jù)需要定義,主要是為了使程序容易閱讀、理解與維護2025/2/12清華大學(xué)計算機科學(xué)與技術(shù)系48【1.5】宏定義:預(yù)處理命令#define一旦定義,可以代替常量使用例:#definePI3.14宏定義不是常量應(yīng)優(yōu)先使用常量而不是宏目的與意義增強程序可讀性使用有意義的名字命名增強程序可維護性將值定義為符號常量,則程序中僅需要修

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論