版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言視頻教程
?為什么學(xué)習(xí)C語言:
I機(jī)器語言1第一代語言
I匯編語言第二代語言
Fortran語言主要用于科學(xué)計(jì)算,在第三代語言中,以
1980年為分水嶺,分為結(jié)構(gòu)化和面向?qū)ο笳Z言。
Basic語言是vb的前生,pascal語言一般是用于教學(xué)。
C語言是最重要的,其他的語言一般很少用了。結(jié)構(gòu)化
的代表語言是c語言。結(jié)構(gòu)化語言的數(shù)據(jù)和操作是分離
的,導(dǎo)致在寫大項(xiàng)目的時(shí)候,會(huì)出現(xiàn)各種各樣莫名其妙
的問題。
在面向?qū)ο蟮恼Z言中C++是最復(fù)雜的語言。由于C++語
言太復(fù)雜,sun公司對(duì)C++進(jìn)行了改裝,產(chǎn)生了java語
言。而c#是由微軟開發(fā)的,和java相似,幾乎一模一
樣。
■高級(jí)語言:a+b
■匯編語言ADDAX,BX
■機(jī)器語言00000001110110000
在高級(jí)語言的執(zhí)行速度上,c是最快的,C++其次,而
java和c#是最后的。Java和c#流行,主要的一個(gè)原因
C語言的發(fā)展和過程:
■產(chǎn)生時(shí)間:1972-1973
■產(chǎn)生地點(diǎn):美國貝爾實(shí)驗(yàn)室(Bell)
■創(chuàng)始人:Dermis.M.Ritchie和Ken.Thompson
■目的:改寫UNIX操作系統(tǒng)
■C語言發(fā)展過程
■1983年ANSIC
?1987年ANSIC87
?1994年C99
C語言的特點(diǎn):
?優(yōu)點(diǎn):代碼量小,速度快,功能強(qiáng)大。
?缺點(diǎn):危險(xiǎn)性高,開發(fā)周期長,可移植性弱。
危險(xiǎn)性高:寫同一個(gè)程序,在java中會(huì)報(bào)錯(cuò),而在c
中不會(huì)報(bào)錯(cuò),為什么呢,因?yàn)閏認(rèn)為程序你想怎么寫就
怎么寫,c語言認(rèn)為你寫的程序不是很離譜,他都認(rèn)為
你寫的這個(gè)程序有特殊的含義。可以直接通過,而java
則不可以。
開發(fā)周期長:c語言是面向過程的語言,面向過程的語
言的特點(diǎn)就是在開發(fā)大項(xiàng)目的時(shí)候,很容易崩潰,
現(xiàn)在市場上的語言分三塊
C/C++:單純的學(xué)習(xí)c是什么都做不了的。
Java
C#
可移植性不強(qiáng):這是針對(duì)java來說的,因?yàn)閖ava的可
移植性太強(qiáng)了,所以就感覺說c的可移植性不強(qiáng)。
金山公司最主要是靠wps辦公軟件來發(fā)展的。Wps是c
語言開發(fā)的,
三大系統(tǒng):windows,unix,1inux
Windows內(nèi)核是c語言寫的,而外殼是C++寫的。Java
永遠(yuǎn)不可能寫操作系統(tǒng)。因?yàn)閖ava運(yùn)行速度太慢了。
而1inux和unix都是純c寫的。
操作系統(tǒng)控制了硬件,如果說操作系統(tǒng)的運(yùn)行速度慢,
那么當(dāng)我們?cè)谶\(yùn)行軟件的時(shí)候,運(yùn)行速度會(huì)更慢。
為什么使用c語言寫操作系統(tǒng)呢,首先是因?yàn)閏的運(yùn)行
速度快,然后是因?yàn)閏可以直接控制硬件,而其他語言
不可以。沒有指針的語言是不能直接訪問硬件的。
C語言的應(yīng)用領(lǐng)域:
■系統(tǒng)軟件開發(fā)
■操作系統(tǒng):Windows>Linux、Unix
■驅(qū)動(dòng)程序:主板驅(qū)動(dòng)、顯卡驅(qū)動(dòng)、攝像頭驅(qū)動(dòng)
■數(shù)據(jù)庫:DB2、Oracle.SqlServer
■應(yīng)用軟件開發(fā)
■辦公軟件:Wps
■圖形圖像多媒體:ACDSeePhotoshop
MediaPlayer
■嵌入式軟件開發(fā):智能手機(jī)、掌上電腦
■游戲開發(fā):2D、3D游戲
驅(qū)動(dòng)一般是用c和匯編來寫的。
數(shù)據(jù)庫一般是用C和C++來寫的
C語言的重要性:
■有史以來最重要語言
■所有大學(xué)工科和理科學(xué)生必修課程
■最重要系統(tǒng)軟件:windows、linux、unix均使用c開發(fā)
■一名合格黑客必須掌握的語言
■任何一個(gè)想終身從事程序設(shè)計(jì)和開發(fā)人員必須熟練掌握的語言
■大企業(yè)、外企招聘程序員必考的語言
■為學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、C++、Java、C#奠定基礎(chǔ)
病毒最基本的是要感染系統(tǒng),
數(shù)據(jù)結(jié)構(gòu),C,C++這三門語言是必須要學(xué)習(xí)的。
牛人牛語:
入門最基本的方法就是從C語言入手。
當(dāng)你成為c語言的高手,那么就你很容易進(jìn)入到操作系統(tǒng)的平臺(tái)里面去;
當(dāng)你進(jìn)入到操作系統(tǒng)的平臺(tái)里去實(shí)際做程序時(shí),就會(huì)懂得進(jìn)行調(diào)試;當(dāng)你
懂得調(diào)試的時(shí)候,你就會(huì)發(fā)現(xiàn)能輕而易舉地了解整個(gè)平臺(tái)的架構(gòu)。這時(shí)候
,計(jì)算機(jī)基本上一切都在你的掌握之中了,沒有什么東西能逃得出你的手
掌心
一一《編程箴言》梁肇新
怎樣學(xué)習(xí)C語言
參考資料“
■譚浩強(qiáng)《C語言程序設(shè)計(jì)》清華
■《TheCprogramminglanguage》機(jī)械_£業(yè)
■C《PrimerPlus)60元人名郵電
■C《和指針》65元人名郵電
■《C專家編程》絕版
■《C陷阱與缺陷》人名郵電30
■《C科學(xué)與藝術(shù)》機(jī)械工業(yè)
王爽寫的C++也很不錯(cuò)
學(xué)習(xí)的目標(biāo):
C語言的關(guān)鍵字:
32個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)
autobreakcasecharconst
continuedefaultdodoubleelse
enumexternfloatforgoto
ifintlongregisterreturn
shortsignedsizeofstaticstruct
switchtypedefunsignedunionvoid
volatilewhile
C語言程序的格式:
#include<stdio.h>
intmain(void)
II
return0;
第二講:(14)c語言編譯知識(shí)
l.Cpu,內(nèi)存條,硬盤,顯卡,主板,顯示器之間的關(guān)
系。
Cpu不能直接處理硬盤上的數(shù)據(jù),必須要先調(diào)入內(nèi)存
中。
2.Hello,word程序是如何運(yùn)行起來的。
3.什么是數(shù)據(jù)類型
數(shù)據(jù)類型就是數(shù)據(jù)的分類,可以分為
a:基本數(shù)據(jù)類型:
整形
整形int—4
短整形shortint-2
長整形longint-8
浮點(diǎn)型
單精度浮點(diǎn)數(shù)float:存儲(chǔ)范圍小-4
雙精度浮點(diǎn)數(shù)double:存儲(chǔ)范圍大-8
字符char:c語言中是沒有字符串的。-1
B:符合類型:就是把基本類型拼湊在一起。
結(jié)構(gòu)體
枚舉
共用體
什么是變量
變量的本質(zhì)是內(nèi)存中一段存儲(chǔ)空間,
4.Cpu,內(nèi)存條,vc++6.0,操作系統(tǒng)之間的關(guān)系。
5.變量為什么必須初始(即賦值)
所謂的初始化就是賦值的意思,
軟件運(yùn)行與內(nèi)存關(guān)系(垃圾數(shù)據(jù))
1.軟件在運(yùn)行前需要向操作系統(tǒng)申請(qǐng)存儲(chǔ)空間,在內(nèi)
存空間足夠空閑時(shí),操作系統(tǒng)將分配一段內(nèi)存空間
并將該外存中軟件拷貝一份存入該內(nèi)存空間中,并
啟動(dòng)該軟件運(yùn)行。
2.在軟件運(yùn)行期間,該軟件所占內(nèi)存空間不再分配給
其他軟件。
3.當(dāng)該軟件運(yùn)行完畢后,操作系統(tǒng)將回收該內(nèi)存空間
(注意:操作系統(tǒng)并不清空該內(nèi)存空間遺留下來的
數(shù)據(jù)),以便再次分配給其他軟件使用。
綜上所訴,一個(gè)軟件所分配到的空間中極可能存在
著以前其他軟件使用過后的殘留數(shù)據(jù),這些數(shù)據(jù)被
稱之為垃圾數(shù)據(jù),所以通常情況下我們?yōu)橐粋€(gè)變
量,為一個(gè)數(shù)組,分配好存儲(chǔ)空間之前都要對(duì)該內(nèi)
存空間初始化。
6.如何定義變量
數(shù)據(jù)類型,變量名稱=賦予的值
等價(jià)于
數(shù)據(jù)類型變量名
變量名=要賦予的值
舉例子:
IntI=3;等價(jià)于inti;I=3;
Inti,j;等價(jià)于inti;intj;
Inti,j=3等價(jià)于inti;intj;j=3
IntI=3,j=5;等價(jià)于inti;intj;I=3;
j=5;
7.什么是進(jìn)制
我們規(guī)定八進(jìn)制前面加0(零),十六進(jìn)制前面加Ox。
在匯編中:在數(shù)學(xué)后加字母B表示二迷制救,加字
母。表示人進(jìn)制教,加字母D表示十迷制教,加字母H表
示十六選制教。
例:
1011B為二進(jìn)制數(shù)1011,也記為(1011)2
13570為八進(jìn)制數(shù)1357,也記為(1357)&
2049D為十進(jìn)制數(shù)2049,也記為(2049)10
3FB9H為十六進(jìn)制數(shù)3FB9,也1己為(3FB9)
B什么叫n進(jìn)制
■八進(jìn)制
?8個(gè)基數(shù)逢8進(jìn)一
■基數(shù):01234567
■8->109->1110->12
■十六進(jìn)制:
?16個(gè)基數(shù)逢16進(jìn)一
?基數(shù):0123456789ABC出EF或
?0123456789abedef
■16->1017=1118->1219->13
常用計(jì)數(shù)制對(duì)照表:
.
十進(jìn)制(D)二進(jìn)制(B)八進(jìn)制(0)十六進(jìn)制(H)
常0000
1111
21022
用31133
410044
計(jì)510155
611066
711177
數(shù)81000108
91001119
制10101012a
11101113b
12110014c
對(duì)13110115d
14111016e
八昭、、15111117f
表由d
Printf的基本用法:
printf(z,i=%d\n,,>i);
/*
printf的用法
%d表示以十進(jìn)制輸量
%*或9^表示以十六遴制輸出
%。表示以八進(jìn)制輸出
*/
8.常量在c中是如何表示的
整數(shù)
十進(jìn)制:傳統(tǒng)的寫法
十六進(jìn)制:前面加Ox或0X
八進(jìn)制:前面0注意是數(shù)字零不是字母。
浮點(diǎn)數(shù)
傳統(tǒng)的寫法
floatx=3.2;〃傳統(tǒng)
科學(xué)計(jì)數(shù)法
floatx=3.2@3;//x的值是3200
floatx=123.45e-2;〃x的值是1.2345
I
字符
當(dāng)個(gè)字符使用單引號(hào)括起來,多個(gè)字符串使用雙引號(hào)
括起來。
intmain(void)
(
floatx=123.45e-2F|;
printfx);
return0;
}
在c中,默認(rèn)是double類型的。在后面加F表示當(dāng)
做float來處理。
9.常量是以什么樣的二進(jìn)制代碼存儲(chǔ)在我們的計(jì)算機(jī)
中。
編碼:整數(shù)是以補(bǔ)碼的形式轉(zhuǎn)換為二進(jìn)制代碼存儲(chǔ)在計(jì)
算機(jī)中的,
浮點(diǎn)數(shù)是以ieee754標(biāo)準(zhǔn)轉(zhuǎn)換為二進(jìn)制代碼存儲(chǔ)在計(jì)
算機(jī)中的。
字符的本質(zhì)實(shí)際也是與整數(shù)的存儲(chǔ)方式相同。
第三次課:
代碼規(guī)范化
?可以參考林銳《高質(zhì)量C/C++編程》
?代碼的規(guī)范化非常的重要,是學(xué)習(xí)一門編程語言的
基礎(chǔ)。
?代碼規(guī)范化的好處
1:整齊,別人和自己都容易看懂。
2:代碼規(guī)范了,代碼不容易出錯(cuò)。
3:一般的程序可以分為三塊:
a:定義變量
b:對(duì)變量進(jìn)行操作
c:輸出值
什么是字節(jié)
?存儲(chǔ)數(shù)據(jù)的單位,并且是硬件所能訪問的最小單位。
內(nèi)存中存儲(chǔ)的最小單位是字節(jié),但是硬件控制的時(shí)候不
能精確到位,只能精確到字節(jié),是通過地址總線來控制
的,而精確到位是通過軟件來控制的,叫做位運(yùn)算符來
精確到位的。
不同類型數(shù)據(jù)之間相互賦值的問題
不同數(shù)據(jù)類型之間最好不要相互轉(zhuǎn)換。
inti=45;
longj=102345;
i=j;
printf(*%ld%d\n*,i,j);
floatx=6.6;
doubley=8.8;
printf(*%f%lf\n,x,y"),
inti=;
如果需要明白這個(gè)知識(shí)點(diǎn),那么需要明白補(bǔ)碼。
什么是ASCII碼
以char定義變量的時(shí)候,只能使用單引號(hào)括起一個(gè)字
符才是正確的。
Uinclude<stdio.h>
intmain(void)
(charch='A',〃4行OK等價(jià)charch,="A'.
//charch="AB”,//error因?yàn)?AB〃是字符串,我們不能把字符串賦給單個(gè)字符
//charch="A";//error
//charch='AB',//'AB'是錯(cuò)誤的
//charch='8.//error,因?yàn)閏h變量已經(jīng)在4行定義了,這樣會(huì)導(dǎo)致變量名被:
ch='C;
printf(<%c\n\ch);
在上圖中注釋的最后一樣是重復(fù)定義了ch的值,是錯(cuò)
誤的,而下面的ch=4c,是指把c賦值給ch,是正
確的。
9inc1ude<stdio.h>
intmainXx^id)
clmrLh}'K,
printTC%d\n^^ch),
return0;
上圖中輸出的值是98
Ascii碼規(guī)定了ch是以那個(gè)值去保存,ascii碼不是一
個(gè)值,而是一種規(guī)定,規(guī)定了不同的字符是以那個(gè)整數(shù)
值去表示。
14.什么是ASCII
ASCII不是一個(gè)值,而是一種規(guī)定,
ASCII規(guī)定r了不同的字符是使用哪個(gè)整數(shù)值去表示
它規(guī)定了1
,A'—65
——66
'a'"97
,b,—98
'0'—48
字符本質(zhì)上與整數(shù)的存儲(chǔ)方式相同【字符的存儲(chǔ)】
基本的輸入和輸出函數(shù)的用法:
第三次課
Printf()
將變量的內(nèi)容輸出到顯示器上。
四種用法
1.printf(?字符串");
2.print""輸出控制符二輸出參數(shù));
3.printf「輸出控制符1輸出控制符2。。。輸出參數(shù)1,
輸出控制符和輸出參數(shù)的個(gè)數(shù)必須一一對(duì)應(yīng)
4.printf("輸出控制將非輸出控制符:輸出參數(shù)
輸什么是輸出控制符,什么是非輸出控制符
輸出控制符包含如下:
%d——int
%ld——longint
%c—char
%f——float
%lf——double
%x(或者%X后者%#X)——int或longint或shortint
%o——同上
%sI——字符串1
Printf為什么需要輸出控制符:
?01組成的代碼可以表示數(shù)據(jù)也可以表示指令。必須
要有輸出控制符告訴他怎么去解讀。
?如果01組成的代碼表示的是數(shù)據(jù)的話,那么同樣的
01代碼組合以不同的格式輸出就會(huì)有不同的輸出結(jié)
果,所以必須要有輸出控制符。
力include<stdio.h>
intmain(void)
(
intx=47;//100是十進(jìn)制
printfx);〃輸出結(jié)果是:_2f
printfx);//輸出結(jié)臬是:2F
printfx);//輸出結(jié)果是:OX2F|
printfC%4x\n^,x);〃輸出結(jié)臬是:0x2f
return0;
)
在上圖中,intx=47,如果前面加0(零)表示的是
八進(jìn)制,如果前面加Ox(零x)則表示的是十六進(jìn)制,
而在輸出的時(shí)候,則是。(字母。)表示八進(jìn)制,ox(字
母0,X)表示十六進(jìn)制。
非輸出控制符:非輸出控制符在輸出的時(shí)候會(huì)原樣輸
出。
??*\,/—1,,,??(WW-—?^―??一?,■———)
printf(*i=%d,j=%d\n*,j,k);
Scanf()通過鍵盤將數(shù)據(jù)輸入到變量中
有兩種用法:
用法一:scanf("輸入控制符",輸入?yún)?shù));
功能:將從鍵盤輸入的字神轉(zhuǎn)化為輸入控制符所規(guī)定格式的數(shù)據(jù)
,然后存入以輸入?yún)?shù)的值為地址的變量中|
示例:
#include<stdio.h>
intmain(void)
|
inti;
scanf("為d",&i);//&i表示i的地址也是一個(gè)取地址符
printf(^i=%d\n〃,i);
return0;|
)
非輸入控制符:在輸入的時(shí)候也會(huì)原樣輸入。
用法二:scanf「非檢入控制符愉入控制符二愉入?yún)?shù));
功能:將從鍵盤愴入的字符轉(zhuǎn)化為愴入控制符所規(guī)定格式的數(shù)據(jù)
,然后存入以輸入?yún)?shù)的值為地址的變量中
非輸入控制符必須原樣輸入
4include<stdio.h>
intmain(void)
{
inti;
I
scanf&i);
printf(*i=%d\n*,i)]
return0;
)
但是一般我們?cè)谑褂胹canf的時(shí)候,我們一般都不使用
非輸入控制符。
給多個(gè)變量賦值:
#include<stdio.h>
intmain(void)
(
inti,j;
scanf(*%d%d”,&i,&j);
printf(*i=j=%d\n*,i,j),1T
return0;
)
需要記住,非控制符需要原樣輸入。
如何使用scanf編寫出高質(zhì)量代碼
如何使用scanf編寫出高質(zhì)量代碼
1.使用scanf之前最好先使用printf提示用戶以什么樣的
方式來輸入
2.scanf中盡量不要使用非輸入控制符,尤其是不要用\n|
Sinclude<stdio.h>
intmain(void)
{
inti;
石canf("d\n",&i);〃非常不好的格式,不要加\n
printf("i=%d\n”,i);
return0;
}
3.應(yīng)該編寫代碼對(duì)用戶的非法輸入做適當(dāng)?shù)奶幚怼痉侵攸c(diǎn)】
while((ch=getchar())!='\n')
continue;
Sinclude<stdio.h>
intmain(void)
{
inti;
charch;
scanf("%d",&i);
printf(^i=%d'n',i);
I//..........
while((ch=getchar())!='\n')
Y/continue;
intj;
scanf("%d",&j);
printfC"j=%d\n”>j);
return0;
}
運(yùn)算符:
算術(shù)運(yùn)算符:
加(+),減(一)乘(*)除(/)取余(%)
關(guān)系運(yùn)算符:
>,>=,<,<=,!=,
邏輯運(yùn)算符:
!(非),&&(且),II(或)
)
||(或
且)
&(并
)'&
!(非
假
!真真
!假
真
真
真我&假
假
真也也假
真
假也&假
假
假&&
真
假
真II真
I真
假I真
真
真II假
假
假II
處理
假的
對(duì)真
C語言
真
非零是
?
零是假
示
1表
真是
表示
假是0
行
會(huì)執(zhí)
定不
式肯
表達(dá)
邊的
假右
式為
表達(dá)
邊的
&&左
行
會(huì)執(zhí)
定不
式肯
表達(dá)
邊的
真|右
式為
表達(dá)
邊的
I|左
符:
運(yùn)算
賦值
/=
*=,
=,
=,+
=a/3
價(jià)于a
3等
a/=
3,
于a=a+
等價(jià)
3是
:a+=
例如
。
》賦值
〉邏輯
〉關(guān)系
算術(shù)
別是
先級(jí)
其優(yōu)
■除法與取模運(yùn)算符
■除法/的運(yùn)算結(jié)果和運(yùn)算對(duì)象的數(shù)據(jù)類型有關(guān),兩個(gè)數(shù)都是int
,則商就是int,若商有小數(shù),則截取小數(shù)部分;被除數(shù)和除數(shù)
中只要有一個(gè)或兩個(gè)都是浮點(diǎn)型數(shù)據(jù),則商也是浮點(diǎn)型,不
截取小數(shù)部分。
如:16/5==316/5.0==3.20000-13/4==-4
-131-3==43/5==05/3==1
最典型的例題就是求s=1+1/2+1/3+1/4+1/5……+1/100的值(具體程序我
們以后再講)。
■取余%的運(yùn)算對(duì)象必須是整數(shù),結(jié)果是整除后的余數(shù),其余數(shù)
的符號(hào)與被除數(shù)相同
如:13%3=1113%-3==1-13%3==-1
-13%23==-133%5==3
?測試取模運(yùn)算符的例子
1.#include<stdio.h>
2.intmain(void)
3.{
4.printfC%d%d%d%d%d%dln”,七,13%?3,-13%3,-13%-3,-13%23,3%5);
5.return0;
6.}
7.r
8.輸出結(jié)果是:
9*******************************************
10.01-1-1-133
itPressanykeytocontinue
j,mmm****************************
總結(jié):取余%的運(yùn)算對(duì)象胸是整數(shù),結(jié)果是瞬后的斜L其翎的符號(hào)與被除數(shù)相同
14.*1
取余的結(jié)果的正負(fù)只和被除數(shù)有關(guān)。
第四節(jié)
流程控制:
1.什么是流程控制
程序代碼執(zhí)行的順序。
2.流程控制的分類
順序執(zhí)行
選擇執(zhí)行
定義:某些代碼可能執(zhí)行,可能不執(zhí)行,
有選擇的執(zhí)行某些代碼。
分類:if
1.金最簡單的用法
2.if的范圍問題
3.if..else.一的用法
4.if..elseif...else...的用法
5.C語言對(duì)真假的處理
6.if舉例一求分?jǐn)?shù)的等級(jí)
7.if的常見問題解析
If最簡單的用法:
1.if最簡單的用法
格式:
if(表達(dá)式)
語句
功能:
如果表達(dá)式為真,執(zhí)行語句
如果表達(dá)式為假,語句不執(zhí)行
#include<stdio.h>
intmain(void)
{
if(3)
printf(〃AAAA\n〃);//會(huì)輸出
if(0)
printf;〃不會(huì)輸出
if(0==0)
printf("CCCC'n");〃會(huì)輸出
return0;
2.if的范圍問題
1.
if(表達(dá)式)
語句A;
語句B;
解釋:if默認(rèn)只能控制語句A的執(zhí)行或不執(zhí)行
if無法控制語句B的執(zhí)行或不執(zhí)行
或者講:語句B一定會(huì)執(zhí)行
.if林認(rèn)的只能控制一個(gè)語句的執(zhí)行或不執(zhí)行?
if(表達(dá)式)
(
語句A;
語句B;
)
此時(shí)if可以控制語句A和語句B
I
由此可見:if默認(rèn)只能控制一個(gè)語句的執(zhí)行或不執(zhí)行
如果想控制多個(gè)語句的執(zhí)行或不執(zhí)行
就必須把這些語句用{}括起來|
如果想控制多個(gè)語句的執(zhí)行或者不執(zhí)行,那么需要使用
。括起來。
3.if...else...的用法:
#include<stdio.h>
intmain(void)
{
inti]j;
scanf("%d%dT,也j);
if(i>j)
printf(〃i大于j\n〃);
else
printf("i小于j\n");
return0;
)
Sinclude<stdio.h>
intmain(void)
(
if(1|>2)
printf("AAAA'n");
else
printf("BBBB\n");
printf("CCCC'n");
return0;
}
if...else...if...else的用法:
if(1)
A;
elseif(2)
比
elseif(3)
C;
else
D;
#include<stdio.h>
intmain(void)
(
doubledelta=3;
if(delta>0)I
printf("看兩個(gè)解八n");
elseif(delta==0)
printf("有一個(gè)唯一解!\n*);
else
printf("無解!\nf);
return0;
}
C錯(cuò)誤的if...else...if...else語句:
Sinclude<stdio.h>
intmain(void)
{
doubledelta=~1;
if(delta>0)
printf("看兩個(gè)解!\n");
Lrintf("哈哈!、n");
elseif(delta==0)
printf("有一個(gè)唯一*解!\n");
else
printf("無解!、n");
return0;
}
在上圖中,當(dāng)執(zhí)行到哈哈那句時(shí),下面的else將會(huì)被
算作另外一個(gè)語句來執(zhí)行,而在我們的c語言中,沒有
以else開頭的語句。所以會(huì)出錯(cuò)。
If實(shí)例:
#include<stdio.h>
intmain(void)
{,
floatscore;//score分?jǐn)?shù)
printf(〃請(qǐng)輸入您的考試成績:〃);
scanf("%f”,fescore);
if(score>100)
printf(〃這是做夢!\n〃);
elseif(score>=90&&score<=100)//不能寫成90<=score<=100
printf("優(yōu)秀!\n");
elseif(score>=80&&score<90)
printf("良好八n");
elseif(score>=60&&score<80)
printf("及格!、n");
elseif(score>=0&&score<60)
printf(〃不及格!繼續(xù)努力!\nT);
If常見的問題:
變量的替換:
intt;//定義臨時(shí)變;it
,/6和7行代碼無法完成i和j的互換
//i=j;//6行i=3;j=5;
//j=i://7fj'1=5:j=5:
I
確的兀換i和j的方法I
t=i;
i=j;
j=t;
printfCi=%d,j=%d\n\i,j):
return0;
求三個(gè)數(shù)字的大小:
inta,b,c;〃等價(jià)于:inta;intb;intc;
intt;
printf(“請(qǐng)輸入三個(gè)整數(shù)(中間以空格分隔):;
scanf("%d%d%d-,&a,&b,&c);
〃編寫代碼完成a是最大值b是中間值c是最小值
if(a<b)
《
t=a;
a=b;
t=a;
a=c;
>c=t;
if(b<c)
<
t=b;
b=c;
c=t;
>
printf%d%d\n**,a,b,c);
return0;
c語言常見誤區(qū):
素?cái)?shù):只能被1和自己整除的數(shù),如1,5,9等。
回文數(shù):正著寫和倒著寫一樣的數(shù)。如1221,121,等
編程實(shí)現(xiàn)求一個(gè)十進(jìn)制數(shù)字的二進(jìn)制形式:
求一個(gè)數(shù)字的每位是奇數(shù)的數(shù)字取出來組合形成的新
數(shù)字。
求一個(gè)數(shù)字到過來的數(shù)字。
1:如果不懂,那么就看答案??炊鸢冈谇?。沒錯(cuò)誤
了,在嘗試改。
如何看懂一個(gè)程序:
1.流程:
2.每個(gè)語句的功能:
3.試數(shù):
對(duì)一些小算法的程序:
1.嘗試自己編程結(jié)局。
2.解決不了,看答案。
3.關(guān)鍵是把答案看懂。
4.看懂之后嘗試自己修改程序,且知道修
改之后程序的不同輸出結(jié)果的含義。
5.照著答案去敲
6.調(diào)試錯(cuò)誤
7.不看答案,自己獨(dú)立把程序編出
8.如果程序?qū)嵲谑菑氐谉o法了解,就把他
背會(huì)。
空語句的問題:
7.if的常見問題解析
1.空語句的問題
if(3>2);
等價(jià)于I
if(3>2)
;〃這是一個(gè)空語句
intmain(void)
{
if(1>2).
pnntf("AA.^^n");
printf("BBBB'rT);
return0;
1
在上圖中,最終的結(jié)果會(huì)是AAAA,BBBB,程序也不會(huì)報(bào)
錯(cuò),為什么呢,因?yàn)樵诔绦?/p>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西2025年陜西省煙草專賣局(公司)生產(chǎn)操作類崗位應(yīng)屆畢業(yè)生招聘12人筆試歷年參考題庫附帶答案詳解
- 綿陽四川綿陽三臺(tái)縣鄉(xiāng)鎮(zhèn)事業(yè)單位從“大學(xué)生志愿服務(wù)西部”項(xiàng)目人員招聘7人筆試歷年參考題庫附帶答案詳解
- 濱州2025年山東濱州濱城區(qū)招聘中小學(xué)特殊教育學(xué)校教師217人筆試歷年參考題庫附帶答案詳解
- 河南2025年河南警察學(xué)院招聘事業(yè)編制人員(碩士及以上研究生)筆試歷年參考題庫附帶答案詳解
- 揭陽2025年廣東揭陽市機(jī)關(guān)事務(wù)管理局招聘后勤工作人員筆試歷年參考題庫附帶答案詳解
- 慶陽2025年甘肅慶陽市寧縣人民政府辦公室直屬事業(yè)單位選調(diào)筆試歷年參考題庫附帶答案詳解
- 吉林2025年吉林市特種設(shè)備檢驗(yàn)中心(吉林市特種設(shè)備事故調(diào)查服務(wù)中心)招聘16人筆試歷年參考題庫附帶答案詳解
- 南通江蘇南通市海門區(qū)2025年農(nóng)村訂單定向醫(yī)學(xué)畢業(yè)生定向招聘26人筆試歷年參考題庫附帶答案詳解
- 云南2025年云南輕紡職業(yè)學(xué)院第二批招聘高層次人才4人筆試歷年參考題庫附帶答案詳解
- 耐藥逆轉(zhuǎn)劑在腫瘤治療中的個(gè)體化減毒策略
- 高校區(qū)域技術(shù)轉(zhuǎn)移轉(zhuǎn)化中心(福建)光電顯示、海洋氫能分中心主任招聘2人備考題庫及答案詳解(考點(diǎn)梳理)
- 航空安保審計(jì)培訓(xùn)課件
- 2026四川成都錦江投資發(fā)展集團(tuán)有限責(zé)任公司招聘18人備考題庫有答案詳解
- 高層建筑滅火器配置專項(xiàng)施工方案
- 2023-2024學(xué)年廣東深圳紅嶺中學(xué)高二(上)學(xué)段一數(shù)學(xué)試題含答案
- 2025年全國職業(yè)院校技能大賽中職組(母嬰照護(hù)賽項(xiàng))考試題庫(含答案)
- 2026江蘇鹽城市阜寧縣科技成果轉(zhuǎn)化服務(wù)中心選調(diào)10人考試參考題庫及答案解析
- 托管機(jī)構(gòu)客戶投訴處理流程規(guī)范
- 2026年及未來5年中國建筑用腳手架行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 銀行客戶信息安全課件
- (2025)70周歲以上老年人換長久駕照三力測試題庫(附答案)
評(píng)論
0/150
提交評(píng)論