實驗一 簡單的C程序

一、實驗目的和要求

1.熟悉Dev-C++ 5.11編譯系統的常用功能。

2.學會使用Dev-C++ 5.11編譯系統實現簡單的C++程序。

3.熟悉C++程序的基本結構,學會使用簡單的輸入/輸出操作。

二、實驗內容

1.編譯下列程序,改正所出現的錯誤信息,並寫出輸出結果。

//sy1_1.cpp
main()
{
cout<<"This is a progam."
}

實驗運行結果(「cout」沒有被定義)

 Comp1ling---
1.CPP
f:A新建\C++\1.Cpp(3): error C2065:'cout' :undeclared identifier
f:新建\c++\1.cpp(4): error C2297:'<<' :illegal,right operand has type'char [19]'
before
f八新建\c++\1.cpp(4) :error C2143: syntax error :missing
F:新建\C++\1.cpp(4) :uarning C4508:'mian': function should return a ualue;'uoid' return type assuned
ci.exe 時出錯.
執行
1.0bj- 1error(s),0 warning(5)

程序改正

/sy1_1.cpp
#include<iostream>
using namespace std; 
int main(void)
{
cout<<"This is a progam.";
return 0;
}

正確程序運行結果

//sy1_2.cpp

#include<iostream>
using namespace std; 
int main()
{
cin>>x;
int y=x*x;
cout<<"y=<<y<<\n";
return 0;
}

運行結果("x"沒有被定義,且輸出y表示爲cout<<「y=」)


//sy1_3.cpp
#include<iostream>
using namespace std; 
int main()
{
int a,b;
a=7;
int s=a+b;
cout<<"a+b="<<s<<endl;
return 0;

}

程序修改

//sy1_3.cpp
#include<iostream>
using namespace std; 
int main()
{
int a,b;
a=7;
cin>>b;
int s=a+b;
cout<<"a+b="<<s<<endl;
return 0;
}

正確程序運行結果


2.寫出一個完整的C++程序,從鍵盤輸入值來賦給int類型的變量the_number,並在輸入語句前添加一個提示語句,提示用戶輸入一個整數。(sy1_4.cpp)

程序如下:

//sy1_4.cpp
#include<iostream>
using namespace std; 
int main()
{
int s;
cout<<"請輸入一個整數:";
cin>>s;
int the_number=s;
cout<<"the_number="<<the_number<<endl;
return 0;
}

程序運行結果


三、分析與討論

1.C++程序的基本結構。

一般情況下,用C++語言編寫的程序是由函數加上類組成的。C++語言中有一個特殊的函數稱爲主函數( main function)。每一段程序都從主函數開始執行,由主函數去**一個對象的行爲,通過這個對象的行爲又去**其他對象的行爲。程序中的衆多對象共同協作完成某一任務。本書後續章節具有面向對象特徵的程序均採用這種結構。 此外,C++程序的基本結構還有如下兩種退化的情形。   一種退化造形是程序中僅有類面沒有函數(包括主函數。這些程序通常不是爲了直接運行面是來構造C程序庫,供編寫其他程序時重用。 另一種退化情形是程序中僅有函數而沒有類。除主函數外,還可能有一些遊離的函數 這些遊離的函數不屬於任何類。這時的C++程序不具備面向對象的特徵,但它包含了C++程序基本組成。

2.從對實驗內容第1題中出現錯誤的修改,總結出編程時應注意哪些問題。

答:編程時應該注意三點。

a、文件包含命令,即#include指令,它可以將某一個源文件的代碼併入當前源程序。#include<iostream>是編譯預處理中的文件包含命令,它的作用是在編譯之前將文件iostream的內容增加到源程序sy1_1.cpp該命令所在的地方。文件iostream設置了C++的I/O相關環境,定義了輸入輸出流類對象cout與cin等,程序要在屏幕上輸入輸出時,需要包含該文件。 
b、針對名字空間的指令。在不同的模塊中使用相同名字表示不同的事物,這樣會引起程序出錯,C++提供名字空間Namespace來防止命名的衝突。語句using namespace std;是針對名字空間的指令。告訴編譯程序此程序中所有的標識符都在std名字空間中,標識符都可以直接使用而不會發生命名的衝突。
c、主函數部分。一般來說,所有函數,包括main()函數,都必須指明其返回類型。  

3.C++程序中所出現的變量是否都必須先說明後使用?說明變量時是否都應該放在函數體的開頭。

答:C++程序中所出現的變量都必須先說明後使用,但是說明變量時不一定都放在函數體的開頭,在使用之前的語句中定義即可。

4.使用cout與運算符「<<」輸出字符串時應注意些什麼?

使用cout與運算符「<<"輸出字符應注意問題:

a、」<<」後面是所要輸出的字符串,注意要輸出的字符串前加雙引號;

b、如果要輸出兩個字符串就相應用兩個「<<」;

c、使用cout與「<<」輸出字符串時如果需要換行就可以使用控制符endl或者「\n」.

5.程序中說明了的變量,但沒有賦值,這時能否使用?

答:能使用

6.一個程序通過編譯並運行後得到了輸出結果,這一結果是否一定正確?

答:不一定正確

有可能運行方式不符合該程序本身的意義。

四、實驗心得

   通過本次實驗瞭解了C++語言的基礎知識以及C++程序的基本組成,C++程序基本結構是函數,此次實驗重點學習了C++的簡單輸入輸出程序,實驗中也出現許多問題,比如變量未定義,忘了加雙引號等問題,通過多次檢查最終解決問題。