NOI題解(1.2程式設計基礎之變數定義、賦值及轉換)

v_xchen_v發表於2016-08-26


01:整型資料型別儲存空間大小

#include "iostream"
using namespace std;
int main()
{
    int a;
    short b;
    cout<<sizeof(a)<<" "<<sizeof(b);
    return 0;
}

02:浮點型資料型別儲存空間大小

#include "iostream"
using namespace std;
int main()
{
    float a;
    double b;
    cout<<sizeof(a)<<" "<<sizeof(b);
    return 0;
}

03:其他基本資料型別儲存空間大小

#include "iostream"
using namespace std;
int main()
{
    bool a;
    char b;
    cout<<sizeof(a)<<" "<<sizeof(b);
    return 0;
}

04:填空:型別轉換1

#include "iostream"
using namespace std;
int main(){
     cout<<"D C";
     return 0;
}
解釋
#include "iostream"
using namespace std;
int main()
{
    int a = 32768;//32768是2的15次方,1000 0000 0000 0000
    short b = a;//short佔兩個位元組,首位被當作符號位,認為是負數,數值部分取反加1,得111 1111 1111 1111+1=1000 0000 0000 0000,即32768
    printf("%d %d\n", a, b);
    return 0;
}

05:填空:型別轉換2


#include"iostream"
using namespace std;
int main()
{
    cout<<"F E";
    return 0;
}
解釋
#include "iostream"
using namespace std;
int main()
{
    double a=1.00000001;
    float b=a;//將浮點數(雙精度)轉換為單精度時,雙精度有效數字16位,單精度7位,強轉造成異常
    printf("%.9f %.9f\n", a, b);//float是IEEE 754單精度浮點數,高1位數符,接著是7位的階碼(移碼,偏移量127),接著是23位的尾數,單精度浮點數最多有7位十進位制有效數字
    return 0;
}

06:浮點數向零舍入
/*
 一個單精度浮點數,強制轉換位int,會將其向零舍入到整數(向零舍入的含義是,正數向下舍入,負數向上舍入)
 */

#include "iostream"
using namespace std;
int main()
{
    float num;
    cin>>num;
    int a=(int)num;
    cout<<a;
    return 0;
}

07:列印ASCII碼

/*
 如果對char型別的字元進行加減運算,那麼char型字元已經被隱式轉成了int型的對應的ASCII碼
 */
#include "iostream"
using namespace std;
int main()
{
    char c;
    cin>>c;
    cout<<c-0;
    return 0;
}

08:列印字元

/*
 如果對int型的對應的ASCII碼強制轉換為char則,(char)碼數為對應的字元
 */
#include "iostream"
using namespace std;
int main()
{
    int num;
    cin>>num;
    cout<<(char)num;
    return 0;
}

09:整型與布林型的轉換

/*
 如果對bool型值賦值,不為0時,bool值都為true,數值為1
 */
#include "iostream"
using namespace std;
int main()
{
    int num;
    cin>>num;
    bool flag=num;
    int a=flag;
    cout<<a;
    return 0;
}

10:Hello, World!的大小

/*
 字串後面隱含著一個\n
 */
#include "iostream"
using namespace std;
int main()
{
    cout<<sizeof("Hello, World!");
    return 0;
}



相關文章