版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
全國(guó)計(jì)算機(jī)等級(jí)考試
(NCRE)教師簡(jiǎn)介姓名:范老師性別:男座右銘:好人一生平安,我是好人。對(duì)國(guó)家貢獻(xiàn):獲得國(guó)家認(rèn)可教師資格認(rèn)證。對(duì)社會(huì)貢獻(xiàn):培養(yǎng)了一大批有為青年。對(duì)家庭貢獻(xiàn):有一個(gè)妻子。對(duì)妻子貢獻(xiàn):一個(gè)孩子。對(duì)孩子貢獻(xiàn):沒有家聯(lián)系方式群:195985189學(xué)習(xí)C語言加群195985189
全國(guó)計(jì)算機(jī)等級(jí)考試
(NCRE)教師簡(jiǎn)介C語言最早的計(jì)算機(jī)語言。
最接近人類思維的語言。
最基礎(chǔ)的軟件設(shè)計(jì)語言。
最經(jīng)典的數(shù)據(jù)結(jié)構(gòu)語言。學(xué)習(xí)C語言加群195985189怎么學(xué)好C語言???1.了解C語言的運(yùn)行環(huán)境。2.熟悉關(guān)鍵字的使用語法。3.掌握各種解決問題的手段或方法。4.反復(fù)練習(xí)例題,從中反饋。5.學(xué)會(huì)做夢(mèng)學(xué)習(xí)C語言加群195985189目錄第1章程序設(shè)計(jì)基本概念第2章C程序設(shè)計(jì)的初步知識(shí)第3章順序結(jié)構(gòu)第4章選擇結(jié)構(gòu)第5章循環(huán)結(jié)構(gòu)第6章字符型數(shù)據(jù)第7章函數(shù)第8章地址和指針第9章數(shù)組第10章字符串第11章對(duì)函數(shù)的進(jìn)一步討論第12章C語言中用戶標(biāo)識(shí)符的作用域和存儲(chǔ)類第13章編譯預(yù)處理和動(dòng)態(tài)存儲(chǔ)分配第14章結(jié)構(gòu)體、共用體和用戶定義類型第15章位運(yùn)算第16章文件第17章上機(jī)指導(dǎo)學(xué)習(xí)C語言加群195985189C語言的特點(diǎn)C語言是一種結(jié)構(gòu)化語言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。C語言的表現(xiàn)能力和處理能力極強(qiáng)。它不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問內(nèi)存的物理地址,進(jìn)行位(bit)一級(jí)的操作。由于C語言實(shí)現(xiàn)了對(duì)硬件的編程操作,因此C語言集高級(jí)語言和低級(jí)語言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā)。此外,C語言還具有效率高,可移植性強(qiáng)等特點(diǎn)。因此廣泛地移植到了各類各型計(jì)算機(jī)上,從而形成了多種版本的C語言。學(xué)習(xí)C語言加群195985189Visualc++6.0簡(jiǎn)介VisualC++6.0,簡(jiǎn)稱VC或者VC6.0,是微軟推出的一款C++編譯器,將“高級(jí)語言”翻譯為“機(jī)器語言(低級(jí)語言)”的程序。VisualC++是一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出VisualC++1.0后,隨著其新版本的不斷問世,VisualC++已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。雖然微軟公司推出了VisualC++.NET(VisualC++7.0),但它的應(yīng)用的很大的局限性,只適用于Windows2000、WindowsXP和WindowsNT4.0。所以實(shí)際中,更多的是以VisualC++6.0為平臺(tái)。
VisualC++6.0不僅是一個(gè)C++編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrateddevelopmentenvironment,IDE)。VisualC++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lassWizard等開發(fā)工具。這些組件通過一個(gè)名為DeveloperStudio的組件集成為和諧的開發(fā)環(huán)境。編輯本段缺點(diǎn)由于C++是由C語言發(fā)展起來的,也支持C語言的編譯。6.0版本是使用最多的版本,很經(jīng)典。最大的缺點(diǎn)是對(duì)于模版的支持比較差?,F(xiàn)在最新補(bǔ)丁為SP6,推薦安裝,否則易出現(xiàn)編譯時(shí)假死狀態(tài)。學(xué)習(xí)C語言加群1959851891.1程序和程序設(shè)計(jì)C語言源程序C語言編譯程序二進(jìn)制機(jī)器指令(目標(biāo)程序).C.OBJ高級(jí)語言機(jī)器語言C語言連接程序可執(zhí)行文件.EXE考點(diǎn)算法的基本特征①有窮性、②確定性、③可行性④有零個(gè)或多個(gè)輸入⑤有一個(gè)或多個(gè)輸出結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)考點(diǎn)總結(jié):由以上3種基本結(jié)構(gòu)組成的算法可以完成任何復(fù)雜的問題.考點(diǎn)總結(jié):用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出.學(xué)習(xí)C語言加群195985189N-S圖由一些特定意義的圖形、流程線及簡(jiǎn)要的文字說明構(gòu)成,它能清晰明確地表示程序的運(yùn)行過程。在使用過程中,人們發(fā)現(xiàn)流程線不一定是必需的,為此,人們?cè)O(shè)計(jì)了一種新的流程圖,它把整個(gè)程序?qū)懺谝粋€(gè)大框圖內(nèi),這個(gè)大框圖由若干個(gè)小的基本框圖構(gòu)成,這種流程圖簡(jiǎn)稱N-S圖學(xué)習(xí)C語言加群195985189程序的結(jié)構(gòu)化結(jié)構(gòu)是指系統(tǒng)內(nèi)各個(gè)組成要素之間的相互聯(lián)系、相互作用的框架。結(jié)構(gòu)化開發(fā)方法提出了一組提高軟件結(jié)構(gòu)合理性的準(zhǔn)則,如分解與抽象、模塊獨(dú)立性、信息隱蔽等。針對(duì)軟件生存周期各個(gè)不同的階段,它有結(jié)構(gòu)化分析(SA)、結(jié)構(gòu)化設(shè)計(jì)(SD)和結(jié)構(gòu)化程序設(shè)計(jì)(SP)等方法學(xué)習(xí)C語言加群195985189程序的模塊化一個(gè)模塊就是一個(gè)獨(dú)立的功能通??荚嚩?jí)的時(shí)候總是考試一個(gè)模塊的編寫學(xué)習(xí)C語言加群195985189習(xí)題1.1在VC6.0環(huán)境中用RUN命令運(yùn)行一個(gè)C程序時(shí),這時(shí)所運(yùn)行的程序的后綴是_________。1.2C語言源程序文件名的后綴是_________;經(jīng)過編譯后,生成文件的后綴是_________;經(jīng)過連接后,生成文件的后綴是_________。1.3結(jié)構(gòu)化程序由_________、_________、_________三種基本結(jié)構(gòu)組成。.exe.c.obj.exe順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)學(xué)習(xí)C語言加群195985189第2章C程序設(shè)計(jì)的初步知識(shí)2.1簡(jiǎn)單C語言程序的構(gòu)成和格式2.2標(biāo)識(shí)符、常量和變量2.3整型數(shù)據(jù)2.4實(shí)型數(shù)據(jù)2.5算術(shù)表達(dá)式2.6賦值表達(dá)式2.7自加、自減運(yùn)算符和逗號(hào)運(yùn)算符學(xué)習(xí)C語言加群1959851892.1簡(jiǎn)單C語言程序的構(gòu)成和格式本節(jié)將通過一個(gè)簡(jiǎn)單的程序例子,介紹C程序的一些基本構(gòu)成和格式,使大家對(duì)C語言程序有一個(gè)初步的了解。例2.1
已知矩形的兩條邊長(zhǎng)(用a表示寬,b表示長(zhǎng)),求矩形的面積(area)。#include<stdio.h>main(){doublea,b,area;a=1.2;b=3.6;area=a*b;printf(“a=%f,b=%f,area=%f\n”,a,b,area);}a=1.200000,b=3.600000,area=4.320000注意:1.C程序由函數(shù)組成,一個(gè)程序必須有一個(gè)且只能有一個(gè)主函數(shù)(main),C程序總是從主函數(shù)開始執(zhí)行,并且也是從它結(jié)束的。2.函數(shù)體必須放在一對(duì)花括號(hào)“{}”內(nèi),在函數(shù)體中,通常有定義(說明)語句和執(zhí)行語句,定義語句應(yīng)出現(xiàn)在執(zhí)行語句之前,每條語句后面的分號(hào)不可少。多條語句可以寫在同一行上,并且一條語句也可以寫在多行上。3.C程序中的注釋必須放在"/*"和"*/"之間,"/"和"*"之間不允許有空格。"/*"和"*/"之間不允許再插入"/*"或"*/"。注釋可以出現(xiàn)在程序中任意位置。/*包含頭文件*//*主函數(shù),程序的入口*//*聲明部分,定義了3實(shí)型個(gè)變量*//*給變量a賦值*//*給變量b賦值*//*將a*b的結(jié)果賦值給變量area*//*分別輸出矩形的兩條邊長(zhǎng)和面積*/abarea2函數(shù)體學(xué)習(xí)C語言加群1959851892.2標(biāo)識(shí)符、常量和變量2.2.1標(biāo)識(shí)符在C語言中,有許多東西都需要命名,如變量名、函數(shù)名、數(shù)組名等,在命名的時(shí)候都必須遵守一定的規(guī)則,按此規(guī)則命名的符號(hào)稱為標(biāo)識(shí)符。在C語言中,合法的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成。遵守以下規(guī)則命名:必須以字母(大小寫皆可)或下劃線開頭。隨后可跟若干個(gè)(包括0個(gè))字母、數(shù)字、下劃線。標(biāo)識(shí)符的長(zhǎng)度各個(gè)系統(tǒng)不同,最好不要超過8個(gè)字符。如:areaPI_inia_arrays1234P101p(合法)456Pcade-yw.wa&b(不合法)注意C語言區(qū)分大小寫,如page、Page是兩個(gè)不同的標(biāo)識(shí)符。學(xué)習(xí)C語言加群1959851892.2標(biāo)識(shí)符、常量和變量2.2.1標(biāo)識(shí)符C語言的標(biāo)識(shí)符可以分為以下三類:a)關(guān)鍵字b)預(yù)定義標(biāo)識(shí)符c)用戶標(biāo)識(shí)符關(guān)鍵字:
C語言規(guī)定了一批標(biāo)識(shí)符,它們?cè)诔绦蛑卸即碇潭ǖ暮x,不能另作它用。例如,用來說明變量類型的標(biāo)識(shí)符int、float、double以及if語句中的if、else等都已有專門的用途,它們不能再用作變量名或函數(shù)名。注意,所有的關(guān)鍵字都必須小寫。C語言中的關(guān)鍵字請(qǐng)參考附錄4。預(yù)定義標(biāo)識(shí)符:這些標(biāo)識(shí)符在C語言中也都有特定的含義,如C語言提供的庫函數(shù)的名字(如include)和預(yù)編譯處理命令(如define)等。
用戶標(biāo)識(shí)符:由用戶根據(jù)需要定義的標(biāo)識(shí)符稱為用戶標(biāo)識(shí)符。一般用來給變量、函數(shù)、數(shù)組或文件等命名。如例2.1中的a,b,area三個(gè)變量學(xué)習(xí)C語言加群1959851892.2標(biāo)識(shí)符、常量和變量2.2.2常量在程序運(yùn)行過程中,其值不能被改變的量,稱為常量。
常量整型常量:實(shí)型常量(符點(diǎn)型)字符常量:字符串常量:?jiǎn)尉刃停弘p精度型:由上述可見,常量的類型從字面形式上就可以區(qū)分開來,我們稱此常量為字面常量。12、-1、0‘A’、‘d’”NCRE”、“Beijing”3.14159、-2.71828、0.012.5678、-12.5678學(xué)習(xí)C語言加群1959851892.2標(biāo)識(shí)符、常量和變量2.2.3符號(hào)常量在C語言中,可以用一個(gè)符號(hào)名來代表一個(gè)常量,稱為符號(hào)常量。但是這個(gè)符號(hào)名必須在程序中用(#define)進(jìn)行特別的“指定"。例2.2
計(jì)算圓面積和周長(zhǎng),此程序中將如何教大家使用符號(hào)常量。#include“stdio.h”#definePI3.14159main(){doubler,s,l;r=5.0;s=PI*r*r;l=2*PI*r;printf(“s=%f,l=%f\n”,s,l);}S=78.539750,l=31.415900/*包含頭文件*//*定義符號(hào)常量,符號(hào)常量名為PI,用PI來代表3.14159*//*主函數(shù),程序的入口*//*聲明部分,定義了3實(shí)型個(gè)變量*//*給變量r賦值*//*計(jì)算圓的面積*//*計(jì)算圓的周長(zhǎng)*//*分別圓的面積和周長(zhǎng)*/注意習(xí)慣上,符號(hào)常量名用大寫,變量名用小寫,以示區(qū)別函數(shù)體rsl5.078.5397531.4159學(xué)習(xí)C語言加群1959851892.2標(biāo)識(shí)符、常量和變量2.2.4變量1.所謂變量是指在程序運(yùn)行過程中可以改變的量。如下程序:#include<stdio.h>main(){doublea,b;a=1.5;b=2.5;printf(“%f%f\n”,a,b);a=a+1;b=b+1;printf(“%f%f\n”,a,b);}ab1.5000002.5000002.在程序中,聲明變量就是在計(jì)算機(jī)內(nèi)存中申請(qǐng)了某個(gè)內(nèi)存單元。對(duì)變量進(jìn)行賦值,實(shí)質(zhì)上就是把數(shù)據(jù)存入該變量所代表的存儲(chǔ)單元中。3.C語言規(guī)定,程序中所有變量都必須先定義后使用。如程序例2.1、例2.2。內(nèi)存空間ab2.5000003.5000002.53.5學(xué)習(xí)C語言加群1959851892.3整型數(shù)據(jù)2.3.1整型常量在C語言中,按整型常量的表示形式可以有三種形式。整型常量由0~9十個(gè)數(shù)字組成,如32767、-32768、0等。由0~7八個(gè)數(shù)字組成,如010、011、016等。注意,最高位必須用0作引導(dǎo)符,與十進(jìn)制和十六進(jìn)制區(qū)分。如:018,為不合法的八進(jìn)制常量。由0~9十個(gè)數(shù)字和a~f(A~F)六個(gè)字母組成,如0x10、0Xde、0xf注意,最高位必須用0x(0X)作引導(dǎo)符,與十進(jìn)制和八進(jìn)制區(qū)分。如:oxff、0X12H,都為不合法的十六進(jìn)制常量。在C語言中,按整型常量的表示范圍可以分為四種。在C語言中,八進(jìn)制數(shù)和十六進(jìn)制數(shù)只能是正整數(shù)。注意如:-077、-0X11、01.0等,(不合法)短整型基本整型長(zhǎng)整型無符號(hào)整型三種進(jìn)制之間的轉(zhuǎn)換十六進(jìn)制常量:八進(jìn)制常量:十進(jìn)制常量:學(xué)習(xí)C語言加群1959851892.3整型數(shù)據(jù)2.3.2整型變量整型變量是用來存放整型常量的工具。可以把整型變量抽象為一個(gè)盒子。由于整型常量有短整型、基本整型、長(zhǎng)整型和無符號(hào)整型四種類型,既然整型變量是用來存放整型數(shù)據(jù)的,那整型變量也要分為四種對(duì)應(yīng)類型的整型變量,以方便存放不同類型的整型常量。在此我們只介紹基本整型變量。也叫整型變量。在C語言中,整型變量我們需要用一個(gè)符號(hào)來表示它,即整型變量名。例如:intk;
/*定義k為整型變量,k為變量名*/關(guān)鍵字int是用來說明變量k的類型為整型。又如:inti,j,k;
/*定義i、j、k為整型變量*/inti;intj;intk;相同注意在同一行上使用關(guān)鍵字定義多個(gè)變量時(shí),變量之間用逗號(hào)隔開。所有定義語句后必須以一個(gè)“;”號(hào)結(jié)束,表示它是一條語句。學(xué)習(xí)C語言加群1959851892.3整型數(shù)據(jù)2.3.2整型變量在前面已經(jīng)講過,聲明變量就是在計(jì)算機(jī)內(nèi)存中申請(qǐng)某個(gè)內(nèi)存單元。在VC6.0環(huán)境中,用關(guān)鍵字int聲明變量時(shí),計(jì)算機(jī)將會(huì)為每個(gè)變量開辟4字節(jié)(32個(gè)二進(jìn)制位)的內(nèi)存單元。例如,當(dāng)前的某段內(nèi)存空間如右圖所示。有如下程序段。內(nèi)存空間地址2000200120022003200420052006200720112010200920082012inti;intj;i=100;j=200;C語言規(guī)定,可以在定義變量的同時(shí)給變量賦初值,該過程稱為變量的初始化。例如:#include<stdio.h>main(){inti=1,j=0,k=2;::}ij100200/*在聲明變量的同時(shí),為三個(gè)變量賦值*/學(xué)習(xí)C語言加群1959851892.3整型數(shù)據(jù)2.3.3整型數(shù)據(jù)的分類不同的計(jì)算機(jī)系統(tǒng)對(duì)整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍有不同規(guī)定,下表列出了在VC6.0中定義的整型數(shù)所占用的字節(jié)數(shù)和數(shù)值范圍。
由于整型數(shù)據(jù)在C語言中分為上述幾類,比如123。它是屬于哪一類型的?int123L、345l、0L、123456L123U、345u、0U、123456U123LU、345lu、0LU、123456LUlongunsignedunsignedlong學(xué)習(xí)C語言加群1959851892.3整型數(shù)據(jù)2.3.4整數(shù)在內(nèi)存中的存儲(chǔ)形式計(jì)算機(jī)中,內(nèi)存儲(chǔ)器的最小的存儲(chǔ)單位稱為“位(bit)”,每一位中只能存放0或1,因此稱為二進(jìn)制位。8個(gè)二進(jìn)制位組成一個(gè)“字節(jié)”,并給每一個(gè)字節(jié)分配一個(gè)地址。數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式進(jìn)行存放的。一、正整數(shù)正整數(shù)在內(nèi)存中是以“原碼”形式存放的。如果定義了一個(gè)short類型變量i:shorti;i=5;/*聲明i為短整型變量*//*給i賦以整數(shù)5*/十進(jìn)制數(shù)5的二進(jìn)制形式為101,在VC6.0中,由于短整型變量在內(nèi)存中占2個(gè)字節(jié),ii符號(hào)位:0代表正整數(shù),1代表負(fù)整數(shù)二、負(fù)整數(shù)負(fù)整數(shù)在內(nèi)存中是以“補(bǔ)碼”形式存放的。5學(xué)習(xí)C語言加群1959851892.4實(shí)型數(shù)據(jù)2.4.1實(shí)型常量在C語言中,實(shí)型常量的表示形式有兩種。實(shí)型常量由數(shù)字和小數(shù)點(diǎn)組成,如0.123、.123、123.、0.0指數(shù)形式:如:0.23026x101
2.3026x10023.026x10-10.23026E12.3026e023.026e-1注意E(e)前后必須有數(shù)字,并且后面的必須為整型數(shù)。.3e33.0e33.e3(合法)3ee355e0.3(不合法)小數(shù)形式:學(xué)習(xí)C語言加群1959851892.4實(shí)型數(shù)據(jù)2.4.2實(shí)型變量單精度型變量定義的形式如下:floata,b,c;雙精度型變量定義的形式如下:doublex,y,z;實(shí)數(shù)在內(nèi)存中是以“指數(shù)”形式存放的。也可以在定義實(shí)型變量的同時(shí),對(duì)變量進(jìn)行初始化。例如:#include<stdio.h>main(){floata=1.5,b=.5,c=0.0;
doublex=1.5,y=.5,z=0.0;:}/*在聲明變量的同時(shí),為三個(gè)變量賦值*//*在聲明變量的同時(shí),為三個(gè)變量賦值*/學(xué)習(xí)C語言加群1959851892.5算術(shù)表達(dá)式2.5.1基本的算術(shù)運(yùn)算符+(加法運(yùn)算符,或正值運(yùn)算符)如:1+2、+3.9-(減法運(yùn)算符,或負(fù)值運(yùn)算符)如:3-4、-54*(乘法運(yùn)算符)如:1.2*3.2、3*4、2*x/(除法運(yùn)算符)如:5/3、(a+b)/(x+y)單目運(yùn)算符雙目運(yùn)算符兩個(gè)整數(shù)相除,其值仍然為整數(shù)。如:5/3值為1、1/2值為0。兩個(gè)實(shí)數(shù)相除,其值仍然為實(shí)數(shù)。如:1.0/2.0值為0.5。除數(shù)、被除數(shù)只要有一個(gè)為實(shí)數(shù)時(shí),系統(tǒng)將自動(dòng)進(jìn)行類型轉(zhuǎn)換,轉(zhuǎn)換為double型。如:1/2.0=0.5、
1.0/2.0=0.5最后結(jié)果的類型為double型。%(求余運(yùn)算符)注意:%運(yùn)算符的兩側(cè)必須為整型數(shù)據(jù)。如:7%4的結(jié)果為3。-7%4、7%-4、-7%-4的結(jié)果為多少?-33-3結(jié)果的符號(hào)和被除數(shù)相同學(xué)習(xí)C語言加群1959851892.5算術(shù)表達(dá)式2.5.2運(yùn)算符的優(yōu)先級(jí)、結(jié)合性和算術(shù)表達(dá)式一、優(yōu)先級(jí)()+-*/%+-單目雙目同級(jí)同級(jí)同級(jí)高低二、結(jié)合性單目運(yùn)算符的結(jié)合性是從右往左的,即表達(dá)式從右往左進(jìn)行計(jì)算,稱為右結(jié)合。其余運(yùn)算符的結(jié)合性是從左往右的。即表達(dá)式從左往右進(jìn)行計(jì)算,稱為左結(jié)合。例如:(5+1)/25+1/25*-25*(-2)三、算術(shù)表達(dá)式用算術(shù)運(yùn)算符和一對(duì)圓括號(hào)將運(yùn)算量(或稱操作數(shù))連接起來的、符合C語法的表達(dá)式稱為算術(shù)表達(dá)式。算術(shù)表達(dá)式中,運(yùn)算對(duì)象可以是常量、變量和函數(shù)等。例如:2+sqrt(c)*b。5-103學(xué)習(xí)C語言加群1959851892.5算術(shù)表達(dá)式2.5.3強(qiáng)制類型轉(zhuǎn)換表達(dá)式表達(dá)式的形式如下:(類型名)(表達(dá)式)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符作用:可以利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成想要的類型。例如:(int)3.234(double)(10%3)3注意int3.234(錯(cuò)誤)(double)10%3(錯(cuò)誤)例:閱讀如下程序,關(guān)于強(qiáng)制類型轉(zhuǎn)換。#include<stdio.h>main(){doublea;intb;a=3.6;b=(int)a;printf(“a=%f,b=%d\n”,a,b);}a=3.600000,b=31.0ab3.63學(xué)習(xí)C語言加群1959851892.6賦值表達(dá)式2.6.1賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符:=賦值表達(dá)式:由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式,它的形式如下:
變量名=表達(dá)式
賦值號(hào)的左邊必須是一個(gè)代表某一存儲(chǔ)單元的變量名。賦值運(yùn)算的功能是先求出右邊表達(dá)式的值,然后把此值賦給左邊的變量。例如,若a和b都被定義成int類型變量
a=10;
/*把常量10賦給變量a*/
b=a;
/*把a(bǔ)中的值賦給變量b,a中的值不變*/注意1.賦值運(yùn)算符的優(yōu)先級(jí)別只高于逗號(hào)運(yùn)算符,比其它任何運(yùn)算符的優(yōu)先級(jí)都低,且具有自右向左的結(jié)合性。例如:a=2+7/32.賦值運(yùn)算符的左側(cè)只能是變量不能是常量或表達(dá)式。如a+b=c是不合法的賦值表達(dá)式。3.賦值號(hào)右邊的表達(dá)式也可以是一個(gè)賦值表達(dá)式,如a=b=7+1。4.作為一個(gè)表達(dá)式,它自己也應(yīng)該有一個(gè)值,C語言規(guī)定最左邊變量中所得到的新值就是賦值表達(dá)式的值。學(xué)習(xí)C語言加群1959851892.6賦值表達(dá)式2.6.2復(fù)合賦值表達(dá)式在賦值運(yùn)算符”=”之前加上其它運(yùn)算符可以構(gòu)成復(fù)合賦值運(yùn)算符。+=-=*=/=%=<<=>>=&=^=|=
等價(jià)于
n=n+1
等價(jià)于
a=a+3
等價(jià)于
n=n*(m+3)注意:有括號(hào)例2.3已有變量a,初始值為9,計(jì)算表達(dá)式a+=a-=a+a的值。a表達(dá)式如:n+=1a+=3n*=m+3a+=a-=a+a918a+=a-=18a=a-18-9-9a+=-9a=a+-9a=a+(-9)-18-18a+=a-=a+a的值是:-18學(xué)習(xí)C語言加群1959851892.6賦值表達(dá)式2.6.3賦值運(yùn)算中的類型轉(zhuǎn)換在賦值運(yùn)算中,只有在賦值號(hào)右側(cè)表達(dá)式的類型與左側(cè)變量類型完全一致時(shí),賦值操作才能進(jìn)行。
如:inta;doubleb;a=10;b=3.5;如果賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類型不一致,在賦值前,系統(tǒng)將自動(dòng)先把右側(cè)表達(dá)式求得的數(shù)值,按賦值號(hào)左邊變量的類型進(jìn)行轉(zhuǎn)換,也可以用強(qiáng)制類型轉(zhuǎn)換的方式,人為地進(jìn)行轉(zhuǎn)換后賦給賦值號(hào)左邊的變量。a10b3.5如:inta;doubleb;a=20.5;b=15;a20b15.03.在C語言的表達(dá)式中(不包括賦值表達(dá)式),如果運(yùn)算符兩邊的數(shù)據(jù)類型不相同,將進(jìn)行類型之間的轉(zhuǎn)換。轉(zhuǎn)換規(guī)則如下:doublelongunsignedintfloatchar,short低高如:10+97+1.5-8765.1234*988765.1234*98.0double學(xué)習(xí)C語言加群1959851892.7自加、自減運(yùn)算符和逗號(hào)運(yùn)算符2.7.1自加運(yùn)算符“++”和自減運(yùn)算符“--”++(自加運(yùn)算符)--(自減運(yùn)算符)1.++、--運(yùn)算符是單目運(yùn)算符,運(yùn)算對(duì)象只能變量,不能是常量和表達(dá)式。2.++和--運(yùn)算符的結(jié)合方向是"自右至左"。i++、++ii--、--ii=i+1i=i-1例如:inti=5;i++;inti=5;++i;inti=5;i--;inti=5;--i;i:表達(dá)式:運(yùn)算規(guī)則運(yùn)算符在前,先計(jì)算,后賦值運(yùn)算符在后,先賦值,后計(jì)算例如:inti=3;
-i++;
inti=3;-(i++);i:表達(dá)式:思考:程序示例,自增自減運(yùn)算#include<stdio.h>main(){inti=0,j;j=i++;printf(“%d,%d\n”,i,j);i=0;
j=++i;printf(“%d,%d\n”,i,j);}上機(jī)練習(xí)656645444-3學(xué)習(xí)C語言加群1959851892.7自加、自減運(yùn)算符和逗號(hào)運(yùn)算符2.7.2逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,(逗號(hào)運(yùn)算符)用逗號(hào)將表達(dá)式連接起來的式子稱為逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,…,表達(dá)式n表達(dá)式之間用逗號(hào)進(jìn)行連接1.逗號(hào)運(yùn)算符的結(jié)合性為從左到右,因此逗號(hào)表達(dá)式將從左到右進(jìn)行運(yùn)算。如:i=3,i++,++i,i+5
i表達(dá)式33i表達(dá)式43i表達(dá)式55i表達(dá)式510逗號(hào)表達(dá)式的值為2.在所有運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)別最低。學(xué)習(xí)C語言加群195985189習(xí)題一、選擇題2.1以下選項(xiàng)中正確的整型常量是A12.B-20C1,000D4562.2以下選項(xiàng)中正確的實(shí)型常量是A0B3.1415C0.329X102D.8712.3以下選項(xiàng)中不正確的實(shí)型常量是A2.607E-1B0.8103e2C-77.77D456e-22.4以下選項(xiàng)中不合法的用戶標(biāo)識(shí)符是Aabc.cBfileCMainDPRINTF2.5以下選項(xiàng)中不合法的用戶標(biāo)識(shí)符是
A_123BprintfCA$DDim2.6C語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是A%B/C!D**2.7可在C程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是AvoidBas_b3CForD2cdefine_123-abcDOWORDIfcaseSIGBDBABCAB學(xué)習(xí)C語言加群1959851892.8若變量已正確定義并賦值,符合C語言語法的表達(dá)式是Aa=a+7;Ba=7+b+c,a++Cint(12.3%4)Da=a+7=c+b2.9以下中敘述中正確的是Aa是實(shí)型變量,C允許進(jìn)行賦值a=10,但不可以這樣說:實(shí)型變量中允許存放整型值B在賦值表達(dá)式中,賦值號(hào)左邊既可以是變量也可以是任意表達(dá)式C執(zhí)行表達(dá)式a=b后,在內(nèi)存中a和b存儲(chǔ)單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?D已有a=3,b=5,當(dāng)執(zhí)行了表達(dá)式a=b,b=a之后,使a中的值為5,b中的值為32.10以下中敘述中正確的是A在C程序中無論是整數(shù)還是實(shí)數(shù),只要在允許的范圍內(nèi)都能準(zhǔn)確無誤的表示BC程序由主函數(shù)組成CC程序由若干個(gè)函數(shù)組成DC程序中只允許包含一個(gè)函數(shù)2.11VC6.0中int類型變量所占字節(jié)數(shù)是A1B2C3D4習(xí)題BACD學(xué)習(xí)C語言加群195985189習(xí)題2.12合法的八進(jìn)制數(shù)是A0B028C-077D01.02.13不合法的十六進(jìn)制數(shù)是AoxffB0XabcC0x11D0x19二、填空題2.14若k為int型變量且賦值11.請(qǐng)寫出運(yùn)算k++后表達(dá)式的值____和變量k的值_____.2.15若x為double型變量,請(qǐng)寫出運(yùn)算x=3.2,++x后表達(dá)式的值_____和變量x的值______.2.16函數(shù)體由符號(hào)___開始,到符號(hào)___結(jié)束.函數(shù)體內(nèi)的前面是_____________部分,后面是___________部分.2.17C語言中的標(biāo)識(shí)符可分為________.___________和預(yù)定義標(biāo)識(shí)符三類.2.18在C語言程序中,用關(guān)鍵字____定義基本整型變量,用關(guān)鍵字_____定義單精度實(shí)型變量,用關(guān)鍵字_____定義雙精度實(shí)型變量.2.19把a(bǔ)1,a2定義成雙精度實(shí)型變量,并賦初值1的定義語句是________________.2.20C程序中定義的變量,代表內(nèi)存中的一個(gè)_________.11124.24.2{}定義和說明語句關(guān)鍵字用戶標(biāo)識(shí)符intfloatdoubledoublea1=1,a2=1;存儲(chǔ)單元AA學(xué)習(xí)C語言加群195985189習(xí)題2.21表達(dá)式3.5+1/2的計(jì)算結(jié)果是______.2.22對(duì)數(shù)學(xué)式axb,寫出三個(gè)等價(jià)的C語言表達(dá)式_______._______.________.c2.23表達(dá)式s=10應(yīng)當(dāng)讀做___________________________.三.改錯(cuò)題2.24#includestdio.h;main();/*mainfunction*/floatr,s;/*/*risradius*/,/*sisareaofcircular*/*/r=5.0;s=3.14159*r*r;printf("%f\n",s)2.25main/*mainfunction*/{floata,b,c,v;/*a,b,caresides,visvolumeofcube*/a=2.0;b=3.0;c=4.0v=a*b*c;printf("%f\n",v)}3.5(a*b)/ca*b/ca*(b/c)將10賦給變量s學(xué)習(xí)C語言加群195985189第3章順序結(jié)構(gòu)3.1賦值語句3.2數(shù)據(jù)輸出3.3數(shù)據(jù)輸入3.4復(fù)合語句和空語句3.5程序舉例學(xué)習(xí)C語言加群1959851893.1賦值語句在賦值表達(dá)式的尾部加上一個(gè)“;”號(hào),就構(gòu)成了賦值語句,也稱表達(dá)式語句。例如:a=a+b(賦值表達(dá)式)a=a+b;(賦值語句)
學(xué)習(xí)C語言加群1959851893.2數(shù)據(jù)輸出3.2.1printf函數(shù)的一般調(diào)用形式首先,我們先來了解一些其它知識(shí)。一個(gè)程序,一般情況下都包含數(shù)據(jù)輸入、數(shù)據(jù)處理、數(shù)據(jù)輸出三個(gè)部分。輸出:把數(shù)據(jù)從計(jì)算機(jī)內(nèi)部送到計(jì)算機(jī)的外部設(shè)備上的操作稱為“輸出”。輸入:從計(jì)算機(jī)外部設(shè)備將數(shù)據(jù)送入計(jì)算機(jī)內(nèi)部的操作稱為“輸入”。顯示器鍵盤在C語言中,數(shù)據(jù)的輸入和輸出是通過調(diào)用輸入和輸出函數(shù)來實(shí)現(xiàn)的。在VC6.0環(huán)境下,在調(diào)用輸入和輸出的庫函數(shù)之前要求在源程序中出現(xiàn)包含頭文件命令行:
#include<stdio.h>
或#include“stdio.h”1.printf函數(shù)的調(diào)用形式如下:printf(格式控制,輸出項(xiàng)表)作用:按照指定的格式將輸出項(xiàng)中的值輸出到終端。要輸出的內(nèi)容(常量、變量、表達(dá)式等)雙引號(hào)括起來的字符串,按照該指定的格式進(jìn)行輸出學(xué)習(xí)C語言加群195985189學(xué)習(xí)C語言加群1959851893.2數(shù)據(jù)輸出3.2.1printf函數(shù)的一般調(diào)用形式printf也可以沒有輸出項(xiàng),函數(shù)的調(diào)用形式將為:
printf(格式控制)比如:printf(“OK!”);OK!學(xué)習(xí)C語言加群1959851893.2數(shù)據(jù)輸出3.2.2printf函數(shù)中常用的格式說明格式字符:
d
以十進(jìn)制整數(shù)進(jìn)行輸出
o
以八進(jìn)制數(shù)進(jìn)行輸出
x
以十六進(jìn)制數(shù)進(jìn)行輸出
f
以小數(shù)形式進(jìn)行輸出::使用時(shí),以%作為引導(dǎo)符格式字符必須使用小寫如:%d%o%x%f簡(jiǎn)單的格式字符形式完整的格式字符形式%
+
-
0
n
n1.n2
l/h
格式字符n
指定輸出的寬度printf(“%6d\n”,k);n1.n2n1指定輸出的寬度,n2指定輸出的小數(shù)位數(shù)printf(“%12.2f\n”,f);0
輸出的數(shù)據(jù)右對(duì)齊,前面補(bǔ)0printf(“%06d\n”,k);-
輸出的數(shù)據(jù)左對(duì)齊printf(“%-6d\n”,k);+
輸出的數(shù)據(jù)為正數(shù)時(shí),使前面帶有“+”符號(hào)printf(“%+-6d\n”,k);l
輸出整數(shù)時(shí),為長(zhǎng)整型;輸出實(shí)數(shù)時(shí),為雙精度型printf(“%ld\n”,k);h
輸出整數(shù)時(shí),為短整型printf(“%hd\n”,k);有如下程序段intk;floatf;k=1234;f=123.456jj1234jjjjjj123.460012341234jj+1234j12341234學(xué)習(xí)C語言加群1959851893.2數(shù)據(jù)輸出3.2.2printf函數(shù)中常用的格式說明下面,將簡(jiǎn)單的介紹一些輸出格式形式和輸出結(jié)果:printf(“%f\n”,f);printf(“%12f\n”,f);printf(“%.6f\n”,f);printf(“%12.0f\n”,f);printf(“%e\n”,f);printf(“%13e\n”,f);printf(“%13.8e\n”,f);printf(“%3.8e\n”,f);printf(“%.8e\n”,f);printf(“%13.9e\n”,f);printf(“%13.2e\n”,f);printf(“%g\n”,f);printf(“%10g\n”,f);printf(“%f%%\n”,12.5);123.456000jj123.456000123.456000jjjjjjjjj1231.234560e+0021.234560e+0021.23456000e+0021.23456000e+0021.23456000e+0021.234560000e+002jjjj1.23e+002123.456jjj123.45612.500000%以指數(shù)形式輸出,輸出時(shí),先以小數(shù)位數(shù)為基準(zhǔn),再考慮輸出的寬度.以原數(shù)的最小寬度進(jìn)行輸出,指定寬度時(shí),按指定寬度進(jìn)行輸出學(xué)習(xí)C語言加群1959851893.2數(shù)據(jù)輸出3.2.3使用printf函數(shù)時(shí)的注意事項(xiàng)1.在使用輸出函數(shù)時(shí),輸出的數(shù)據(jù)要清晰,視覺感要好。例如:k=1234,f=123.456printf(“%d%d%f\n”,k,k,f);printf(“%d,%d,%f\n”,k,k,f);printf(“k=%d,k=%d,f=%f\n”,k,k,f);12341234123.4560002.在格式控制串中,格式說明與輸出項(xiàng)從左到右在類型上要一一對(duì)應(yīng)匹配。如不匹配,將導(dǎo)致數(shù)據(jù)不能正確輸出,這時(shí),系統(tǒng)并不報(bào)錯(cuò)。最好例如:inta=10;floatb=12.5;printf(“a=%f,b=%d\n”,a,b);a=0.000000,b=1076428800inta=10;floatb=12.5;printf(“a=%d,b=%f\n”,a,b);a=10,b=12.500000編譯時(shí)能通過,則輸出時(shí)為不正確的數(shù)據(jù)輸出時(shí)類型一定要一一對(duì)應(yīng)1234,1234,123.456000k=1234,k=1234,f=123.456000學(xué)習(xí)C語言加群1959851893.2數(shù)據(jù)輸出3.2.3使用printf函數(shù)時(shí)的注意事項(xiàng)若格式說明中的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù)時(shí),則多余的輸出項(xiàng)不予輸出;若格式說明中的個(gè)數(shù)多于輸出項(xiàng)的個(gè)數(shù)時(shí),則將輸出一些毫無意義的數(shù)字。例如:inta=10,b=20,c=30;printf(“%d,%d\n”,a,b,c);10,20inta=10,b=20,c=30;printf(“%d%d%d%d\n”,a,b,c);10,20,30,23674604.在格式控制串中,除了合法的格式說明外,可以包含任意的合法字符,還可以包括轉(zhuǎn)義字符,這些字符在輸出時(shí)將"原樣照印"。例如:printf(“my\tname\tis\tchenhao\n”);mynameischenhao\t為轉(zhuǎn)義字符(制表符)代表八個(gè)空格字符5.如果需要輸出百分號(hào)%,則應(yīng)該在格式控制串中用兩個(gè)連續(xù)的百分號(hào)%%來表示。例如:printf(“%d%%”,100);100%6.printf函數(shù)的返回值通常是本次調(diào)用中輸出字符的個(gè)數(shù)。思考:printf(“my\tname\tis\tchenhao\n”);函數(shù)的返回值是多少?學(xué)習(xí)C語言加群1959851893.2數(shù)據(jù)輸出3.2.3使用printf函數(shù)時(shí)的注意事項(xiàng)7.思考:如:intk=8;
printf(“%d,%d\n”,k,++k);9,98.輸出時(shí),也可以用參數(shù)作為域?qū)?。如:intm=8,i=10;
jjjjjj10123.4560000000intm=8,n=10;floatf=123.456;首先先對(duì)應(yīng)匹配,然后再輸出,輸出的過程,是按輸入項(xiàng)從右往左printf(“%8d”,i);printf(“%8.10f”,f);學(xué)習(xí)C語言加群1959851893.3數(shù)據(jù)輸入3.3.1scanf函數(shù)的一般調(diào)用形式scanf(格式控制,輸入項(xiàng)表)1.scanf函數(shù)的調(diào)用形式如下:作用:把從終端設(shè)備(如,鍵盤)上輸入的數(shù)據(jù)傳送給對(duì)應(yīng)的輸入項(xiàng)(如變量地址)。雙引號(hào)括起來的字符串,按照該指定的格式進(jìn)行輸入把從鍵盤上輸入的數(shù)據(jù)送到該指定的輸入項(xiàng)中,輸入項(xiàng)中必須為變量的地址例如:intk;floata;doubley;scanf(“%d%f%lf”,&k,&a,&y);函數(shù)名輸入格式控制變量地址(實(shí)參)在scanf函數(shù)調(diào)用的后面加一個(gè)分號(hào)就構(gòu)成輸入語句?!镒兞康刂沸问剑?變量名
學(xué)習(xí)C語言加群1959851893.3數(shù)據(jù)輸入3.3.1scanf函數(shù)的一般調(diào)用形式例:對(duì)于scanf函數(shù)的調(diào)用形式,請(qǐng)見下面的程序示例。#include<stdio.h>main(){inta;floatb;scanf(“%d%f”,&a,&b);printf(“%d,%f\n",a,b);}scanf(“%d%f”,&a,&b);比如,想把23賦值給a,12.345賦值給b,輸入形式為:程序執(zhí)行到此,停止執(zhí)行,等待用戶從鍵盤輸入數(shù)據(jù),等輸入數(shù)據(jù)后,待用戶安回車鍵<CR>后,繼續(xù)向后執(zhí)行。2312.345<CR>ab輸出結(jié)果為:23,12.3450002312.345學(xué)習(xí)C語言加群1959851893.3數(shù)據(jù)輸入3.3.2scanf函數(shù)中常用的格式說明scanf函數(shù)中的格式說明字符與輸出函數(shù)中的格式說明字符相同。在使用scanf函數(shù)進(jìn)行輸入時(shí),應(yīng)該注意以下幾點(diǎn):
1.在格式控制中,格式說明的類型與輸入項(xiàng)的類型,應(yīng)該一一對(duì)應(yīng)匹配。如果類型不匹配,系統(tǒng)并不給出出錯(cuò)信息,但不可能得到正確的數(shù)據(jù)。2.在輸入項(xiàng)表中,輸入項(xiàng)的個(gè)數(shù)要與格式符的個(gè)數(shù)相同,且排列順序要一一對(duì)應(yīng)。若格式符個(gè)數(shù)少于輸入項(xiàng),scanf函數(shù)按格式符的數(shù)目結(jié)束輸入,多余的輸入項(xiàng)沒有得到新的數(shù)據(jù);若格式符個(gè)數(shù)多于輸入項(xiàng),scanf函數(shù)則按輸入項(xiàng)的數(shù)目結(jié)束輸入,多余的格式符不起作用(作廢)。例如:inta,b,c;scanf(“%d%d”,&a,&b,&c);printf(“%d%d%d\n”,a,b,c);10,20,-858993460比如說,我們從鍵盤讀入:102030<CR>inta,b,c;scanf(“%d%d%d%d”,&a,&b,&c);printf(“%d%d%d\n”,a,b,c);10,20,30比如說,我們從鍵盤讀入:10203040<CR>學(xué)習(xí)C語言加群1959851893.3數(shù)據(jù)輸入3.3.2scanf函數(shù)中常用的格式說明在scanf函數(shù)中的格式字符前可以用一個(gè)整數(shù)指定輸入數(shù)據(jù)所占寬度。當(dāng)輸入函數(shù)的格式說明的類型與輸入項(xiàng)的類型一一對(duì)應(yīng)匹配時(shí)。程序在運(yùn)行的過程中,當(dāng)我們輸入的數(shù)據(jù)個(gè)數(shù)少于輸入項(xiàng)時(shí),運(yùn)行的程序?qū)⒁恢钡却斎耄钡綕M足要求時(shí)才繼續(xù)向下執(zhí)行;當(dāng)我們輸入的數(shù)據(jù)個(gè)數(shù)多于輸入項(xiàng)時(shí),多于的數(shù)據(jù)沒有作廢,依然在緩沖區(qū)中等待等待下一個(gè)輸入操作語句。5.scanf函數(shù)在調(diào)用結(jié)束后將返回一個(gè)函數(shù)值,其值等于得到輸入值的輸入項(xiàng)的個(gè)數(shù)。例如:inta;scanf(“%5d”,&a);該輸入函數(shù)正確的輸入形式為:88輸入寬度為5學(xué)習(xí)C語言加群1959851893.3數(shù)據(jù)輸入3.3.3通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)1.輸入數(shù)值數(shù)據(jù)例如:intk;floata;doubley;scanf(“%d%f%lf”,&k,&a,&y);若要給k賦值10,a賦值12.3,y賦值1234567.89,正確的輸入格式如下:1012.31234567.89<CR>1012.31234567.89<CR>10<CR>12.3<CR>1234567.89<CR>輸入的數(shù)據(jù)之間必須用間隔符隔開可以使用的間隔符有:空格、回車符、制表符錯(cuò)誤的輸入格式:1012.31234567.89<CR>學(xué)習(xí)C語言加群1959851893.3數(shù)據(jù)輸入3.3.3通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)2.指定輸入數(shù)據(jù)所占的寬度例如:intk;floata;doubley;scanf(“%3d%5f%5lf”,&k,&a,&y);若從鍵盤上從第1列開始輸入:123456.789.123<CR>用printf(“k=%da=%fy=%f\n”,k,a,y);輸出的結(jié)果是:k=123a=456.700000y=89.120000kya123456.789.12學(xué)習(xí)C語言加群1959851893.3數(shù)據(jù)輸入3.3.3通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)3.跳過某個(gè)輸入數(shù)據(jù)例如:intx,y,z;scanf(“%d%*d%d%d”,&x,&y,&z);printf(“%d%d%d\n”,x,y,z);若從鍵盤上輸入:12345678<CR>則輸出的結(jié)果是:125678學(xué)習(xí)C語言加群1959851893.3數(shù)據(jù)輸入3.3.3通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)4.在格式控制字符串中插入其他字符又如:intx,y,z;scanf(“%d,%d,%d”,&x,&y,&z);這時(shí)從鍵盤上輸入時(shí),一定要向下形式進(jìn)行輸入:Pleaseinputx,y,z:123456<CR>在格式控制字符中出現(xiàn)了其他字符的語句如下:intx,y,z;scanf(“Pleaseinputx,y,z:%d%d%d”,&x,&y,&z);則正確的輸入形式:12,34,56<CR>12,34,56<CR>12,34,56<CR>錯(cuò)誤的輸入形式:123456<CR>12,34,56<CR>學(xué)習(xí)C語言加群1959851893.4復(fù)合語句和空語句3.4.1復(fù)合語句復(fù)合語句是用符號(hào)"{"和"}"括起來的語句組,也可稱為"語句塊",在語法上被視為一條語句。復(fù)合語句的語句形式如下:{語句1;語句2;…;語句n;}例如:{a++;b*=a;printf("b=%d\",b);}學(xué)習(xí)C語言加群1959851893.4復(fù)合語句和空語句3.4.2空語句空語句由一個(gè)分號(hào)構(gòu)成,但它是一個(gè)C語句,程序執(zhí)行空語句時(shí)不產(chǎn)生任何操作。如:main(){;}學(xué)習(xí)C語言加群1959851893.5程序舉例例3.1
以下程序由終端輸入兩個(gè)整數(shù)給變量x和y;然后輸出x和y;在交換x和y中的值后,再輸出x和y。驗(yàn)證兩個(gè)變量中的數(shù)是否正確地進(jìn)行了交換。程序分析:輸入兩個(gè)整數(shù)分別給變量x和y。輸出兩個(gè)變量。交換兩個(gè)變量中的值。再輸出兩個(gè)變量。自然語言描述開始輸入x、y輸出x、y交換x和y中的值輸出x、y結(jié)束一般流程圖描述#include<stdio.h>main(){intx,y;printf(“Enterx&y:\n");scanf(“%d%d”,&x,&y);printf(“x=%dy=%d\n",x,y);
printf(“x=%dy=%d\n",x,y);}通過流程圖,編寫出程序xy123456zz=x;x=y;y=z;交換x和y中的值;z=x;x=y;y=z;intz;Enterx&y:123456<CR>x=123y=456x=456y=1233.5程序舉例例3.2
輸入一個(gè)double類型的數(shù),使該數(shù)保留小數(shù)點(diǎn)后兩位,對(duì)第三位小數(shù)進(jìn)行四舍五入處理,然后輸出此數(shù),以便驗(yàn)證處理是否正確。程序分析:輸入一個(gè)double類型的數(shù)給變量x。使該數(shù)保留兩位小數(shù),要進(jìn)行四舍五入。輸出四舍五入后的值。開始輸入x對(duì)x進(jìn)行四舍五入輸出x結(jié)束123.4567123.4567x10012345.6712345.67+0.512346.1712346123.46#include<stdio.h>main(){doublex;
printf(“Enterx:\n”);/*輸出的時(shí)候進(jìn)行提示*/scanf("%lf",&x);
printf(“(1)x=%f\n”,x);/*輸出我們剛剛輸入的原始數(shù)據(jù)*/x=x*100;x=x+0.5;x=(int)x;x=x/100;printf("(2)x=%f\n",x);}Enterx:123.4567<CR>(1)x=123.456700(2)x=123.460000習(xí)題一.選擇題3.1若a,b,c,d都是int型變量且初值為0,以下選項(xiàng)中不正確的賦值語句是Aa=b=c=100;Bd++;Cc+b;Dd=(c=22)-(b++);3.2下列選項(xiàng)中不是C語句的是A{inti;i++;printf(“%d\n”i);}B;Ca=5,c=10D{;}3.3合法的C語言賦值語句是Aa=b=58Bk=int(a+b);Ca=58,b=58D--i;3.4有以下程序#include<stdio.h>main(){intx=10,y=3;printf("%d\n",y=x/y);}執(zhí)行后的輸出結(jié)果是A0B1C3D不確定的值3.5若變量已正確定義為int型,要給a,b,c輸入數(shù)據(jù),正確的輸入語句是Aread(a,b,c);Bscanf(“%d%d%d”,a,b,c);Cscanf(“%D%D%D”,&a,%b,%c);Dscanf(“%d%d%d”,&a,&b,&c);CCDCD習(xí)題3.6若變量已正確定義為float類型,要通過輸入語句:scanf(“%f%f%f”,&a,&b,&c);給a賦值11.0,b賦值22.0,c賦值33.0,不正確的輸入形式是A11B11.0,22.0,33.0C11.0D11222222.033.033333.7若變量a,b,t已正確定義,要將a和b中的數(shù)進(jìn)行交換,以下選項(xiàng)中不正確的語句組是Aa=a+b,b=a-b,a=a-b;Bt=a,a=b,b=t;Ca=t;t=b;b=aDt=b;b=a;a=t;3.8若有正確定義語句
doublex=5.16894;語句printf(“%f\n”,(int)(x*1000+0.5)/(double)1000);的輸出結(jié)果是A輸出格式說明與輸出項(xiàng)不匹配,輸出無定值B5.170000B5.168000D5.1690003.9若有以下程序段:intc1=1,c2=2,c3;c3=c1/c2;printf(“%d\n”,c3);執(zhí)行后的輸出結(jié)果是A0B1/2C0.5D1BCDA習(xí)題3.10若有以下程序段inta=0,b=0,c=0;c=(a-=-5),(a=b,b+3);printf(“%d,%d,%d\n”,a,b,c);執(zhí)行后的輸出結(jié)果是A3,0,-10B0,0,5C-10,3,-10D3,0,3二.填空題3.11若有以下定義,請(qǐng)寫出以下程序段中輸出語句執(zhí)行后的輸出結(jié)果________.inti=-200,j=2500;printf("(1)%d,%d",i,j);printf("(2)i=%d,j=%d\n",i,j);printf("(3)i=%d\nj=%d\n",i,j);3.12變量i,j,k已定義為int類型并均有初值0,用以下語句進(jìn)行輸入時(shí):scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);從鍵盤輸入:12.3<CR>則變量i,j,k的值分別是______._______._______.3.13復(fù)合語句在語法上被認(rèn)為是_________.空語句的形式是_________.B(1)-200,2500(2)i=-200,j=2500(3)i=-200j=25001200一條語句;習(xí)題3.14C語句的最后用________結(jié)束.3.15以下程序段要求通過scanf語句給變量賦值,然后輸出變量的值.寫出運(yùn)行時(shí)給k輸入100,給a輸入15.81,給x輸入1.89234時(shí)的三種可能的輸入形式________.___________.___________.intk;floata;doublex;scanf("%d%f%lf",&k,&a,&x);printf("k=%d,a=%f,x=%f\n",k,a,x);;10015.811.89234<CR>100<CR>15.811.89234<CR>100<CR>15.81<CR>1.89234<CR>習(xí)題3.16以下程序多處有錯(cuò)誤.若指定必須按下面的形式輸入數(shù)據(jù),并且必須按下面指定的形式輸出數(shù)據(jù),請(qǐng)對(duì)該程序做相應(yīng)的修改.main{doublea,b,c,s,v;printf(inputa,b,c:\n);scanf("%d%d%d",a,b,c);s=a*b;v=a*b*c;printf("%d%d%d",a,b,c);printf("s=%f\n",s,"v=%d\n",v);}當(dāng)程序執(zhí)行時(shí),屏幕的顯示和要求輸入形式如下:inputa,b,c:2.02.03.0a=2.000000,b=2.000000,c=3.000000s=4.000000,v=12.000000第4章選擇結(jié)構(gòu)4.1關(guān)系運(yùn)算和邏輯運(yùn)算4.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.3條件表達(dá)式構(gòu)成的選擇結(jié)構(gòu)4.4switch語句以及用switch和break語句構(gòu)成的選擇結(jié)構(gòu)4.5語句標(biāo)號(hào)和goto語句4.1關(guān)系運(yùn)算和邏輯運(yùn)算4.1.1C語言的邏輯值關(guān)系表達(dá)式和邏輯表達(dá)式的運(yùn)算結(jié)果是一個(gè)邏輯值。邏輯值真假非004.1關(guān)系運(yùn)算和邏輯運(yùn)算4.1.2關(guān)系運(yùn)算符和關(guān)系表達(dá)式1.關(guān)系運(yùn)算:是對(duì)兩個(gè)量進(jìn)行“比較運(yùn)算”。2.關(guān)系運(yùn)算符:<<=>>===!=高低3.結(jié)合性:自左向右(左結(jié)合)4.和其他運(yùn)算符進(jìn)行混合運(yùn)算時(shí),其運(yùn)算符之間的優(yōu)先級(jí)為:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、賦值運(yùn)算符、逗號(hào)運(yùn)算符低高關(guān)系表達(dá)式:由關(guān)系運(yùn)算符組成的表達(dá)式,稱為關(guān)系表達(dá)式。關(guān)系運(yùn)算符兩邊的運(yùn)算對(duì)象可以是C語言中任意合法的表達(dá)式。例如:a>=b(a=3)>(b=4)a>c==c例如:a=10;b=6;c=15;c>a>b真假假關(guān)系運(yùn)算的值為“邏輯值”真假101004.1關(guān)系運(yùn)算和邏輯運(yùn)算4.1.3邏輯運(yùn)算符和邏輯表達(dá)式1.邏輯運(yùn)算符:&&(邏輯與)||(邏輯或)!(邏輯非)雙目單目(在運(yùn)算對(duì)象的左邊)3.結(jié)合性:自左向右(左結(jié)合)4.它們的優(yōu)先級(jí)由高到低為:!(邏輯非)、&&(邏輯與)、||(邏輯或)。5.和其他運(yùn)算符進(jìn)行混合運(yùn)算時(shí),其運(yùn)算符之間的優(yōu)先級(jí)為:!(邏輯非)、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、&&(邏輯與)、||(邏輯或)、賦值運(yùn)算符、逗號(hào)運(yùn)算符高低邏輯表達(dá)式:由邏輯運(yùn)算符組成的表達(dá)式,稱為邏輯表達(dá)式。邏輯運(yùn)算的運(yùn)算對(duì)象可以是C語言中任意合法的表達(dá)式。例如:(a>b)&&(x>y)a!=b||b!=0!a!=b例如:a=10;b=16;x=5;y=8;011其邏輯運(yùn)算規(guī)則見書中表4.1所示。思考:5>3&&2||!8<4-2的結(jié)果為?4.1關(guān)系運(yùn)算和邏輯運(yùn)算4.1.3邏輯運(yùn)算符和邏輯表達(dá)式注意在C語言中,x的值必須要在0和10之間,應(yīng)如何表示?0<=x<=10錯(cuò)誤的表示方式比如:x=20;上面的表達(dá)式也滿足條件。正確的表示方式為:x>=0&&x<=10或0<=x&&x<=106.C語言中,由&&或||構(gòu)成的邏輯表達(dá)式,在特定的情況下會(huì)產(chǎn)生“短路”現(xiàn)象。例如:a++&&b++若:a=0;b=0;若:a=1;b=1;例如:a++||b++若:a=1;b=1;若:a=0;b=0;0110ab10a2b2ab21a1b14.2if語句和用if語句構(gòu)成的選擇結(jié)構(gòu)4.2.1if語句C語言的if語言有兩種形式:if(表達(dá)式)語句if(表達(dá)式)語句1else
語句2單分支if語句不含else子句雙分支if語句含else子句關(guān)鍵字關(guān)鍵字(b)圖表達(dá)式語句1語句2滿足不滿足(a)圖表達(dá)式語句滿足不滿足例如:if(a<b){t=a;a=b;b=t;}例如:if(a!=0)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年混凝土工程物流與運(yùn)輸服務(wù)合同
- 2025江蘇店鋪?zhàn)赓U版合同
- 2025年通遼貨運(yùn)從業(yè)資格仿真考題
- 2024年度北京教育培訓(xùn)合作協(xié)議2篇
- 2025主材采購(gòu)合同
- 融資租賃公司租賃合同
- 2024年商鋪?zhàn)赓U合同模板下載合同條款詳細(xì)說明9篇
- 2024年度人力資源經(jīng)理試用期合同范本(企業(yè)創(chuàng)新)5篇
- 城市排水系統(tǒng)土石方施工協(xié)議
- 2024區(qū)網(wǎng)紅景點(diǎn)民宿租賃合同3篇
- 24秋國(guó)家開放大學(xué)《企業(yè)信息管理》形考任務(wù)1-4參考答案
- 偏微分方程知到智慧樹章節(jié)測(cè)試課后答案2024年秋浙江師范大學(xué)
- 2024年共青團(tuán)入團(tuán)考試測(cè)試題庫及答案
- 2022年全國(guó)應(yīng)急普法知識(shí)競(jìng)賽試題庫大全-下(判斷題庫-共4部分-2)
- 花鍵計(jì)算公式DIN5480
- 《建筑與市政工程施工現(xiàn)場(chǎng)臨時(shí)用電安全技術(shù)標(biāo)準(zhǔn)》JGJT46-2024知識(shí)培訓(xùn)
- 2024年事業(yè)單位招聘考試公共基礎(chǔ)知識(shí)模擬試卷及答案(共七套)
- 《燃?xì)獍踩R(shí)培訓(xùn)》課件
- 高考及人生規(guī)劃講座模板
- 浙教版2023小學(xué)信息技術(shù)五年級(jí)上冊(cè) 第6課《順序結(jié)構(gòu)》說課稿及反思
- 第20課《人民英雄永垂不朽》課件+2024-2025學(xué)年統(tǒng)編版語文八年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論