日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

NOIP(C++)信息学奥赛课程--持续更新

發布時間:2023/12/8 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NOIP(C++)信息学奥赛课程--持续更新 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

系列文章目錄

C++信息學奧賽課程 想學的收藏一下不然就找不到了


文章目錄

  • 系列文章目錄
  • 前言
  • 第一課初識C++程序
      • 0.程序框架
      • 1.數據的輸出
      • 2.輸出的內容
      • 3.輸出換行
      • 4.連續輸出
      • 5.練習
      • 6.設置文字和背景
      • 7.讓電腦發出聲音
      • 8.總結
  • 第二課變量和數據的輸入
      • 1.什么是變量
      • 2.變量中存數據
      • 3.修改變量的數據
      • 4.變量的命名規則
      • 5.變量間的賦值
      • 6.交換兩個變量的值
      • 7.數據的輸入
      • 8.總結
  • 第三課表達式和算術運算符
      • 1.輸出運算結果
      • 2.算術運算符和表達式
      • 3.將價格保存到變量中
      • 4.算術運算符的應用
      • 5.取余運算符
      • 6.交換兩位數字的位置
      • 7.豎式運算18
      • 8.總結
  • 第四課 數據類型之浮點數
      • 1.什么是浮點數?
      • 2.計算三角形的面積
      • 3.什么是數據類型轉換
      • 4.cout格式化輸出
      • 5.常量
      • 6.復合賦值運算符
      • 7.總結
  • 第五課 基本數據類型
      • 單詞
      • 1.認識C++中的基本數據類型
      • 2.基本數據類型之整型
          • 1.整型數據直接賦值
          • 2.表達式的結果取整數部分進行賦值
          • 3.運算時要防止溢出的發生
          • 4.sizeof方法
      • 3.基本數據類型之浮點型
          • 1.浮點型數據表示形式
          • 2.默認的浮點型數據是double型,如果需要表示float類型,需要加”f”或者”F”后綴。
          • 3.保留指定小數位數
          • 4.例題 求陰影部分的面積
          • 5. 計算圓形的周長和面積
  • 第六課 基本數據類型
      • 1.基本數據類型之字符型
          • 1.基本數據類型之字符型注意:
          • 2.輸出字母對應的ASCII值
          • 3.輸入數字字符,輸出對應的數字
          • 4.輸入大寫字母,輸出對應的小寫字母
          • 5.計算圓形的周長和面積
      • 2.基本數據類型之布爾型
          • 1.基本數據類型之布爾型 bool
            • A.布爾類型轉為整數類型
            • B.整數類型轉布爾類型
          • 2.數據類型之間的隱式轉換
          • 3.數據類型之間的強制轉換
          • 4.數據類型轉換之溢出
          • 5.練習一下
          • 6.練習計算球的體積
  • 第七課 運算符與判斷結構if
      • 1.復合運算符號
      • 2.關系運算符
      • 3.關系表達式
      • 4.程序結構
      • 5.if語句
      • 6.用if語句判斷變量是否等于100
      • 7.if語句的使用—判斷整數的奇偶性
      • 8.if 語句的使用判斷是否及格
      • 9.計算蘋果總價
  • 第八課 判斷結構else語句
      • 1.if語句語法結構
      • 2.if..else..語句的使用
      • 3.if..else if..else 語句的使用
          • 1.語法結構
          • 2.騎車與走路(例題)
          • 3.判斷倍數(例題)
  • 第九課 if...else語句運用
      • 1.分支嵌套
      • 2.例題判斷賬號密碼
      • 3. 猜數游戲
      • 4.計算郵資
      • 5.判斷能否被3,5整除
  • 第十課 邏輯運算符使用
      • 1.認識邏輯運算
      • 2.邏輯表達式
      • 3.單獨解析:
        • A.邏輯非:!
        • B.邏輯與:&&
          • B-1.三角形判斷
        • C.邏輯與:||
      • 4.例題:
        • 1:判斷是否為一門課不及格
        • 2:邏輯運算符優先級![在這里插入圖片描述](https://img-blog.csdnimg.cn/e624ceec8c114553868d8349218b6986.png)
        • 3:用邏輯表達式判斷是否為閏年
        • 4:點和正方形的關系


前言

隨著人工智能的不斷發展,個人特長也越來越重要,很多學生要進入一個好的學校完全考裸分,很難,本文就想給到部分學生提供一個學習C++信息學的機會。(每周三更新新課,想學的朋友可以收藏+粉絲,帶你從0-1玩轉信息學奧賽)


第一課初識C++程序

使用C++程序讓電腦和我們進行交流;

0.程序框架

#include <iostream> //包含頭文件 using namespace std; //使用標準名字空間 int main(){ //程序的主函數入口return 0; //函數返回值 0 }

1.數據的輸出

代碼如下(示例):

cout<<“Hello world”; 顯示器 輸出運算符 輸出的內容 分號結尾

2.輸出的內容

代碼如下(示例):

cout<<"Hello world"; cout<< "123456"; cout<<"@ :)"; cout<<"中國"

3.輸出換行

cout << end; end->結束 l->行 endl就是結束行

4.連續輸出

cout<<項目1<<項目2<<項目3<<項目4<<endl; //連續輸出不換行 cout<<項目1<<endl<<項目2<<<endl<<項目3<<endl<<項目4<<endl; //連續輸出換行

5.練習

//輸出一個10*10的正方形用*號表示

6.設置文字和背景

system("顏色 背景顏色文本顏色"); system("color e1")


7.讓電腦發出聲音

Beep(聲音的頻率,時長,單位是毫秒) Beep(1000,500);


8.總結

學習的電腦的輸出語句
學習了讓電腦發出聲音

第二課變量和數據的輸入

1.什么是變量

儲存數據的“箱子”-變量

int a; int->稱為數據類型 a->稱為變量名

2.變量中存數據

賦值->將數據存儲到變量中的
賦值運算符號 =

創建變量:int a; 變量的賦值:a = 1; 使用變量:cout<<a<<endl;//就能查看變量a中的數據

拓展:

創建變量又稱定義變量; 在同一{}中不能創建相同的變量; 先定義在賦值 int b; b = 2; 定義就賦值 int c = 2;

3.修改變量的數據

又稱為變量的重新賦值

int a; a = 1; a = 2; 代碼邏輯從上到下執行,最后的結果就是a = 2;

4.變量的命名規則

1:字母、數字、下劃線_ ;
2:區分大小寫;
3:數字不能開頭;
4:不能使用int這種已經有特殊意義的變量;

5.變量間的賦值

同時定義多個變量

int a,b; int a=b=1; int a=1,b=2; int m=200; int n=m; cout<<n<<endl;//還是200

6.交換兩個變量的值

//方法1: int a = 1; int b = 2; int c = a; b = a; a = c; //方法2: //swap()函數的使用 int d=3 , g=4; swap(d,g); cout<<d<<g<<endl;

7.數據的輸入

單個輸入:

int a; cin >> 數據存儲變量; cin >> a; //就可以往變量a中輸入一個整數值;

連續輸入:

int a,b; cin>>a>>b;

舉例:

輸入兩個數,輸出兩個數的和 int a,b; cin>>a>>b; cout<<a+b;

8.總結

1:變量的命名規則,什么是變量
2:賦值= 意思是將變量右邊的值賦值給變量左邊的名字
3:變量的重新賦值
4:輸入運算符 >> 連續的輸入 cin>>a>>b;

第三課表達式和算術運算符

1.輸出運算結果

輸出兩個數的和

int a=b=6; cout<<a+b;

2.算術運算符和表達式

區別: 數學 c++ + + - - x * ÷ \ () ()

表達式:數學算式 : 6+3
解釋:用運算符操作數 連接起來的式子叫做表達式

//練習 8-3÷2 4x5 20-3 (2+3)x6

3.將價格保存到變量中

用戶輸入價格后在進行輸出,好處在于價格的變化不影響程序的編程,也無需修改程序就能獲得值

cout<<7+4<<endl; int a,b; cin>>a>>b; cout<<a+b<<endl;

表達式的結果:

a = 6; b = 3; a+b; //如果還想使用結果那么就可以申明新的變量來接收 int c = a+b; cout<<c<<endl;//就輸出了a+b的值

4.算術運算符的應用

天安門廣場位于北京市中心,可容納100萬人舉行盛大集會,是世界上最大的城市廣場。天安門廣場南北長880米,東西寬500米。請問它的周長和面積分別是多少?

#include<iostream> using namespace std; int main(){int a,b;cin>>a>>b;int c = (a+b)*2;cout<<"周長="<<c<<endl;int s = a*b;cout<<"面積="<<s<<endl;return 0; }

編寫一個程序,算一算《雪花》第一句中數字1、2、3、4的和是多少?
雪花一片二片三四片,
五片六片七八片,
九片十片無數片,
飛入梅花都不見。

#include<iostream> using namespace std; int main(){int sum = 0;sum = sum + 1;sum = sum + 2;sum = sum + 3;sum = sum + 4;cout<<sum<<endl;return 0; }

5.取余運算符

問題:還剩下多少錢?
童童從零花錢中拿了50元錢去文具店買練習本,—個練習本3元,請問他最多能買多少個練習本,還剩下多少錢?
50÷3=16…… 2

取余運算:兩個數相除的余數
數學:5 ÷ 2 = 2 ····· 1
c++ :
5 / 2 = 2 商
5%2 = 1 余數

int a = 50,b = 3; int c = a / b; int d = a % b; cout << c << endl;

6.交換兩位數字的位置

前情提要
尼克家種的胡蘿卜今年不僅大豐收,而且還收獲了一棵超級胡蘿卜王。強盜兔聽到了這個消息,就想把這棵蘿卜占為己有。這天強盜兔來到尼克家門口,記下了他家的門牌號—62號,準備晚上再動手。這件事剛好被尼克發現了,聰明的尼克把門牌號上的十位數字和個位數字換一下,變成了26號并報警。晚上,愚蠢的強盜兔找了半天都沒找到62號,同時被警察逮了個正著。

//編寫一個程序,輸入一個兩位數,交換十位與個位上的數字,并輸出。 #include<iostream> using namespace std; int main(){int n,ge,shi;cin>>n;shi = n /10;ge = n % 10;n = ge*10 + shi;cout<<n<<endl;return 0; } //輸入一個三位正整數,將這個整數倒過來輸出。例如:輸入123,輸出321。 #include<iostream> using namespace std; int main(){int r,x,y,z;cin>>r;z = r/100;y = r/10%10;x = r%10;r = x*100+y*10+z;cout<<r<<endl;return 0; } //童童和他的好朋友去電影院看電影,電影的時長是8315秒,請問他們看了幾小時、幾分鐘、幾秒? //1小時=60分鐘 //1分鐘=60秒 #include<iostream> using namespace std; int main(){int n = 8315,h,m,s; h = n/60/60;m = n/60%60;s = n%60;cout << h << ":" << m << ":" << s << endl;return 0; }

7.豎式運算18

輸出:18+ 870 ----------888#include <iostream> using namespace std; int main(){int a= 18, b = 870;int c = a +b;cout << " "<< a << endl;cout << " "<< "+"<<" "<< b <<endl;cout <<"----------" << endl;cout <<" "<< c << endl;return 0; }

上面輸出要是改變了一個值,那么輸出的空格又要變化才能對齊;

  • 為了控制整個輸出的格式可以使用setw()函數(可以設置固定的一個寬度輸出,小括號就是輸出的內容占幾個字符位置)頭文件<iomanip>
  • 例如:
    setw(-10)代表輸出內容是左對齊,一共占10個位置)
    setw(10)代表輸出內容是右對齊,一共占10個位置)
  • #include <iostream> #include <iomanip> using namespace std; int main(){cout<<setw(-10)<<123<<endl;cout<<setw(10)<<123<<endl;return 0; }

    8.總結

  • 算術運算符 + - * / %
  • 表達式,操作符和操作數連接起來的式子
  • 取余運算,得到兩個數得余數
  • 設置閾寬頭文件
  • 第四課 數據類型之浮點數

    浮點數顧名思義小數,本節課學習C++中小數的表示方式

    課題引入:
    童童買了一根鋼筆和一個筆袋,請問一共花了多少錢?
    品名:鋼筆單價:3.5元
    品名:筆袋單價:9.9元

    #include <iostream> using namespace std; int main(){int a=3.5,b=9.9;int c = a + b;cout<<c<<endl;return 0; }

    不難發現輸出的是整數12;怎么表示小數呢?

    1.什么是浮點數?

    數據類型
    int 整數類型
    float 浮點數類型
    那么代碼更改為如下就可實現

    #include <iostream> using namespace std; int main(){float a=3.5,b=9.9;float c = a + b;cout<<c<<endl;return 0; }

    2.計算三角形的面積

    古埃及國王也稱為法老,是古埃及最大的奴隸主,擁有至高無上的權力,他們被看做神的化身。他們為自己修建了巨大的陵墓,因其外形像漢字的“金”字,被稱為“金字塔”。金字塔是法老權力的象征,埃及至今共發現金字塔96座。

    例題:
    “金字塔”的底是正方形,側面由四個大小相等的等腰三角形構成。
    請編寫一個程序,輸入底和高,輸出三角形的面積。
    提示:三角形面積=底*高/2

    int a=3,h=5; float s =a*h/2; cout << "s="<<s << endl; //輸出的結果是 7 int a=3,h=5; float s =a*h/2.0; cout << "s="<<s << endl; //輸出的結果是 7.5

    區別,整數在相乘相除時得到還是一個整數,那么如果在運算過程中遇到了小數,它會自動轉為小數運算,得到小數的結果;

    3.什么是數據類型轉換

    不同類型的數據之間,可以進行類型轉換。

    int -> float 2->2.0 flota -> int 2.0->2float a = 2.5; cout << int(a) << endl;//浮點型轉換成整型; int b = 2; cout << float(b)<< endl;//整型轉換成浮點型;

    練習:
    1 .童童的體重是33.5千克,美美的體重的是28.6千克,達達的體重是38.2千克,他們的平均體重是多少?請使用鍵盤輸入的方式輸入體重。

    #include <iostream> using namespace std; int main(){cout <<"請輸入體重:"<<endl;float x, y,z;cin >>×>> y>>z;float k =(x+y+z)/3;cout <<"k=" << k << endl; }

    4.cout格式化輸出

    格式化輸出

    成員函數作用相同的控制符作用
    precision(n)setprecision(n)設置實數的精度為n位
    width(n)setw[n)設置字段亮度為n位
    setf(ios::state)setiosflags(ios::state)設置輸出格式狀態,括號中應該給出格式狀態
    fill(c)setfill(c)設置填充字符c
    unsetf(ios::state)resetioflags(ios::state)終止己設置的輸出格式狀態

    舉例講解:

    float a = 3.19; cout<<setprecision(2)<<a<<endl; //3.2 //保留的數字的兩位,包含整數+小數位數 cout.precision(2); cout<<a<<endl; //3.2 cout<<setw(10)<<setiosflags(ios:right)<<a<<endl; //輸出的就是右對齊一個10個字符位置 //自行練習...........

    植樹節
    植樹節到了,童程童美學院組織植樹活動,規定每位同學品要完成兩棵小樹苗的種植。A班、B班、C班的學生人數通過鍵盤輸入。
    分別計算A班、B班、C班種植的小樹苗數量。

    #include <iostream> using namespace std; int main(){int a, b,c;cin a >> b >>c;int sum_a = a*2;int sum_b = b*2;int sum_c = c*2;cout << "A:<< sum_a << endl;cout << "B:<< sum_b << endl;cout << "C:" << sum_c << endl; }

    5.常量

    程序運行過程中,不會改變的量,稱為常量。

    const in N = 2;
    常量的變量名我們約定都是大寫;
    const 是定義常量的關鍵字,常量定義后無法改變,上面題目上a2 b2 c*2其中2就是常量

    定義常量的好處:
    1:常量通常有明確的含義,讓代碼便于理解;
    2:便統一修改;

    例題1:
    從鍵盤輸入圓的半徑r,計算圓的面積和周長。
    面積公式:s=π x r x r
    周長公式: c =2×π×r
    注:π圓周率是周長和直徑d的比,是一個固定值,約等于3.14

    #include <iostream> using namespace std; int main(){const float PI =3.14;f1oat r;cin >> r;//計算網的周長和面積float s =PI * r * r;float c =2 * PI * r;cout <<"面積:"<< s << endl;cout <<"周長:" << c << endl;return 0; }

    例題2:
    細胞分裂
    細胞學說是1838-1839年由德國的植物學家施萊登和動物學家施旺提出。該學說認為一切生物都是由細胞構成,細胞是生命的結構單位,細胞只能由細胞分裂而來。

    1個細胞,第一次分裂成2個,第二次2個分裂成4個,…編寫一個程序,算一算第5次分裂成幾個。

    1個細胞,第一次分裂成2個,第二次2個分裂成4個,…編寫一個程序,算—算第5次分裂成幾個。
    int n = 1;
    第一次: n = n*2;
    第二次: n = n * 2;
    第三次: n = n * 2;

    #include <iostream> using namespace std; int main(){int n= 1;n=n*2;n=n*2;n=n*2;n*=2;n*=2;cout << n << endl;return 0; }

    6.復合賦值運算符

    +=加等 *=乘等 /=除等 -=減等 %=取余等a = a + 1 -> a+=1 a = a / 2 -> a/=2//練習 //自行計算如下代碼結果 int x = 1, y = 2,z = 3; z *= x+y*3; cout<<z<<endl; x = (z+=3)*2; cout<<x<<endl; cout<<z<<endl; x%=z/y+5; cout<<x<<endl;

    7.總結

  • 數據類型 int float不同的數據類型不能直接進行運算,需要進行轉換,隱式轉換和強制轉換
  • 常量,不會改變的量 大寫英文字母 使用const
  • 復合賦值運算符
  • 第五課 基本數據類型

    單詞

    float 單精度浮點數
    double 雙精度浮點數

    1.認識C++中的基本數據類型

    2.基本數據類型之整型

    類型字節數上下限有效位數舉例
    整數4-2^31 ~ 2^31-110int i;
    長整型8-2^63 ~ 2^62-119long long i;
    1.整型數據直接賦值
    例如: int a = 100;
    2.表達式的結果取整數部分進行賦值
    例如: int b = 5/2; b = 2
    3.運算時要防止溢出的發生
    int max = 2147483647; int min = -2147483648
    4.sizeof方法
    計算變量存儲空間的大小

    【問題描述】
    分別定義short , int, long long類型的變量各一個,并依次輸出它們的存儲空間大小(單位∶字節)。
    輸出格式:一行,三個整數,分別是三個變量的存儲空間大小,用一個空格隔開。
    【樣例輸出】2 4 8

    //計算變量存儲空間的大小 #include <iostream> using namespace std; int main(){short a;int b;long long c;cout << sizeof(a) << " ";cout << sizeof(b) << " ";cout << sizeof(c) << endl;return 0; }

    3.基本數據類型之浮點型

    類型字節數上下限有效位數舉例
    單精度浮點型4-3.4e-38~3.4e+387float i;
    雙精度浮點型8-1.7e-308~1.7e+30815double i;
    1.浮點型數據表示形式

    通常寫法∶3.14、314、0.1;
    科學計數法︰1.25e2、1.25e-2 ;
    其中1.25e2表示1.25乘以10的2次方;1.25e-2表示1.25乘以10的負2次方。

    2.默認的浮點型數據是double型,如果需要表示float類型,需要加”f”或者”F”后綴。

    例如: float f1 = 3.14f;

    3.保留指定小數位數
    #include<iomanip> cout << fixed <<setprecision(2)<< a ;fixed :按照一般小數形式輸出setprecision(2): 設置小數精度a: 變量名
    4.例題 求陰影部分的面積

    【問題描述】
    輸入正方形的邊長m和n(保證m<n),計算陰影部分(見圖)的面積。
    【樣例輸入】10.0 20.0
    【樣例輸出】陰影的面積為:150

    #include<iostream> using namespace std; int main(){//計算陰影部分的面積//聲明兩個double類型變量儲存邊長,并輸入double a,b;cin >> a > b;//[聲明三個double類型變量存儲總面積,左上角空白,上角空白double alls,as,bs;//計算面積alls = a *a + b *b;as = (a + b)*a / 2;bs = b *b / 2;//輸出cout <<"陰影的面積為:" << alls - as - bs << endl; return 0; }
    5. 計算圓形的周長和面積

    【問題描述】
    編程實現輸入圓形的半徑值(double),輸出圓的周長和面積(π取3.14)
    圓形周長公式:C=2πR圓形面積公式:S=πR2
    【樣例輸入】
    5.67
    【樣例輸出】
    圓的周長為:35.6076
    圓的面積為:100.948

    #include<iostream> using namespace std; int main(){//聲明變量r,輸入double r;cin >>r;/計算周長,面積doub1e c,s,pi = 3.14;c = 2 * pi * r;s = pi * r * r;//輸出周長和面積cout <<“圓的周長為:"<< c << endl;cout <<“圓的面積為:"<< s << endl;return 0; }

    第六課 基本數據類型

    1.基本數據類型之字符型

    類型字節數上下限舉例
    字符型1256個不同字符char i;
    1.基本數據類型之字符型注意:

    1、字符常量只能用單引號括起來,不能用雙引號或其他括號。例如:‘A’,‘&’;
    2、字符常量只能是單個字符,不能是字符串也不能為空。
    錯誤寫法:‘ABC’ , "
    3、字符可以是字符集中任意字符。但數字被定義為字符型之后就不能當作數字本身參與數值運算。如‘5’和5是不同的?!?’是字符常量,不能作為數值5參與運算。

    ASCII需要記住的三個
    ‘a’ - 97
    ‘A’ - 65
    ‘0’ - 48

    2.輸出字母對應的ASCII值

    【問題描述】
    輸入英文字母(輸入范圍為A-Z,a-z之間),輸出對應的ASCII值。
    【樣例輸入1】A
    【樣例輸出1】65
    【樣例輸入2】z
    【樣例輸出2】122

    //輸入字母字符 char c; cin >> C; //輸出字母字符對應的ASCIIcout <<c + 0 << endl;return 0;
    3.輸入數字字符,輸出對應的數字

    【問題描述】
    輸入數字字符(輸入范圍為‘0 - 9’之間),
    輸出兩行,第一行是該字符對應的數字,第二行為該數字與1的和。
    【樣例輸入】
    3
    【樣例輸出】
    3
    4

    //輸入數字字符char n; cin >> n; //輸出數字字符對應的數值 cout << n - '0' << endl; //輸出對應的數值與數寧1的和 cout << n - '0'+1 << endl; return 0;
    4.輸入大寫字母,輸出對應的小寫字母

    【問題描述】
    輸入大寫字母(輸入范圍為A-Z之間),輸出對應的小寫字母。
    【樣例輸入1】A
    【樣例輸出1】a
    【樣例輸入2】Z
    【樣例輸出2】z

    //輸入大寫字母 char c; cin >> c; c = c+ 32; //輸出對應的小寫字母 cout << c << endl; return 0;
    5.計算圓形的周長和面積

    【問題描述】
    輸入圓形的半徑,輸出圓形的周長和面積。半徑的輸入范圍為:0<r ≤1000;
    T取3.14159265 ;
    【樣例輸入】3.2
    【樣例輸出】20.106232.1699

    #include<iostream> using namespace std; int main(){//輸入圓的半徑rdouble r;cin >> r;//計算圓的周長c和面積sconst double pi = 3.14159265;double c = 2* pi * r;double s = pi * r *r;//輸出cout << c << " " << s << endl;return 0; }

    2.基本數據類型之布爾型

    1.基本數據類型之布爾型 bool

    布爾型數據用來判斷真假,值只有兩個,truefalse

    A.布爾類型轉為整數類型
    bool a = true; bool b = false; cout<< a<< “”<<b<<endl;

    true轉換為整型值為1,false轉換為整型值為0

    B.整數類型轉布爾類型

    C++中只有數字0可以隱式轉換為false,其它值都轉換為true

    bool a = 10,b = 0,c = -20; cout << a<<" "<< b<<" "<<c<< endl; bool d = 10.1,e = 0.0; cout<<d <<""<<e<< endl; bool f = '0, g = 'a'; cout <<f<<""<<g <<endl;
    2.數據類型之間的隱式轉換

    [char short ] -> int -> long long
    float - > double

    從小類型到大類型可自動完成轉換
    練習:

    char a = 'a'; short b = 3; int c = 100; long long d = 240; double e = 3.12345; cout << a+ b<<endl; cout <<c+ d<< endl; cout << d +e<< endl; cout <<e +a<< endl;
    3.數據類型之間的強制轉換

    強制類型轉換有兩種格式:
    (數據類型)變量
    數據類型(變量或表達式)

    float a = 3.14; a = 3 ? (int) a; float b = 1.32; int (a+ b);
    4.數據類型轉換之溢出

    不管是隱式類型轉換還是強制類型轉換,我們遵循由小到大的原則才能確保數據的安全。
    如果大數據類型轉小數據類型會發生什么呢?

    int a;
    long long b = 53216547892;
    a = ( int ) b;
    cout <<a<< endl;
    // 結果為:1676940340

    5.練習一下
    以下代碼運行的結果是; #include <iostream> using namespace std; int main(){int m = 11,n = 6;double b = 2;cout << m%n/b << endl;return 0; }
    6.練習計算球的體積

    【問題描述】
    對于半徑為r的球,其體積的計算公式為V=4/3Tr3,這里取T = 3.14?,F給定r,求V
    輸入為一個不超過100的非負實數,即球半徑,類型為double型。
    輸出一個實數,即球的體積,保留小數點后2位。【樣例輸入】4
    【樣例輸出】267.95

    #include<iostream> #include<iomanip> using namespace std; int main(){//輸入球的半徑double r;cin >> r;/計算球的體積const double pi = 3.14;double v = 1.0*4/3*pi*r*r*r;//輸出體積并保留2位小數cout <<fixed << setprecision(2) << v << endl;return 0; }

    第七課 運算符與判斷結構if

    1.復合運算符號

    int a = 1 , b = 2 , c = 3;

    c = c + a; →c += a;
    b = b - a; →b -= a;
    a = a * c; →a *= c;
    b = b / c; →b /= c;

    2.關系運算符

    “關系運算”實際上就是“比較運算”

    < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 != 不等于

    3.關系表達式

    解釋:由關系運算符和運算數組成的式子就是關系表達式

    int a = 10; a < b int b = 20; a > b a >= b a != b a <= b a == b

    關系表達式的值(運算結果)是布爾類型

    4.程序結構

    程序結構有三種,分別是“順序”、“分支”、“循環”

    5.if語句

    語法規則 if(判斷條件){條件為真要做的事; }

    舉例:

    //if語句 //聲明布爾型變量 bool is_sunny = true; //使用i子語句進行判斷 if(is_sunny == true){//條件為真做的事cout <<"去爬山"; }

    6.用if語句判斷變量是否等于100

    int n = 100 ; if(n == 100){cout <<“變量n的值為100; } // ==表示判斷 // =表示賦值

    7.if語句的使用—判斷整數的奇偶性

    【問題描述】
    編程實現輸入一個正整數,判斷其奇偶性,并輸出;
    【樣例輸入】23
    【樣例輸出】奇數
    【樣例輸入】44
    【樣例輸出】偶數
    分析:如何判斷一個整數的奇偶性 偶數的特點->能被2整除->整數%2== 0 ; 奇數的特點->不能被2整除->整數%2!=0

    8.if 語句的使用判斷是否及格

    【問題描述】
    輸入考試成績(成績為0~100之間的整數),如果成績大于或等于60算及格,及格則輸出YES,如果成績小于60算不及格,不及格則輸出NO。
    【樣例輸入】62
    【樣例輸出】YES
    【樣例輸入】59
    【樣例輸出】NO

    //聲明整型變量,輸入 int score; cin >> score; //使用if語句進行判斷 //及格 if(score >= 60){cout <<"及格"; } //不及格 if(score < 60){cout <<"不及格"; } return 0;

    9.計算蘋果總價

    【問題描述】
    超市蘋果打折促銷,總重量如果不超過5斤,單價3元/斤,如果超過5斤,超過部分打八折;輸入為所購買蘋果的重量,輸出為應付款的總額。
    【樣例輸入1】10
    【樣例輸出1】27
    【樣例輸入2】10.2
    【樣例輸出2】27.48

    #include<iostream> using namespace std; int main(){//聲明double類型變量,并輸入double w;cin >> w;//使用if語句來判斷,計算//不超過5斤if(w <= 5){cout << w* 3 << endl;}//超過5斤if(w > 5){cout <<5*3+(w-5)*3*0.8 << endl;}return 0; }

    第八課 判斷結構else語句

    1.if語句語法結構

    if...else...語句 //語法結構

    if(條件)條件為真時執行; } else{條件為假時執行; }

    2.if…else…語句的使用

    A.【問題描述】
    編程實現輸入一個整數,判斷其奇偶性,并輸出。
    【樣例輸入】23
    【樣例輸出】奇數
    【樣例輸入】44
    【樣例輸出】偶數

    //使用if-else語句判斷整數的奇偶性 int n; cin >> n; if(n % 2 == 0){cout <<"偶數"; }else{//奇數cout <<"奇數"; } return 0;

    B.【問題描述】
    編程實現輸入一個整數,輸出它的絕對值。
    【樣例輸入】51
    【樣例輸出】51
    【樣例輸入】-34
    【樣例輸出】34

    /輸出一個整數的絕對值int n; cin > n; if(n >= 0){cout << n << endl; }else{ //n < 0cout << 0 - n << endl; } return O;

    3.if…else if…else 語句的使用

    1.語法結構
    if(條件){條件為真時執行; } else if(條件){條件為真時執行; } .... else {上面的條件都為假時執行; }
    2.騎車與走路(例題)

    【問題描述】
    在北大校園里沒有自行車上課辦事會很不方便。但實際上并非去辦任何事情都是騎車快,因為騎車需要找車、開鎖、停車、鎖車,這要耽誤一些時間。假設找到自行車開鎖并騎上自行車的時間為27秒,停車鎖車的時間為23秒。步行每秒行走1.2米,騎車每秒行走3.0米。請判斷走不同的距離去辦事,是騎車快還是走路快。
    【輸入】輸入一行,包含一個整數,表示某次辦事要行走的距離,單位為米。
    【輸出】輸出一行,如果騎車快輸出一行“Bike”;如果走路快輸出一行“Walk";如果一樣快輸出一行"All"。
    【樣例輸入】120
    【樣例輸出】Bike

    //聲明整型變量sint s; cin >> s; double bt,wt; //計算時間時間=總距離/每秒走的距離 bt = 27 +s / 3.0 +23; wt = s / 1.2; //判斷哪種方式快 if(bt < wt){cout << "Bike" ; }else if(bt > wt){cout << "walk"; }else{cout <<"A11"; } return 0;
    3.判斷倍數(例題)

    【問題描述】
    輸入一個整數,如果是5的倍數,那么輸出倍數的值,否則輸出No。
    【樣例輸入1】15
    【樣例輸出1】3
    【樣例輸入2】12
    【樣例輸出2】No

    #include<iostream> using namespace std; int main(){//聲明整型變量n,并輸入int n;cin >> n;//使用if-else語句判斷是否是5的倍數if(n % 5 == 0 ){}else{ //n不是5的倍數cout <<"No";}return 0; }

    第九課 if…else語句運用

    1.分支嵌套

    if(賬號正確){if(密碼正確){cout <<“登錄成功”;}else{cout<<“密碼錯誤”;} }else{cout <<“賬號錯誤”; }

    2.例題判斷賬號密碼

    判斷賬號密碼
    【問題描述】
    首先設定賬號為123,密碼為456。編寫程序,實現賬號和密碼登錄,并輸出登錄結果。

    【樣例輸入1】123 456
    【樣例輸出1】登錄成功
    【樣例輸入2】123 789
    【樣例輸出2】密碼錯誤

    //聲明變量,存儲注冊時的賬號密碼,輸入的賬號密碼 int user = 123,pw = 456,u,p; cin >>u>>p; //使用分支嵌套進行判斷 if(u == user){//賬號正確//判斷密碼if(p == pw){cout <<"登錄成功";}else{//密碼錯誤cout <<"密碼錯誤";} }else{(/賬號錯誤cout <<"賬號錯誤"; }

    3. 猜數游戲

    【問題描述】
    現有一數字35,用戶輸入一個數字與35作比較,如果4入的數字與35相等,則輸出猜對了;如果輸入的數字比35小則輸出猜小了;如果輸入的數字比35大則輸出猜大了。
    輸入∶輸入一行,包含1個整數。
    輸出:一行,輸出為字符串“猜對了”、“猜小了”和“猜大了”中的一個。
    【樣例輸入】40
    【樣例輸出】猜大了

    //聲明整型變量,輸入 int num; cin >>num;//判斷 if(num == 35){cout <<"猜對了"; }else{ //num != 35if(num > 35){cout <<"猜大了";}else{cout <<"猜小了";} } return 0;

    4.計算郵資

    【問題描述】
    根據郵件的重量和用戶是否選擇加急計算郵費。計算規則:重量在1000克以內(包含1000克),基本費8元。超過1000克的部分,每500克加收超重費4元,不足500克部分按500克計算;如果用戶選擇加急,多收5元。

    輸入∶輸入一行,包含整數和一個字符,以一個空格分開,分別表示重量(單位為克)和是否加急。如果字符是y,說明選擇加急;如果字符是n,說明不加急。

    輸出:一行,包含一個整數,表示郵費。

    【樣例輸入】1200 y
    【樣例輸出】17

    //聲明變量,整型變量,字符型變量,輸入 int m,money; char n; cin >> m >>n;//判斷,計算郵資 if(m <= 1000){money = 8; }else{//超過1000g//超過部分的重量是否被500整除if((m-1000)%500==0){money = 8 +(m-1000)/500*4;else{money = 8 + (m-1000)/500*4 +4;}//判斷是否加急if(n== 'y '){money += 5;} } //輸出 cout <<money << endl;

    5.判斷能否被3,5整除

    【問題描述】
    給定一個整數,判斷它能否被3,5整除,并輸出以下信息:
    1、能同時被3,5整除(直接輸出35,兩個數中間一個空格);
    2、只能被其中一個數整除(輸出這個除數);
    3、不能被任何數整除,輸出小寫字母n。

    輸入:輸入一行,包含一個整數m。( -1,000,000 < m<_1,000,000 )
    輸出:輸出一行,按照描述要求給出整數被3,5整除的情況。
    【樣例輸入1】9
    【樣例輸出1】3

    【樣例輸入2】15
    【樣例輸出2】3 5

    int n; cin >>n;//進行判斷 if(n%3==0){//能被3整除if(n%5==0){(/能被5整除cout << "3"<<" "<<"5"<<endl;}else{cout << "3"<<endl;} }else if(n%5==0){cout << "5"<<endl; else{cout << "n"<endl; } return 0;

    第十課 邏輯運算符使用

    1.認識邏輯運算

    ! 邏輯非 && 邏輯與 || 邏輯或

    2.邏輯表達式

    解釋:含有邏輯運算符的表達式稱為邏輯表達式
    ! 邏輯非
    && 邏輯與
    || 邏輯或
    邏輯表達式的結果只有兩種 (真)1(假)0

    3.單獨解析:

    A.邏輯非:!

    ! :非,代表相反的意思

    !true →false !false →true !(4 > 2) →false !(9>11) →true

    B.邏輯與:&&

    &&:與,代表同時的意思 9>5 && 5>3 →true 9>5 && 5<3 →false 9<5 && 5<3 →false


    總結:有一個為假結果就為假,兩個都為真結果才為真

    B-1.三角形判斷

    【問題描述】
    給定三個正整數,分別表示三條線段的長度,判斷這三條線段能否構成一個三角形(任意兩條邊之和大于第三邊)。輸出格式:如果能構成三角形,則輸出Yes,否則輸出No。

    【樣例輸入】345
    【樣例輸出】Yes

    //判斷三條線段能否構成一個三角形//聲明三個整型變量,并輸入 int a,b,c; cin a >> b >>c; //使用if-else語句進行判 if(a+b>c&&b+c>a&&a+c>b){cout << "yes"; }else{cout << "no"; } return 0;

    C.邏輯與:||

    ||∶或,代表其中一個的意思 7> 4 || 3 >1 →true 4>2 || 3 >5 →true 6 > 8 || 7 >9 →false


    總結:有一個為真結果就為真,兩個都為假結果才為假

    4.例題:

    1:判斷是否為一門課不及格

    【問題描述】
    給出一名學生的語文和數學成績,判斷他是否恰好有一門課不及格(成績小于60分)。
    輸入:一行,包含兩個在0到100之間的整數,分別是該生的語文成績和數學成績。
    輸出:若該生恰好有一門課不及格,
    輸出1;否則輸出0。

    【樣例輸入】50 80
    【樣例輸出】1

    //判斷一門成績不及格/[聲明兩個變量,并輸入 int chinese,math; cin > chinese >>math;//使用if-else語句進行判斷 if((chinese>=60&&math<60)||(chinese<60&&math>=60)){cout << 1; }else{cout <<0; } return 0; }

    2:邏輯運算符優先級

    3:用邏輯表達式判斷是否為閏年

    【問題描述】
    輸入一個年份,判斷該年是否為閏年。若為閏年則輸出Yes ,不是閏年則輸出No。
    提示∶閏年的判斷條件有兩個,只要滿足其中一個即為閏年。
    1)能被400整除
    2)不能被100整除,但能被4整除
    【樣例輸入】
    2016
    【樣例輸出】
    Yes

    分析:用邏輯表達式判斷是否為閏年 能被400整除 年份%400 == 0 || 不能被100整除,但能被4整除年份%400 != 0 && 年份%4==0 //判斷是否是閏年//聲明整型變量,輸入 int y; cin >>y; //使用if-else語句進行判斷 if((y%400==0)ll(y%100!=0&&y%4==O)){cout << "Yes"; else{cout <<"No" ; } return 0;

    4:點和正方形的關系

    【問題描述】
    有個一正方形,四個角的坐標(x,y)分別是( 1,-1) ,( 1,1) ,( -1,-1),( -1,1),×是橫軸,y是縱軸。寫一個程序,判斷一個給定的點是否在這個正方形內(包括正方形邊界)。

    【輸入】輸入一行,包括兩個整數x, y,以一個空格分開,表示坐標( x , y )。
    【輸出】輸出一行,如果點在正方形內,則輸出yes,否則輸出no。
    【輸入樣例】11
    【輸出樣例】yes

    #include<iostream> using namespace std; int main(){//聲明兩個整型變量,并輸入int x,y;cin >>x >>y;//使用if-else語句判斷if(x>=-1&&x<=1&&y>=-1&&y<=1){cout << "yes";}else{cout << "no" ;}return 0; }

    總結

    以上是生活随笔為你收集整理的NOIP(C++)信息学奥赛课程--持续更新的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。