2017年0508信息學奧賽C++語法入門_第1頁
2017年0508信息學奧賽C++語法入門_第2頁
2017年0508信息學奧賽C++語法入門_第3頁
2017年0508信息學奧賽C++語法入門_第4頁
2017年0508信息學奧賽C++語法入門_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2017年0508信息學奧賽C++語法入門第一頁,共18頁。信息學奧賽C++語法第二頁,共18頁。如何區(qū)分一個程序是C語言程序還是C++程序?如果文件的擴展名是.c,那么該程序是c語言程序;如果文件的擴展名是.cpp,那么該程序是c++程序。C語言和C++之間有什么關(guān)系嗎?C語言是C++的子集。在C語言的基礎(chǔ)上再加上一些語法,就形成了C++。信息學奧賽的官網(wǎng)是什么?編寫C/C++程序,常用的軟件是什么?軟件:Dev-C++軟件版本:5.4.2,高版本也可NOI是什么意思?全國青少年信息學奧林匹克競賽NationalOlympiadinInformaticsNOIP簡稱聯(lián)賽,以省份為單位組織比賽。做題網(wǎng)站第三頁,共18頁。//1.cppHelloWorld#include<cstdio>intmain(){printf("Helloworld!\n");return0;}第一個C語言程序:Helloworld!語法解釋:1.C語言/C++區(qū)分大小寫。

格式排版:大括號對應(yīng),內(nèi)容縮進。字體顏色自動變化。2.include:文件包含。cstdio這個文件是包含了標準輸入輸出的頭文件。std:standard,標準的.i:input,輸入.o:output,輸出.(你暫且把它當英語短語記住,會用就行。

當你學得多了,你就會明白了。)3.程序從main()函數(shù)開始執(zhí)行,一句一句向下執(zhí)行,

執(zhí)行到某句時才可能調(diào)用頭文件。函數(shù)必須帶括號。4.main()前面用int,最后一句是return0;int是整型,所以main()的返回值必須是整型。return是"返回",main()函數(shù)的返回值一般為0.5.注釋的方法兩種:1.//單行注釋

2./**/段注釋,多行注釋。6.printf是輸出,用雙引號括起來。

用雙引號括起來的內(nèi)容,一般原樣輸出。7.在輸出語句中,\n是換行\(zhòng)n\n換了兩行。8.printf中,printf("%d",3+2);用3+2的結(jié)果代替%d。(百度搜索"轉(zhuǎn)義字符")9.每句話后面都要有英文分號。一個分號代表一句話結(jié)束。單獨的一個分號也是一句話。在.cpp文件內(nèi),應(yīng)使用C++語法,而C++包括C,所以可以在.cpp文件內(nèi)直接使用C語言語法。在每次新建文件時,我們都直接新建cpp文件。上面的程序,用的是C語言的語法。第四頁,共18頁。//2.cpp#include<cstdio>intmain(){inta,b;//所有的變量,都必須先聲明,后使用。這句話的作用,是聲明變量a,b是整型。a=5;//給a賦值,使a的值為5。b=8;printf("%d\n",a+b);printf("%d\n",a-b);printf("%d\n",a*b);printf("%d\n",a/b);//整數(shù)除以整數(shù),結(jié)果是整數(shù)。小數(shù)部分都會被直接刪掉,而不是四舍五入。printf("%d\n",b/a);//整數(shù)除以整數(shù),結(jié)果是整數(shù)。小數(shù)部分都會被直接刪掉,而不是四舍五入。printf("%d\n",b%a);//

%,求余運算。如果b=-8,求余運算后結(jié)果是多少呢?printf("Helloworld!\n");return0;}第五頁,共18頁。//3.cpp#include<cstdio>intmain(){inta,b;scanf("%d",&a);//輸入2,進行測試scanf("%d",&b);//輸入5,進行測試printf("a+b=%d\n",a+b);printf("%d+%d=%d\n",a,b,a+b);return0;}語法解釋:scanf()函數(shù)是用來輸入數(shù)據(jù)的,它的第一個參數(shù)要用雙引號引起來,用來控制要輸入的數(shù)據(jù)的格式,后面參數(shù)是指把輸入的數(shù)據(jù)依次放到內(nèi)存中哪個位置(或者說,賦值給哪個變量。對于普通的變量,要在變量名稱前加上&)。對于整型數(shù)據(jù),輸入輸入都用%d。一個%d對應(yīng)一個整數(shù),兩個%d對應(yīng)兩個整數(shù)。語句printf("%d+%d=%d\n",a,b,a+b);有3個%d,對應(yīng)后面的3個整數(shù),這3個數(shù)之間用兩個逗號隔開。可以將scanf("%d",&a);scanf("%d",&b);這兩句話合成一句scanf("%d%d",&a,&b);。注意,兩個%d應(yīng)緊緊相連,之間不要有空格、逗號等內(nèi)容。合成一句以后,在輸入時,可以先輸入一個數(shù),然后按一下回車,然后再輸入下一個數(shù),然后再按回車,這樣就完成了兩個數(shù)據(jù)的輸入。另外,還可以先輸入一個數(shù),然后空一個或多個空格,然后再輸入下一個數(shù),最后回車。如果要輸入兩個整數(shù),并且這兩個數(shù)之間有一個逗號,比如"5,8",此時該用什么樣的輸入語句呢?

答案是scanf("%d,%d",&a,&b);此時,在兩個%d之間有一個逗號,用這個逗號來"抵消"輸入的逗號。如果在兩個%d之間不加逗號,系統(tǒng)會把"5,8"之間的逗號當作第二個數(shù)輸入??偨Y(jié):用scanf()輸入整數(shù)時,用%d,系統(tǒng)會忽略掉輸入的所有空格,但不會忽略掉其它字符。用printf()輸出數(shù)據(jù)時,雙引號之間的大部分內(nèi)容(包括空格)會原樣輸出,少部分內(nèi)容會發(fā)生變化(比如\n)。在程序編譯階段不報錯,而在運行時報錯并提示“該內(nèi)存不能為written”,一般有兩種原因,一是在輸入數(shù)據(jù)時忘記使用&符號,二是數(shù)組越界,訪問了非法空間。第六頁,共18頁。//4.cppC++語法#include<iostream>usingnamespacestd;intmain(){inta,b;cin>>a;//scanf("%d",&a);cin>>b;cout<<a+b<<endl;//endlinereturn0;}cin是用來輸入數(shù)據(jù)的,cout是用來輸出數(shù)據(jù)的。cin和cout是c++中的語法,必須使用#include<iostream>和usingnamespacestd;如果在c++中仍想使用scanf()和printf(),即使已經(jīng)有了#include<iostream>和usingnamespacestd;,仍然需要加上#include<cstdio>頭文件。關(guān)于輸入輸出,從語法上講,使用scanf()和printf()需要考慮數(shù)據(jù)類型(比如整數(shù)需要用到%d,字符需要用到%c),而cin和cout則不需要考慮數(shù)據(jù)類型,因而書寫更方便。但并不是說cin和cout比scanf()和printf()好,因為在輸入輸出少量數(shù)據(jù)的時候,前者和后者所花的時間是差不多的;而當輸入輸出大量數(shù)據(jù)的時候,后者要比前者節(jié)省時間。第七頁,共18頁。順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)可以用流程圖來表示一個算法。第八頁,共18頁。順序結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)第九頁,共18頁。//5.cpp#include<iostream>#include<cstdio>usingnamespacestd;intmain(){inta,b,c;scanf("%d",&a);scanf("%d",&b);if(a>b){//如果說,大括號里面只有一句話,那么可以省略掉大括號。但為了格式清晰,一般不省略。printf("%d",a);}else{printf("%d\n",b);}return0;}第十頁,共18頁。//6.cpp#include<iostream>#include<cstdio>usingnamespacestd;intmain(){inta,b,c;scanf("%d",&a);scanf("%d",&b);if(a>b){printf("%d",a);}return0;}#include<iostream>#include<cstdio>usingnamespacestd;intmain(){inta,b,c;scanf("%d",&a);scanf("%d",&b);if(a>b){printf("%d",a);}else{

}return0;}//else部分,什么語句都不執(zhí)行,因此,可以省略掉else,形成新的語法。//這么寫,是什么含義?#include<iostream>#include<cstdio>usingnamespacestd;intmain(){inta,b,c;scanf("%d",&a);scanf("%d",&b);if(a>b);{printf("%d",a);}return0;}多了分號,有什么后果?第十一頁,共18頁。//常用的比較運算符><>=<===//這個是等于,用于判斷左右兩側(cè)是否相等!=//這個是不等于!//取反運算,它的優(yōu)先級比并且高&&//并且,它的優(yōu)先級比或者高||//或者,它的優(yōu)先級比并且低//7.cpp

判斷閏年#include<iostream>#include<cstdio>usingnamespacestd;intmain(){intn;scanf("%d",&n);

if(n%400==0||n%4==0&&n%100!=0){printf("%dshirunnian\n",n);}else{printf("%dbushirunnian\n",n);}return0;}一個等號是賦值,兩個等號是判斷是否相等第十二頁,共18頁。//8.cpp

如何交換兩個變量?//兩個瓶子,一個裝油,一個裝醋,如何讓這兩個瓶子里的東西互換一下?#include<iostream>#include<cstdio>usingnamespacestd;intmain(){inta,b,c;scanf("%d",&a);//假如輸入3scanf("%d",&b);//假如輸入6if(a<b){c=a;a=b;b=c;}printf("%d",a);printf("%d\n",b);return0;}第十三頁,共18頁。//9.cpp//字符和整數(shù)#include<iostream>#include<cstdio>usingnamespacestd;intmain(){charcc,dd;cc='A';scanf("%c",&dd);//輸入B測試printf("%c%c\n",cc,dd);printf("%d%d\n",cc,dd);printf("%d\n",'B');printf("%c",65);

printf("=============\n");return0;}//如果想在第一行輸入一個整數(shù),//在第二行輸入一個字符。//這樣寫,行不行?

intaa;charccc;scanf("%d",&aa);scanf("%c",&ccc);printf("%d\n",aa);printf("%c\n",ccc);inta;//int的范圍:-21億到21億之間,向兩邊擴展一點

scanf(“%d”,&a);//longint和int是相同的。printf(“%d\n”,a);//unsignedint表示無符號整數(shù),在0到42億多點之間

longlongb;//范圍:在-1*10的19次方到1*10的19次方之間,向內(nèi)收縮一點//在32位的電腦系統(tǒng)里,在不同的系統(tǒng)里面輸入輸出語法不一樣

//32位windows系統(tǒng),用I64d。大寫的i,不是小寫的L。scanf("%I64d",&b);printf("%I64d\n",b);/*32位linux系統(tǒng),用lld。小寫的L,不是大寫的i。scanf("%lld",&b);printf("%lld\n",b);*///在64位系統(tǒng)里,無論windows還是linux,用I64或lld都行。輸入完數(shù)字以后的回車換行符也是字符,因此這樣寫接收不到第二行的字符int占4個字節(jié),longint占4個字節(jié),longlongint占8個字節(jié)。char占1個字節(jié)。float占4個字節(jié),double占8個字節(jié)。sizeof()函數(shù):求變量占幾個字節(jié)。結(jié)果跟變量類型有關(guān)。第十四頁,共18頁。在計算機里面,關(guān)于二進制的加減運算,從來都不單獨處理符號。符號位也當成普通的數(shù)位進行加減運算。以4位二進制數(shù)為例:二進制數(shù)十進制數(shù)0000000011001020011301004010150110601117最大數(shù)1000-8最大數(shù)加一,變?yōu)樽钚?shù)1001-71010-61011-51100-41101-31110-21111-1加一變?yōu)?,所以這兒是

-100000//10.cpp//十進制、十六進制、八進制#include<cstdio>intmain(){inta=10;printf("%d\n",a);//以十進制形式輸出

printf("%X\n",a);//以十六進制輸出//如果遇到字母,則輸出大寫字母

printf("%x\n",a);//以十六進制輸出

//如果遇到字母,則輸出小寫字母

printf("%o\n",a);//以八進制輸出printf("%5d\n",a);//輸出總共占5位,不足5位則左側(cè)補空格intb=3;printf("%d\n",b<<2);

//移位運算。

//左移1位相當于乘以2,右移1位相當于除以2。

return0;}第十五頁,共18頁。//11.cpp.單精度浮點數(shù)與雙精度浮點數(shù)#include<iostream>#include<cstdlib>#include<cstdio>usingnamespacestd;intmain(){floatf=3.1415926*3*3;//單精度輸入輸入用%fprintf("%f\n",f);pr

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論