官术网_书友最值得收藏!

第1章 Hello World

本章,我們將從最簡單的實例開始學習程序的基本結構。

幾乎所有的編程語言都喜歡將“Hello World”作為第一個實例,那么我們也先從這里開始。

例1.1 輸出文字“Hello World!”

任務描述

在輸出窗口中顯示一行文字:“Hello World!”。

我們先來看程序代碼。

Python

源程序

程序只有一句,但是這一句的格式不能寫錯,既不能寫成print 'Hello World!',也不能寫成print(Hello World!),更不能隨意增減標點符號。

計算機語言首先要求的就是嚴格,馬馬虎虎可是不行的!

程序注解

· print( ):是Python中的輸出函數,其功能是將( )中的參數值輸出到Shell窗口中。

本例中,其參數是一個字符串:'Hello World!'。注意,單引號'不可以省略,否則會顯示程序出錯。

在Python中,也可以用雙引號(" ")來代替單引號(' '),但必須成對使用。如果字符串中含有雙引號(" "),則外面就用單引號(' ')來引示,反之亦然。

· #:表示此后為注釋內容,這一部分文字程序運行時會自動忽略。

運行結果
     Hello World!

C/C++

源程序

程序比Python多出好幾行,但核心的執行語句也只有一行,其他都是C語言的固定格式。同樣需要注意,格式不能寫錯。

程序注解

· main( ){ }:主函數,是C/C++程序的入口。

程序所執行的是main()函數后{ }中的語句,在此之外的語句,只有被main中的語句調用才會執行。

· printf( ):格式輸出函數,此處將字符串"Hello World!"輸出到輸出窗口。

注意:printf()函數比Python中的print()函數名結尾多了一個f。

雙引號(")不可省略,也不可以用單引號(')代替,這一點與Python不同。

C/C++中的語句以分號(;)結尾,且不可省略。

· 注釋:

C語言中的注釋用/*……*/包括起來,可跨越多行。在C/C++語法中,可使用雙斜杠(//)表示本行此后的內容均為注釋,程序編譯及運行時將自動忽略。

· #include <cstdio>:表示本程序要引用stdio(標準輸入輸出)庫函數。

因為printf()函數是在stdio函數庫中定義的,程序開頭必須寫上這一句,否則會在編譯時顯示“printf標識符未定義”。

運行結果

與Python相同。

Dev C++和VS都會將運行結果輸出到Windows操作系統的DOS窗口,這是從20世紀的DOS時代延續下來的。

     C++

在C++中,還有另一種輸出方法。

源程序
程序注解

· cout: 為C++中的輸出命令,此處將字符串"Hello World!"輸出到輸出窗口。

· <<:此處為輸出運算符,該符號在別的地方還有別的含義。

· #include <iostream>:表示cout命令在iostream庫中定義。

· using namespace std :使用std命名空間。

因為cout命令在std命名空間中定義,所以,如果此處不聲明這一句,程序中就需要寫成std::cout。

運行結果

與Python相同。

例1.2 求和

任務描述

在程序中設定a=5、b=3,在窗口中輸出a+b的值。

程序代碼如下。

Python

源程序
     a=5
     b=3
     c=a+b
     print('a+b=',c)
程序注解

· a=5:含義是將常量5賦值給變量a

=稱為賦值運算符,與數學中的等式含義不同。在計算機程序中,它代表執行這一句之后,a的值變為5,而不代表之前的數值。

大家看懂上面這句話了嗎?如果暫時看不懂也沒有關系,只需先記住它與數學中的等式不同就行了。

· print('a+b=',c):輸出字符串'a+b='和變量c的數值。

很多小朋友往往搞不清print('a')和print(a)的區別,在要求輸出a的時候直接寫上print(a),這樣當然不會得到想要的結果。

這里再重申一下,'a'表示一個字符串,它會作為數據存儲在內存中。

a在這里代表一個變量名,這只是為了方便編程人員操作而已,只在源代碼中存在。在程序編譯并執行的時候,它會轉化為內存中的一個存儲地址,而這個變量名本身已經不存在了。

而你想要輸出字母a,就必須在數據中有這個字母才行,因此只能寫成print('a')。

運行結果
     a+b= 8

在上面的運行結果中,在=和8之間有一個空格,因為print()函數默認使用空格來隔開各輸出項。如果想取消這個空格,可將輸出語句改成:

     print('a+b=',c,sep='')

參數sep=' '表示以一個空字符串來隔開各輸出項。

運行結果
     a+b=8

C++

源程序
程序注解

· int a,b,c:設置abc為整型變量,即均為整數。

在C/C++中,變量必須先聲明數據類型后才能使用,這一點與Python不同。

· a=5:將常量5賦值給變量a

參考本例Python源程序后的說明。

運行結果
     a+b=8

如果數值為小數,則需要設置變量為浮點型(float)。

可以在定義變量的同時,給變量賦初始值,相應語句如下:

運行結果
     a+b=8.7

變量的定義

Python和C/C++的變量都遵循“先定義后引用”的原則,但在Python和C/C++中,變量定義的概念有所不同。

Python的變量定義在賦值時完成,如果變量未賦值就引用,在執行時編程環境會提示:程序出錯,該變量未定義。

C/C++的變量定義是在聲明變量數據類型時完成的,如果變量未聲明數據類型就賦值或引用,在編譯時會提示出錯:該變量未定義。如果變量已聲明數據類型但未賦值,在編譯時會提出警示,但程序仍然可以執行。

學到這里,大家可能會問:寫這么一大段程序來算這么簡單的一道題,有意義嗎?有那個工夫,按兩下計算器不就解決了嗎?其實,我在初學計算機編程的時候也有這個疑問,編程究竟能做什么?

請不要著急,讓我們逐個例子看下去。

以上的示例程序都是只有輸出,沒有輸入的。而在實際的軟件應用中,多數都要針對一定的輸入進行處理。

例1.3 對輸入求和

任務描述

在窗口中輸出“請輸入a:”并輸入a值,

輸出“請輸入b:”并輸入b值,

輸出a+b的值。

先看程序代碼。

Python

源程序
程序注解

· a=input('提示語'):是Python中的輸入語句,功能是顯示提示語并等待用戶輸入一段字符(按Enter鍵結束),并將輸入值賦給變量a

運行結果(粗斜體字為輸入)
     請輸入a:12
     請輸入b:13
     a+b=1213

大家看一下這個結果是不是有什么地方不對?12+13怎么能得1213呢?

這是因為Python 3默認input()函數的返回值數據類型是字符串,而在Python中,字符串之間是可以“相加”的,就是將字符串合并在一起。

字符串不僅可以“相加”,字符串和整數還可以“相乘”,請看下面的語句:

     print('abc'*3)
運行結果
     abcabcabc

如果想將輸入數據轉換為數值,則需要數據類型轉換函數。如果想轉換為整型數,則使用int()函數,如要想轉換為浮點數(小數),則使用float()。

源程序修改如下:

運行結果(粗斜體字為輸入)
     請輸入a:12
     請輸入b:13
     a+b=25.0

結果中的25.0代表結果為浮點數。

C/C++

源程序
程序注解

· scanf("%f",&a):C/C++中的格式輸入函數。%f為格式符號,表示從輸入中掃描一個浮點數賦值給下一個參數a。

&a表示變量a的存儲地址(第12章詳解),&不可省略。

scanf()函數不能輸出提示語,所以提示語需要提前用printf()函數輸出。

· printf("a+b=%f",c):輸出a+b=(c的值),%f為格式符號,表示將下一個參數c的值轉換成浮點數輸出。

%f代表輸入/輸出格式為浮點數,格式符號與變量的對應關系見下表。

數據類型
運行結果(粗斜體字為輸入)
     請輸入a:12
     請輸入b:13
     a+b=25.000000

如果將%f換成%g,使用VS C++輸出則不會顯示后面多余的0,使用Dev C++輸出沒有什么不同。

既然%已經被用作格式輸出符號,那么,如果想輸出一個%該怎么辦?例如90%,該怎么寫?

其實好辦,多寫一個%,寫成90%%就可以了。

C++

源程序
程序注解

· cin>>a:C++中的輸入命令,此處輸入一個數值賦值給變量a

· >>:此處為輸入運算符,注意與輸出運算符方向相反。

該符號僅在此處用于輸入、輸出,在別處有其他含義。

運行結果(粗斜體字為輸入)
     請輸入a:12
     請輸入b:13
     a+b=25

本章要點

· 本章學習了Python和C/C++基本的輸入/輸出函數和語句,其使用方法對比如下表所示。

· Python 中的變量必須先賦值后再引用;C/C++中的變量必須先聲明數據類型后再引用。

練習1 簡單人機對話(1)

任務描述

在窗口中輸出“請問你今年多少歲?”

輸入一個數。

輸出“再問一下,你媽媽今年多少歲?”

輸入一個數。

輸出“哦!我知道了,你媽媽比你大(輸出差值)歲。”

主站蜘蛛池模板: 天祝| 扶风县| 当涂县| 宁乡县| 灵山县| 海晏县| 平陆县| 芦山县| 镇巴县| 辽中县| 庆元县| 石棉县| 缙云县| 塔河县| 崇礼县| 东丰县| 江北区| 海南省| 保山市| 彭州市| 靖西县| 高密市| 于都县| 福建省| 南通市| 天长市| 达拉特旗| 侯马市| 兰州市| 梧州市| 东方市| 宁晋县| 若尔盖县| 滁州市| 察雅县| 仙游县| 忻城县| 辽宁省| 项城市| 射洪县| 河池市|