(完整版)信息學奧賽簡介NOIP及C++基礎知識第一講_第1頁
(完整版)信息學奧賽簡介NOIP及C++基礎知識第一講_第2頁
(完整版)信息學奧賽簡介NOIP及C++基礎知識第一講_第3頁
(完整版)信息學奧賽簡介NOIP及C++基礎知識第一講_第4頁
(完整版)信息學奧賽簡介NOIP及C++基礎知識第一講_第5頁
已閱讀5頁,還剩89頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基礎知識第一講C++基礎知識目錄信息學奧賽介紹體驗算法與程序設計基礎知識一.信息學奧林匹克競賽介紹面向全國中學生的一種競賽活動旨在激發中學生在計算機科學方面的興趣培養他們的邏輯思維能力給那些有才華的學生提供相互交流和學習的機會通過競賽和相關的活動培養和選拔優秀的計算機后備人才。信息學奧林匹克競賽賽事:1.NOIP(全國信息學奧林匹克聯賽)

NationalOlympiadinInformaticsinProvinces

2.NOI(全國信息學奧林匹克競賽)

NationalOlympiadinInformatics3.IOI(國際信息學奧林匹克競賽)

InternationalOlympiadinInformatics

NOIP聯賽初賽:10月中旬(周六/周日下午2:30-4:30)筆試(100分)資格賽,地市獨立組織(全國統一命題,統一時間)復賽:11月份中旬(第二周,周六周日上午3.5個小時)上機編程兩試:每試3個題目,300分,共600分。提交源程序,黑盒子測試法一種選拔性競賽不是一般計算機知識的普及。興趣能力勤奮如何學好信息學奧林匹克競賽學習內容:掌握一門計算機程序設計語言

(Pascal/C/C++)數據結構(線性表、樹、圖等)算法(搜索、圖論、動規等)什么是算法?算法:解決某一類問題的方法和步驟。比如:渡河問題

一個農夫,要過河,他有一棵白菜,一只狼和一只羊。一次船上農夫只能帶一個東西。羊和白菜,狼和羊不能在一起。請你找出一種最快的過河方法?渡河的方法與步驟:第一步:農夫帶

過河第二步:農夫劃船回來第三步:農夫帶

過河……猜數字(1..1000)回答大了或小了猜生日?月?日?二分法每次舍棄“一半”不符合條件的情況,逐漸縮小范圍,最后找到問題的解枚舉算法基本思想:按照問題本身的性質,一一列舉出該問題所有可能的解,并根據問題的條件對各解進行逐個檢驗,從中挑選出符合條件的解,舍棄不符合條件的解。

多動手、模仿是捷徑勤思考、實踐是王道二.體驗算法與程序設計(C++語言)引例1:最簡單的程序:輸出:Helloworld!【參考程序】#include<cstdio>intmain(){ printf("Helloword!"); return0;}提示:所有的代碼都要在英狀態輸入。如何編寫調試代碼?(1)雙擊,打開c++編譯器;(2)文件/新建源代碼;(3)F11:保存并運行程序。友情提示:可以在桌面上建立一個以自己的名字命名的文件夾,用來保存程序。【問題分析】:

正方形的面積等于邊長乘以邊長;

【算法設計】:正方形的邊長用a表示,面積用s表示。引例2:計算正方形的面積【參考程序】#include<cstdio>intmain(){ inta,s; scanf("%d",&a); s=a*a; printf("%d",s); return0;}【問題分析】:

周長等于邊長的4倍。【算法設計】:正方形的邊長用a表示,周長用c表示。引例2拓展:計算正方形的周長【參考程序】#include<cstdio>intmain(){ inta,c; scanf("%d",&a); c=4*a; printf("%d",c); return0;}三、基礎知識例1:從鍵盤輸入兩個正整數a,b,求出兩數字之和。#include<cstdio>intmain(){ inta,b; scanf("%d%d",&a,&b); printf("%d",a+b); return0;}提示:所有的代碼都要在英狀態輸入。樣例輸入1:1820樣例輸入2:5000090000樣例輸入3:123456789987654321樣例輸入4:12345678901234567890

例1:程序解釋#include<cstdio>//預處理命令。//使用printf/scanf須調用cstdio庫,否則編譯出錯intmain(){//主函數 inta,b;//定義了a,b兩個整型變量 scanf(“%d%d”,&a,&b);//讀取鍵盤輸入,并存到變量a、b printf(“%d”,a+b);//輸出a+b的值return0;//結束整個程序,返回0,每個主程序都必有。

}說明(1)以“//”開頭為注釋行,“//”后的內容用以對語句進行說明,不運行,無需輸入。(2)上面的程序中共有4條語句,每條語句必須以分號“;”作為結束。(3)第一條語句“inta,b;”定義了2個int類型(整數型)的變量a,b,c,變量之間用逗號隔開,最后用分號結束。知識點1:格式化輸入函數scanf格式:scanf("格式化字符串",地址列表);說明:

1)地址列表中給出各變量的地址(即變量名的前面加“&”符號)。

2)格式控制符由%和格式符組成,作用是將要輸入的字符按指定的格式輸入,如%d,%lf等3)格式字符和和變量的類型一一對應:類型和個數一致。知識點2:格式化輸出函數printf格式:

printf("格式控制字符串",變量列表);說明:(1)格式說明由%和格式字符組成,作用是將要輸出的字符轉換為指定的格式,如%d,%c等。(2)輸出列表是需要輸出的一組數據,各參數之間用“,”分開。(3)格式說明和各輸出項在數量和類型上要一一對應。(4)格式字符串中可以有空格或提示信息,回車符“\n”等。輸入半徑r,輸出圓的面積s,保留3位小數。樣例輸入:

3樣例輸出:28.274提示:實型用double來定義假設:π=3.14159讀取數據的代碼:scanf("%lf",&r);例2:圓的面積#include<cstdio>constdoublePI=3.14159;intmain(){doubler,s;//定義實型變量

scanf("%lf",&r);//輸入r的值,&符號不能漏掉

s=PI*r*r;//計算圓的面積

printf("%.2lf\n",s);//顯示計算結果,結果保留2位小數

return0;}【說明】:

1、程序中定義的PI代表常量3.14159,在編譯源程序時,遇到PI就用常量3.14159代替,PI可以和常量一樣進行運算。C++語言規定,每個符號常量的定義占據一個書寫行,而且符號常量不能被再賦值。如果在上例中使用以下賦值語句是錯誤的。PI=3.1415926;2、習慣上,符號常量名用大寫,而變量名用小寫,以便于區別。知識點3:常量的概念及分類常量:

是指在程序中使用的一些具體的數、字符。在程序運行過程中,其值不能被更改。如123,145.88,'m',TRUE等。1、整型常量:如3、-5、0等。整型常量是表示整數的常量。有三種表示形式:

1)十進制形式。如99、-1。

2)八進制形式。以數字0打頭,由0-7構成,如012,表示八進制整數12,即12(8)。

3)十六進制形式。以0x打頭,如0x12A,表示十六進制整數12A,即12A(16)。2、實型常量:如3.1、-6.1E+2(科學記數法)。3、字符常量:是用單引號括起來的字符,如'k'、'5'、'%'。注意:'a'與"a"表示的含義是不同的,'a'表示一個字符常量,"a"表示一個字符串。

2、常量的說明一個常量可以直接調用(如124,'A'),也可以給常量取個名字用一個標識符代表它,這就是符號常量。其語法格式為:

const符號常量=常量字串;

例如:constdoublePI=3.1415926;知識點4:變量的定義格式:

數據類型<變量名列表>例如:

inta,b;//定義a,b為整型變量,

doublex=5.9,y,z;//定義x,y,z為實型變量;x賦初值為5.9,y,z的初值未知。變量需要先定義后使用。變量的命名規則:一般是字母和數字的組合,如:a,i,sum,x1,x2。但不能與關鍵字重名。在定義變量的同時可以為變量賦初值。變量名大小寫有區別例如:

intS,s//定義了大S和小s兩個變量例2.輸入三角形的三邊a,b,c。求三角形的面積s

(a,b,c是實數<100,滿足三角形條件,結果保留3位小數)樣例輸入1:345樣例輸出1:6.000樣例輸入2:111樣例輸出2:0.433分析:求三角形面積的海倫公式:其中p=(a+b+c)/2提示:sqrt是開方函數,如:sqrt(16)=4Sqrt函數在<cmath>庫中,在程序頭添加#include<cmath>

#include<cstdio>#include<cmath>intmain(){doublea,b,c,p,s;scanf("%lf%lf%lf",&a,&b,&c);

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("%0.3lf\n",s);return0;}思考:語句5和6可以交換嗎?#include<cstdio>#include<cmath>intmain(){doublea,b,c,p,s;scanf("%lf%lf%lf",&a,&b,&c);

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("%0.3lf\n",s);return0;}程序從第一句開始,依次順序執行語句直到結束,中間無分支和循環,這種程序結構稱為順序結構讀入邊長a,b,c求p求s輸出面積s流程圖知識點5:賦值語句格式: 變量=表達式;功能:將賦值運算符右邊表達式的值賦給其左邊的變量例如:p=(a+b+c)/2;下述形式:

變量=(變量=表達式)是成立的,其展開之后的一般形式為: 變量=變量=…=表達式; 例如,“a=b=c=d=e=5;”,它實際上等價于:e=5;d=e;c=d;b=c;a=b;實現演習:1.輸入長方形的邊長a和b,輸出長方形的面積S。樣例輸入:56樣例輸出:30方法1:#include<cstdio>intmain(){ inta,b; scanf("%d%d",&a,&b); printf("%d",a*b);

return0;}方法2:#include<cstdio>intmain(){ inta,b,s; scanf("%d%d",&a,&b);

s=a*b; printf("%d",s);

return0;}2.輸入兩個整數a和b,交換a和b的值輸出。樣例輸入:56樣例輸出:65方法1:#include<cstdio>intmain(){ inta,b,t; scanf("%d%d",&a,&b); t=a; a=b; b=t; printf("%d%d",a,b);

return0;}方法2:#include<cstdio>intmain(){ inta,b; scanf("%d%d",&a,&b); printf("%d%d",b,a);return0;}3:輸出保留3位小數的實數輸入一個實數,保留3位小數輸出這個實數。

樣例輸入12.34521樣例輸出12.345#include<cstdio>intmain(){ doublea; scanf("%lf",&a); printf("%.3lf",a); return0;}3:輸出保留12位小數的實數輸入一個實數,保留12位小數輸出這個實數。

樣例輸入12.34521樣例輸出12.345#include<cstdio>intmain(){ doublea; scanf("%lf",&a); printf("%.3lf",a); return0;}4:空格分隔輸出描述讀入一個整數,一個實數,然后按順序輸出它們,并且要求在他們之間用一個空格分隔。輸入共有二行:

第一行是一個整數;

第二行是一個實數;輸出按順序輸出整數和實數,之間用空格分隔(輸出實數時保留6位小數)。樣例輸入122.3樣例輸出122.300000#include<cstdio>intmain(){ intb; doublea; scanf("%d%lf",&b,&a); printf("%d%.3lf",b,a); return0;}5:A*B問題描述輸入兩個正整數A和B,求A*B。

輸入一行,包含兩個正整數A和B,中間用單個空格隔開。1<=A,B<=50000。輸出一個整數,即A*B的值。樣例輸入134樣例輸出112樣例輸入220005000樣例輸出210000000樣例輸入35000050000樣例輸出32500000000方法1#include<cstdio>intmain(){ inta,b,s; scanf("%d%d",&a,&b); s=a*b; printf("%d",s); return0;}改進#include<cstdio>intmain(){

longlonga,b,s; scanf("%lld%lld",&a,&b); s=a*b; printf("%lld",s); return0;}5拓展:A/B問題描述輸入兩個正整數A和B,求A/B。

輸入一行,包含兩個正整數A和B,中間用單個空格隔開。1<=A,B<=50000。輸出一個整數,即A*B的值。樣例輸入115樣例輸出10.2改進a/b#include<cstdio>intmain(){

longlonga,b; scanf("%lld%lld",&a,&b); printf("%lf",a*1.0/b); return0;}知識點6:標準數據類型知識點:C++語言提供了豐富的數據類型。本節介紹幾種基本的數據類型:整型、實型、字符型。它們都是系統定義的簡單數據類型,稱為標準數據類型。延遲符整型字符型實型標準數據類型知識點5:標準數據類型知識點:C++語言提供了豐富的數據類型。本節介紹幾種基本的數據類型:整型、實型、字符型等。它們都是系統定義的簡單數據類型,稱為標準數據類型。

1、整型在C++語言中,整型類型標識符為int。根據整型變量的取值范圍又可將整型變量定義為以下8種整型類型:數據類型定義標識符占字節數數值范圍數值范圍短整型short[int]2(16位)-32768~32767-215~215-1整型[long]int4(32位)-2147483648~2147483647-231~231-1長整型long[int]4(32位)-2147483648~2147483647-231~231-1超長整型longlong[int]8(64位)-9223372036854775808~9223372036854775807-263~263-1無符號整型unsigned[int]2(16位)0~655350~216-1無符號短整型unsignedshort[int]2(16位)0~655350~216-1無符號長整型unsignedlong[int]4(32位)0~42949672950~232-1無符號超長整型Unsignedlonglong8(64位)0~184467440737095516150~264-1

2、實型數據類型定義標識符數值范圍占字節數有效位數單精度實型float-3.4E+38~3.4E+384(32位)6~7位雙精度實型double-1.7E+308~1.7E+3088(64位)15~16位長雙精度實型longdouble-3.4E+4932~1.1E+493216(128位)18~19位布爾變量bool真true或假false1(8位)

3、字符型(char)字符常量有以下兩種表示法:⑴、普通表示形式字符常量是由單個字符組成,所有字符采用ASCII編碼。在程序中,通常用一對單引號將單個字符括起來表示一個字符常量。如:'a','A','0'等。序號字符序號字符序號字符序號字符序號字符序號字符32空格48064@80P96`112p33!49165A81Q97a113q34”50266B82R98b114r35#51367C83S99c115s36$52468D84T100d116t37%53569E85U101e117u38&54670F86V102f118v39'55771G87W103g119w40(56872H88X104h120x41)57973I89Y105i121y42*58:74J90Z106j122z43+59;75K91[107k123{44,60<

76L92\108l124|45-61=77M93]109m125}46.62>

78N94^110n126~47/63?79O95_111o127deLASCII碼表3、字符型(char)⑵轉義字符表示形式。轉義字符有三種用法:表示控制字符、表示特殊字符、表示所有字符。常用的轉義字符如右表所示。轉義字符含義'\n'換行'\t'水平制表'\b'退格'\r'回車(不換行)'\0'空字符'\’'單引號'\”'雙引號'\\'一個反斜杠字符'\ddd'1~3位八進制數所代表的字符'\xhh'1~2位十六進制數所代表的字符例1:整型數據類型存儲空間大小分析:分別定義int,double類型的變量各一個,并依次輸出它們的存儲空間大小(單位:字節)。整型數據類型存儲空間大小#include<cstdio>intmain(){ intx; doubley; printf("%d%d\n",sizeof(x),sizeof(y));

//sizeof返回一個對象或者類型所占的內存字節數

return0;}例2.打印ASCII碼描述輸入一個除空格以外的可見字符(保證在函數scanf中可使用格式說明符%c讀入),輸出其ASCII碼。

輸入一個除空格以外的可見字符。輸出一個十進制整數,即該字符的ASCII碼。樣例輸入A樣例輸出65#include<cstdio>intmain(){ chara; scanf("%c",&a); printf("%d",a); return0;}例3:打印字符描述輸入一個ASCII碼,輸出對應的字符。

輸入一個整數,即字符的ASCII碼,保證存在對應的可見字符。輸出一行,包含相應的字符。樣例輸入65#include<cstdio>intmain(){ inta; scanf("%d",&a); printf("%c",a); return0;}例4:大小字母的轉換【說明】:因為所有小寫字母的ASCII值要比對應大寫字母的ASCII值大32,所以c1減去32后便得到原來字母的大寫形式。反之,c2加上32后便得到原來字母的小寫形式。例4:大小字母的轉換【參考程序】:

#include<cstdio>intmain(){ charc1,c2; c1='a'; c2='A'; printf("%c%c\n",c1,c2); c1=c1-32; c2=c2+32; printf("%c%c\n",c1,c2); return0;}運行結果:

aA

Aa【說明】:因為所有小寫字母的ASCII值要比對應大寫字母的ASCII值大32,所以c1減去32后便得到原來字母的大寫形式。反之,c2加上32后便得到原來字母的小寫形式。x拓展#include<cstdio>intmain(){ charc1,c2; scanf("%c%c",&c1,&c2); printf("%c%c\n",c1-32,c2+32); return0;}

4、布爾變量數據類型定義標識符數值范圍占字節數有效位數布爾變量bool真true或假false1(8位)

例5:整型與布爾型的轉換描述將一個整型變量的值賦給一個布爾型變量,再將這個布爾型變量的值賦給一個整型變量,得到的值是多少?輸入一個整型范圍內的整數,即初始時整型變量的值。輸出一個整數,經過上述過程后得到的結果。樣例輸入3樣例輸出1#include<cstdio>intmain(){ inta; boolbo; scanf("%d",&a); bo=a; a=bo; printf("%d",a); return0;}延遲符知識點6運算符知識點:各類運算符的組成及參與運算的優先級1.運算符的分類1.算術運算符用于各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。⑴模運算符求余的運算符“%”也稱為模運算符,是雙目運算符,兩個操作數都是整型數。a%b的值就是a除以b的余數,5%2余數為1。其操作對象只能是整型數,而其他四種運算符對int,float,double,char都適用。⑵除法運算符

C++語言的除法運算符有一些特殊之處,即如果a、b是兩個整數類型的變量或常量,那么a/b的值是a除以b的商。例如,5/2的值是2,而不是2.5,而5.0/2或5/2.0的值是2.5。延遲符1.運算符的分類1.算術運算符⑶自增自減運算符自增、自減運算符用來對一個操作數進行加1或減1運算,其結果仍然賦予該操作數,而且參加運算的操作數必須是變量,而不能是常量或表達式。

1)自增運算符。例如,x++表示在使用x之后,使x的值加1,即x=x+1;++x表示使用x之前,先使x的值加1,即x=x+1。

2)自減運算符。例如,x--表示在使用x之后,使x的值減1,即x=x-1;--x表示使用x之前,先使x的值減1,即x=x-1。⑷復合算術賦值。例如,a+=1,相當于a=a+1;a+=b,相當于a=a+b。延遲符1.運算符的分類2.關系運算符

用于比較運算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六種。關系運算符用于數值的大小比較。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六種,它們都是雙目運算符。關系運算符運算的結果是整型,值只有兩種:0或1,0代表關系不成立,1代表關系成立。延遲符1.運算符的分類3.邏輯運算符

用于邏輯運算。包括與(&&)、或(||)、非(!)三種。邏輯運算的值也為“真”和“假”兩種,用“1”和“0”來表示。其求值規則如下:1.與運算&&參與運算的兩個量都為真時,結果才為真,否則為假。例如,5>0&&4>2,由于5>0為真,4>2也為真,相與的結果也為真。2.或運算||參與運算的兩個量只要有一個為真,結果就為真。兩個量都為假時,結果為假。例如:5>0||5>8,由于5>0為真,相或的結果也就為真

3.非運算!參與運算量為真時,結果為假;參與運算量為假時,結果為真。例如:!(5>0)的結果為假。延遲符1.運算符的分類3.邏輯運算符雖然C++編譯在給出邏輯運算值時,以“1”代表“真”,“0”代表“假”。但反過來在判斷一個量是為“真”還是為“假”時,以“0”代表“假”,以非“0”的數值作為“真”。例如:由于5和3均為非“0”因此5&&3的值為“真”,即為1。又如:5||0的值為“真”,即為1。延遲符(二)運算符的優先級算術運算符、關系運算符、邏輯運算符和賦值運算符的優先級如下:賦值運算符邏輯運算符關系運算符算術運算符低高關系運算符的結合性為:自左至右。根據以上優先級和結合性,計算出以下表達式的結果(假設a=3,b=2,c=1)

a>b表達式為真,所以表達式的值為1(a>b)==c表達式為真,所以表達式的值為1b+c<a表達式為假,所以表達式的值為0d=a>ba>b為真,所以d的值為1f=a>b>ca>b為真,結果為1,1>c為假,所以f的值為0例1:變量自加運算#include<cstdio>intmain(){ intx,y,z1,z2; x=7; y=8; z1=y-(x++);//計算z1=1,計算后x=8z2=y-(++x);//計算前x的值自加1,x的值為9,再與y求差

printf("%d%d",z1,z2);//分別輸出z1和z2的值}

運行結果:z1和z2分別為?【說明】:在運行z1=y-(x++),是先算減法,x再自加1,所以結果為1。在z2=y-(++x),是x先加1,然后再算減法。延遲符函數名格式功能說明例子絕對值函數abs(x)求一個數x的絕對值abs(-5)=5自然數指數函數exp(x)求實數x的自然指數exexp(1)=2.718282向下取整floor(x)求不大于實數x的最大整數floor(3.14)=3向上取整ceil(x)求不小于實數x的最小整數ceil(3.14)=4自然對數函數log(x)求實數x的自然數對數log(1)=0指數函數pow(x,y)計算xy,結果為雙精度實數pow(2,3)=8隨機函數rand()產生0到RAND-MAX之間的隨機整數

平方根值函數sqrt(x)求實數x的平方根sqrt(25)=5【說明】:1、使用函數之前,在程序的開頭要加上函數所在的頭文件。2、調用格式:變量名=函數名(表達式),或在輸出語句中直接輸出。知識點7

標準函數延遲符1、表達式

是由常量、變量、標準函數與運算符按照一定的規則組成的式子。知識點8表達式延遲符2、數據類型轉換

C++語言中,要將一個表達式的結果轉換成期望的數據類型,或者不同數據類型的運算對象進行混合運算,就需要依據數據類型轉換規則進行轉換。⑴隱性轉換

a混合運算時的類型轉換整型、實型、字符型數據間可以混合運算。為了保證運算精度,系統在運算時的轉換規則是將存儲長度較短的運算對象轉成存儲長度較長的類型,然后再進行處理。這種轉換是系統自動進行的。知識點8表達式延遲符2、數據類型轉換b賦值時的類型轉換當賦值運算符兩側的數據類型不同時,需進行類型轉換,這種轉換是系統自動進行的,轉換規則如下:1)float、double型賦值給int型:直接截斷小數。例如,“inti=f+0.6;”,f的值為4.0,右邊算術表達式運算后的結果為4.6的double型數據,根據上述轉換原則,直接舍棄小數,所以i的值為4。2)int、char型賦值給float、double型:補足有效位以進行數據類型轉換。例如:“floatf=4;”,float為7位有效數字,所以f的值為4.0000000。……知識點8表達式延遲符2、數據類型轉換

⑵強制類型轉換即將某一數據的數據類型轉換為指定的另一種數據類型,強制類型轉換只是臨時轉換。強制轉換運算符組成的運算表達式的一般形式:(類型名)(表達式)例如:已知有變量定義“intb=7;floata=2.5”,求下面算術表達式的值。

a+(double)(b/3)表達式延遲符課后訓練訓練1:整型數據類型和浮點型存儲空間大小分別定義int,short、float和double類型的變量各一個,并依次輸出它們的存儲空間大小(單位:字節)。輸入:無。輸出:一行,四個整數,分別是兩個變量的存儲空間大小,用一個空格隔開。延遲符課后訓練訓練2:浮點數向零舍入【1.2編程基礎之變量定義、賦值及轉換06】輸入一個單精度浮點數,將其向零舍入到整數。說明:向零舍入的含義是,正數向下舍入,負數向上舍入。提示:可以使用強制類型轉換來實現。輸入:一個單精度浮點數。輸出:一個整數,即向零舍入到整數的結果。樣例輸入:2.3樣例輸出:2延遲符課后訓練訓練3:整型與布爾型的轉換將一個整型變量的值賦給一個布爾型變量,再將這個布爾型變量的值賦給一個整型變量,得到的值是多少?輸入:

一個整型范圍內的整數,即初始時整型變量的值。輸出:

一個整數,經過上述過程后得到的結果。樣例輸入:3樣例輸出:1延遲符課后訓練訓練4:打印字符輸入一個整數,即字符的ASCII碼,保證存在對應的可見字符。輸出相對應的字符。輸入:

一個整數,即字符的ASCII碼,保證存在對應的可見字符。輸出:

一行,包含相應的字符。樣例輸入:65樣例輸出:A延遲符課后訓練訓練5:Hello,World!的大小可以用sizeof函數獲得它所占用的空間大小。輸入:

無。輸出:

一個整數,即“Hello,World!”的大小。延遲符1.4.2典型例題例1:輸入兩個正整數A和B,試交換A、B的值(使A的值等于B,B的值等于A)參考程序:

#include<iostream>//使用cin,cout,須調用iostream庫

usingnamespacestd;

intmain()

{inta,b,c;//定義三個變量

cout<<"Inputa,b=";//輸入提示Inputa,b=

cin>>a>>b;//輸入A、B的值

c=a;a=b;b=c;//交換A、B的值

cout<<"a="<<a<<"b="<<b<<endl;//輸出結果

}分析:交換兩個變量的值方法很多,一般我們采用引入第三個變量的算法,二個變量交換,可以想像成一瓶醬油和一瓶醋進行交換,這時容易想到拿一個空瓶子過來:①將醬油倒到空瓶中;②將醋倒到醬油瓶中;③將原空瓶中的醬油倒到醋瓶中。延遲符1.4.2典型例題例2:數學中經典的“雞兔同籠”問題,已知頭共30個,腳共90只,問籠中的雞和兔各有多少只?注意這兩步運算的先后順序。程序如下:include<iostream>//使用cin,cout,須調用iostream庫

usingname

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論