信息學(xué)競賽-信息學(xué)講座-C校本教材-信息學(xué)入門【附競賽原題講解!】_第1頁
信息學(xué)競賽-信息學(xué)講座-C校本教材-信息學(xué)入門【附競賽原題講解!】_第2頁
信息學(xué)競賽-信息學(xué)講座-C校本教材-信息學(xué)入門【附競賽原題講解!】_第3頁
信息學(xué)競賽-信息學(xué)講座-C校本教材-信息學(xué)入門【附競賽原題講解!】_第4頁
信息學(xué)競賽-信息學(xué)講座-C校本教材-信息學(xué)入門【附競賽原題講解!】_第5頁
已閱讀5頁,還剩137頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄

【請預(yù)覽再下載】

【附競賽原題講解】

第一部分我的新朋友1

第1課奇怪的電腦2

第2課購買電影票4

第3課建一座金字塔7

第二部分獨木小橋順

序過9

第1課一碗水和一碗油10

第2課計算表面積的神器12

第3課小朋友的平均年齡14

第4課數(shù)字的拆分16

/外讀材料:其它運算符18

第5課可怕的傳染病19

1叫讀材料:常貴21

第6課卡卡的難題22

第7課匪夷所思的結(jié)果24

第8課加密的文字26

A目讀:數(shù)據(jù)類型轉(zhuǎn)換28

第9課格式化輸入輸出29

1

第三部分是真是假做

選擇32

第1課奇數(shù)偶數(shù)我知道33

第2課這不是考試的成績35

第3課這次考試我通過了36

第4課麻煩的火車托運38

綜合練習(xí)41

第四部分省時省力的

循環(huán)46

第1課快速輸出法47

第2課這種計算方法真快49

第3課循環(huán)與分支的結(jié)合50

第4課什么是素數(shù)51

第5課無從下手的愉入53

第6課輾轉(zhuǎn)相除法54

綜合練習(xí)55

第7課堆出一個三角形57

第8課階乘之和59

第9課100-200以內(nèi)的素數(shù)60

第五部分太多的變量

62

第/課還是交換蘋果63

2

綜合練習(xí)65

第2課開關(guān)燈問題67

第3課約瑟夫問題69

第4課排序問題(選擇排序)71

第5課排序問題(冒泡排序)73

第6課判斷回文數(shù)75

綜合練習(xí)77

閱讀:二維數(shù)組79

第六部分重復(fù)使用語

句塊81

第1課函數(shù)的準(zhǔn)備知識82

第2課再談變量值的交換185

第3課再談變量值的交換286

第4課最大公約數(shù)88

第5課省力的排序90

閱讀:仝局變量和局部變量91

第6課你植了多少棵樹93

綜合練習(xí)95

第3課遞歸算法97

第七部分多個變量捆

綁一起100

第1課結(jié)構(gòu)體變量101

第2課結(jié)構(gòu)體數(shù)組104

3

第八部分文件操作

114

第九部分常見算法

118

1、桶排序118

2、排序與去重120

3、模擬算法122

4、貪心算法124

5、背包問題125

6、動態(tài)規(guī)劃131

7、高精度算法134

4

第一部分我的新朋友

C++語言簡介

信息學(xué)奧林匹克競賽是一項益智性的競賽活動,核心是考查選手

的智力和使用計算機(jī)解題的能力,選手首先應(yīng)針對競賽題目的要求構(gòu)

建數(shù)學(xué)模型,進(jìn)而構(gòu)造出計算機(jī)可以接受的算法,之后編寫出計算機(jī)

能夠執(zhí)行的程序。

程序設(shè)計是信息學(xué)競賽的基本功,選手參與競賽活動的第一步是

熟練掌握一門程序設(shè)計語言,目前競賽中允許使用的程序設(shè)計語言有

C語言、C++語言、Pascal。

C++由美國AT&T貝爾實驗室的本賈尼?斯特勞斯特盧普博士在

20世紀(jì)80年代初期發(fā)明并實現(xiàn)(最初這種語言被稱作“Cwith

Classes"帶類的C)。開始,C++是作為C語言的增強(qiáng)版出現(xiàn)的,從給

C語言增加類開始,不斷的增加新特性。今天C++已成為世界主流編

程語言之一。

C++語言的特點:(1)語言簡潔緊湊,使用靈活方便;(2)運算

符豐富;(3)數(shù)據(jù)結(jié)構(gòu)豐富;(4)結(jié)構(gòu)化語言;(5)生成的代碼質(zhì)量

高(6)可移植性強(qiáng)。

C++編程第一部分我的新朋友

第1課奇怪的電腦

卡卡的電腦上多出了一個文件,

打開一看,電腦屏幕上出現(xiàn)了幾個字

“卡卡,你好!。真奇怪,這是怎么做

到的?一定是西西弄的,西西可是電

腦高手。西西說,這是他用C++寫的一

個小程序。

例1|在屏幕上輸出"HelloWorld!”。

代碼注釋備注

#include<iostream>//調(diào)用iostream庫

頭文件部分

usingnamespacestd;//使用std命名空間

intmain(){//int類型的主函數(shù)

cout<<z,HelloWorld!”;//輸出"HeiIoWorld!"主函數(shù)部分包括:

rptnrn0;〃返回值0,結(jié)束整個程序intmain()?}

)〃主函數(shù)結(jié)尾

運行結(jié)果:

HelloWorld!

在此程序中包括頭文件、注釋、主函數(shù)、輸出、

返回值等部分,有時根據(jù)需要還可能有輸入、子函數(shù)

等部分。

\______________________________7

上派西校區(qū)校本教材第一部分我的新朋友

“這也太難了吧!”卡卡說。西西:“其實一下子讓你明白這么

多很不容易,但是你不必太在意,你只要把你想讓電腦說的話,寫

在引號里面就好了?!笨ㄕf:“以后多教教我,我也要學(xué)習(xí)C++」

|做一做|填空:

(1)C++語句,除了少數(shù)幾個地方,每句話以結(jié)尾;(逗

號、句號、分號)

(2)調(diào)用庫在(尖括號、小括號)內(nèi);

(3)main后面有一對后面再一對(小括

號、大括號);

(4)cout后面的符號是“”;(?,?)

(5)C++語句中所有字符和符號均為(中文、英文)。

(6)C++程序通常有、、

、等部分。

|做一做|試著寫一個C++程序,輸出:“卡卡,你好!

C++編程第一部分我的新朋友

第2課購買電影票

電影院出了新電影,明天正好

是周末,可以一飽眼福了,卡卡邀請

了幾個好朋友去看電影,電影票每

張10元,他該準(zhǔn)備多少電影票錢

呢?

在例1中,輸出的內(nèi)容是不用

計算的,其實C++程序還具有處理數(shù)學(xué)計算的功能呢!

例2|已知一位小朋友的電影票價是10元,“算x位小朋友的總票

價是多少?

解題:卡卡想每張票是10元,那么x位小朋友就是10*x元,雖

然他知道怎么算電影票錢,可是程序該怎么寫呢?卡卡請教了西西。

西西操作如下:

(1)打開Dev-C++軟件;

(2)文件〉新建〉源代碼;

(3)寫入代碼,然后保存在桌面;

上派西校區(qū)校本教材第一部分我的新朋友

3^21-Dev-C--5.11

文件舊嫡制EJ球素⑸強(qiáng)M?B(P]運行RJia(T)AStyle

□?自購包卸昌回四回歸■■l司

朝。]I(global*),|

項目m理口

1#include<iol5tream>

#include<cstdio>

3usingnamespacestd;

intmain(){

5

(4)然后點編譯、運行;

^□[W]智助舊]

7盡早由羽加

(5)對程序進(jìn)行了測試和調(diào)試。

L?Jl—l-

統(tǒng)l.cpp|

L#include<iostream>

2#include<cstdio>■C:\Users\tws\Dcktop際俶

3usingnamespace

,早intmain(){Hello,World!

>cout<<"Hello,World!'*;

jreturn0;Processexited

7L}陪林仟意鍵繼續(xù).

#include<iostream>

usingnamespacestd

intmain(){

intx,s;//定義X和S兩個整數(shù)變量,其中X表示小朋友

的位數(shù),s表示總票價

cin?x;//'輸入小朋友的位數(shù),存放在變量x中

s=10*x;〃計算總票價存放于s中,總票價二單張票價X小朋

友的位數(shù)

cout?s;〃輸出總票價

return0;不、

C++編程第一部分我的新朋友

說明:在例2中加入了新的朋友int和cin,int是一種整數(shù)類

型的說明符,cin是一種輸入符號,注意cin后面的符號是“>>”,細(xì)

心的同學(xué)可能發(fā)現(xiàn)cin與cout后面的符號正好相反。

使用C++編程大致有以下環(huán)節(jié):(1)啟動開發(fā)環(huán)境;

(2)新建源程序;(3)保存源程序到硬盤;(4)編譯、弋&>[

、運行;(5)調(diào)試程序。)

這個內(nèi)容有點燒腦了,卡卡認(rèn)真的把這個程序看了幾遍,一遍看

代碼一邊讀西西給的注釋,“有點明白了”卡卡說,“但是‘輸入'是

什么意思?。俊陛斎刖褪悄愀嬖V電腦有幾位小朋友,不過是通過鍵盤

打入數(shù)字告訴電腦的,西西說完給卡卡留了一道難題。我正想去看電

影呢...

|做一做|填空:

使用Dev_C++編程大致有以下幾個環(huán)節(jié):(1);(2)

;(3);(4);

(5)o

卜故一做|有一個牧場,牧場上的牧草每天都在勻速生長,這片牧場

可供15頭牛吃20天,或可供20頭牛吃10天,那么,這片牧場每天

新生的草量可供幾頭牛吃1天?輸出你的計算結(jié)果。

上派西校區(qū)校本教材第一部分我的新朋友

第3課建一座金字塔

電影結(jié)束了,給卡卡留下最深的印象就是壯觀的金字塔,我回家

也要用C++,在電腦上造一座金字塔。

例2中C++程序處理了數(shù)學(xué)的計算,

其實C++還可以處理字符。

例3|給定一個字符,用它構(gòu)造一個

底邊長5個字符,高3個字符的等腰字符三角形。例如給定的字符是

那么輸出:

#

###

#####

解題:

#include<iostream>

usingnamespacestd;

intmain(){

chara;〃定義字符變量,

cin?a;〃輸入給定一個字符

cout?z,^?a?endl;//輸出2個空格、1個字符和換行

cout<<""<<a<<a<<a<<endl;//輸出1個空格、3個字符和換行

cout?a?a?a?a?a;//輸出5個字符

return0;

C++編程第一部分我的新朋友

)

說明:在本例中,新朋友加入,Char是字符型變量的說明符。

感興趣的同學(xué)可以試試把char換成int還能完成任務(wù)嗎?

你有什么發(fā)現(xiàn)?

chara;的功能是

cin?a;的功能是

而cout〈〈a;的功能是

用指定的字符輸出一個三角形,如給定字符“+”,則輸出:

+

++

+++

第二部分獨木小橋順序過

而下的順序依次執(zhí)行一次,這種自上而下依次執(zhí)

。要學(xué)好順序結(jié)構(gòu)程序設(shè)計,先要學(xué)習(xí)C++

語言的基本語句,并且在學(xué)習(xí)過程中逐步學(xué)會程序設(shè)計的基本方法。

本部分內(nèi)容主要介紹賦值語句、運算符、變量與常量、輸入與輸

出、數(shù)據(jù)類型等內(nèi)容。

C++編程第二部分獨木小橋順序過

第1課一碗水和一碗油

例4|數(shù)值交換,輸入兩個正整數(shù)a和b,試交換a、b的值(使a

的值等于b,b的值等于a)。

一碗水和一碗油,怎么把

水和油換到對方的腕里面呢?

答案是借助第三只腕。所以我

們這里交換a和b的值,借助

第三個變量c。

解題:

itinclude<iostream>

usingnamespacestd;

intmainO{

inta,b,c;〃先定義三個變量

cin?a?b;//分別輸入a、b的值

c=a;//先將a賦值給c(c相當(dāng)于空碗),暫時存起來

a=b;〃再把b賦值給a

b=c;〃最后把暫存在c的數(shù)據(jù)賦值給b

cout?a?/z"<<b;//輸出a、空格、b

return0;

)

測試:輸入35輸出53o

此方法后面還有用到,同學(xué)們要能領(lǐng)會。

10

上派西校區(qū)校本教材第二部分獨木小橋順序過

|試一試|把C賦值給b以后,c是多少了?猜猜看,然后把coutHc;

加入到程序中驗證下你的猜想。

賦值語句簡單的說就是給變量具體的值,這個值可以直接給,也

可以間接算出來,是由賦值表達(dá)式再加上分號構(gòu)成的表達(dá)式語句。

賦值語句語法:

變量二表達(dá)式;

\/

(1)賦值運算符“二”右邊的表達(dá)式還可以是賦值表達(dá)式,例如,

“a=b=c=d=e=5;"。

(2)在進(jìn)行賦值運算時,先計算等號右邊的值,再將值賦給左

邊的變量,如果類型不同會更改類型后賦值。

「故.做|觀看下面代碼,推算結(jié)果:

a=l;

b=2;

a=b;

b=a;

結(jié)果:a=、b=

愉一做M在有5個小朋友圍成一圈,已知各小朋友的蘋果數(shù)(輸

入),每位小朋友把自己的蘋果給他右邊的小朋友。一輪結(jié)束后,輸

出各小朋友蘋果數(shù)。(測試:輸入13579輸出71359)

C++編程第二部分獨木小橋順序過

第2課計算表面積的神器

今天數(shù)學(xué)課上,卡卡學(xué)了

圓柱體的表面積計算公式,可是

算起來好煩。卡卡想:我能不能r一d

把這個計算公式與入C++里囪,

只要我給出電腦圓柱體的底面

半徑和高,電腦就會算出表面

積。可是到現(xiàn)在,我只會用整數(shù),現(xiàn)在出現(xiàn)小數(shù)又該怎么辦呢?

例5|求圓柱體的表面積,輸入底面半徑r和高h(yuǎn),輸出圓柱體的表

面積,保留3位小數(shù)。圓柱體表面積的公式是:

s=2*3.14159*r*r+2*3.14159*r*h

樣例輸入:3.59

樣例輸出:274.889

#include<cstdio>//使用printf或scanf,須調(diào)用cstdio庫

usingnamespacestd;

intmain()

doubler,h,si,s2,s;//先定義雙精度實型,可以存放小數(shù)

cin?r?h;

sl=3.14159*r*r;〃利用公式計算底面積并賦值

s2=2*3.14159*r*h;//利用公式計算側(cè)面積并賦值

〃計算總的表面積并賦值

printfC%0.31f*,s);//輸出結(jié)果保留3位小數(shù),注意」

上派西校區(qū)校本教材第二部分獨木小橋順序過

double用If占位符

return0;

做_/N將printf(〃%0.31f\n〃,s);更改成cout*s;會出錯嗎?為

什么?錯誤修正以后結(jié)果是什么?

I做一做I填空:

(1)保留2位小數(shù)輸出輸出變量a的語句為:

printf();

(2)使用cout調(diào)用的庫是;使用printf

調(diào)用的庫是;

|做一做|數(shù)學(xué)中經(jīng)典的“雞兔同籠”問題,已知頭共30個,腳共90

只,問籠中的雞和兔各有多少只?輸出雞和免的個數(shù)。(輸出1515)

C++編程第二部分獨木小橋順序過

第3課小朋友的平均年齡

例6|輸入2個整數(shù),小朋友的總年齡a利小朋友的個數(shù)b,輸出平

均年齡。例如輸入18和5,結(jié)果是3.6。

解題:

#include<iostream>

usingnamespacestd;

intmain(){

inta,b;〃先定義變量

doublec;〃因為除法可能會產(chǎn)生小數(shù),所以結(jié)果定義成浮

點數(shù)(小數(shù))

cin?a?b;

c=l.0*a/b;//a和b都是整數(shù),除法運算的結(jié)果還是整數(shù),

所以先乘上1.0

cout?c;

return0;

)

在變量的使月中,必須符合“先定義后使用”的原

則。相同類型的變量的計算結(jié)果還是同類型的。

睜一回去掉1.0以后結(jié)果如何?去掉1.0以后使用保留一位小數(shù)

輸出結(jié)果又是怎樣的?先猜一猜結(jié)果,再驗證一下你的結(jié)果。如果把

上派西校區(qū)校本教材第二部分獨木小橋順序過

c設(shè)置成int類型或者改輸出為cout?a/b*l.0結(jié)果又會是什么呢?

常用運算符分類:

算術(shù)運算符:+、-、*、/、%、++、一

關(guān)系運算符:>、>二、<、<二、二二、!二

邏輯運算符:“、&&、!

賦值運算符:二

條件運算符:?:

逗號運算符:,

除法運算符如果a、b是兩個整數(shù)類型的變量或常量,那

么a/b的值是a除以b的商。注意:整形/整形=整形,實數(shù)/整形=實

數(shù),例如,5/2的值是2,而不是2.5,而5.0/2或5/2.0的值是

2.5o

卜故一做|變量的使用必須符合的原則。

整數(shù)/整數(shù)=,實數(shù)/整形二。

|做一做|輸入三個整數(shù)a、b、c,輸出(a+b)/c的值結(jié)果保留3位

小數(shù)。(測試:輸入345輸出1.400o)

C++編程第二部分獨木小橋順序過

第4課數(shù)字的拆分

例7|將指定的三位數(shù),百位、十位、個位分開輸出以一個空格隔

開。(測試:輸入239輸出239)

解題思路:對這個三位數(shù)用10除取余數(shù),余數(shù)就是個位;對這

個三位數(shù)先用10除,結(jié)果是去掉個位的兩位數(shù),然后再用10取余就

是十位;對這個數(shù)直接除100就是百位。

#include<iostream>

usingnamespacestd;

intmain(){

intn,a,b,c;

cin?n;

a=n%10;〃取個位時直接用10除求余數(shù)

b=n/10%10://取十位時,先用10整除,然后用10取余

c=n/100;〃取百位時直接用100整除

cout?c<<"/z?a;

return0;

)

模運算符“%”:求余的運算符””也稱為模運算符,是雙目運

算符,兩個操作數(shù)都是整型數(shù)。a%b的結(jié)果是a除以b的余數(shù)。此方

法以后還有用到,可用于數(shù)字反轉(zhuǎn)、回文數(shù)、統(tǒng)計數(shù)字出現(xiàn)的個數(shù)等

上派西校區(qū)校本教材第二部分獨木小橋順序過

假一做I帶余除法:給定被除數(shù)和除數(shù),求整數(shù)商及余數(shù)。

輸入:一行,包含兩個整數(shù),依次為被除數(shù)和除數(shù)(除數(shù)非零),

中間用一個空格隔開。

輸出:一行,包含兩個整數(shù),依次為整數(shù)商和余數(shù),中間用一個

空格隔開。

(測試:輸入103輸出31)

|做一做|將指定的四位數(shù),個位、十位、百位、千位分開輸出以一個

空格隔開。(測試:輸入1234輸出1234)

|思考|租車。輸入學(xué)生數(shù),每5人一車,要租多少車?(測試:輸入

10輸出2,或者輸入8輸出2)

|思考|三位數(shù)拆分后變成的三個一位數(shù),如何能重新組合變成一個

三位數(shù),并且個位與百位對調(diào)。(輸入239輸出932)

C++編程第二部分獨木小橋順序過

閱讀材料:其它運算符

1、關(guān)系運算符

關(guān)系運算符用于數(shù)值的大小比較。包括大于(>)、小于(0、等于

(=)、大于等于(>二)、小于等于(<二)和不等于(!二)六種,它們都是雙

目運算符。關(guān)系運算符運算的結(jié)果是整型,值只有兩種:0或1,0代

表關(guān)系不成五,1代表關(guān)系成立O

2、邏輯運算符

C++語言中提供了三種邏輯運算符:與運算(&&)、或運算(||)、

非運算(!)。與運算符(&&)和或運算符(||)均為雙目運算符,具有左

結(jié)合性。非運算符(!)為單目運算符,具有右結(jié)合性。邏輯運算的值

也為“真”和“假”兩種,用“1”和“0”來表示。

說明:(1)與運算&&參與運算的兩個量都為真時,結(jié)果才為真,

否則為假。例如,5>0&&4>2

⑵或運算||參與運算的兩個量只要有一個為真,結(jié)果就為真。

兩個量都為假時,結(jié)果為假。例如:5>0||5>8

⑶非運算!參與運算量為真時,結(jié)果為假;參與運算量為假時,

結(jié)果為真。例如:!(5>0)

按照運算符的優(yōu)先順序可以得出:

a>b&&c>d等價于(a>b)&&(c>d)

!b==c||d<a等價于((!b)=c)||(d<a)

a+b>c&&x+y<b等價于((a+b)>c)&&((x+y)<b)

注意優(yōu)先級順序:算術(shù)〉關(guān)系〉邏輯〉賦值

18

上派西校區(qū)校本教材第二部分獨木小橋順序過

第5課可怕的傳染病

例8忖于傳染病要做到早發(fā)現(xiàn),早診斷,早隔

離,早治療。請根據(jù)報告的甲流確診數(shù)和死亡數(shù),

計算甲流的死亡率。

輸入:輸入僅一行,有兩個整數(shù),第一個為確診數(shù),

第t二個為死亡數(shù)。輸出:輸出僅一行,甲流死亡率,以百分?jǐn)?shù)形式輸

出,精確到小數(shù)點后3位。

樣例輸入:1043360

樣例輸出:0.575%

解題:

#include<iostream>

#include<cstdio>

usingnamespacestd;

intmainO(

inta,b;//定義2個整型變量存放患病數(shù)和死亡數(shù)

doublec;//定義雙精度浮點型變量,存放死亡率

cin?a?b;//輸入患病人數(shù)和死住人數(shù)

c=100.0*b/a;//計算死亡率

printf(〃%0.31f%c",c,'%');//輸出,注意單獨的“%”的輸出

C++編程第二部分獨木小橋順序過

變量的值是可以改變的,因此稱為變量。一個程序中可能要使用

到若干個變量,為了區(qū)別不同的變量,必須給每個變量取一個名(稱

為變量名),變量中值的類型為變量的類型。

1、變量三要素類型、名稱和值

2、變量命名規(guī)則只能由字母、數(shù)字和下劃線構(gòu)成

最多255個字符。變量要遵循“先定義后使用的原則”。

變量名區(qū)分大小寫,而且不能使用C/C++語言中的

關(guān)鍵字。例如int、for等。

3、變量的定義

語法格式為:數(shù)據(jù)類型變量表y

變量定義舉例:

doublex;//定義1個雙精度浮點型變量x

chara,b,c;〃定義3個字符型變量a、b和c

inti=5,j,k;〃一次定義3個整型變量i、J和k,i賦予初始

統(tǒng)計及格率,語文考試結(jié)束了。能否根據(jù)班上的人數(shù)和及

格人數(shù),求出及格率呢?結(jié)果保留2位小數(shù)(測試:輸入5042輸出

84.00%)

20

上派西校區(qū)校本教材第二部分獨木小橋順序過

閱讀材料:常量

常量是指在程序中值只能賦予第一次:然后不能被更改。

1、整型常量

1)十進(jìn)制形式:數(shù)字/9開頭如99

2)八進(jìn)制形式:數(shù)字0開頭如017

3)十六進(jìn)制形式:Ox開頭如OxFF

2、實型常量:小數(shù)法和科學(xué)計數(shù)法

如:2.1或者0.6E+2

3、字符常量:單引號括起來的如;a'

常量的定義:一個常量可以直接調(diào)用(如124,1A1),也可以給常

量取個名字用一個標(biāo)識符代表它,這就是符號常量。其語法格式為:

const符號常量二常量字串;

例如:constdoubIePI=3.1415926;

注意

習(xí)慣上,符號常量名用大寫,而變量名用小寫,以便于區(qū)別c使

用符號常量的好處:

(1)增加了程序的可讀性。

(2)增加了程序的易改性。

C++編程第二部分獨木小橋順序過

第6課卡卡的難題

例9卜十算(calc)(2017縣賽第一題)

西西同學(xué)從四年級就開始學(xué)習(xí)

信息學(xué),通過信息學(xué)的學(xué)習(xí),她掌

握了很多有關(guān)電腦的知識,慢慢成

為了班級里的電腦高手??ㄍ瑢W(xué)

也很想學(xué)電腦,但是他一直有個疑

問:計算機(jī)與計算器有什么區(qū)別?西西同學(xué)解釋:計算機(jī)較之計算器

功能更強(qiáng)加,通過程序設(shè)計可以很方便的實現(xiàn)計算器的計算功能。卡

卡疑問道:我們剛剛學(xué)習(xí)了四則運算,電腦能幫助計算a*(b+c)

嗎?西西擺擺手說:太簡單了。各位同學(xué)你能夠通過程序設(shè)計的方式

解決這個問題嗎?

輸入:輸入數(shù)據(jù)只有1行,有三個用空格分開的整數(shù),分別表示

a、b和c。

輸出:輸出數(shù)據(jù)只有1行,為a*(b+c)的結(jié)果。

樣例:

輸入:(calc,in)

234

輸出:(calc,out)

14

,數(shù)據(jù)范圍:

對于20%數(shù)據(jù)0<a,b,eWIOOO

22

上派西校區(qū)校本教材第二部分獨木小橋順序過

對于4096數(shù)據(jù)0<a,b,cW100000

對于100%數(shù)據(jù)0<a,b,c^1000000000

解題:

#include<iostream>

usingnamespacestd;

intmain(){

longlonga,b,c,d;//許多同學(xué)設(shè)置成int,沒考慮到結(jié)果d

可能超過int的范圍

cin?a?b?c;

d=a*(b+c);

cout?d;

return0;

)

數(shù)據(jù)

定義標(biāo)識符占字節(jié)數(shù)數(shù)值范圍數(shù)值范圍

類型

-2147483648-

整型[long]int4(32位)-2”?2”-1

2147483647

超長longlong-9223372036854775808

8(64位)-2心?263T

整型[int]9223372036854775807

許多同學(xué)看到10-9,很容易想到定義int夠用了,沒想到結(jié)果

超過了最大可能會到10*18,遠(yuǎn)遠(yuǎn)超過了int的范圍。

「故,做|計算長方形的面積,輸入長和寬(范圍0<二長、寬C1CT8),

計算長方形的面積。(測試:輸入10000002000000輸出

2000000000000)A

-

23

C++編程第二部分獨木小橋順序過

第7課匪夷所思的結(jié)果

|試一試|輸入并查看運行結(jié)果(結(jié)果0.330.00)

#include<iostream>

usingnamespacestd;

intmain(){

doublea,b;

a=1.0/3;

b=l/3;

printf("%.21f%0.21f”,a,b);

return0;

同樣是1除3結(jié)果卻不一樣,奇怪!原來相同類型的變量(或數(shù)

值)計算結(jié)果類型不變。

|試一試|計算1/3,分別存入float和double變量中,保留12位

小數(shù)輸出這2個變量。(結(jié)果0.333333343267和0.333333333333)

還是1除3,小數(shù)部分竟然不都是3,有貓膩!

數(shù)據(jù)類

定義標(biāo)識符占字節(jié)數(shù)數(shù)值范圍有效位數(shù)

單精度

float4(32位)-3.4E-38?3.4E+386?7位

實型

雙精度15?16

double8(64位)-1.7E-308-1.7E+308

實型位

長雙精18?19

longdouble16(128位)-3.4E+4932?1.1E+4932

度實型位

上派西校區(qū)校本教材第二部分獨木小橋順序過

I試一試|輸入下面代碼并且查看運行結(jié)果(結(jié)果10)

#include<iostream>

usingnamespacestd;

intmain(){

boola,b;

a=5;

b=l>3;

cout?a?w”?b;

return0;

又是一個不可理解,難道我的電腦故障了?布爾變量的賦值:非

0為真,0為假;布爾變量的值真為1,假為0。

數(shù)據(jù)類型定義標(biāo)識符占字節(jié)數(shù)數(shù)值范圍

布爾變量bool真true或假false之一1(8位)

C++編程第二部分獨木小橋順序過

第8課加密的文字

例J10I大小字母轉(zhuǎn)換。輸入一個小寫字母,轉(zhuǎn)換成大寫字母后輸出。

(測試:輸入a輸出A)

解題:

#include<iostream>

usingnamespacestd;

intmain(){

chara,b;

cin?a;

b=a-32;//'從字符ASCII表可以看出對應(yīng)的小寫比大寫的值

大32

cout?b;

return0;

這里如果變化加密的方式,只有自己或者互相有約定的對象才能

讀懂了。

字符常量有以下兩種表示法:

(1)普通表示形式

字符常量是由單個字符組成,所有字符采用ASCII編碼,ASCII

編碼共有128個字符O在程序中,通常用一對單引號將單個字符括起

’來港示一個字符常量o如:‘a(chǎn)','A','0'等。如字符A的序號是65,

■字符a的序號是97.字符。的序號的48。一

、26

上派西校區(qū)校本教材第二部分獨木小橋順序過

序號字符序號字符序號字符序號字符序號字符序號字符

32空格48064@80P96112P

33149165A81Q97a113q

3450266B82R98b114r

35#51367c83S99c115s

36$52468D84T100d116t

37%53569E85U101e117u

38&54670F86V102f118V

t

3955771G87W103g119w

40(56872H88X104h120X

41)57973I89Y105i121y

42?58,74J90Z106J122z

43+59975K91[107k123(

44960<76L92\10811241

45一61=77M93]109m125)

*

46*62>78N94110n126

47/63?79095—1110127deL

(2)轉(zhuǎn)義字符表示形式。

轉(zhuǎn)義字符有三種用法:表示控制字符、表示特殊字符、表示所有

字符。常用的轉(zhuǎn)義字符如右表所示。

轉(zhuǎn)義字符含義

''n'換行

''t'水平制表

'\r'回車(不換行)

'單引號

雙引號

'\\'一個反斜杠字符

不設(shè)置變量b,直接cout<<a-32;會是怎樣的結(jié)果呢?輸出換成

cout?(char)a-32;又會是怎樣呢?

「故一做|有加密就有解密,將例題中的加密后的文字進(jìn)行解密。(測

試:輸入A輸出a)

帆,做|輸入一個字符,輸出它的ASCii代碼。(測試:輸入a輸出

C++編程

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論