1. 程式人生 > >第二次部落格園作業

第二次部落格園作業

一.1.運算子的優先順序和結合性使用不熟練

^|>>等,其中^不是次方,可以用powa,3)表示a的三次方    A*A!=A^2

A--A++--A++A的差別不清楚

2.各種型別運算量混合運算時的自動轉換不熟練

int a,b,c;double d;

d=1.0*(a*b)/c;

在前面加入1.0*使後面的int資料型別變成double

  1. 輸入的方式只會單一種

cin>>a>>b;

cin.ignore(3);

cin>>c;

輸入:12 34 5678

事實:12 34 78

 56(包括空格)3個被忽略了

char c1,c2,c3,c4;

cin.get(c1);

cin.get(c2);

cin.get(c3);

cin.get(c4);

輸入:A B<Enter>

實際:c1Ac2為 ,c3Bc4為回車

char a[80];

cin.getline(a,80);

輸入79個字串,包括空格

  1. 呼叫子函式時,即使實參列表中沒有引數,()都必須有
  2. &的使用在地址和引用的區別

引用時

void move(int &x,int &y)

{  int z;

   z=x;x=y;y=z;}

int main()

{  int x=2,y=9;

   move(x,y);

   cout<<x<<y;

   return 0;}

輸出:92

  1. 函式形參的預設值(預設值)

有預設值的形參的右邊不能出現沒指定預設值的形參,且不能指定引用引數的預設值,預設值會被實參覆蓋

int move(int a,int b=8,int c=9)     ——合法

int move(int a=8,int b,int c=9)     ——不合法

int move(int a,int b=8,int &c=9)     ——不合法

  1. 行內函數性質不熟練

以增加空間換減少時間

函式中不能有迴圈語句、switch語句和複雜巢狀的if語句

  1. 函式過載不熟練

同名函式的引數個數不同,或引數型別不同,或是否為常成員函式

  1. 區域性變數的儲存類別的差別

auto 無初值,初值不確定  空間在使用完後會被回收

static 無初值,數字型為0,字元型為’\0’  有自己的空間

register 用於節省時間

    10.exit();使用方法不清

exit()括號中的0和別的數字的區別

11.不理解為什麼copy字串時,最後沒有賦予’\0’,會輸出亂碼。

二.1.打印出沙漏

      輸入:*個數n   

輸出:打出的沙漏 最後一行為多餘的*的個數

  1. if語句區別,滿足打出*,反之打出
  2. 輸入n,k-->通過for語句得出打印出來的行數-->通過for語句和if語句打印出漏斗-->得出多餘的*的數量
  3. for語句和if語句的並用
  4. 其實主要可能更接近數學問題,通過if語句裡面的條件,主要通過座標法和舉例法來實現