C語言程序設(shè)計(jì)教案-I(2013年9月)_第1頁
C語言程序設(shè)計(jì)教案-I(2013年9月)_第2頁
C語言程序設(shè)計(jì)教案-I(2013年9月)_第3頁
C語言程序設(shè)計(jì)教案-I(2013年9月)_第4頁
C語言程序設(shè)計(jì)教案-I(2013年9月)_第5頁
已閱讀5頁,還剩247頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

全國計(jì)算機(jī)等級(jí)考試二級(jí)Email:huxiaoli@C語言程序設(shè)計(jì)主講:胡曉麗高頻考點(diǎn)CompanyLogo考試方式機(jī)試:120分鐘,滿分100分。(2)程序填空題(18分)(3)程序改錯(cuò)題(18分)(3)程序設(shè)計(jì)題(24分)(1)選擇題(40分)CompanyLogo考試大綱◆基本要求

1.熟悉VisualC++6.0集成開發(fā)環(huán)境。

2.掌握結(jié)構(gòu)化程序設(shè)計(jì)的方法,具有良好的程序設(shè)計(jì)風(fēng)格。

3.掌握程序設(shè)計(jì)中簡單的數(shù)據(jù)結(jié)構(gòu)和算法并能閱讀簡單的程序。

4.在VisualC++6.0集成環(huán)境下,能夠編寫簡單的C程序,并具有基本的糾錯(cuò)和調(diào)試程序的能力CompanyLogo目錄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課時(shí)目錄9.數(shù)組10.字符串11.對函數(shù)的進(jìn)一步討論12.用戶標(biāo)識(shí)符的作用域和存儲(chǔ)類13.編譯預(yù)處理和動(dòng)態(tài)存儲(chǔ)分配14.結(jié)構(gòu)體、共用體和用戶定義類型15.位運(yùn)算16.文件8.地址和指針2課時(shí)8課時(shí)1課時(shí)1課時(shí)CompanyLogo第1章程序設(shè)計(jì)基本概念Top1:各種“程序”的概念Top3:結(jié)構(gòu)化程序設(shè)計(jì)Top2:算法的特性C程序的上機(jī)步驟CompanyLogo什么是程序??Top1:各種“程序”的概念人們把需要用計(jì)算機(jī)完成的工作寫成一條條指令,并把這些指令存儲(chǔ)在內(nèi)存中,當(dāng)人們給出執(zhí)行命令后,計(jì)算機(jī)就按指令順序自動(dòng)進(jìn)行操作。這些可以連續(xù)執(zhí)行的一條條指令的集合稱為“程序”。CompanyLogo機(jī)器語言匯編語言高級(jí)語言面向過程面向?qū)ο蟪绦蛟O(shè)計(jì)語言的發(fā)展Top1:各種“程序”的概念CompanyLogo程序的“轉(zhuǎn)換”機(jī)器語言匯編語言高級(jí)語言C語言編譯匯編源程序目標(biāo)程序.OBJTop1:各種“程序”的概念可執(zhí)行程序.exe鏈接二進(jìn)制語言CompanyLogoTop1:各種“程序”的概念真題分析(2013年3月)DCompanyLogoTop1:各種“程序”的概念真題分析(2007年4月)下列敘述中錯(cuò)誤的是——A、計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序B、C程序經(jīng)編譯后,生成后綴為.Obj的文件是一個(gè)二進(jìn)制文件C、后綴為.Obj的文件,經(jīng)連接程序生成后綴為.Exe的文件是一個(gè)二進(jìn)制文件D、后綴為.Obj和.Exe的二進(jìn)制文件都可以直接運(yùn)行DCompanyLogoTop1:各種“程序”的概念真題分析(2006年4月)以下敘述中錯(cuò)誤的是——A、C語言源程序經(jīng)編譯后生成后綴為.OBJ的目標(biāo)程序B、C程序經(jīng)過編譯、連接步驟之后才能形成一個(gè)真正可以執(zhí)行的二進(jìn)制機(jī)器指令文件C、用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中D、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令D只有二進(jìn)制語句才最終被轉(zhuǎn)換成二進(jìn)制機(jī)器指令CompanyLogoTop1:各種“程序”的概念真題分析(2007年9月)C語言源程序的后綴是——A、.exeB、.cC、.objD、.cpBCompanyLogoTop2:算法的特性什么是算法?算法是指為解決某個(gè)特定問題而采取的確定且有限的步驟。?CompanyLogo算法應(yīng)具有以下五個(gè)特點(diǎn):1有窮性:一個(gè)算法包含的步驟是有限的。即在若干個(gè)步驟后結(jié)束,并且每一步都在合理時(shí)間內(nèi)完成2確定性:算法中每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結(jié)果。3可行性:算法中指定的操作,都可以通過已經(jīng)驗(yàn)證可以實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次后實(shí)現(xiàn)。5有一個(gè)或多個(gè)輸出:算法的目的是為了求解。這些“解”只有通過輸出得到。4有零個(gè)或多個(gè)輸入:算法都是用來處理數(shù)據(jù)對象的,通常情況下這些數(shù)據(jù)對象需要通過輸入來得到。Top2:算法的特性CompanyLogo如何評(píng)價(jià)算法??時(shí)間復(fù)雜度1空間復(fù)雜度2對算法的要求有:必須是正確的,必須能高效率執(zhí)行,即占用內(nèi)存空間少,所需運(yùn)行時(shí)間短。于是,對算法的評(píng)價(jià)可以從兩個(gè)方面進(jìn)行:Top2:算法的特性CompanyLogoTop2:算法的特性真題分析(2013年3月)ACompanyLogoTop2:算法的特性真題分析(2007年4月)算法中,對需要執(zhí)行的每一步驟操作,必須給出清楚、嚴(yán)格的規(guī)定,這屬于算法的是——A、正當(dāng)性B、可行性C、確定性D、有窮性CCompanyLogoTop2:算法的特性真題分析(2006年4月)以下敘述中錯(cuò)誤的是——A、算法正確的程序最終一定會(huì)結(jié)束B、算法正確的程序可以有零個(gè)輸出C、算法正確的程序可以有零個(gè)輸入D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果B算法必須有一個(gè)或多個(gè)輸出CompanyLogoTop3:結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)執(zhí)行時(shí)按順序逐條執(zhí)行,沒有分支,沒有轉(zhuǎn)移??捎少x值語句、輸入/輸出語句等構(gòu)成。順序結(jié)構(gòu)根據(jù)不同的條件執(zhí)行不同分支中的語句??捎蒳f語句、switch語句等構(gòu)成。選擇結(jié)構(gòu)根據(jù)各自的條件使一組語句重復(fù)執(zhí)行多次或一次也不執(zhí)行??捎蒮or語句、while語句等構(gòu)成。循環(huán)結(jié)構(gòu)CompanyLogo什么是模塊化結(jié)構(gòu)??將復(fù)雜任務(wù)分解成若干個(gè)子任務(wù),每個(gè)子任務(wù)又可分解成多個(gè)小子任務(wù),每個(gè)小子任務(wù)只需完成一個(gè)簡單的功能。在程序設(shè)計(jì)時(shí)用一個(gè)小模塊實(shí)現(xiàn)這些功能。稱這樣的程序設(shè)計(jì)方法為“模塊化”方法,由一個(gè)個(gè)功能模塊構(gòu)成的程序結(jié)構(gòu)為模塊化結(jié)構(gòu)。Top3:結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)CompanyLogoTop3:結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)真題分析(2007年4月)以下敘述中錯(cuò)誤的是——A、C語言是一種結(jié)構(gòu)化的程序設(shè)計(jì)語言B、結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成C、使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題D、結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法CCompanyLogo開始結(jié)束編輯編譯連接運(yùn)行運(yùn)行結(jié)果可執(zhí)行文件(.exe)源程序文件(.c)目標(biāo)文件(.obj)圖C程序上機(jī)調(diào)試過程此兩種代碼不能執(zhí)行C程序的上機(jī)步驟CompanyLogo第2章C程序設(shè)計(jì)的初步知識(shí)Top4:C程序的結(jié)構(gòu)和格式Top5:標(biāo)識(shí)符的命名規(guī)則Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則Top7:基本類型數(shù)據(jù)的相互轉(zhuǎn)換Top8:常見算術(shù)運(yùn)算符的使用Top9:算術(shù)運(yùn)算符的優(yōu)先級(jí)順序Top12:自加自減運(yùn)算符Top10:賦值表達(dá)式的求值規(guī)則Top11:逗號(hào)表達(dá)式的求值規(guī)則CompanyLogo例2.1第一個(gè)程序Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){

printf(“Hello,World!”);}注釋編譯預(yù)處理函數(shù)語句輸出:Hello,World!Top4:C語言程序的構(gòu)成和格式CompanyLogo格式特點(diǎn)習(xí)慣用小寫字母,大小寫敏感不使用行號(hào),無程序行概念可使用空行和空格常用鋸齒形書寫格式<>main(){

……………….………………

…………..…………..

……………….

………………………….

……………….………………..}main(){

inti,j,sum;sum=0;

for(i=1;i<10;i++){

for(j=1;j<10;j++){sum+=i*j;}}

printf(“%d\n”,sum);}Top4:C語言程序的構(gòu)成和格式CompanyLogo結(jié)構(gòu)特點(diǎn)函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預(yù)處理命令Top4:C語言程序的構(gòu)成和格式例:#include“stdio.h”命令行,不是C語句CompanyLogo真題分析(2013年3月)Top4:C語言程序的構(gòu)成和格式CCompanyLogo真題分析(2013年3月)Top4:C語言程序的構(gòu)成和格式DCompanyLogo真題分析(2013年3月)Top4:C語言程序的構(gòu)成和格式CCompanyLogo真題分析(2007年4月)對于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是——A、程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)中結(jié)束C、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束。D、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束。Top4:C語言程序的構(gòu)成和格式ACompanyLogoTop4:C語言程序的構(gòu)成和格式真題分析(2007年9月)以下敘述中正確的是——A、C語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行B、可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C、C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束D、main可作為用戶標(biāo)識(shí)符,用以命名任意一個(gè)函數(shù)作為主函數(shù)CCompanyLogoTop4:C語言程序的構(gòu)成和格式真題分析(2008年9月)以下敘述中正確的是——A、C程序的基本組成單位是語句B、C程序中每一行只能寫一條語句C、簡單C語句必須以分號(hào)結(jié)束D、C語句必須在一行內(nèi)寫完CCompanyLogoTop5:標(biāo)識(shí)符的命名規(guī)則什么是標(biāo)識(shí)符??標(biāo)識(shí)符是用來標(biāo)識(shí)變量、符號(hào)常量、函數(shù)、數(shù)組、類型、標(biāo)號(hào)以及一些具有專門含義的有效字符序列。通俗地講,標(biāo)識(shí)符就是一個(gè)名字。CompanyLogo標(biāo)識(shí)分為三類:②預(yù)定義標(biāo)識(shí)符③用戶標(biāo)識(shí)符①關(guān)鍵字(1)數(shù)據(jù)類型關(guān)鍵字12個(gè)(2)控制語句關(guān)鍵字12個(gè)(3)存儲(chǔ)類型關(guān)鍵字4個(gè)(4)其它關(guān)鍵字4個(gè)一般指C語言提供的庫函數(shù)名和編譯預(yù)處理命令。在編程時(shí),需要用戶給一些變量、函數(shù)、數(shù)組等命名,這類由用戶根據(jù)需要自定義的標(biāo)識(shí)符稱為用戶標(biāo)識(shí)符Top5:標(biāo)識(shí)符的命名規(guī)則CompanyLogo組成:只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字長度:最長32個(gè)字符命名原則:見名知意不宜混淆如l與I,o與0例:判斷下列標(biāo)識(shí)符號(hào)合法性sumSum

M.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123M.D.John3days#33char$123a>b如何命名標(biāo)識(shí)符??CompanyLogoTop5:標(biāo)識(shí)符的命名規(guī)則真題分析(2013年3月)ACompanyLogoTop5:標(biāo)識(shí)符的命名規(guī)則真題分析(2013年3月)DCompanyLogoTop5:標(biāo)識(shí)符的命名規(guī)則真題分析(2007年9月)可在C程序中用做用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是——ATop5:標(biāo)識(shí)符的命名規(guī)則真題分析(2009年4月)以下選項(xiàng)中合法的標(biāo)識(shí)符是A)1_1B)1-1C)_11D)1__CompanyLogoCCompanyLogo一般用大寫字母是宏定義預(yù)處理命令,不是C語句直接常量:整型常量實(shí)型常量字符常量字符串常量如#definePRICE30常量定義:程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))分類:符號(hào)常量:用標(biāo)識(shí)符代表常量定義格式:#define

符號(hào)常量常量>>>>例符號(hào)常量舉例#definePRICE30main(){

int

num,total;num=10;total=num*PRICE;

printf("total=%d",total);}運(yùn)行結(jié)果:total=300Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則CompanyLogo整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母l或L,認(rèn)為它是longint

型常量整型常量(整常數(shù))三種形式:十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號(hào)表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.如0x123,0XffTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則32767-32768

0

0120160x100X23FD0568o45ox12t-0X12只能是正數(shù)CompanyLogo實(shí)型常量(實(shí)數(shù)或浮點(diǎn)數(shù))表示形式:十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn))如0.123,.123,123.0,0.0,123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3,123E2,1.23e4,e-5,1.2E-3.5

實(shí)型常量的類型默認(rèn)double型在實(shí)型常量后加字母f或F,認(rèn)為它是float型Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則X在內(nèi)存中,實(shí)數(shù)一律是以指數(shù)形式存儲(chǔ)的1計(jì)算機(jī)中存儲(chǔ)整數(shù)不會(huì)出現(xiàn)誤差,存儲(chǔ)實(shí)型數(shù)往往存入誤差。2!注意:CompanyLogo44字符常量定義:用單引號(hào)括起來的單個(gè)普通字符或轉(zhuǎn)義字符.

字符常量的值:該字符的ASCII碼值例:‘A’-------’\101’-------’\x41’--------65如‘A’——65,‘a(chǎn)’——97,

‘0’——48,‘\n’——10如‘a(chǎn)’‘A’‘?’‘\n’‘\101’轉(zhuǎn)義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼值表示Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則字符常量與字符串常量不同字符串常量定義:用雙引號(hào)(“”)括起來的字符序列存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè)‘\0’作為字符串結(jié)束標(biāo)志hello\0例字符串“hello”在內(nèi)存中aa\0例‘a(chǎn)’“a”例空串“”\0例:charch;

ch=“A”;例:charch;

ch=‘A’;Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則CompanyLogo變量概念:其值可以改變的量變量的定義變量初始化:定義時(shí)賦初值變量的使用:先定義,后使用變量定義位置:一般放在函數(shù)開頭int

x,y,z;x=y=z=1;Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則例:

inta=2,b,c=4;floatdata=3.67;charch=‘A’;

intx=y=z=1;CompanyLogo整型變量占字節(jié)數(shù)隨機(jī)器不同而不同,一般占一個(gè)機(jī)器字short≤int≤long可用sizeof(類型標(biāo)識(shí)符)測量實(shí)型變量float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供15~16位有效數(shù)字字符型變量字符變量存放字符ASCII碼char與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算沒有字符串變量,用字符數(shù)組存放Top6:C語言基本數(shù)據(jù)類型及其定義規(guī)則CompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2013年3月)BCompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2013年3月)DCompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2013年3月)ACompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2013年3月)ACompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2013年3月)ACompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2013年3月)ACompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2013年3月)DCompanyLogoTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2013年3月)DTop6:C語言基本數(shù)據(jù)類型及其定義規(guī)則真題分析(2005年9月)以下程序運(yùn)行后的輸出結(jié)果是——

main(){intx=0210;printf("%X\n",x);}0210010八進(jìn)制數(shù)001000000880二進(jìn)制數(shù)88CompanyLogo隱式轉(zhuǎn)換什么情況下發(fā)生運(yùn)算轉(zhuǎn)換-----不同類型數(shù)據(jù)混合運(yùn)算時(shí)賦值轉(zhuǎn)換----把一個(gè)值賦給與其類型不同的變量時(shí)輸出轉(zhuǎn)換------輸出時(shí)轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換------實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類型Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換CompanyLogo顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)一般形式:(類型名)(表達(dá)式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6說明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換CompanyLogo真題分析(2006年9月)以下選項(xiàng)中值為1的表達(dá)式是——A、1-'0'B、1-'\0'C、'1'-0D、'\0'-'0'Top7:基本數(shù)據(jù)類型間的轉(zhuǎn)換1是整型,’0’、’\0’、’1’都是字符型?!?’換成整型的ASCII碼值為48,’1’為49‘\0’是轉(zhuǎn)義字符,表示0或空。BCompanyLogoC運(yùn)算符算術(shù)運(yùn)算符:(+-*/%++--)關(guān)系運(yùn)算符:(<<===>>=!=)邏輯運(yùn)算符:(!&&||)位運(yùn)算符:(<<>>~|^&)賦值運(yùn)算符:(=及其擴(kuò)展)條件運(yùn)算符:(?:)逗號(hào)運(yùn)算符:(,)指針運(yùn)算符:(*&)求字節(jié)數(shù):(sizeof)強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:(.->)下標(biāo)運(yùn)算符:([])其它:(()-)Top8:常見算術(shù)運(yùn)算符的使用CompanyLogoTop8:常見算術(shù)運(yùn)算符的使用知識(shí)點(diǎn)1、基本的算術(shù)運(yùn)算符有:+、-(減法/取負(fù))

、*、/、%(取余數(shù))2、關(guān)于除法運(yùn)算/C語言規(guī)定:兩個(gè)整數(shù)相除,其商為整數(shù),小數(shù)部分被舍棄。例5/2=-5/2.0=例5/2=2

-5/2.0=-2.53、關(guān)于求余數(shù)運(yùn)算%

要求兩側(cè)的操作數(shù)均為整型數(shù)據(jù),否則出錯(cuò)。例5%2=-5%2=1%10=

5%1=5.5%2例5%2=1

-5%2=-11%10=

1

5%1=

05.5%2()CompanyLogoTop8:常見算術(shù)運(yùn)算符的使用真題分析(2013年3月)ACompanyLogoTop8:常見算術(shù)運(yùn)算符的使用真題分析(2013年3月)DCompanyLogoTop8:常見算術(shù)運(yùn)算符的使用真題分析(2013年3月)D*CompanyLogoTop8:常見算術(shù)運(yùn)算符的使用真題分析(2007年4月)以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),數(shù)為0的表達(dá)式為——A、x%2==1B、x/2C、x%2!=0D、x%2==0D%(求余運(yùn)算符)的兩邊都必須是整型。大于1的奇數(shù)除以2,余數(shù)必為1。表達(dá)式成立時(shí),整個(gè)表達(dá)式邏輯值為1表達(dá)式不成立時(shí),整個(gè)表達(dá)式邏輯值為0。1、算術(shù)運(yùn)算符的優(yōu)先級(jí)()+-

*/

%+-單目雙目高低Top9:算術(shù)運(yùn)算符的優(yōu)先級(jí)順序CompanyLogoTop9:算術(shù)運(yùn)算符的優(yōu)先級(jí)順序真題分析(2006年4月)表達(dá)式3.6-5/2+1.2+5%2的值是___A、4.3B、4.8C、3.3D、3.83.6-5/2+1.2+5%22①③1.6④2.8②1⑤3.8DCompanyLogo賦值運(yùn)算1賦值符號(hào)“=”就是賦值運(yùn)算符,它的作用是將一個(gè)表達(dá)式的值賦給一個(gè)變量。賦值運(yùn)算符的一般形式為:如果表達(dá)式值的類型,與被賦值變量的類型不一致,但都是數(shù)值型或字符型時(shí),系統(tǒng)自動(dòng)地將表達(dá)式的值轉(zhuǎn)換成被賦值變量的數(shù)據(jù)類型,然后再賦值給變量.例a=3;d=func();c=d+2;b=a;Top10:賦值表達(dá)式的求值規(guī)則變量=賦值表達(dá)式

CompanyLogo幾點(diǎn)說明:(1)賦值運(yùn)算符的優(yōu)先級(jí)只高于逗號(hào)運(yùn)算符,比其它的運(yùn)算符優(yōu)先級(jí)都低,且具有自右向左的結(jié)合性。 如:a=2+7/3(2)賦值運(yùn)算符左邊只能是變量,不能是常量或是表達(dá)式。如a+b=c就是錯(cuò)誤的。(3)賦值運(yùn)算符右邊也可以是賦值表達(dá)式。如a=b=7+1,而a=7+1=b則是錯(cuò)誤的。(4)”=“視作運(yùn)算符,a=19是一個(gè)表達(dá)式,C語言規(guī)定最左邊變量中所得到的新值就是賦值表達(dá)式的值。Top10:賦值表達(dá)式的求值規(guī)則CompanyLogo復(fù)合賦值表達(dá)式2復(fù)合賦值運(yùn)算符是由賦值運(yùn)算符之前再加一個(gè)雙目運(yùn)算符構(gòu)成的。復(fù)合賦值運(yùn)算的一般格式為:變量雙目運(yùn)算符=表達(dá)式└──┬──┘復(fù)合賦值運(yùn)算符等價(jià)于:變量

=變量雙目運(yùn)算符(表達(dá)式)。當(dāng)表達(dá)式為簡單表達(dá)式時(shí),表達(dá)式外的一對圓括號(hào)才可缺省,否則可能出錯(cuò)。例:x+=3x=x+3y*=x+6 y=y*(x+6)Top10:賦值表達(dá)式的求值規(guī)則CompanyLogo思考2:

a=12;a+=a-=a*a思考3:

inta=2;a%=4-1;a+=a*=a-=a*=3;//a=-264等價(jià)于a=a+(a=a-(a*a))//a=0等價(jià)于a=a+(a=a*(a=a-(a=a*3)))思考1:已有變量a,其值為9,計(jì)算表達(dá)式a+=a-=a+a(1)a+a=9+9,表達(dá)式的值為18,但是a的值不變,仍為9(2)a=a-18,表達(dá)式的值為-9,a的值變?yōu)椋?。(3)a=a+a,表達(dá)式的值為-18,a的值為-18Top10:賦值表達(dá)式的求值規(guī)則Top10:賦值表達(dá)式的求值規(guī)則真題分析(2013年3月)BCompanyLogoTop10:賦值表達(dá)式的求值規(guī)則真題分析(2006年4月)以下敘述中錯(cuò)誤的是——A、C程序中的#include和#define均不是C語句B、除逗號(hào)運(yùn)算符外,賦值運(yùn)算符的優(yōu)先級(jí)最低C、C程序中,j++;是賦值語句D、C程序中,+、-、*、/、%是算術(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算。DCompanyLogoTop10:賦值表達(dá)式的求值規(guī)則真題分析(2005年9月)下列能正確定義且賦初值的語句是——A、int

nl=n2=10;B、charc=32;C、floatf=f+1.1;D、doublex=12.3E2.5;C語言規(guī)定,變量必須先定義,后使用。A、C錯(cuò)誤。A如果寫成:intn1,n2;對待n1=n2=10;則正確C如果寫成:floatf;f=f+1.1;則正確選項(xiàng)D中,E后面必須為整數(shù),不能是實(shí)數(shù)。BCompanyLogoTop11逗號(hào)表達(dá)式的運(yùn)算規(guī)則形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n結(jié)合性:從左向右優(yōu)先級(jí):所有運(yùn)算符中,逗號(hào)運(yùn)算符優(yōu)先級(jí)最低逗號(hào)表達(dá)式的值:等于表達(dá)式n的值用途:常用于循環(huán)for語句中例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3)x=a=3,6*a//a=15,表達(dá)式值60//a=15,表達(dá)式值20//賦值表達(dá)式,表達(dá)式值18,x=18//逗號(hào)表達(dá)式,表達(dá)式值18,x=3CompanyLogoTop11逗號(hào)表達(dá)式的運(yùn)算規(guī)則真題分析(2013年3月)CTop11逗號(hào)表達(dá)式的運(yùn)算規(guī)則真題分析(2013年3月)DCompanyLogoTop11逗號(hào)表達(dá)式的運(yùn)算規(guī)則真題分析(2007年4月)執(zhí)行以下程序后的輸出結(jié)果是——main(){

inta=10;

a=(3*5,a+4);

printf("a=%d\n",a);}

a=(3*5,a+4);①15②10+41414CompanyLogoTop11逗號(hào)表達(dá)式的運(yùn)算規(guī)則真題分析(2005年9月)有以下程序,main(){chara1='M',a2='m';printf(“%c\n”,(a1,a2));}則下列說法正確的是——A、程序輸出大寫字母MB、程序輸出小寫字母mC、格式說明符不足,編譯出錯(cuò)D、程序運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息BCompanyLogoTop12自加、自減運(yùn)算符自加運(yùn)算符++、自減運(yùn)算符--1i++(或i--)表示在使用該表達(dá)式值之后將i值加1(或減1)。++i(或--i)表示在使用該表達(dá)式值之前將i值加1(或減1)CompanyLogo例自增、自減運(yùn)算符的用法與運(yùn)算規(guī)則示例。

main(){inta=100;

printf(“a++=%d\n”,a++);

printf(“++a=%d\n”,++a);

printf(“a--=%d\n”,a--);

printf(“--a=%d\n”,--a);}/*輸出a++=100,a的值變?yōu)?01*/ /*輸出++a=102,a的值變?yōu)?02*/ /*輸出a--=102,a的值變?yōu)?01*/ /*輸出--a=100,a的值變?yōu)?00*/Top12自加、自減運(yùn)算符CompanyLogo考點(diǎn):Top12自加、自減運(yùn)算符1、自增、自減運(yùn)算符只能用于變量,不能用于常量和表達(dá)式。5++、--(a+b)等都是非法的。2、自增、自減運(yùn)算符和其它運(yùn)算符混合使用時(shí),其結(jié)合性為:至右向左。3、自增、自減運(yùn)算符,無論作為前綴(++a,--a)還是后綴(a++,a--)運(yùn)算符,對于變量本身來說自增1或自減1都具有相同的效果,但對表達(dá)式來說卻有著不同的值。Top12自加、自減運(yùn)算符真題分析(2013年3月)CTop12自加、自減運(yùn)算符真題分析(2013年3月)DCompanyLogoTop12自加、自減運(yùn)算符真題分析(2006年9月)有以下程序,程序運(yùn)行后的輸出結(jié)果為——main(){int

x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}A、2,3,3 B、2,3,2C、2,3,1 D、2,2,1CCompanyLogoTop12自加、自減運(yùn)算符真題分析(2005年4月)下列程序的輸出結(jié)果是——main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}A、12353514 B、12353513C、12343514 D、12343513ACompanyLogo第3章順序結(jié)構(gòu)Top13:賦值表達(dá)式與賦值語句Top14:數(shù)據(jù)的輸出Top15:數(shù)據(jù)的輸入CompanyLogoTop13:賦值表達(dá)式與賦值語句賦值語句:在賦值表達(dá)式的尾部加上一個(gè)“;”, 又稱為表達(dá)式語句。例:a=b+c;--i;i++;a=b=c;a=b,b=c;CompanyLogoTop13:賦值表達(dá)式與賦值語句考點(diǎn)賦值語句必須在最后出現(xiàn)分號(hào),分號(hào)是語句中必不可少的部分。任何賦值表達(dá)式都可以加上分號(hào)而成為賦值語句,C語言規(guī)定賦值號(hào)左邊不能為常量或表達(dá)式。CompanyLogoTop13:賦值表達(dá)式與賦值語句真題分析(2004年4月)若以下選項(xiàng)中的變量已經(jīng)正確定義,則正確的賦值語句是——A、x1=26.8%3;B、1+2=x2;C、x3=0x12;D、x4=1+2=3;CCompanyLogo格式:putchar(c)參數(shù):c為字符常量、變量或表達(dá)式功能:把字符c輸出到顯示器上返值:正常,為顯示的代碼值;出錯(cuò),為EOF(-1)字符輸出函數(shù)Top14:數(shù)據(jù)的輸出CompanyLogo#include<stdio.h>main(){intc;chara;c=65;a='B';

putchar(c);putchar('\n');putchar(a);}運(yùn)行結(jié)果:AB例Top14:數(shù)據(jù)的輸出CompanyLogo格式:printf(“格式控制串”,輸出表)功能:按指定格式向顯示器輸出數(shù)據(jù)返值:正常,返回輸出字節(jié)數(shù);出錯(cuò),返回EOF(-1)格式輸出函數(shù)輸出表:要輸出的數(shù)據(jù)(可以沒有,多個(gè)時(shí)以“,”分隔)格式控制串:包含兩種信息格式說明:%[修飾符]格式字符

,用于指定輸出格式普通字符或轉(zhuǎn)義序列:原樣輸出格式字符Top14:數(shù)據(jù)的輸出CompanyLogoTop14:數(shù)據(jù)的輸出d,ix,Xoucse,Efg%%格式字符:十六進(jìn)制無符號(hào)整數(shù)不帶符號(hào)十進(jìn)制整數(shù)十進(jìn)制整數(shù)指數(shù)形式浮點(diǎn)小數(shù)單一字符字符串八進(jìn)制無符號(hào)整數(shù)小數(shù)形式浮點(diǎn)小數(shù)e和f中較短一種百分號(hào)本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.677890e+02567.789000567.789%說明: 格式字符要用小寫格式字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對應(yīng)輸出轉(zhuǎn)換:格式字符與輸出項(xiàng)類型不一致,自動(dòng)按指定格式輸出CompanyLogo附加格式說明符(修飾符).n對實(shí)數(shù),指定小數(shù)點(diǎn)后位數(shù)(四舍五入)對字符串,指定實(shí)際輸出位數(shù)修飾符功能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長度<m,左補(bǔ)空格;否則按實(shí)際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-指定在有符號(hào)數(shù)的正數(shù)前顯示正號(hào)(+)+輸出數(shù)值時(shí)指定左面不使用的空位置自動(dòng)填00在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0,0x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型lTop14:數(shù)據(jù)的輸出CompanyLogoTop14:數(shù)據(jù)的輸出考點(diǎn)格式字符、長度修飾符和附加格式字符以及它們各自的功能。在格式控制字符串中,格式說明與輸出項(xiàng)從左到右在類型上必須一一對應(yīng)匹配。在格式控制串中,格式說明與輸出項(xiàng)的個(gè)數(shù)應(yīng)相同,若格式說明明少于輸出項(xiàng),則多余的輸出項(xiàng)不輸出,相反,對于多余的格式將輸出不定值。在格式控制串中,可以包含任意的合法字符(包括轉(zhuǎn)義字符)。CompanyLogoTop14:數(shù)據(jù)的輸出真題分析(2013年3月)ACompanyLogoTop14:數(shù)據(jù)的輸出真題分析(2006年4月)若變量a,b已定義為int

類型并賦值21和55,要求用printf

函數(shù)以a=21,b=55的形式輸出,請寫出完整的的輸出語句______printf(“a=%d,b=%d”,a,b);CompanyLogoTop14:數(shù)據(jù)的輸出真題分析(2004年9月)有以下程序,程序運(yùn)行后的輸出結(jié)果是——main(){intm=0256,n=256;printf(“%o%o\n”,m,n);}A、0256 0400 B、0256 256C、256 400 D、400400CCompanyLogoTop14:數(shù)據(jù)的輸出真題分析(2004年4月)有以下程序,執(zhí)行后的結(jié)果是——main(){intx=102,y=012;printf(“%2d,%2d\n”,x,y);}A、10,01 B、02,12C、102,10 D、02,10C格式控制符%2d中的2表示輸出數(shù)據(jù)的最小寬度為2,如果指定的寬度不夠,并不影響數(shù)據(jù)的完整輸出。CompanyLogo格式:getchar()功能:從鍵盤讀一字符返值:正常,返回讀取的代碼值;出錯(cuò),返回EOF(-1)字符輸入函數(shù)例#include<stdio.h>main(){intc;

printf("Enteracharacter:");c=getchar();

printf("%c--->hex%x\n",c,c);}運(yùn)行結(jié)果:Enteracharacter:AA--->hex41Top15數(shù)據(jù)輸入CompanyLogo格式輸入函數(shù)格式:scanf(“格式控制串”,地址表)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的存儲(chǔ)單元中,并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個(gè)數(shù)地址表:變量的地址,常用取地址運(yùn)算符&格式字符:d,i,o,x,u,c,s,f,e例scanf(“%d”,&a);

輸入:10

則a=10例scanf(“%x”,&a);

輸入:11

則a=17Top15數(shù)據(jù)輸入CompanyLogo附加格式說明符(修飾符)l修飾符功能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實(shí)數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定輸入項(xiàng)讀入后不賦給變量例scanf(“%4d%2d%2d”,&yy,&mm,&dd);

輸入19991015

則1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);

輸入12345678765.43

則123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);

輸入1234567

則12a,67b例scanf(“%3c%2c”,&c1,&c2);

輸入abcde

則‘a(chǎn)’c1,‘d’c2Top15數(shù)據(jù)輸入CompanyLogo輸入分隔符的指定一般以空格、TAB或回車鍵作為分隔符其它字符做分隔符:格式串中兩個(gè)格式符間字符例scanf(“%d%o%x”,&a,&b,&c);

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

輸入123123123

輸出a=123,b=83,c=291例scanf(“%d:%d:%d”,&h,&m,&s);

輸入12:30:45則12h,30m,45s例scanf(“%d,%d”,&a,&b)

輸入3,4

則3a,4b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);

輸入a=12,b=24,c=36Top15數(shù)據(jù)輸入CompanyLogo說明:用“%c”格式符時(shí),空格和轉(zhuǎn)義字符作為有效字符輸入如scanf(“%c%c%c”,&c1,&c2,&c3);

若輸入abc

則ac1,

c2,bc3輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束:遇空格、TAB、或回車遇寬度結(jié)束遇非法輸入如scanf(“%d%c%f”,&a,&b,&c);

若輸入1234a123o.26

則1234a,‘a(chǎn)’b,123c輸入函數(shù)留下的“垃圾”:例intx;charch;

scanf(“%d”,&x);

ch=getchar();

printf(“x=%d,ch=%d\n”,x,ch);執(zhí)行:123輸出:x=123,ch=10例intx;charch;

scanf(“%d”,&x);

scanf(“%c”,&ch);

printf(“x=%d,ch=%d\n”,x,ch);執(zhí)行:123輸出:x=123,ch=10解決方法:(1)用getchar()清除(2)用函數(shù)fflush(stdin)清除全部剩余內(nèi)容(3)用格式串中空格或“%*c”來“吃掉”例intx;charch;

scanf(“%d”,&x);

scanf(“%c”,&ch);或scanf(“%*c%c”,&ch);

Top15數(shù)據(jù)輸入CompanyLogoTop15數(shù)據(jù)輸入考點(diǎn)熟知各種格式字符的功能scanf函數(shù)中的輸入項(xiàng)必須是“地址量”輸入數(shù)據(jù)時(shí),各個(gè)數(shù)據(jù)間可以用空格符、回車符或Tab鍵作為分隔符除了3中所述分隔符外,還可以自己指定其它字符作為分隔符,但在輸入時(shí)應(yīng)輸入與這些字符相同的字符。輸入數(shù)據(jù)時(shí),遇到以下情況時(shí)該數(shù)據(jù)被認(rèn)為表示結(jié)束:遇到空格、Tab鍵或回車符按指定的寬度結(jié)束,如”%4d“,只取4列遇到非法輸入。CompanyLogoTop15數(shù)據(jù)輸入真題分析(2013年3月)DCompanyLogoTop15數(shù)據(jù)輸入真題分析(2013年3月)ACompanyLogoTop15數(shù)據(jù)輸入真題分析(2005年4月)下列程序運(yùn)行時(shí)若從鍵盤輸入:1020

30<CR>。輸出結(jié)果是——#include<stdio.h>main(){inti=0,j=0,k=0;scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);}10300CompanyLogoTop16復(fù)合語句和空語句C語句控制語句函數(shù)調(diào)用語句表達(dá)式語句空語句9種復(fù)合語句例:printf(“cworld!”);例:a=23;b=a+6;只有一個(gè)分號(hào);用{}把一些語句括起來構(gòu)成CompanyLogo復(fù)合語句1用{…}括起來的一組語句一般形式:

{[數(shù)據(jù)說明部分;]

執(zhí)行語句部分;

}說明:“}”后不加分號(hào)語法上和單一語句相同復(fù)合語句可嵌套main(){

int

a,b=4;a=3;

printf(“%d”,a);

for(i=1;i<5;i++){b=b+i;printf(“%d\n”,b);}}Top16復(fù)合語句和空語句CompanyLogo空語句2main(){;}Top16復(fù)合語句和空語句CompanyLogoTop16復(fù)合語句和空語句真題分析(2005年9月)以下敘述中錯(cuò)誤的是——A、C語句必須以分號(hào)結(jié)束B、復(fù)合語句在語法上被看作一條語句C、空語句出現(xiàn)在任何位置都不會(huì)影響程序運(yùn)行D、賦值表達(dá)式末尾加上分號(hào)就構(gòu)成賦值語句CC程序中所有語句都必須以“;”作為結(jié)束,如果只有一個(gè)分號(hào),也當(dāng)成一條語句,稱為“空語句”,執(zhí)行時(shí)不產(chǎn)生任何動(dòng)作。程序設(shè)計(jì)中有時(shí)候需要加一個(gè)空語句來表示存在一條語句,但隨意加分號(hào)會(huì)導(dǎo)致邏輯上的錯(cuò)誤,影響程序運(yùn)行。CompanyLogo第4章選擇結(jié)構(gòu)Top17:關(guān)系運(yùn)算Top19:條件表達(dá)式及其構(gòu)成的選擇結(jié)構(gòu)Top20:幾類運(yùn)算符的優(yōu)先級(jí)Top21:If語句Top22:含else的If語句Top23:嵌套的If語句Top24:switch語句及其與break語句構(gòu)成的選擇結(jié)構(gòu)Top18:邏輯運(yùn)算Top25:語句標(biāo)號(hào)和goto語句CompanyLogo

所謂“關(guān)系運(yùn)算”實(shí)際上就是“比較運(yùn)算”,即將兩個(gè)數(shù)據(jù)進(jìn)行比較,判定兩個(gè)數(shù)據(jù)是否符合給定的關(guān)系。Top17關(guān)系運(yùn)算在C語言中,“等于”關(guān)系運(yùn)算符是雙等號(hào)“==”而不是單等號(hào)“=”(賦值運(yùn)算符)。注意:<(小于)<=(小于或等于),>(大于),>=(大于或等于),==(等于),!=(不等于)1.關(guān)系運(yùn)算符(6種):CompanyLogo2.優(yōu)先級(jí)(2)與其它種類運(yùn)算符的優(yōu)先級(jí)關(guān)系關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符但高于賦值運(yùn)算符。Top17關(guān)系運(yùn)算(1)在關(guān)系運(yùn)算符中且前4個(gè)高于后2個(gè)。前4個(gè)優(yōu)先級(jí)相同(<、<=、>、>=)后2個(gè)也相同(==、!=)CompanyLogoTop17關(guān)系運(yùn)算3.關(guān)系表達(dá)式所謂關(guān)系表達(dá)式是指,用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來,進(jìn)行關(guān)系運(yùn)算的式子。a>ba+b>c-d(a=3)<=(b=5)'a'>='b'(a>b)==(b>c)CompanyLogo例,假設(shè)num1=3,num2=4,num3=5,則:num1<num2<num3=1思考:任意改變num1或num2的值,會(huì)影響整個(gè)表達(dá)式的值嗎?Top17關(guān)系運(yùn)算注意:由于C語言沒有邏輯型數(shù)據(jù),所以用整數(shù)“1”表示“邏輯真”,用整數(shù)“0”表示“邏輯假”。 關(guān)系表達(dá)式的值是邏輯值。CompanyLogoTop17關(guān)系運(yùn)算注意:應(yīng)避免對實(shí)數(shù)作相等或不等的判斷.注意區(qū)分“=”與“==”例1.0/3.0*3.0==1.0Xfabs(1.0/3.0*3.0-1.0)<1e-6√CompanyLogoTop17關(guān)系運(yùn)算考點(diǎn)6個(gè)關(guān)系運(yùn)算符(結(jié)合方向是自左到右)>>=<<==!=在C語言中,關(guān)系表達(dá)式的結(jié)果值為1或0。當(dāng)關(guān)系表達(dá)式成立時(shí),其結(jié)果值為1當(dāng)關(guān)系表達(dá)式不成立時(shí),其值為0。優(yōu)先級(jí)低優(yōu)先級(jí)高CompanyLogoTop17關(guān)系運(yùn)算真題分析(2013年3月)DCompanyLogoTop17關(guān)系運(yùn)算真題分析(2006年4月)在以下給出的表達(dá)式中,與while(E)中的E不等價(jià)的表達(dá)式是——A、(!E==0)B、(E>0)||(E<0)C、(E==0)D、(E!=0)C

while(E)中的E表示條件成立,即E不等于0CompanyLogo邏輯運(yùn)算符種類:!&&||邏輯運(yùn)算真值表Top18邏輯運(yùn)算ab!a!ba&&ba||b真假真假假假真真真假假假假假真真假假真真真假真真關(guān)系表達(dá)式只能描述單一條件,例如“x>=0”如何描述“x>=0”、同時(shí)“x<10”CompanyLogo

短路特性:邏輯表達(dá)式求解時(shí),并非所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符a&&b&&c例//只在a為真時(shí),才判別b的值;只在a、b都為真時(shí),才判別c的值a||b||c//只在a為假時(shí),才判別b的值;只在a、b都為假時(shí),才判別c的值例a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d)練習(xí)m=?n=?m=0n=1Top18邏輯運(yùn)算CompanyLogoTop18邏輯運(yùn)算真題分析(2013年3月)ACompanyLogoTop18邏輯運(yùn)算真題分析(2006年9月)以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對象的敘述中正確的是——A、只能是整數(shù)0或1B、只能是整數(shù)0或非0整數(shù)C、可以是結(jié)構(gòu)體類型的數(shù)據(jù)D、可以是任意合法的表達(dá)式DCompanyLogoTop18邏輯運(yùn)算真題分析(2006年4月)以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,則輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時(shí),確定a、b、c能構(gòu)成三角形的條件是需要同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。請?zhí)羁?。main(){floata,b,c;scanf(“%f%f%f”,&a,&b,&c);if(_______) printf(“YES\n”);else printf(“NO\n”);}(a+b>c)&&(a+c>b)&&(b+c>a)CompanyLogoTop18邏輯運(yùn)算真題分析(2005年9月)設(shè)有定義:inta=2,b=3,c=4;則以下選項(xiàng)中值為0的表達(dá)式是——A、(!a==1)&&(!b==0)B、(a>b)&&!c||1C、a&&bD、a||(b+b)&&(c-a)A條件運(yùn)算符是C語言提供的唯一的三目運(yùn)算符1、條件表達(dá)式的形式:表達(dá)式1?表達(dá)式2:表達(dá)式3例:若x=50,則y=x>10?100:200的值為多少?例:若x=-5,則abs=x<0?(-1)*x:xTop19條件表達(dá)式及其構(gòu)成的選擇結(jié)構(gòu)?:1005CompanyLogoTop19條件表達(dá)式及其構(gòu)成的選擇結(jié)構(gòu)3、條件表達(dá)式的嵌套:例如:x>0?1:(x<0?-1:0)條件運(yùn)算符是C語言提供的唯一的三目運(yùn)算符?:高于賦值運(yùn)算符,但是低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符2、條件運(yùn)算符的優(yōu)先級(jí)(c>=‘a(chǎn)’&&c<=‘z’)?c-’a’+’A’:cprintf(“a+|b|=%d\n”,b>0?a+b:a-b);求a+|b|將小寫字母轉(zhuǎn)換為大寫字母(x%2==1)?1:0判斷x是否為奇數(shù)CompanyLogoTop19條件表達(dá)式及其構(gòu)成的選擇結(jié)構(gòu)真題分析(2006年9月)以下程序運(yùn)行后的輸出結(jié)果是——main(){int

x,a=1,b=2,c=3,d=4;x=(a<b)?a:b;x=(a<c)?x:c;x=(d>x)?x:d;printf(“%d\n”,x);}x=a=1a<b成立a<c成立x=1d>x成立x=11CompanyLogoTop20幾類運(yùn)算符的優(yōu)先級(jí)考點(diǎn) 邏輯運(yùn)算符與條件運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、算術(shù)運(yùn)算符的優(yōu)先級(jí)為:邏輯非(?。┧阈g(shù)運(yùn)算關(guān)系運(yùn)算邏輯與(&&)邏輯或(||)條件運(yùn)算符賦值運(yùn)算高低CompanyLogo真題分析(2005年4月)有以下程序,程序運(yùn)行后的輸出結(jié)果是——A、123B、234C、223D、233main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf(“%d%d%d\n”,i,j,k)}DTop20幾類運(yùn)算符的優(yōu)先級(jí)CompanyLogoTop21If語句if語句(條件選擇語句)exprstatement非0=0例:if(x>y)

printf(“%d”,x);if(expression)statement格式:執(zhí)行過程:CompanyLogoTop21If語句說明:if后面的表達(dá)式類型任意如:if(a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);

if(‘a(chǎn)’)printf(“%d”,’a’);if(x)if(x!=0)if(!x)

if(x==0)CompanyLogoTop21If語句真題分析(2013年3月)DCompanyLogoTop21If語句真題分析(2013年3月)BCompanyLogoTop21If語句真題分析(2005年9月)當(dāng)把以下四個(gè)表達(dá)式用作if語句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)與其他三個(gè)選項(xiàng)含義不同,這個(gè)選項(xiàng)是——A、k%2B、k%2==1C、(k%2)!=0D、!k%2==1DCompanyLogoif(expression)

statement1else

statement2exprstatement1statement2非0=0例:if(x>y)max=x;elsemax=y;例if(a>b)

printf(“%d”,a);else

printf(“%d”,b);printf(“%d”,a>b?a:b);Top22含else的IF語句格式一:執(zhí)行過程:CompanyLogoTop22含else的IF語句格式二if(expr1)statement1elseif(expr2)statement2elseif(expr3)statement3…...[elsestatementn]執(zhí)行過程:例:expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0if(salary>1000)index=0.4;elseif(salary>800)index=0.3;elseif(salary>600)index=0.2;elseif(salary>400)index=0.1;elseindex=0;CompanyLogoTop22含else的IF語句例考慮下面程序的輸出結(jié)果:#include<stdio.h>main(){int

x,y;

scanf(“%d,%d”,&x,&y);

if(x>y)x=y;y=x;elsex++;y++;

printf(“%d,%d\n”,x,y);}CompileError!說明:語句可以是復(fù)合語句CompanyLogoTop22含else的IF語句真題分析(2013年3月)CCompanyLogoTop22含else的IF語句真題分析(2013年3月)DCompanyLogoTop22含else的IF語句真題分析(2007年4月)設(shè)變量x和y均已經(jīng)正確定義并賦值,以下if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是——A、if(x++);B、if(x>0&y!=0);C、if(x>y) x— else y++;D、if(y<0) {;} else x++;CCompanyLogoTop22含else的IF語句真題分析(2005年9月)以下程序運(yùn)行后的輸出結(jié)果是——main(){inta=1,b=2,c=3;if(c=a)printf(“%d\n”,c);else printf(“%d\n”,b);}1CompanyLogoif--else配對原則:缺省{}時(shí),else總是和它上面離它最近的未配對的if配對if(……)if(……)if(……)else…...else…...else…...Top23If語句的嵌套考點(diǎn):CompanyLogo例:if(a==b)

if(b==c)

printf(“a==b==c”);else

printf(“a!=b”);修改:if(a==b)

{

if(b==c)

printf(“a==b==c”);

}else

printf(“a!=b”);實(shí)現(xiàn)if~else正確配對方法:加{}Top23If語句的嵌套CompanyLogoTop23If語句的嵌套真題分析(2006年9月)在嵌套使用if語句時(shí),C語言規(guī)定else總是——A、和之前與其具有相同縮進(jìn)位置的if配對B、和之前與其最近的if配對C、和之前與其最近不帶else的if配對D、和之前的第一個(gè)if配對CCompanyLogoTop23If語句的嵌套真題分析(2005年9月)設(shè)變量a,b,c,d和y都已經(jīng)正確定義并已經(jīng)賦值。若有以下if語句,該語句所表示的含義是——if(a<b)if(c==d)y=0;elsey=1;ABDCC

if(c==d)y=0;CompanyLogoTop24switch--break語句構(gòu)成的選擇結(jié)構(gòu)考點(diǎn)switch語句的一般形式switch(表達(dá)式){caseE1:

語句組1;

break;caseE2:

語句組2;

break;…….caseEn:

語句組n;

break;[default:

語句組;break;]}說明①常量表達(dá)式必須是與表達(dá)式對應(yīng)一致的整數(shù)、字符或枚舉常量。各case語句標(biāo)號(hào)的值應(yīng)該互不相同。②switch后的表達(dá)式通常為字符型變量,也允許是枚舉型變量,其結(jié)果為相應(yīng)的整數(shù)、字符或枚舉常量。③break語句不是一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論