---
# System prepended metadata

title: 筆試專區

---

# 筆試專區
---
首頁：https://reurl.cc/6DpOmr

---

## 運算&符號

### 常見符號

| 符號 |  =   |  ==  |   !=   |     &&      |     \|\|     |   %    |
|:----:|:----:|:----:|:------:|:-----------:|:------------:|:------:|
| 舉例 | a=5  | a==5 |  a!=1  | a>0 && a<10 | a>5 \|\|a<-3 |  a%10  |
| 意思 | 賦值 | 判斷 | 不等於 |   且(and)   |    或(or)    | 取餘數 |

### 常見型態

| 型態 | int  | float  |    double    | string  | char | bool   |
|:----:|:----:|:------:|:------------:|:-------:|:----:| ------ |
| 舉例 |  5   |  5.5   | 5.5555555555 | "Hello" | 'H'  | true   |
| 意思 | 整數 | 浮點數 |    長小數    |  字串   | 字元 | 布林值 |

### 常見運算縮寫

| 意義     |       i=i+1       |      i=i-1       | i=i*2 | i=i\/2 | i=i%2 |
| -------- |:-----------------:|:----------------:|:-----:|:-----:|:-----:|
| 等價寫法 | +\+i , i++ , i+=1 | --i , i-- , i-=1 | i*=2  | i\/=2  | i%=2  |

###  = VS ==

|          |          =           |           ==           |
|:--------:|:--------------------:|:----------------------:|
|   意義   |     執行賦值動作     |      執行比較判斷      |
|   範例   |         a=5          |          a==5          |
| 範例解釋 | 將數字5的值丟給變數a | 判斷變數a的值是否等於5 |


### i++ VS ++i

|      | i++  | ++i  |
| ---- |:----:| ---- |
| 意義 | i先使用再加1 | i先加1再使用 |

在for迴圈的計數或普通的變數累加中沒有差別，通常在while迴圈中常用來比較

-  i++
```cpp=
int i=5;
while(i--){
    cout<<i<<'\n';
}
```
>4
>3
>2
>1
>0
>共執行5次

++解釋++
while迴圈中先判斷i值再-1，故執行流程為：
判斷i=5->i=i-1->i=4->印出4
判斷i=4->i=i-1->i=3->印出3
判斷i=3->i=i-1->i=2->印出2
判斷i=2->i=i-1->i=1->印出1
判斷i=1->i=i-1->i=0->印出0
判斷==i=0==->==離開迴圈==


- ++i
```cpp=
int i=5;
while(--i){
    cout<<i<<'\n';
}
```
>4
>3
>2
>1
>共執行4次    
 
++解釋++
while迴圈中先將i值-1再判斷，故執行流程為：
i=5->i=i-1->判斷i=4->印出4
i=4->i=i-1->判斷i=3->印出3
i=3->i=i-1->判斷i=2->印出2
i=2->i=i-1->判斷i=1->印出1
i=1->i=i-1->判斷==i=0==->==離開迴圈==



## 判斷式
注意哪些東西在if括號裡、條件何時成立、判斷式的架構
-  Q1：求最後的輸出
```cpp=
#include<iostream>
using namespace std;
int main(){
    int a=5;
    if(a==5){
        a=4;
    }
    else if(a==4){
        cout<<"a="<<a<<'\n';
        a=3;
    }
    else{
        a=6;
        cout<<"a="<<a<<'\n';
    }
    if(a==4){
        a=6;
    }
    cout<<"a="<<a<<'\n';
    return 0;
}
```
- A1:
    >a=6
- 解釋：
一開始變數a的值為5 ==(a=5)==
接著判斷(a=\=5)成立，故變數a的值重設為4 ==(a=4)==
++接著跳到第16行++判斷(a==4)成立，故將變數a的值設為6 ==(a=6)==
最後輸出a=6
- Q2：求出最後的輸出
```cpp=
#include<iostream>
using namespace std;
int main(){
    int a=5;
    if(a==5){
        a=4;
    }
    if(a<=4){
        cout<<"a="<<a<<'\n';
        a=3;
    }
    else{
        a=6;
        cout<<"a=6"<<'\n';
    }
    if(a>=4){
        a=6;
    }
    cout<<"a="<<a<<'\n';
    return 0;
}
```
- A2:

    > a=4
    > a=3
- 解釋：
一開始變數a的值為5 ==(a=5)==
接著判斷(a=\=5)成立，故變數a的值重設為4 ==(a=4)==
接著判斷(a<=4)成立，故輸出a=4，並將變數a的值設為3 ==(a=3)==
++接著跳到第16行++判斷(a>=4)不成立，故最後輸出a=6
## 迴圈
注意哪些東西在迴圈裡、迴圈條件何時成立、何時離開迴圈
- 判斷輸出
```cpp=
 for(int i=1;i<=9;i++){
    for(int j=i;j<=9;j++){
        cout<<'*';
    }
    cout<<'\n';
  }
```
- 輸出
>\*********
>\********
>\*******
>\******
>\*****
>\****
>\***
>\**
>\*

- 解釋：
雙層迴圈的問題中，內層迴圈變動較快，外層迴圈變動較慢。
以此題為例，內層迴圈控制每列(每橫排)幾個星星，外層迴圈控制總行數(共9行)。

## 最後的一招

真的不會就把程式貼code::block上跑跑看ㄅ


啊但是，如果他沒有加程式架構（程式起手式）要記得加一下欸(主站第一頁有寫)
```cpp=
#include<iostream>
using namespace std;
int main(){
    //老師的題目
    return 0;
}
```

嘎油～