版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
C語言講義(第一講)上間:兩共90分鐘
ScanfPrintfcC語言程序 int o //return 常量 常量表示固定的數(shù)據(jù)分類 整型常 浮點型常量5.43,-字符常 如‘?‘a(chǎn)‘F’“1236“nanabc” #definepi3.1415舉例:inta;charc;注意:變量名屬于標(biāo)識符,需要符合標(biāo)識符名規(guī)范。初始化:有兩種形式。1.inta;a=10; 2.inta=10;**m.aCsigned(有符號)unsigned(無符號)兩大例如,初始化變量inta -3;其實它等價于signed inta 字signed在這里可以省略,因為C語言默認(rèn)就是有符號類型的,如果要定義無符號類型的數(shù)(也就是0和正整數(shù))可以這樣定義,unsignedint b= 為了說明清楚signed和unsigned的區(qū)別,首先需要了解數(shù)據(jù)在內(nèi)存中是如2個字節(jié)的機器上來表示。unsignedinta1變量a在內(nèi)存中就是以來的,用圖表的形式表示:因為這里是unsignedint16位全部用來表示intb=-注意數(shù)字1和-1在內(nèi)存中的是完全不一樣的,請看在計算機中,整數(shù)是以原碼的形式的,而負(fù)數(shù)是以補碼的形式的,1,反碼就是原碼的各位取反,例如-1的補碼是:1的原碼是得到-1的補碼是,unsignedint0---2signedint162進制,只不過第一位用來表示符(類型說明符)(表達式 把a 以unsignedchar和char的原碼是:00000010,可知最不為1,因此轉(zhuǎn)為有符號 是2。#include#include<stdio.h>intmain(void){unsignedchari=2;return0;}130的原碼是:10000010,可知最為1,因此需要取它的補碼,補碼11111110,這是一個負(fù)數(shù),取最作為-號,取最低7位作為數(shù)值得到的#include#include<stdio.h>intmain(void){unsignedchari=130;return0;}等于有符號數(shù);如果有符號數(shù)的最為1,則將有符號數(shù)取補碼,得到的數(shù)以char和unsignedchar的原碼是:00000011,可知最不為1,因此轉(zhuǎn)為無符號數(shù)之后也#include<stdio.h>intmain(void){chari=3;printf("%u\n",(unsigned#include<stdio.h>intmain(void){chari=3;printf("%u\n",(unsignedchar)i);return0;}-7的原碼是:10000111,可知最為1,因此需要取它的補碼,補碼為11111001249。#include#include<stdio.h>intmain(void){chari=-7;printf("%u\n",(unsignedchar)i);return0;}11,則轉(zhuǎn)換結(jié)果就是printfprintf(“格式控制字符串”,輸出表列1)do以八進制形式輸出無符號整數(shù)(以十六進制形式輸出無符號整數(shù)(不輸出前綴ufcs2)-、+、#-+輸出符號(正號或負(fù)號#對c、s、d、u類無影響;對o類,在輸出時加前綴o;對x對e、g、f0。長度格式符為h、l兩種,h表示按短整型量輸出,l#include<stdio.h>intmain(void){intlongfloat;//原來b的定義為float;doublechar.;printf("a(%%d)=%da(%%5d)=%5d,a(%%o)=%o,a(%%x)=%x\n\n",a,a,a,a);//%%可以輸出%printf("a=%f\n",b);printf("c=%f\n",printf("c=%f\n",printf("c(%%lf)=%lf,c(%%f)=%f,printf("d(%%c)=%c,d(%%8c)=%8c\n",d,d);return0;}以四種格式輸出實型量以四種格式輸出實型量b的值。其中“%f”和“%lf”格式的輸出相同,說明“l(fā)”符4位部分被截去。輸出雙精度實數(shù),“%8.4lf44輸出字符量d,其中“%8c8故在輸出字符p7個空scanfscanf(“格式控制字符串”,地址表列其中,格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串,也例如:&a、&bab#include<stdio.h>intmain(void){intreturn0;}輸出提示,請用戶輸入a、b、c的值。執(zhí)行scanf語句,等待用戶輸入。在scanf78或789其中有方括號[]格式doxuf或輸入實型數(shù)(用小數(shù)形式或指數(shù)形式cs“*”scanf("%d%*d當(dāng)輸入為 3時,把1賦予a,2被跳過,3賦予b用十進制整數(shù)指定輸入的寬度(即字符數(shù) 只把12345賦予變量a,其余部分被截去。又如:輸 將把1234賦予a,而把5678賦予b%lfh使用scanf1).scanf函數(shù)中沒有精度控制,如:scanf("%5.2f",&a);是的。不能企圖用此2位的實數(shù)。2)scanf中要求給出變量地址,如給出變量名則會出錯。如scanf("%d",a);是非法的,應(yīng)改為scnaf("%d",&a);才是合法的。間隔則可用空格,TAB或回車作間隔。C編譯在碰到空格,TAB,回車或數(shù)據(jù)(如對“%d”輸入“12A”時,A即為數(shù)據(jù))時即認(rèn)為該數(shù)據(jù)結(jié)束。d、e、f則把'd'賦予a,''b,'e'賦予c。只有當(dāng)輸入為def時,才能把'd'賦于a,'e'賦予b,'f'賦予c。scanf("%c%c#include<stdio.h>intmain(void){charprintf("inputcharactera,b\n");return0;}由于scanf函數(shù)"%c%c"MNM。而輸入改為MN時則可輸出MN兩字符。#include<stdio.h>intmain(void){charprintf("inputcharactera,b\n");scanf("%c%c",&a,&b);return0;}本例表示scanf格式控制串"%cc"之間有空格時,輸入的數(shù)據(jù)之間可以有空其中用非格式符作間隔符,故輸入時應(yīng)為:5,6,7。又如:#include<stdio.h>intmain(void){intprintf("inputanumber\n");return0;}結(jié)果和輸入數(shù)據(jù)不符。如改動程序如下4-11#include<stdio.h>intmain(void){longprintf("inputalonginteger\n");return0;}inputalong一、CC(+(*(/(%(++(>(<(==(>=(<=(!=(&&(||,非(!,共(&(|(!(^(<<(>>(=%=<<=條件運算符:這是一個三目運算符,用于條件求值((&(sizeof特殊運算符:有括號、下標(biāo)、成員(->,)例如,在表達式a*b+c中,乘法運算的優(yōu)先級高于加法運算符的優(yōu)先級,所以先執(zhí)行乘法a*b,而不是加法b+a,b=1,c=2;操作先執(zhí)行,是先執(zhí)行b=c呢?a=b。如果按前者,a=2,如果按后者,a1。的操作最先執(zhí)行,然后從右到左依次執(zhí)行。這樣,c先賦值給b,然后b在賦值給aa2。類似地,具有左結(jié)合性的操作符(如位操作符“&”和=是右結(jié)合的,所以先計算(b+c+d),+是左結(jié)合的,所以先計算(b+c),然后再計算C+a+b,4+8等。具有左結(jié)合性。-時為單目運算,如-x,-5等具有左結(jié)合性。*/求余運算符(模運算符%的量均為整型,不能應(yīng)用于float或double類型。求余運算的結(jié)果等于兩數(shù)相除后的0合C語則的式子。表達式是由常量、變量、函數(shù)和運算符組合起來的式子。例如a*b/c-11運算符:1運算符記為“++”1。1運算符記為“--”1。11++ii1--ii1后再參與其它運算;i++i參與運算后,i1;i--i參與運算后,i1。在理解和使用上容易出錯的是i++和i--{inti=4;}i42i153144行輸出i41(5)5行輸出i51(4)6行輸出-41(5)7行輸出-51(4)。int{return0;}本例中,20/7,-20/720.0/7和-20.0/7由于int{return0;}10031。在C<(小于<=(小于或等于>(大于>=(大于或等于==(等于5>0的值為“真”(a=3)>(b=5)3>50。4.1簡單賦值運算符記為“=”“=”組建的式子稱為賦值表達式。a=b=c=5可理解為a=(b=(c=5)),即表達式5,a,b,c5。這個表達式從右向左運算,在c5后,表達式c=55,接著b5a5。⑥凡是表達式可以出現(xiàn)的地方均可出現(xiàn)賦值表達式。例如,式子x=(a=5)+(b=8)5賦給a,8賦給ba與b相加,和賦給x,故x13。賦值運算中的自動類型轉(zhuǎn)換0)。字符型賦給整型,由于字符型為一個字節(jié),故將字符的ASCII碼值放到整型量的低八位中,為0。整型賦給字符型,只把低八位賦給字符量。邏輯運算的結(jié)果只有兩個:真(0)和假①與&&1&&212都成立時,②.或|| 條件1||條件2當(dāng)條件1或條件2中有一個成立時就為真,③.非?。l件取反IntIntc=(a>5)&&(++b>=11);//此時a==10,b==11,c==1Intc=(a<5)&&(++b>=11);//此時提示:()優(yōu)先級次序:?。ǚ牵?&(與)||(或單目:153個數(shù)值參與要求比較a和b的值,把數(shù)值大的存入到c中c=a>b?a:b例如條件語句: elsemax=(a>bab;max=(a>b)?a:b;a>ba賦予max,否則把b賦予maxa>bac>dca>bac>dc:d5-8】#includestdio.h>intmain(void){inta,b,max;return0;}在C語言中,逗號“,”的用法有兩種:一種是用作分隔符,另一種是用作運算inta,b,c;C語言還允許用逗號連接表達式。例如x=5.6,y=2.1,10+x,x+y這里用三個逗號運123,...,表達式2*6a(結(jié)果是a=12),再計算a-4(只計算,不賦值),最后計算a+15(只計算,不賦值),27作為整個逗號表達式的值。請注aa的值仍然為12此逗號表達式的目的是實現(xiàn)變量a,b值互換,而不是使用整個表達式的值。由于逗號運算符的優(yōu)先級最低,因此x=5+5,10+10與x=(5+5,10+10)前者是x1020;后者由于增加了一對括10+10作為整個表達式的值并賦予變量x,因此x20。逗號表達式(a=3*5,a*4),a+153*515a,再計算括號內(nèi)的第二個表達式a*46060雖然作為括號所成的表達式的值,但是a15,因此最后計算a+1530。例intj=5;該賦值語句的執(zhí)行順序為:先對a6a+28,再計算a+399作為整個逗號表達式的值付給變量aa9。如果將一對括號去掉,a
溫馨提示
- 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)轉(zhuǎn)讓合同模板
- 450億廣告投放框架合同正式簽署
- 人力資源和社會保障局與勞動合同法改革探討
- 個體戶全職員工標(biāo)準(zhǔn)勞動合同合同范本
- 個人小型店面租賃合同樣本
- 個體藥店并購轉(zhuǎn)讓合同及附件
- 產(chǎn)業(yè)合作投資合同
- 交通事故賠償合同范本大全
- 個人家政服務(wù)勞務(wù)合同
- 喪葬禮儀服務(wù)合同模板
- 父母贈與協(xié)議書
- 駕照體檢表完整版本
- 簡易勞務(wù)合同電子版
- 明代文學(xué)緒論
- 通用稅務(wù)自查情況說明報告(7篇)
- 體育賽事的策劃、組織與實施 體育賽事利益相關(guān)者
- 分析化學(xué)(高職)PPT完整版全套教學(xué)課件
- 晚熟的人(莫言諾獎后首部作品)
- m拱頂儲罐設(shè)計計算書
- 2023外貿(mào)業(yè)務(wù)協(xié)調(diào)期中試卷
- 新人教鄂教版(2017)五年級下冊科學(xué)全冊教學(xué)課件
評論
0/150
提交評論